Code archives/3D Graphics - Mesh/Box Unbox mesh functions

This code has been declared by its author to be Public Domain code.

Download source code

Box Unbox mesh functions by Nebula2006
The code functions below can be used to build 3d maps.

The makecube function

makecube(a,b,c,d,e,f)

Will create a box. If a><f are turned off then no box will be created. Each of the modifiers can be set so the blocks can be used to build walls, or other data structures (dna)

2 sided. w<!>w

------------------
fffff


fffffloor
ccccc

me
fffffceiling
--------------
;
;
; Mesh creation functions
;
;
;


; top,bottom,left,right,front,back
Function makecube(a=True,b=True,c=True,d=True,e=True,f=True)
	z=CreateMesh() 

	surf=CreateSurface(z) 

	v0 = AddVertex(surf,0,0,0,	0,1)
	v3 = AddVertex(surf,4,0,0,	1,1)	
	v4 = AddVertex(surf,0,4,0,	0,0)
	v7 = AddVertex(surf,4,4,0,	1,0)

	v1 = AddVertex(surf,0,0,4	,0,1)
	v2 = AddVertex(surf,4,0,4	,1,1)	
	v5 = AddVertex(surf,0,4,4	,0,0)
	v6 = AddVertex(surf,4,4,4	,1,0)

	v8  = AddVertex(surf,0,0,0	,0,1)
	v9  = AddVertex(surf,0,0,4	,1,1)	
	v10 = AddVertex(surf,0,4,0	,0,0)
	v11 = AddVertex(surf,0,4,4	,1,0)

	v12 = AddVertex(surf,4,0,0  ,0,1)
	v13 = AddVertex(surf,4,0,4  ,1,1)	
	v14 = AddVertex(surf,4,4,0	,0,0)
	v15 = AddVertex(surf,4,4,4	,1,0)

	v16 = AddVertex(surf,0,4,0  ,0,1)
	v17 = AddVertex(surf,0,4,4	,1,1)	
	v18 = AddVertex(surf,4,4,0	,0,0)
	v19 = AddVertex(surf,4,4,4	,1,0)

	v20 = AddVertex(surf,0,0,0  ,0,1)
	v21 = AddVertex(surf,0,0,4	,1,1)	
	v22 = AddVertex(surf,4,0,0	,0,0)
	v23 = AddVertex(surf,4,0,4	,1,0)

	If a = True
		AddTriangle(Surf,v16,v17,v18) ;top
		AddTriangle(surf,v18,v17,v19)
	End If
	If b = True
		AddTriangle(surf,v21,v20,v22) ; bottom
		AddTriangle(surf,v21,v22,v23)
	End If
	If f = True Then
		AddTriangle(surf,v5,v1,v2) ; back
		AddTriangle(surf,v5,v2,v6)
	End If
	If e = True Then
		AddTriangle(surf,v0,v4,v3) ; front
		AddTriangle(surf,v3,v4,v7) ; 
	End If
	If d = True
		AddTriangle(surf,v15,v13,v12) ; left
		AddTriangle(surf,v15,v12,v14)
	End If
	If c = True
		AddTriangle(surf,v9,v11,v8) ; right
		AddTriangle(surf,v8,v11,v10)
	End If
	Return z
End Function

; top,bottom,left,right,front,back
Function make3dfrontdown(a=True,b=True,c=True,d=True,e=True)
	
	;    /|
	;  /  |
	;/____| 

	z=CreateMesh() 

	surf=CreateSurface(z) 

;	v16 = AddVertex(surf,0,4,0  ,0,1) ; top
;	v17 = AddVertex(surf,0,4,4	,1,1)	
;	v18 = AddVertex(surf,4,0,0	,0,0)
;	v19 = AddVertex(surf,4,0,4	,1,0)

	v20 = AddVertex(surf,0,0,0  ,0,1) ; bottom
	v21 = AddVertex(surf,0,0,4	,1,1)	
	v22 = AddVertex(surf,4,0,0	,0,0)
	v23 = AddVertex(surf,4,0,4	,1,0)

	v1 = AddVertex(surf,0,0,4	,0,1) ; back
	v2 = AddVertex(surf,4,0,4	,1,1)	
	v5 = AddVertex(surf,0,4,0	,0,0)
	v6 = AddVertex(surf,4,4,0	,1,0)
		
	v0 = AddVertex(surf,0,0,0,	0,1) ; front
	v3 = AddVertex(surf,4,0,0,	1,1)	
	v4 = AddVertex(surf,0,4,0,	0,0)
	v7 = AddVertex(surf,4,4,0,	1,0)
	
