October 19, 2021, 10:48:43

Author Topic: [bb] Box Unbox mesh functions by Nebula [ 1+ years ago ]  (Read 782 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
Title : Box Unbox mesh functions
Author : Nebula
Posted : 1+ years ago

Description : 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
--------------


Code :
Code: BlitzBasic
  1. ;
  2. ;
  3. ; Mesh creation functions
  4. ;
  5. ;
  6. ;
  7.  
  8.  
  9. ; top,bottom,left,right,front,back
  10. Function makecube(a=True,b=True,c=True,d=True,e=True,f=True)
  11.         z=CreateMesh()
  12.  
  13.         surf=CreateSurface(z)
  14.  
  15.         v0 = AddVertex(surf,0,0,0,      0,1)
  16.         v3 = AddVertex(surf,4,0,0,      1,1)   
  17.         v4 = AddVertex(surf,0,4,0,      0,0)
  18.         v7 = AddVertex(surf,4,4,0,      1,0)
  19.  
  20.         v1 = AddVertex(surf,0,0,4       ,0,1)
  21.         v2 = AddVertex(surf,4,0,4       ,1,1)  
  22.         v5 = AddVertex(surf,0,4,4       ,0,0)
  23.         v6 = AddVertex(surf,4,4,4       ,1,0)
  24.  
  25.         v8  = AddVertex(surf,0,0,0      ,0,1)
  26.         v9  = AddVertex(surf,0,0,4      ,1,1)  
  27.         v10 = AddVertex(surf,0,4,0      ,0,0)
  28.         v11 = AddVertex(surf,0,4,4      ,1,0)
  29.  
  30.         v12 = AddVertex(surf,4,0,0  ,0,1)
  31.         v13 = AddVertex(surf,4,0,4  ,1,1)      
  32.         v14 = AddVertex(surf,4,4,0      ,0,0)
  33.         v15 = AddVertex(surf,4,4,4      ,1,0)
  34.  
  35.         v16 = AddVertex(surf,0,4,0  ,0,1)
  36.         v17 = AddVertex(surf,0,4,4      ,1,1)  
  37.         v18 = AddVertex(surf,4,4,0      ,0,0)
  38.         v19 = AddVertex(surf,4,4,4      ,1,0)
  39.  
  40.         v20 = AddVertex(surf,0,0,0  ,0,1)
  41.         v21 = AddVertex(surf,0,0,4      ,1,1)  
  42.         v22 = AddVertex(surf,4,0,0      ,0,0)
  43.         v23 = AddVertex(surf,4,0,4      ,1,0)
  44.  
  45.         If a = True
  46.                 AddTriangle(Surf,v16,v17,v18) ;top
  47.                 AddTriangle(surf,v18,v17,v19)
  48.         End If
  49.         If b = True
  50.                 AddTriangle(surf,v21,v20,v22) ; bottom
  51.                 AddTriangle(surf,v21,v22,v23)
  52.         End If
  53.         If f = True Then
  54.                 AddTriangle(surf,v5,v1,v2) ; back
  55.                 AddTriangle(surf,v5,v2,v6)
  56.         End If
  57.         If e = True Then
  58.                 AddTriangle(surf,v0,v4,v3) ; front
  59.                 AddTriangle(surf,v3,v4,v7) ;
  60.         End If
  61.         If d = True
  62.                 AddTriangle(surf,v15,v13,v12) ; left
  63.                 AddTriangle(surf,v15,v12,v14)
  64.         End If
  65.         If c = True
  66.                 AddTriangle(surf,v9,v11,v8) ; right
  67.                 AddTriangle(surf,v8,v11,v10)
  68.         End If
  69.         Return z
  70. End Function
  71.  
  72. ; top,bottom,left,right,front,back
  73. Function make3dfrontdown(a=True,b=True,c=True,d=True,e=True)
  74.        
  75.         ;    /|
  76.         ;  /  |
  77.         ;/____|
  78.  
  79.         z=CreateMesh()
  80.  
  81.         surf=CreateSurface(z)
  82.  
  83. ;       v16 = AddVertex(surf,0,4,0  ,0,1) ; top
  84. ;       v17 = AddVertex(surf,0,4,4      ,1,1)  
  85. ;       v18 = AddVertex(surf,4,0,0      ,0,0)
  86. ;       v19 = AddVertex(surf,4,0,4      ,1,0)
  87.  
  88.         v20 = AddVertex(surf,0,0,0  ,0,1) ; bottom
  89.         v21 = AddVertex(surf,0,0,4      ,1,1)  
  90.         v22 = AddVertex(surf,4,0,0      ,0,0)
  91.         v23 = AddVertex(surf,4,0,4      ,1,0)
  92.  
  93.         v1 = AddVertex(surf,0,0,4       ,0,1) ; back
  94.         v2 = AddVertex(surf,4,0,4       ,1,1)  
  95.         v5 = AddVertex(surf,0,4,0       ,0,0)
  96.         v6 = AddVertex(surf,4,4,0       ,1,0)
  97.                
  98.         v0 = AddVertex(surf,0,0,0,      0,1) ; front
  99.         v3 = AddVertex(surf,4,0,0,      1,1)   
  100.         v4 = AddVertex(surf,0,4,0,      0,0)
  101.         v7 = AddVertex(surf,4,4,0,      1,0)
  102.        
  103. ;       v12 = AddVertex(surf,4,0,0  ,0,1) ; right
  104. ;       v13 = AddVertex(surf,4,0,4  ,1,1)      
  105. ;       v14 = AddVertex(surf,4,4,0      ,0,0)
  106. ;       v15 = AddVertex(surf,4,4,4      ,1,0)
  107.  
  108.         v12 = AddVertex(surf,4,0,0  ,0,1) ; right
  109.         v13 = AddVertex(surf,4,0,4  ,1,1)      
  110.         v14 = AddVertex(surf,4,4,0      ,0,0)
  111.         v15 = AddVertex(surf,4,4,0      ,1,0)
  112.  
  113.  
  114.  
  115.         v8  = AddVertex(surf,0,0,0      ,0,1) ; left
  116.         v9  = AddVertex(surf,0,0,4      ,1,1)  
  117.         v10 = AddVertex(surf,4,4,0      ,0,0)
  118.         v11 = AddVertex(surf,4,4,4      ,1,0)
  119.  
  120.  
  121. If a = True
  122.                 AddTriangle(surf,v21,v20,v22) ; bottom
  123.                 AddTriangle(surf,v21,v22,v23)
  124. End If
  125. If e = True Then
  126.                 AddTriangle(surf,v6,v1,v2) ; back
  127.                 AddTriangle surf,v5,v1,v6
  128. End If
  129. If d = True Then ; front
  130.                 AddTriangle surf,v3,v0,v6
  131.                 AddTriangle surf,v6,v0,v5
  132.         End If
  133. If c = True Then
  134.                 AddTriangle(surf,v15,v13,v12) ; right
  135.                 ;AddTriangle(surf,v15,v12,v14)
  136.         End If
  137. If b = True Then
  138.                 AddTriangle(surf,v5,v8,v9) ; left
  139.         End If
  140.         Return z
  141.  
  142. End Function
  143.  
  144.  
  145.  
  146.  
  147. ; top,bottom,left,right,front,back
  148. Function make3dfrontup(a=True,b=True,c=True,d=True,e=True)
  149.        
  150.         ;    /|
  151.         ;  /  |
  152.         ;/____|
  153.  
  154.         z=CreateMesh()
  155.  
  156.         surf=CreateSurface(z)
  157.  
  158. ;       v16 = AddVertex(surf,0,4,0  ,0,1) ; top
  159. ;       v17 = AddVertex(surf,0,4,4      ,1,1)  
  160. ;       v18 = AddVertex(surf,4,0,0      ,0,0)
  161. ;       v19 = AddVertex(surf,4,0,4      ,1,0)
  162.  
  163.         v20 = AddVertex(surf,0,0,0  ,0,1) ; bottom
  164.         v21 = AddVertex(surf,0,0,4      ,1,1)  
  165.         v22 = AddVertex(surf,4,0,0      ,0,0)
  166.         v23 = AddVertex(surf,4,0,4      ,1,0)
  167.  
  168.         v1 = AddVertex(surf,0,0,4       ,0,1) ; back
  169.         v2 = AddVertex(surf,4,0,4       ,1,1)  
  170.         v5 = AddVertex(surf,0,4,4       ,0,0)
  171.         v6 = AddVertex(surf,4,4,4       ,1,0)
  172.                
  173.         v0 = AddVertex(surf,0,0,0,      0,1) ; front
  174.         v3 = AddVertex(surf,4,0,0,      1,1)   
  175.         v4 = AddVertex(surf,0,4,0,      0,0)
  176.         v7 = AddVertex(surf,4,4,0,      1,0)
  177.        
  178.         v12 = AddVertex(surf,4,0,0  ,0,1) ; right
  179.         v13 = AddVertex(surf,4,0,4  ,1,1)      
  180.         v14 = AddVertex(surf,4,4,0      ,0,0)
  181.         v15 = AddVertex(surf,4,4,4      ,1,0)
  182.  
  183.         v8  = AddVertex(surf,0,0,0      ,0,1) ; left
  184.         v9  = AddVertex(surf,0,0,4      ,1,1)  
  185.         v10 = AddVertex(surf,4,4,0      ,0,0)
  186.         v11 = AddVertex(surf,4,4,4      ,1,0)
  187.  
  188.  
  189. If a = True
  190.                 AddTriangle(surf,v21,v20,v22) ; bottom
  191.                 AddTriangle(surf,v21,v22,v23)
  192. End If
  193. If e = True Then
  194.                 AddTriangle(surf,v6,v1,v2) ; back
  195.                 AddTriangle surf,v5,v1,v6
  196. End If
  197. If d = True Then ; front
  198.                 AddTriangle surf,v3,v0,v6
  199.                 AddTriangle surf,v6,v0,v5
  200.         End If
  201.  
  202. If c = True Then
  203.                 AddTriangle(surf,v15,v13,v12) ; right
  204.                 ;AddTriangle(surf,v15,v12,v14)
  205.         End If
  206.        
  207. If b = True Then
  208.                 AddTriangle(surf,v5,v8,v9) ; left
  209.         End If
  210.         Return z
  211.  
  212. End Function
  213.  
  214.  
  215.  
  216. ; top,bottom,left,right,front,back
  217. Function make3leftup(a=True,b=True,c=True,d=True,e=True)
  218.        
  219.         ;    /|
  220.         ;  /  |
  221.         ;/____|
  222.  
  223.         z=CreateMesh()
  224.  
  225.         surf=CreateSurface(z)
  226.  
  227. ;       v16 = AddVertex(surf,0,4,0  ,0,1) ; top
  228. ;       v17 = AddVertex(surf,0,4,4      ,1,1)  
  229. ;       v18 = AddVertex(surf,4,0,0      ,0,0)
  230. ;       v19 = AddVertex(surf,4,0,4      ,1,0)
  231.  
  232.         v20 = AddVertex(surf,0,0,0  ,0,1) ; bottom
  233.         v21 = AddVertex(surf,0,0,4      ,1,1)  
  234.         v22 = AddVertex(surf,4,0,0      ,0,0)
  235.         v23 = AddVertex(surf,4,0,4      ,1,0)
  236.  
  237.         v1 = AddVertex(surf,0,0,4       ,0,1) ; back
  238.         v2 = AddVertex(surf,4,0,4       ,1,1)  
  239.         v5 = AddVertex(surf,0,4,4       ,0,0)
  240.         v6 = AddVertex(surf,4,4,4       ,1,0)
  241.                
  242.         v0 = AddVertex(surf,0,0,0,      0,1) ; front
  243.         v3 = AddVertex(surf,4,0,0,      1,1)   
  244.         v4 = AddVertex(surf,0,4,0,      0,0)
  245.         v7 = AddVertex(surf,4,4,0,      1,0)
  246.        
  247.         v12 = AddVertex(surf,4,0,0  ,0,1) ; right
  248.         v13 = AddVertex(surf,4,0,4  ,1,1)      
  249.         v14 = AddVertex(surf,4,4,0      ,0,0)
  250.         v15 = AddVertex(surf,4,4,4      ,1,0)
  251.  
  252.         v8  = AddVertex(surf,0,0,0      ,0,1) ; left
  253.         v9  = AddVertex(surf,0,0,4      ,1,1)  
  254.         v10 = AddVertex(surf,4,4,0      ,0,0)
  255.         v11 = AddVertex(surf,4,4,4      ,1,0)
  256.  
  257.  
  258. If a = True
  259.                 AddTriangle(surf,v21,v20,v22) ; bottom
  260.                 AddTriangle(surf,v21,v22,v23)
  261. End If
  262. If e = True Then
  263.                 AddTriangle(surf,v6,v1,v2) ; back
  264. End If
  265. If d = True Then ; front
  266.                 AddTriangle surf,v3,v0,v7
  267.         End If
  268. If c = True Then
  269.                 AddTriangle(surf,v15,v13,v12) ; right
  270.                 AddTriangle(surf,v15,v12,v14)
  271.         End If
  272. If b = True Then
  273.                 AddTriangle(surf,v9,v11,v8) ; left
  274.                 AddTriangle(surf,v8,v11,v10)
  275.         End If
  276.         Return z
  277.  
  278. End Function
  279.  
  280.  
  281. Function make3rightup(a=True,b=True,c=True,d=True,e=True)
  282.  
  283. ; |
  284. ; |  
  285. ; |____
  286.  
  287.  
  288.         z=CreateMesh()
  289.  
  290.         surf=CreateSurface(z)
  291.  
  292. ;       v16 = AddVertex(surf,0,4,0  ,0,1) ; top
  293. ;       v17 = AddVertex(surf,0,4,4      ,1,1)  
  294. ;       v18 = AddVertex(surf,4,0,0      ,0,0)
  295. ;       v19 = AddVertex(surf,4,0,4      ,1,0)
  296.  
  297.         v20 = AddVertex(surf,0,0,0  ,0,1) ; bottom
  298.         v21 = AddVertex(surf,0,0,4      ,1,1)  
  299.         v22 = AddVertex(surf,4,0,0      ,0,0)
  300.         v23 = AddVertex(surf,4,0,4      ,1,0)
  301.  
  302.         v1 = AddVertex(surf,0,0,4       ,0,1) ; back
  303.         v2 = AddVertex(surf,4,0,4       ,1,1)  
  304.         v5 = AddVertex(surf,0,4,4       ,0,0)
  305.         v6 = AddVertex(surf,4,4,4       ,1,0)
  306.                
  307.         v0 = AddVertex(surf,0,0,0,      0,1) ; front
  308.         v3 = AddVertex(surf,4,0,0,      1,1)   
  309.         v4 = AddVertex(surf,0,4,0,      0,0)
  310.         v7 = AddVertex(surf,4,4,0,      1,0)
  311.        
  312.         v12 = AddVertex(surf,4,0,0  ,0,1) ; right
  313.         v13 = AddVertex(surf,4,0,4  ,1,1)      
  314.         v14 = AddVertex(surf,0,4,0      ,0,0)
  315.         v15 = AddVertex(surf,0,4,4      ,1,0)
  316.  
  317.         v8  = AddVertex(surf,0,0,0      ,0,1) ; left
  318.         v9  = AddVertex(surf,0,0,4      ,1,1)  
  319.         v10 = AddVertex(surf,0,4,0      ,0,0)
  320.         v11 = AddVertex(surf,0,4,4      ,1,0)
  321.  
  322.  
  323. If a = True
  324.                 AddTriangle(surf,v21,v20,v22) ; bottom
  325.                 AddTriangle(surf,v21,v22,v23)
  326. End If
  327. If e = True Then
  328.                 AddTriangle(surf,v5,v1,v2) ; back
  329. End If
  330. If d = True Then
  331.                 AddTriangle(surf,v0,v4,v3) ; front
  332. ;               AddTriangle(surf,v3,v4,v7) ;
  333.         End If
  334. If c = True Then
  335.                 AddTriangle(surf,v15,v13,v12) ; right
  336.                 AddTriangle(surf,v15,v12,v14)
  337.         End If
  338. If b = True Then
  339.                 AddTriangle(surf,v9,v11,v8) ; left
  340.                 AddTriangle(surf,v8,v11,v10)
  341.         End If
  342.         Return z
  343.  
  344. End Function


Comments : none...

 

SimplePortal 2.3.6 © 2008-2014, SimplePortal