;	v12 = AddVertex(surf,4,0,0  ,0,1) ; right
;	v13 = AddVertex(surf,4,0,4  ,1,1)	
;	v14 = AddVertex(surf,4,4,0	,0,0)
;	v15 = AddVertex(surf,4,4,4	,1,0)

	v12 = AddVertex(surf,4,0,0  ,0,1) ; right
	v13 = AddVertex(surf,4,0,4  ,1,1)	
	v14 = AddVertex(surf,4,4,0	,0,0)
	v15 = AddVertex(surf,4,4,0	,1,0)



	v8  = AddVertex(surf,0,0,0	,0,1) ; left
	v9  = AddVertex(surf,0,0,4	,1,1)	
	v10 = AddVertex(surf,4,4,0	,0,0)
	v11 = AddVertex(surf,4,4,4	,1,0)


If a = True
		AddTriangle(surf,v21,v20,v22) ; bottom
		AddTriangle(surf,v21,v22,v23)
End If
If e = True Then
		AddTriangle(surf,v6,v1,v2) ; back
		AddTriangle surf,v5,v1,v6
End If
If d = True Then ; front
		AddTriangle surf,v3,v0,v6
		AddTriangle surf,v6,v0,v5
	End If
If c = True Then
		AddTriangle(surf,v15,v13,v12) ; right
		;AddTriangle(surf,v15,v12,v14)
	End If
If b = True Then
		AddTriangle(surf,v5,v8,v9) ; left
	End If
	Return z

End Function




; top,bottom,left,right,front,back
Function make3dfrontup(a=True,b=True,c=True,d=True,e=True)
	
	;    /|
	;  /  |
	;/____| 

	z=CreateMesh() 

	surf=CreateSurface(z) 

;	v16 = AddVertex(surf,0,4,0  ,0,1) ; top
;	v17 = AddVertex(surf,0,4,4	,1,1)	
;	v18 = AddVertex(surf,4,0,0	,0,0)
;	v19 = AddVertex(surf,4,0,4	,1,0)

	v20 = AddVertex(surf,0,0,0  ,0,1) ; bottom
	v21 = AddVertex(surf,0,0,4	,1,1)	
	v22 = AddVertex(surf,4,0,0	,0,0)
	v23 = AddVertex(surf,4,0,4	,1,0)

	v1 = AddVertex(surf,0,0,4	,0,1) ; back
	v2 = AddVertex(surf,4,0,4	,1,1)	
	v5 = AddVertex(surf,0,4,4	,0,0)
	v6 = AddVertex(surf,4,4,4	,1,0)
		
	v0 = AddVertex(surf,0,0,0,	0,1) ; front
	v3 = AddVertex(surf,4,0,0,	1,1)	
	v4 = AddVertex(surf,0,4,0,	0,0)
	v7 = AddVertex(surf,4,4,0,	1,0)
	
	v12 = AddVertex(surf,4,0,0  ,0,1) ; right
	v13 = AddVertex(surf,4,0,4  ,1,1)	
	v14 = AddVertex(surf,4,4,0	,0,0)
	v15 = AddVertex(surf,4,4,4	,1,0)

	v8  = AddVertex(surf,0,0,0	,0,1) ; left
	v9  = AddVertex(surf,0,0,4	,1,1)	
	v10 = AddVertex(surf,4,4,0	,0,0)
	v11 = AddVertex(surf,4,4,4	,1,0)


If a = True
		AddTriangle(surf,v21,v20,v22) ; bottom
		AddTriangle(surf,v21,v22,v23)
End If
If e = True Then
		AddTriangle(surf,v6,v1,v2) ; back
		AddTriangle surf,v5,v1,v6
End If
If d = True Then ; front
		AddTriangle surf,v3,v0,v6
		AddTriangle surf,v6,v0,v5
	End If

If c = True Then
		AddTriangle(surf,v15,v13,v12) ; right
		;AddTriangle(surf,v15,v12,v14)
	End If
	
If b = True Then
		AddTriangle(surf,v5,v8,v9) ; left
	End If
	Return z

End Function



; top,bottom,left,right,front,back
Function make3leftup(a=True,b=True,c=True,d=True,e=True)
	
	;    /|
	;  /  |
	;/____| 

	z=CreateMesh() 

	surf=CreateSurface(z) 

;	v16 = AddVertex(surf,0,4,0  ,0,1) ; top
;	v17 = AddVertex(surf,0,4,4	,1,1)	
;	v18 = AddVertex(surf,4,0,0	,0,0)
;	v19 = AddVertex(surf,4,0,4	,1,0)

	v20 = AddVertex(surf,0,0,0  ,0,1) ; bottom
	v21 = AddVertex(surf,0,0,4	,1,1)	
	v22 = AddVertex(surf,4,0,0	,0,0)
	v23 = AddVertex(surf,4,0,4	,1,0)

	v1 = AddVertex(surf,0,0,4	,0,1) ; back
	v2 = AddVertex(surf,4,0,4	,1,1)	
	v5 = AddVertex(surf,0,4,4	,0,0)
	v6 = AddVertex(surf,4,4,4	,1,0)
		
	v0 = AddVertex(surf,0,0,0,	0,1) ; front
	v3 = AddVertex(surf,4,0,0,	1,1)	
	v4 = AddVertex(surf,0,4,0,	0,0)
	v7 = AddVertex(surf,4,4,0,	1,0)
	
	v12 = AddVertex(surf,4,0,0  ,0,1) ; right
	v13 = AddVertex(surf,4,0,4  ,1,1)	
	v14 = AddVertex(surf,4,4,0	,0,0)
	v15 = AddVertex(surf,4,4,4	,1,0)

	v8  = AddVertex(surf,0,0,0	,0,1) ; left
	v9  = AddVertex(surf,0,0,4	,1,1)	
	v10 = AddVertex(surf,4,4,0	,0,0)
	v11 = AddVertex(surf,4,4,4	,1,0)


If a = True
		AddTriangle(surf,v21,v20,v22) ; bottom
		AddTriangle(surf,v21,v22,v23)
End If
If e = True Then
		AddTriangle(surf,v6,v1,v2) ; back
End If
If d = True Then ; front
		AddTriangle surf,v3,v0,v7
	End If
If c = True Then
		AddTriangle(surf,v15,v13,v12) ; right
		AddTriangle(surf,v15,v12,v14)
	End If
If b = True Then
		AddTriangle(surf,v9,v11,v8) ; left
		AddTriangle(surf,v8,v11,v10)
	End If
	Return z

End Function


Function make3rightup(a=True,b=True,c=True,d=True,e=True)

; |\
; |  \
; |____\


	z=CreateMesh() 

	surf=CreateSurface(z) 

;	v16 = AddVertex(surf,0,4,0  ,0,1) ; top
;	v17 = AddVertex(surf,0,4,4	,1,1)	
;	v18 = AddVertex(surf,4,0,0	,0,0)
;	v19 = AddVertex(surf,4,0,4	,1,0)

	v20 = AddVertex(surf,0,0,0  ,0,1) ; bottom
	v21 = AddVertex(surf,0,0,4	,1,1)	
	v22 = AddVertex(surf,4,0,0	,0,0)
	v23 = AddVertex(surf,4,0,4	,1,0)

	v1 = AddVertex(surf,0,0,4	,0,1) ; back
	v2 = AddVertex(surf,4,0,4	,1,1)	
	v5 = AddVertex(surf,0,4,4	,0,0)
	v6 = AddVertex(surf,4,4,4	,1,0)
		
	v0 = AddVertex(surf,0,0,0,	0,1) ; front
	v3 = AddVertex(surf,4,0,0,	1,1)	
	v4 = AddVertex(surf,0,4,0,	0,0)
	v7 = AddVertex(surf,4,4,0,	1,0)
	
	v12 = AddVertex(surf,4,0,0  ,0,1) ; right
	v13 = AddVertex(surf,4,0,4  ,1,1)	
	v14 = AddVertex(surf,0,4,0	,0,0)
	v15 = AddVertex(surf,0,4,4	,1,0)

	v8  = AddVertex(surf,0,0,0	,0,1) ; left
	v9  = AddVertex(surf,0,0,4	,1,1)	
	v10 = AddVertex(surf,0,4,0	,0,0)
	v11 = AddVertex(surf,0,4,4	,1,0)


If a = True
		AddTriangle(surf,v21,v20,v22) ; bottom
		AddTriangle(surf,v21,v22,v23)
End If
If e = True Then
		AddTriangle(surf,v5,v1,v2) ; back
End If
If d = True Then
		AddTriangle(surf,v0,v4,v3) ; front
;		AddTriangle(surf,v3,v4,v7) ; 
	End If
If c = True Then
		AddTriangle(surf,v15,v13,v12) ; right
		AddTriangle(surf,v15,v12,v14)
	End If
If b = True Then
		AddTriangle(surf,v9,v11,v8) ; left
		AddTriangle(surf,v8,v11,v10)
	End If
	Return z

End Function

Comments

None.

Code Archives Forum