• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Model v3

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: Kazeon
this library allows you to create 3d models inside wc3 and give them some basic animations see example inside map

changelog:

v1 created this library

v2 divided several systems inside the map into their own structs, optimized a few methods and increased user friendliness

v3 added additional documentation as well as a tutorial on how to create new models



triggers:

JASS:
                               STRUCT WHICH HOLDS MODEL INFORMATION

/* This library is used to create objects which can be used as models for this system 
the library includes methods to input model verteces and edges, to create model objects 

Methods:

        method inputVerteces
            --used to input vertece data for a modelInfo object
            
        method inputEdges
            --used to input edge dat for a modelInfo object
            
Note: modelInfo objects must be created in the bellow function
*/

library ModelInfo initializer init 
globals
//here you can declare your models
modelInfo sphere
modelInfo pyramid 
modelInfo teapot 

endglobals 

struct modelInfo 

Table verteceX
Table verteceY
Table verteceZ
integer vertexCount =0 
integer edgeCount = 0 

Table edgeData

method inputVerteces takes real x, real y, real z returns nothing 
set verteceX.real[vertexCount] = x 
set verteceY.real[vertexCount] = y
set verteceZ.real[vertexCount] = z 
set vertexCount = vertexCount + 1 
endmethod 

method inputEges takes integer data returns nothing 
set edgeData.integer[edgeCount] = data
set edgeCount = edgeCount + 1 

endmethod 

static method create takes nothing returns modelInfo 
local thistype this = thistype.allocate()

set verteceX  = Table.create()
set verteceY  = Table.create()
set verteceZ  = Table.create()
set edgeData = Table.create() 
return this
endmethod 

endstruct 

function init takes nothing returns nothing
//use this function to create your objects' data
//i have included a sphere a pyramid and a teapot models 

//create a sphere
if 1==1 then //used to minimize all the text 
set sphere = modelInfo.create()

//assign the verteces 
		call sphere.inputVerteces     ( -0.0354602, 0.284237, 26.3184 )
        call sphere.inputVerteces         ( -0.035461, 18.8941, 18.6099 )
        call sphere.inputVerteces         ( -13.1946, 13.4434, 18.6099 )
        call sphere.inputVerteces         ( -18.6453, 0.284235, 18.6099 )
        call sphere.inputVerteces         ( -13.1946, -12.8749, 18.6099 )
        call sphere.inputVerteces         ( -0.0354577, -18.3256, 18.6099 )
        call sphere.inputVerteces         ( 13.1237, -12.8749, 18.6099 )
        call sphere.inputVerteces         ( 18.5744, 0.28424, 18.6099 )
        call sphere.inputVerteces         ( 13.1237, 13.4434, 18.6099 )
        call sphere.inputVerteces         ( -0.0354613, 26.6026, -0.0000011504  )
        call sphere.inputVerteces         ( -18.6453, 18.8941, -0.0000011504  )
        call sphere.inputVerteces         ( -26.3538, 0.284234, -0.0000011504  )
        call sphere.inputVerteces         ( -18.6453, -18.3256, -0.0000011504  )
        call sphere.inputVerteces         ( -0.0354567, -26.0341, -0.0000011504  )
        call sphere.inputVerteces         ( 18.5744, -18.3256, -0.0000011504  )
        call sphere.inputVerteces         ( 26.2829, 0.284241, -0.0000011504  )
        call sphere.inputVerteces         ( 18.5744, 18.8941, -0.0000011504  )
        call sphere.inputVerteces         ( -0.035461, 18.8941, -18.6099 )
        call sphere.inputVerteces         ( -13.1946, 13.4434, -18.6099 )
        call sphere.inputVerteces         ( -18.6453, 0.284235, -18.6099 )
        call sphere.inputVerteces         ( -13.1946, -12.8749, -18.6099 )
        call sphere.inputVerteces         ( -0.0354577, -18.3256, -18.6099 )
        call sphere.inputVerteces         ( 13.1237, -12.8749, -18.6099 )
        call sphere.inputVerteces         ( 18.5744, 0.28424, -18.6099 )
        call sphere.inputVerteces         ( 13.1237, 13.4434, -18.6099 )
        call sphere.inputVerteces         ( -0.0354602, 0.284237, -26.3184 )
		
//assign the edge data 


		call sphere.inputEges(0)
  call sphere.inputEges(1)
call sphere.inputEges(1)
 call sphere.inputEges(2)
 call sphere.inputEges(0)
 call sphere.inputEges(2)
 call sphere.inputEges(3)
 call sphere.inputEges(0)
 call sphere.inputEges(3)
 call sphere.inputEges(4)
 call sphere.inputEges(0)
 call sphere.inputEges(4)
 call sphere.inputEges(5)
 call sphere.inputEges(0)
 call sphere.inputEges(5)
 call sphere.inputEges(6)
 call sphere.inputEges(0)
 call sphere.inputEges(6)
 call sphere.inputEges(7)
 call sphere.inputEges(0)
 call sphere.inputEges(7)
 call sphere.inputEges(8)
 call sphere.inputEges(0)
 call sphere.inputEges(8)
 call sphere.inputEges(1)
 call sphere.inputEges(1)
 call sphere.inputEges(9)
 call sphere.inputEges(10)
 call sphere.inputEges(1)
 call sphere.inputEges(10)
 call sphere.inputEges(2)
 call sphere.inputEges(2)
 call sphere.inputEges(10)
 call sphere.inputEges(11)
 call sphere.inputEges(2)
 call sphere.inputEges(11)
 call sphere.inputEges(3)
 call sphere.inputEges(3)
 call sphere.inputEges(11)
 call sphere.inputEges(12)
 call sphere.inputEges(3)
 call sphere.inputEges(12)
 call sphere.inputEges(4)
 call sphere.inputEges(4)
 call sphere.inputEges(12)
 call sphere.inputEges(13)
 call sphere.inputEges(4)
 call sphere.inputEges(13)
 call sphere.inputEges(5)
 call sphere.inputEges(5)
 call sphere.inputEges(13)
 call sphere.inputEges(14)
 call sphere.inputEges(5)
 call sphere.inputEges(14)
 call sphere.inputEges(6)
 call sphere.inputEges(6)
 call sphere.inputEges(14)
 call sphere.inputEges(15)
 call sphere.inputEges(6)
 call sphere.inputEges(15)
 call sphere.inputEges(7)
 call sphere.inputEges(7)
 call sphere.inputEges(15)
 call sphere.inputEges(16)
 call sphere.inputEges(7)
 call sphere.inputEges(16)
 call sphere.inputEges(8)
 call sphere.inputEges(8)
 call sphere.inputEges(16)
 call sphere.inputEges(9)
 call sphere.inputEges(8)
 call sphere.inputEges(9)
 call sphere.inputEges(1)
 call sphere.inputEges(9)
 call sphere.inputEges(17)
 call sphere.inputEges(18)
 call sphere.inputEges(9)
 call sphere.inputEges(18)
 call sphere.inputEges(10)
 call sphere.inputEges(10)
 call sphere.inputEges(18)
 call sphere.inputEges(19)
 call sphere.inputEges(10)
 call sphere.inputEges(19)
 call sphere.inputEges(11)
 call sphere.inputEges(11)
 call sphere.inputEges(19)
 call sphere.inputEges(20)
 call sphere.inputEges(11)
 call sphere.inputEges(20)
 call sphere.inputEges(12)
 call sphere.inputEges(12)
 call sphere.inputEges(20)
 call sphere.inputEges(21)
 call sphere.inputEges(12)
 call sphere.inputEges(21)
 call sphere.inputEges(13)
 call sphere.inputEges(13)
 call sphere.inputEges(21)
 call sphere.inputEges(22)
 call sphere.inputEges(13)
 call sphere.inputEges(22)
 call sphere.inputEges(14)
 call sphere.inputEges(14)
 call sphere.inputEges(22)
 call sphere.inputEges(23)
 call sphere.inputEges(14)
 call sphere.inputEges(23)
 call sphere.inputEges(15)
 call sphere.inputEges(15)
 call sphere.inputEges(23)
 call sphere.inputEges(24)
 call sphere.inputEges(15)
 call sphere.inputEges(24)
 call sphere.inputEges(16)
 call sphere.inputEges(16)
 call sphere.inputEges(24)
 call sphere.inputEges(17)
 call sphere.inputEges(16)
 call sphere.inputEges(17)
 call sphere.inputEges(9)
 call sphere.inputEges(25)
 call sphere.inputEges(18)
 call sphere.inputEges(17)
 call sphere.inputEges(25)
 call sphere.inputEges(19)
 call sphere.inputEges(18)
 call sphere.inputEges(25)
 call sphere.inputEges(20)
 call sphere.inputEges(19)
 call sphere.inputEges(25)
 call sphere.inputEges(21)
 call sphere.inputEges(20)
 call sphere.inputEges(25)
 call sphere.inputEges(22)
 call sphere.inputEges(21)
 call sphere.inputEges(25)
 call sphere.inputEges(23)
 call sphere.inputEges(22)
 call sphere.inputEges(25)
 call sphere.inputEges(24)
 call sphere.inputEges(23)
 call sphere.inputEges(25)
 call sphere.inputEges(17)
 call sphere.inputEges(24 )
 
 endif 
 
//TEAPOT 

if 1==1 then //used to minimize all the test 
set teapot= modelInfo.create() 
		call teapot.inputVerteces ( -76.8802, -43.322, 0.762388 )
		call teapot.inputVerteces ( -80.0335, -43.4221, 0.762388 )
		call teapot.inputVerteces ( -76.8802, -46.5254, 0.762387 )
		call teapot.inputVerteces ( -76.8802, -30.3165, -31.0788 )
		call teapot.inputVerteces ( -80.0335, -30.3875, -31.1499 )
		call teapot.inputVerteces ( -76.8802, -32.5908, -33.3532 )
		call teapot.inputVerteces ( -76.8802, 1.52478, -44.0844 )
		call teapot.inputVerteces ( -80.0335, 1.52478, -44.1845 )
		call teapot.inputVerteces ( -76.8802, 1.52478, -47.2878 )
		call teapot.inputVerteces ( -76.8802, 34.4471, -31.0788 )
		call teapot.inputVerteces ( -80.0335, 33.5722, -31.1499 )
		call teapot.inputVerteces ( -76.8802, 35.6404, -33.3532 )
		call teapot.inputVerteces ( -76.8802, 46.3716, 0.76239 )
		call teapot.inputVerteces ( -80.0335, 46.4717, 0.76239 )
		call teapot.inputVerteces ( -76.8802, 49.5749, 0.76239 )
		call teapot.inputVerteces ( -76.8802, 33.366, 32.6036 )
		call teapot.inputVerteces ( -80.0335, 33.4371, 32.6747 )
		call teapot.inputVerteces ( -76.8802, 35.6404, 34.878 )
		call teapot.inputVerteces ( -76.8802, 1.52478, 45.6092 )
		call teapot.inputVerteces ( -80.0335, 1.52478, 45.7093 )
		call teapot.inputVerteces ( -76.8802, 1.52478, 48.8125 )
		call teapot.inputVerteces ( -76.8802, -30.3165, 32.6036 )
		call teapot.inputVerteces ( -80.0335, -30.3875, 32.6747 )
		call teapot.inputVerteces ( -76.8802, -32.5908, 34.878 )
		call teapot.inputVerteces ( -51.9542, -57.5369, 0.762387 )
		call teapot.inputVerteces ( -28.8301, -62.5421, 0.762387 )
		call teapot.inputVerteces ( -51.9542, -40.409, -41.1714 )
		call teapot.inputVerteces ( -28.8301, -43.9627, -44.7251 )
		call teapot.inputVerteces ( -51.9542, 1.52478, -58.2993 )
		call teapot.inputVerteces ( -28.8301, 1.52478, -63.3045 )
		call teapot.inputVerteces ( -51.9542, 43.4585, -41.1714 )
		call teapot.inputVerteces ( -28.8301, 47.0123, -44.7251 )
		call teapot.inputVerteces ( -51.9542, 60.5864, 0.762391 )
		call teapot.inputVerteces ( -28.8301, 65.5917, 0.762391 )
		call teapot.inputVerteces ( -51.9542, 43.4585, 42.6962 )
		call teapot.inputVerteces ( -28.8301, 47.0123, 46.2499 )
		call teapot.inputVerteces ( -51.9542, 1.52478, 59.824 )
		call teapot.inputVerteces ( -28.8301, 1.52478, 64.8293 )
		call teapot.inputVerteces ( -51.9542, -40.409, 42.6962 )
		call teapot.inputVerteces ( -28.8301, -43.9627, 46.2499 )
		call teapot.inputVerteces ( -12.3129, -54.5337, 0.762387 )
		call teapot.inputVerteces ( -4.80502, -46.5254, 0.762387 )
		call teapot.inputVerteces ( -12.3128, -38.2768, -39.0392 )
		call teapot.inputVerteces ( -4.80501, -32.5908, -33.3532 )
		call teapot.inputVerteces ( -12.3128, 1.52478, -55.2961 )
		call teapot.inputVerteces ( -4.80501, 1.52478, -47.2878 )
		call teapot.inputVerteces ( -12.3128, 41.3263, -39.0392 )
		call teapot.inputVerteces ( -4.80501, 35.6404, -33.3532 )
		call teapot.inputVerteces ( -12.3129, 57.5833, 0.762391 )
		call teapot.inputVerteces ( -4.80502, 49.5749, 0.76239 )
		call teapot.inputVerteces ( -12.3129, 41.3263, 40.5639 )
		call teapot.inputVerteces ( -4.80502, 35.6404, 34.878 )
		call teapot.inputVerteces ( -12.3129, 1.52478, 56.8209 )
		call teapot.inputVerteces ( -4.80502, 1.52478, 48.8125 )
		call teapot.inputVerteces ( -12.3129, -38.2768, 40.5639 )
		call teapot.inputVerteces ( -4.80502, -32.5908, 34.878 )
		call teapot.inputVerteces ( -1.50157, -39.6182, 0.762388 )
		call teapot.inputVerteces ( 0.0, 1.52478, 0.762389 )
		call teapot.inputVerteces ( -1.50157, -27.6867, -28.4491 )
		call teapot.inputVerteces ( -1.50157, 1.52478, -40.3806 )
		call teapot.inputVerteces ( -1.50157, 30.7363, -28.4491 )
		call teapot.inputVerteces ( -1.50157, 42.6677, 0.76239 )
		call teapot.inputVerteces ( -1.50157, 30.7363, 29.9739 )
		call teapot.inputVerteces ( -1.50157, 1.52478, 41.9053 )
		call teapot.inputVerteces ( -1.50157, -27.6867, 29.9739 )
		call teapot.inputVerteces ( -64.8677, 52.7783, 0.76239 )
		call teapot.inputVerteces ( -63.9668, 78.8054, 0.762391 )
		call teapot.inputVerteces ( -57.6602, 88.0151, 0.762391 )
		call teapot.inputVerteces ( -68.4715, 51.1766, -6.44513 )
		call teapot.inputVerteces ( -67.1201, 82.209, -6.44513 )
		call teapot.inputVerteces ( -57.6602, 92.8201, -6.44513 )
		call teapot.inputVerteces ( -72.0752, 49.5749, 0.76239 )
		call teapot.inputVerteces ( -70.2733, 85.6125, 0.762391 )
		call teapot.inputVerteces ( -57.6602, 97.6251, 0.762392 )
		call teapot.inputVerteces ( -68.4715, 51.1766, 7.96991 )
		call teapot.inputVerteces ( -67.1201, 82.209, 7.96991 )
		call teapot.inputVerteces ( -57.6602, 92.8201, 7.96991 )
		call teapot.inputVerteces ( -43.2451, 82.8096, 0.762391 )
		call teapot.inputVerteces ( -28.8301, 65.5917, 0.762391 )
		call teapot.inputVerteces ( -40.1669, 85.9129, -6.44513 )
		call teapot.inputVerteces ( -24.0251, 63.99, -6.44513 )
		call teapot.inputVerteces ( -37.0887, 89.0161, 0.762392 )
		call teapot.inputVerteces ( -19.2201, 62.3883, 0.762391 )
		call teapot.inputVerteces ( -40.1669, 85.9129, 7.96991 )
		call teapot.inputVerteces ( -24.0251, 63.99, 7.96991 )
		call teapot.inputVerteces ( -45.6476, -52.9321, 0.762387 )
		call teapot.inputVerteces ( -57.6602, -74.955, 0.762387 )
		call teapot.inputVerteces ( -76.8802, -84.9655, 0.762386 )
		call teapot.inputVerteces ( -32.4339, -52.9321, -15.0942 )
		call teapot.inputVerteces ( -51.9542, -79.7601, -10.169 )
		call teapot.inputVerteces ( -76.8802, -94.5755, -5.24388 )
		call teapot.inputVerteces ( -19.2201, -52.9321, 0.762387 )
		call teapot.inputVerteces ( -46.2483, -84.5651, 0.762386 )
		call teapot.inputVerteces ( -76.8802, -104.186, 0.762386 )
		call teapot.inputVerteces ( -32.4339, -52.9321, 16.6189 )
		call teapot.inputVerteces ( -51.9542, -79.7601, 11.6938 )
		call teapot.inputVerteces ( -76.8802, -94.5755, 6.76866 )
		call teapot.inputVerteces ( -78.6821, -88.9697, 0.762386 )
		call teapot.inputVerteces ( -76.8802, -88.1688, 0.762386 )
		call teapot.inputVerteces ( -79.02, -98.6298, -4.04263 )
		call teapot.inputVerteces ( -76.8802, -94.5755, -2.84138 )
		call teapot.inputVerteces ( -79.3578, -108.29, 0.762386 )
		call teapot.inputVerteces ( -76.8802, -100.982, 0.762386 )
		call teapot.inputVerteces ( -79.02, -98.6298, 5.5674 )
		call teapot.inputVerteces ( -76.8802, -94.5755, 4.36615 )
		call teapot.inputVerteces ( -100.905, 1.52478, 0.762389 )
		call teapot.inputVerteces ( -95.4997, -8.88609, 0.762389 )
		call teapot.inputVerteces ( -86.4903, -4.88191, 0.762389 )
		call teapot.inputVerteces ( -95.4997, -5.87594, -6.63834 )
		call teapot.inputVerteces ( -86.4903, -3.02397, -3.78636 )
		call teapot.inputVerteces ( -95.4997, 1.52478, -9.64848 )
		call teapot.inputVerteces ( -86.4903, 1.52478, -5.6443 )
		call teapot.inputVerteces ( -95.4997, 8.92551, -6.63834 )
		call teapot.inputVerteces ( -86.4903, 6.07353, -3.78636 )
		call teapot.inputVerteces ( -95.4997, 11.9356, 0.762389 )
		call teapot.inputVerteces ( -86.4903, 7.93147, 0.762389 )
		call teapot.inputVerteces ( -95.4997, 8.92551, 8.16311 )
		call teapot.inputVerteces ( -86.4903, 6.07353, 5.31114 )
		call teapot.inputVerteces ( -95.4997, 1.52478, 11.1733 )
		call teapot.inputVerteces ( -86.4903, 1.52478, 7.16908 )
		call teapot.inputVerteces ( -95.4997, -5.87594, 8.16311 )
		call teapot.inputVerteces ( -86.4903, -3.02397, 5.31114 )
		call teapot.inputVerteces ( -81.6853, -24.9028, 0.762388 )
		call teapot.inputVerteces ( -76.8802, -40.1187, 0.762388 )
		call teapot.inputVerteces ( -81.6853, -17.2388, -18.0012 )
		call teapot.inputVerteces ( -76.8802, -28.0421, -28.8045 )
		call teapot.inputVerteces ( -81.6853, 1.52478, -25.6652 )
		call teapot.inputVerteces ( -76.8802, 1.52478, -40.8811 )
		call teapot.inputVerteces ( -81.6853, 20.2884, -18.0012 )
		call teapot.inputVerteces ( -76.8802, 31.0916, -28.8045 )
		call teapot.inputVerteces ( -81.6853, 27.9524, 0.76239 )
		call teapot.inputVerteces ( -76.8802, 43.1682, 0.76239 )
		call teapot.inputVerteces ( -81.6853, 20.2884, 19.526 )
		call teapot.inputVerteces ( -76.8802, 31.0916, 30.3293 )
		call teapot.inputVerteces ( -81.6853, 1.52478, 27.19 )
		call teapot.inputVerteces ( -76.8802, 1.52478, 42.4059 )
		call teapot.inputVerteces ( -81.6853, -17.2388, 19.526 )
		call teapot.inputVerteces ( -76.8802, -28.0421, 30.3292 )

        
         call teapot.inputEges(0  )
call teapot.inputEges( 3)
call teapot.inputEges( 4)
call teapot.inputEges( 4)
call teapot.inputEges( 1)
call teapot.inputEges( 0)
call teapot.inputEges( 1)
call teapot.inputEges( 4)
call teapot.inputEges( 5)
call teapot.inputEges( 5)
call teapot.inputEges( 2)
call teapot.inputEges( 1)
call teapot.inputEges( 3)
call teapot.inputEges( 6)
call teapot.inputEges( 7)
call teapot.inputEges( 7)
call teapot.inputEges( 4)
call teapot.inputEges( 3)
call teapot.inputEges( 4)
call teapot.inputEges( 7)
call teapot.inputEges( 8)
call teapot.inputEges( 8)
call teapot.inputEges( 5)
call teapot.inputEges( 4)
call teapot.inputEges( 6)
call teapot.inputEges( 9)
call teapot.inputEges( 10)
call teapot.inputEges( 10)
call teapot.inputEges( 7)
call teapot.inputEges( 6)
call teapot.inputEges( 7)
call teapot.inputEges( 10)
call teapot.inputEges( 11)
call teapot.inputEges( 11)
call teapot.inputEges( 8)
call teapot.inputEges( 7)
call teapot.inputEges( 9)
call teapot.inputEges( 12)
call teapot.inputEges( 13)
call teapot.inputEges( 13)
call teapot.inputEges( 10)
call teapot.inputEges( 9)
call teapot.inputEges( 10)
call teapot.inputEges( 13)
call teapot.inputEges( 14)
call teapot.inputEges( 14)
call teapot.inputEges( 11)
call teapot.inputEges( 10)
call teapot.inputEges( 12)
call teapot.inputEges( 15)
call teapot.inputEges( 16)
call teapot.inputEges( 16)
call teapot.inputEges( 13)
call teapot.inputEges( 12)
call teapot.inputEges( 13)
call teapot.inputEges( 16)
call teapot.inputEges( 17)
call teapot.inputEges( 17)
call teapot.inputEges( 14)
call teapot.inputEges( 13)
call teapot.inputEges( 15)
call teapot.inputEges( 18)
call teapot.inputEges( 19)
call teapot.inputEges( 19)
call teapot.inputEges( 16)
call teapot.inputEges( 15)
call teapot.inputEges( 16)
call teapot.inputEges( 19)
call teapot.inputEges( 20)
call teapot.inputEges( 20)
call teapot.inputEges( 17)
call teapot.inputEges( 16)
call teapot.inputEges( 18)
call teapot.inputEges( 21)
call teapot.inputEges( 22)
call teapot.inputEges( 22)
call teapot.inputEges( 19)
call teapot.inputEges( 18)
call teapot.inputEges( 19)
call teapot.inputEges( 22)
call teapot.inputEges( 23)
call teapot.inputEges( 23)
call teapot.inputEges( 20)
call teapot.inputEges( 19)
call teapot.inputEges( 21)
call teapot.inputEges( 0)
call teapot.inputEges( 1)
call teapot.inputEges( 1)
call teapot.inputEges( 22)
call teapot.inputEges( 21)
call teapot.inputEges( 22)
call teapot.inputEges( 1)
call teapot.inputEges( 2)
call teapot.inputEges( 2)
call teapot.inputEges( 23)
call teapot.inputEges( 22)
call teapot.inputEges( 2)
call teapot.inputEges( 5)
call teapot.inputEges( 26)
call teapot.inputEges( 26)
call teapot.inputEges( 24)
call teapot.inputEges( 2)
call teapot.inputEges( 24)
call teapot.inputEges( 26)
call teapot.inputEges( 27)
call teapot.inputEges( 27)
call teapot.inputEges( 25)
call teapot.inputEges( 24)
call teapot.inputEges( 5)
call teapot.inputEges( 8)
call teapot.inputEges( 28)
call teapot.inputEges( 28)
call teapot.inputEges( 26)
call teapot.inputEges( 5)
call teapot.inputEges( 26)
call teapot.inputEges( 28)
call teapot.inputEges( 29)
call teapot.inputEges( 29)
call teapot.inputEges( 27)
call teapot.inputEges( 26)
call teapot.inputEges( 8)
call teapot.inputEges( 11)
call teapot.inputEges( 30)
call teapot.inputEges( 30)
call teapot.inputEges( 28)
call teapot.inputEges( 8)
call teapot.inputEges( 28)
call teapot.inputEges( 30)
call teapot.inputEges( 31)
call teapot.inputEges( 31)
call teapot.inputEges( 29)
call teapot.inputEges( 28)
call teapot.inputEges( 11)
call teapot.inputEges( 14)
call teapot.inputEges( 32)
call teapot.inputEges( 32)
call teapot.inputEges( 30)
call teapot.inputEges( 11)
call teapot.inputEges( 30)
call teapot.inputEges( 32)
call teapot.inputEges( 33)
call teapot.inputEges( 33)
call teapot.inputEges( 31)
call teapot.inputEges( 30)
call teapot.inputEges( 14)
call teapot.inputEges( 17)
call teapot.inputEges( 34)
call teapot.inputEges( 34)
call teapot.inputEges( 32)
call teapot.inputEges( 14)
call teapot.inputEges( 32)
call teapot.inputEges( 34)
call teapot.inputEges( 35)
call teapot.inputEges( 35)
call teapot.inputEges( 33)
call teapot.inputEges( 32)
call teapot.inputEges( 17)
call teapot.inputEges( 20)
call teapot.inputEges( 36)
call teapot.inputEges( 36)
call teapot.inputEges( 34)
call teapot.inputEges( 17)
call teapot.inputEges( 34)
call teapot.inputEges( 36)
call teapot.inputEges( 37)
call teapot.inputEges( 37)
call teapot.inputEges( 35)
call teapot.inputEges( 34)
call teapot.inputEges( 20)
call teapot.inputEges( 23)
call teapot.inputEges( 38)
call teapot.inputEges( 38)
call teapot.inputEges( 36)
call teapot.inputEges( 20)
call teapot.inputEges( 36)
call teapot.inputEges( 38)
call teapot.inputEges( 39)
call teapot.inputEges( 39)
call teapot.inputEges( 37)
call teapot.inputEges( 36)
call teapot.inputEges( 23)
call teapot.inputEges( 2)
call teapot.inputEges( 24)
call teapot.inputEges( 24)
call teapot.inputEges( 38)
call teapot.inputEges( 23)
call teapot.inputEges( 38)
call teapot.inputEges( 24)
call teapot.inputEges( 25)
call teapot.inputEges( 25)
call teapot.inputEges( 39)
call teapot.inputEges( 38)
call teapot.inputEges( 25)
call teapot.inputEges( 27)
call teapot.inputEges( 42)
call teapot.inputEges( 42)
call teapot.inputEges( 40)
call teapot.inputEges( 25)
call teapot.inputEges( 40)
call teapot.inputEges( 42)
call teapot.inputEges( 43)
call teapot.inputEges( 43)
call teapot.inputEges( 41)
call teapot.inputEges( 40)
call teapot.inputEges( 27)
call teapot.inputEges( 29)
call teapot.inputEges( 44)
call teapot.inputEges( 44)
call teapot.inputEges( 42)
call teapot.inputEges( 27)
call teapot.inputEges( 42)
call teapot.inputEges( 44)
call teapot.inputEges( 45)
call teapot.inputEges( 45)
call teapot.inputEges( 43)
call teapot.inputEges( 42)
call teapot.inputEges( 29)
call teapot.inputEges( 31)
call teapot.inputEges( 46)
call teapot.inputEges( 46)
call teapot.inputEges( 44)
call teapot.inputEges( 29)
call teapot.inputEges( 44)
call teapot.inputEges( 46)
call teapot.inputEges( 47)
call teapot.inputEges( 47)
call teapot.inputEges( 45)
call teapot.inputEges( 44)
call teapot.inputEges( 31)
call teapot.inputEges( 33)
call teapot.inputEges( 48)
call teapot.inputEges( 48)
call teapot.inputEges( 46)
call teapot.inputEges( 31)
call teapot.inputEges( 46)
call teapot.inputEges( 48)
call teapot.inputEges( 49)
call teapot.inputEges( 49)
call teapot.inputEges( 47)
call teapot.inputEges( 46)
call teapot.inputEges( 33)
call teapot.inputEges( 35)
call teapot.inputEges( 50)
call teapot.inputEges( 50)
call teapot.inputEges( 48)
call teapot.inputEges( 33)
call teapot.inputEges( 48)
call teapot.inputEges( 50)
call teapot.inputEges( 51)
call teapot.inputEges( 51)
call teapot.inputEges( 49)
call teapot.inputEges( 48)
call teapot.inputEges( 35)
call teapot.inputEges( 37)
call teapot.inputEges( 52)
call teapot.inputEges( 52)
call teapot.inputEges( 50)
call teapot.inputEges( 35)
call teapot.inputEges( 50)
call teapot.inputEges( 52)
call teapot.inputEges( 53)
call teapot.inputEges( 53)
call teapot.inputEges( 51)
call teapot.inputEges( 50)
call teapot.inputEges( 37)
call teapot.inputEges( 39)
call teapot.inputEges( 54)
call teapot.inputEges( 54)
call teapot.inputEges( 52)
call teapot.inputEges( 37)
call teapot.inputEges( 52)
call teapot.inputEges( 54)
call teapot.inputEges( 55)
call teapot.inputEges( 55)
call teapot.inputEges( 53)
call teapot.inputEges( 52)
call teapot.inputEges( 39)
call teapot.inputEges( 25)
call teapot.inputEges( 40)
call teapot.inputEges( 40)
call teapot.inputEges( 54)
call teapot.inputEges( 39)
call teapot.inputEges( 54)
call teapot.inputEges( 40)
call teapot.inputEges( 41)
call teapot.inputEges( 41)
call teapot.inputEges( 55)
call teapot.inputEges( 54)
call teapot.inputEges( 41)
call teapot.inputEges( 43)
call teapot.inputEges( 58)
call teapot.inputEges( 58)
call teapot.inputEges( 56)
call teapot.inputEges( 41)
call teapot.inputEges( 56)
call teapot.inputEges( 58)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 56)
call teapot.inputEges( 43)
call teapot.inputEges( 45)
call teapot.inputEges( 59)
call teapot.inputEges( 59)
call teapot.inputEges( 58)
call teapot.inputEges( 43)
call teapot.inputEges( 58)
call teapot.inputEges( 59)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 58)
call teapot.inputEges( 45)
call teapot.inputEges( 47)
call teapot.inputEges( 60)
call teapot.inputEges( 60)
call teapot.inputEges( 59)
call teapot.inputEges( 45)
call teapot.inputEges( 59)
call teapot.inputEges( 60)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 59)
call teapot.inputEges( 47)
call teapot.inputEges( 49)
call teapot.inputEges( 61)
call teapot.inputEges( 61)
call teapot.inputEges( 60)
call teapot.inputEges( 47)
call teapot.inputEges( 60)
call teapot.inputEges( 61)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 60)
call teapot.inputEges( 49)
call teapot.inputEges( 51)
call teapot.inputEges( 62)
call teapot.inputEges( 62)
call teapot.inputEges( 61)
call teapot.inputEges( 49)
call teapot.inputEges( 61)
call teapot.inputEges( 62)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 61)
call teapot.inputEges( 51)
call teapot.inputEges( 53)
call teapot.inputEges( 63)
call teapot.inputEges( 63)
call teapot.inputEges( 62)
call teapot.inputEges( 51)
call teapot.inputEges( 62)
call teapot.inputEges( 63)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 62)
call teapot.inputEges( 53)
call teapot.inputEges( 55)
call teapot.inputEges( 64)
call teapot.inputEges( 64)
call teapot.inputEges( 63)
call teapot.inputEges( 53)
call teapot.inputEges( 63)
call teapot.inputEges( 64)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 63)
call teapot.inputEges( 55)
call teapot.inputEges( 41)
call teapot.inputEges( 56)
call teapot.inputEges( 56)
call teapot.inputEges( 64)
call teapot.inputEges( 55)
call teapot.inputEges( 64)
call teapot.inputEges( 56)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 57)
call teapot.inputEges( 64)
call teapot.inputEges( 65)
call teapot.inputEges( 68)
call teapot.inputEges( 69)
call teapot.inputEges( 69)
call teapot.inputEges( 66)
call teapot.inputEges( 65)
call teapot.inputEges( 66)
call teapot.inputEges( 69)
call teapot.inputEges( 70)
call teapot.inputEges( 70)
call teapot.inputEges( 67)
call teapot.inputEges( 66)
call teapot.inputEges( 68)
call teapot.inputEges( 71)
call teapot.inputEges( 72)
call teapot.inputEges( 72)
call teapot.inputEges( 69)
call teapot.inputEges( 68)
call teapot.inputEges( 69)
call teapot.inputEges( 72)
call teapot.inputEges( 73)
call teapot.inputEges( 73)
call teapot.inputEges( 70)
call teapot.inputEges( 69)
call teapot.inputEges( 71)
call teapot.inputEges( 74)
call teapot.inputEges( 75)
call teapot.inputEges( 75)
call teapot.inputEges( 72)
call teapot.inputEges( 71)
call teapot.inputEges( 72)
call teapot.inputEges( 75)
call teapot.inputEges( 76)
call teapot.inputEges( 76)
call teapot.inputEges( 73)
call teapot.inputEges( 72)
call teapot.inputEges( 74)
call teapot.inputEges( 65)
call teapot.inputEges( 66)
call teapot.inputEges( 66)
call teapot.inputEges( 75)
call teapot.inputEges( 74)
call teapot.inputEges( 75)
call teapot.inputEges( 66)
call teapot.inputEges( 67)
call teapot.inputEges( 67)
call teapot.inputEges( 76)
call teapot.inputEges( 75)
call teapot.inputEges( 67)
call teapot.inputEges( 70)
call teapot.inputEges( 79)
call teapot.inputEges( 79)
call teapot.inputEges( 77)
call teapot.inputEges( 67)
call teapot.inputEges( 77)
call teapot.inputEges( 79)
call teapot.inputEges( 80)
call teapot.inputEges( 80)
call teapot.inputEges( 78)
call teapot.inputEges( 77)
call teapot.inputEges( 70)
call teapot.inputEges( 73)
call teapot.inputEges( 81)
call teapot.inputEges( 81)
call teapot.inputEges( 79)
call teapot.inputEges( 70)
call teapot.inputEges( 79)
call teapot.inputEges( 81)
call teapot.inputEges( 82)
call teapot.inputEges( 82)
call teapot.inputEges( 80)
call teapot.inputEges( 79)
call teapot.inputEges( 73)
call teapot.inputEges( 76)
call teapot.inputEges( 83)
call teapot.inputEges( 83)
call teapot.inputEges( 81)
call teapot.inputEges( 73)
call teapot.inputEges( 81)
call teapot.inputEges( 83)
call teapot.inputEges( 84)
call teapot.inputEges( 84)
call teapot.inputEges( 82)
call teapot.inputEges( 81)
call teapot.inputEges( 76)
call teapot.inputEges( 67)
call teapot.inputEges( 77)
call teapot.inputEges( 77)
call teapot.inputEges( 83)
call teapot.inputEges( 76)
call teapot.inputEges( 83)
call teapot.inputEges( 77)
call teapot.inputEges( 78)
call teapot.inputEges( 78)
call teapot.inputEges( 84)
call teapot.inputEges( 83)
call teapot.inputEges( 85)
call teapot.inputEges( 88)
call teapot.inputEges( 89)
call teapot.inputEges( 89)
call teapot.inputEges( 86)
call teapot.inputEges( 85)
call teapot.inputEges( 86)
call teapot.inputEges( 89)
call teapot.inputEges( 90)
call teapot.inputEges( 90)
call teapot.inputEges( 87)
call teapot.inputEges( 86)
call teapot.inputEges( 88)
call teapot.inputEges( 91)
call teapot.inputEges( 92)
call teapot.inputEges( 92)
call teapot.inputEges( 89)
call teapot.inputEges( 88)
call teapot.inputEges( 89)
call teapot.inputEges( 92)
call teapot.inputEges( 93)
call teapot.inputEges( 93)
call teapot.inputEges( 90)
call teapot.inputEges( 89)
call teapot.inputEges( 91)
call teapot.inputEges( 94)
call teapot.inputEges( 95)
call teapot.inputEges( 95)
call teapot.inputEges( 92)
call teapot.inputEges( 91)
call teapot.inputEges( 92)
call teapot.inputEges( 95)
call teapot.inputEges( 96)
call teapot.inputEges( 96)
call teapot.inputEges( 93)
call teapot.inputEges( 92)
call teapot.inputEges( 94)
call teapot.inputEges( 85)
call teapot.inputEges( 86)
call teapot.inputEges( 86)
call teapot.inputEges( 95)
call teapot.inputEges( 94)
call teapot.inputEges( 95)
call teapot.inputEges( 86)
call teapot.inputEges( 87)
call teapot.inputEges( 87)
call teapot.inputEges( 96)
call teapot.inputEges( 95)
call teapot.inputEges( 87)
call teapot.inputEges( 90)
call teapot.inputEges( 99)
call teapot.inputEges( 99)
call teapot.inputEges( 97)
call teapot.inputEges( 87)
call teapot.inputEges( 97)
call teapot.inputEges( 99)
call teapot.inputEges( 100)
call teapot.inputEges( 100)
call teapot.inputEges( 98)
call teapot.inputEges( 97)
call teapot.inputEges( 90)
call teapot.inputEges( 93)
call teapot.inputEges( 101)
call teapot.inputEges( 101)
call teapot.inputEges( 99)
call teapot.inputEges( 90)
call teapot.inputEges( 99)
call teapot.inputEges( 101)
call teapot.inputEges( 102)
call teapot.inputEges( 102)
call teapot.inputEges( 100)
call teapot.inputEges( 99)
call teapot.inputEges( 93)
call teapot.inputEges( 96)
call teapot.inputEges( 103)
call teapot.inputEges( 103)
call teapot.inputEges( 101)
call teapot.inputEges( 93)
call teapot.inputEges( 101)
call teapot.inputEges( 103)
call teapot.inputEges( 104)
call teapot.inputEges( 104)
call teapot.inputEges( 102)
call teapot.inputEges( 101)
call teapot.inputEges( 96)
call teapot.inputEges( 87)
call teapot.inputEges( 97)
call teapot.inputEges( 97)
call teapot.inputEges( 103)
call teapot.inputEges( 96)
call teapot.inputEges( 103)
call teapot.inputEges( 97)
call teapot.inputEges( 98)
call teapot.inputEges( 98)
call teapot.inputEges( 104)
call teapot.inputEges( 103)
call teapot.inputEges( 105)
call teapot.inputEges( 105)
call teapot.inputEges( 108)
call teapot.inputEges( 108)
call teapot.inputEges( 106)
call teapot.inputEges( 105)
call teapot.inputEges( 106)
call teapot.inputEges( 108)
call teapot.inputEges( 109)
call teapot.inputEges( 109)
call teapot.inputEges( 107)
call teapot.inputEges( 106)
call teapot.inputEges( 105)
call teapot.inputEges( 105)
call teapot.inputEges( 110)
call teapot.inputEges( 110)
call teapot.inputEges( 108)
call teapot.inputEges( 105)
call teapot.inputEges( 108)
call teapot.inputEges( 110)
call teapot.inputEges( 111)
call teapot.inputEges( 111)
call teapot.inputEges( 109)
call teapot.inputEges( 108)
call teapot.inputEges( 105)
call teapot.inputEges( 105)
call teapot.inputEges( 112)
call teapot.inputEges( 112)
call teapot.inputEges( 110)
call teapot.inputEges( 105)
call teapot.inputEges( 110)
call teapot.inputEges( 112)
call teapot.inputEges( 113)
call teapot.inputEges( 113)
call teapot.inputEges( 111)
call teapot.inputEges( 110)
call teapot.inputEges( 105)
call teapot.inputEges( 105)
call teapot.inputEges( 114)
call teapot.inputEges( 114)
call teapot.inputEges( 112)
call teapot.inputEges( 105)
call teapot.inputEges( 112)
call teapot.inputEges( 114)
call teapot.inputEges( 115)
call teapot.inputEges( 115)
call teapot.inputEges( 113)
call teapot.inputEges( 112)
call teapot.inputEges( 105)
call teapot.inputEges( 105)
call teapot.inputEges( 116)
call teapot.inputEges( 116)
call teapot.inputEges( 114)
call teapot.inputEges( 105)
call teapot.inputEges( 114)
call teapot.inputEges( 116)
call teapot.inputEges( 117)
call teapot.inputEges( 117)
call teapot.inputEges( 115)
call teapot.inputEges( 114)
call teapot.inputEges( 105)
call teapot.inputEges( 105)
call teapot.inputEges( 118)
call teapot.inputEges( 118)
call teapot.inputEges( 116)
call teapot.inputEges( 105)
call teapot.inputEges( 116)
call teapot.inputEges( 118)
call teapot.inputEges( 119)
call teapot.inputEges( 119)
call teapot.inputEges( 117)
call teapot.inputEges( 116)
call teapot.inputEges( 105)
call teapot.inputEges( 105)
call teapot.inputEges( 120)
call teapot.inputEges( 120)
call teapot.inputEges( 118)
call teapot.inputEges( 105)
call teapot.inputEges( 118)
call teapot.inputEges( 120)
call teapot.inputEges( 121)
call teapot.inputEges( 121)
call teapot.inputEges( 119)
call teapot.inputEges( 118)
call teapot.inputEges( 105)
call teapot.inputEges( 105)
call teapot.inputEges( 106)
call teapot.inputEges( 106)
call teapot.inputEges( 120)
call teapot.inputEges( 105)
call teapot.inputEges( 120)
call teapot.inputEges( 106)
call teapot.inputEges( 107)
call teapot.inputEges( 107)
call teapot.inputEges( 121)
call teapot.inputEges( 120)
call teapot.inputEges( 107)
call teapot.inputEges( 109)
call teapot.inputEges( 124)
call teapot.inputEges( 124)
call teapot.inputEges( 122)
call teapot.inputEges( 107)
call teapot.inputEges( 122)
call teapot.inputEges( 124)
call teapot.inputEges( 125)
call teapot.inputEges( 125)
call teapot.inputEges( 123)
call teapot.inputEges( 122)
call teapot.inputEges( 109)
call teapot.inputEges( 111)
call teapot.inputEges( 126)
call teapot.inputEges( 126)
call teapot.inputEges( 124)
call teapot.inputEges( 109)
call teapot.inputEges( 124)
call teapot.inputEges( 126)
call teapot.inputEges( 127)
call teapot.inputEges( 127)
call teapot.inputEges( 125)
call teapot.inputEges( 124)
call teapot.inputEges( 111)
call teapot.inputEges( 113)
call teapot.inputEges( 128)
call teapot.inputEges( 128)
call teapot.inputEges( 126)
call teapot.inputEges( 111)
call teapot.inputEges( 126)
call teapot.inputEges( 128)
call teapot.inputEges( 129)
call teapot.inputEges( 129)
call teapot.inputEges( 127)
call teapot.inputEges( 126)
call teapot.inputEges( 113)
call teapot.inputEges( 115)
call teapot.inputEges( 130)
call teapot.inputEges( 130)
call teapot.inputEges( 128)
call teapot.inputEges( 113)
call teapot.inputEges( 128)
call teapot.inputEges( 130)
call teapot.inputEges( 131)
call teapot.inputEges( 131)
call teapot.inputEges( 129)
call teapot.inputEges( 128)
call teapot.inputEges( 115)
call teapot.inputEges( 117)
call teapot.inputEges( 132)
call teapot.inputEges( 132)
call teapot.inputEges( 130)
call teapot.inputEges( 115)
call teapot.inputEges( 130)
call teapot.inputEges( 132)
call teapot.inputEges( 133)
call teapot.inputEges( 133)
call teapot.inputEges( 131)
call teapot.inputEges( 130)
call teapot.inputEges( 117)
call teapot.inputEges( 119)
call teapot.inputEges( 134)
call teapot.inputEges( 134)
call teapot.inputEges( 132)
call teapot.inputEges( 117)
call teapot.inputEges( 132)
call teapot.inputEges( 134)
call teapot.inputEges( 135)
call teapot.inputEges( 135)
call teapot.inputEges( 133)
call teapot.inputEges( 132)
call teapot.inputEges( 119)
call teapot.inputEges( 121)
call teapot.inputEges( 136)
call teapot.inputEges( 136)
call teapot.inputEges( 134)
call teapot.inputEges( 119)
call teapot.inputEges( 134)
call teapot.inputEges( 136)
call teapot.inputEges( 137)
call teapot.inputEges( 137)
call teapot.inputEges( 135)
call teapot.inputEges( 134)
call teapot.inputEges( 121)
call teapot.inputEges( 107)
call teapot.inputEges( 122)
call teapot.inputEges( 122)
call teapot.inputEges( 136)
call teapot.inputEges( 121)
call teapot.inputEges( 136)
call teapot.inputEges( 122)
call teapot.inputEges( 123)
call teapot.inputEges( 123)
call teapot.inputEges( 137)
 call teapot.inputEges(136 )

		
endif 


//pyramid 
if 1==1 then 
set pyramid = modelInfo.create()
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 0.0 )
		call pyramid.inputVerteces     ( 39.3603, 31.8095, 0.0 )
		call pyramid.inputVerteces     ( 36.4407, 53.9858, 0.0 )
		call pyramid.inputVerteces     ( 27.8809, 74.6509, 0.0 )
		call pyramid.inputVerteces     ( 14.2643, 92.3965, 0.0 )
		call pyramid.inputVerteces     ( -3.4812, 106.013, 0.0 )
		call pyramid.inputVerteces     ( -24.1463, 114.573, 0.0 )
		call pyramid.inputVerteces     ( -46.3227, 117.492, 0.0 )
		call pyramid.inputVerteces     ( -68.4991, 114.573, 0.0 )
		call pyramid.inputVerteces     ( -89.1642, 106.013, 0.0 )
		call pyramid.inputVerteces     ( -106.91, 92.3965, 0.0 )
		call pyramid.inputVerteces     ( -120.526, 74.6509, 0.0 )
		call pyramid.inputVerteces     ( -129.086, 53.9858, 0.0 )
		call pyramid.inputVerteces     ( -132.006, 31.8095, 0.0 )
		call pyramid.inputVerteces     ( -129.086, 9.63307, 0.0 )
		call pyramid.inputVerteces     ( -120.526, -11.032, 0.0 )
		call pyramid.inputVerteces     ( -106.91, -28.7775, 0.0 )
		call pyramid.inputVerteces     ( -89.1641, -42.3942, 0.0 )
		call pyramid.inputVerteces     ( -68.499, -50.9539, 0.0 )
		call pyramid.inputVerteces     ( -46.3227, -53.8735, 0.0 )
		call pyramid.inputVerteces     ( -24.1463, -50.9539, 0.0 )
		call pyramid.inputVerteces     ( -3.48119, -42.3941, 0.0 )
		call pyramid.inputVerteces     ( 14.2643, -28.7775, 0.0 )
		call pyramid.inputVerteces     ( 27.8809, -11.032, 0.0 )
		call pyramid.inputVerteces     ( 36.4407, 9.63309, 0.0 )
		call pyramid.inputVerteces     ( 22.2237, 31.8095, 25.4124 )
		call pyramid.inputVerteces     ( 19.888, 49.5506, 25.4124 )
		call pyramid.inputVerteces     ( 13.0402, 66.0826, 25.4124 )
		call pyramid.inputVerteces     ( 2.14692, 80.2791, 25.4124 )
		call pyramid.inputVerteces     ( -12.0495, 91.1723, 25.4124 )
		call pyramid.inputVerteces     ( -28.5816, 98.0202, 25.4124 )
		call pyramid.inputVerteces     ( -46.3227, 100.356, 25.4124 )
		call pyramid.inputVerteces     ( -64.0638, 98.0202, 25.4124 )
		call pyramid.inputVerteces     ( -80.5959, 91.1723, 25.4124 )
		call pyramid.inputVerteces     ( -94.7923, 80.2791, 25.4124 )
		call pyramid.inputVerteces     ( -105.686, 66.0826, 25.4124 )
		call pyramid.inputVerteces     ( -112.533, 49.5506, 25.4124 )
		call pyramid.inputVerteces     ( -114.869, 31.8095, 25.4124 )
		call pyramid.inputVerteces     ( -112.533, 14.0683, 25.4124 )
		call pyramid.inputVerteces     ( -105.686, -2.46373, 25.4124 )
		call pyramid.inputVerteces     ( -94.7923, -16.6601, 25.4124 )
		call pyramid.inputVerteces     ( -80.5958, -27.5534, 25.4124 )
		call pyramid.inputVerteces     ( -64.0638, -34.4012, 25.4124 )
		call pyramid.inputVerteces     ( -46.3227, -36.7369, 25.4124 )
		call pyramid.inputVerteces     ( -28.5816, -34.4012, 25.4124 )
		call pyramid.inputVerteces     ( -12.0495, -27.5534, 25.4124 )
		call pyramid.inputVerteces     ( 2.14693, -16.6601, 25.4124 )
		call pyramid.inputVerteces     ( 13.0402, -2.46371, 25.4124 )
		call pyramid.inputVerteces     ( 19.888, 14.0684, 25.4124 )
		call pyramid.inputVerteces     ( 5.0871, 31.8095, 50.8247 )
		call pyramid.inputVerteces     ( 3.33535, 45.1153, 50.8247 )
		call pyramid.inputVerteces     ( -1.80051, 57.5143, 50.8247 )
		call pyramid.inputVerteces     ( -9.97048, 68.1617, 50.8247 )
		call pyramid.inputVerteces     ( -20.6178, 76.3316, 50.8247 )
		call pyramid.inputVerteces     ( -33.0168, 81.4675, 50.8247 )
		call pyramid.inputVerteces     ( -46.3227, 83.2192, 50.8247 )
		call pyramid.inputVerteces     ( -59.6285, 81.4675, 50.8247 )
		call pyramid.inputVerteces     ( -72.0276, 76.3316, 50.8247 )
		call pyramid.inputVerteces     ( -82.6749, 68.1617, 50.8247 )
		call pyramid.inputVerteces     ( -90.8448, 57.5143, 50.8247 )
		call pyramid.inputVerteces     ( -95.9807, 45.1153, 50.8247 )
		call pyramid.inputVerteces     ( -97.7324, 31.8095, 50.8247 )
		call pyramid.inputVerteces     ( -95.9807, 18.5036, 50.8247 )
		call pyramid.inputVerteces     ( -90.8448, 6.10457, 50.8247 )
		call pyramid.inputVerteces     ( -82.6749, -4.54274, 50.8247 )
		call pyramid.inputVerteces     ( -72.0276, -12.7127, 50.8247 )
		call pyramid.inputVerteces     ( -59.6285, -17.8486, 50.8247 )
		call pyramid.inputVerteces     ( -46.3227, -19.6003, 50.8247 )
		call pyramid.inputVerteces     ( -33.0168, -17.8486, 50.8247 )
		call pyramid.inputVerteces     ( -20.6178, -12.7127, 50.8247 )
		call pyramid.inputVerteces     ( -9.97047, -4.54273, 50.8247 )
		call pyramid.inputVerteces     ( -1.8005, 6.10458, 50.8247 )
		call pyramid.inputVerteces     ( 3.33535, 18.5036, 50.8247 )
		call pyramid.inputVerteces     ( -12.0495, 31.8095, 76.2371 )
		call pyramid.inputVerteces     ( -13.2173, 40.68, 76.2371 )
		call pyramid.inputVerteces     ( -16.6412, 48.9461, 76.2371 )
		call pyramid.inputVerteces     ( -22.0879, 56.0443, 76.2371 )
		call pyramid.inputVerteces     ( -29.1861, 61.4909, 76.2371 )
		call pyramid.inputVerteces     ( -37.4521, 64.9148, 76.2371 )
		call pyramid.inputVerteces     ( -46.3227, 66.0826, 76.2371 )
		call pyramid.inputVerteces     ( -55.1932, 64.9148, 76.2371 )
		call pyramid.inputVerteces     ( -63.4593, 61.4909, 76.2371 )
		call pyramid.inputVerteces     ( -70.5575, 56.0443, 76.2371 )
		call pyramid.inputVerteces     ( -76.0041, 48.946, 76.2371 )
		call pyramid.inputVerteces     ( -79.428, 40.68, 76.2371 )
		call pyramid.inputVerteces     ( -80.5959, 31.8095, 76.2371 )
		call pyramid.inputVerteces     ( -79.428, 22.9389, 76.2371 )
		call pyramid.inputVerteces     ( -76.0041, 14.6729, 76.2371 )
		call pyramid.inputVerteces     ( -70.5575, 7.57466, 76.2371 )
		call pyramid.inputVerteces     ( -63.4593, 2.12801, 76.2371 )
		call pyramid.inputVerteces     ( -55.1932, -1.29589, 76.2371 )
		call pyramid.inputVerteces     ( -46.3227, -2.46372, 76.2371 )
		call pyramid.inputVerteces     ( -37.4521, -1.29589, 76.2371 )
		call pyramid.inputVerteces     ( -29.1861, 2.12802, 76.2371 )
		call pyramid.inputVerteces     ( -22.0879, 7.57466, 76.2371 )
		call pyramid.inputVerteces     ( -16.6412, 14.6729, 76.2371 )
		call pyramid.inputVerteces     ( -13.2173, 22.9389, 76.2371 )
		call pyramid.inputVerteces     ( -29.1861, 31.8095, 101.649 )
		call pyramid.inputVerteces     ( -29.77, 36.2447, 101.649 )
		call pyramid.inputVerteces     ( -31.482, 40.3778, 101.649 )
		call pyramid.inputVerteces     ( -34.2053, 43.9269, 101.649 )
		call pyramid.inputVerteces     ( -37.7544, 46.6502, 101.649 )
		call pyramid.inputVerteces     ( -41.8874, 48.3621, 101.649 )
		call pyramid.inputVerteces     ( -46.3227, 48.9461, 101.649 )
		call pyramid.inputVerteces     ( -50.7579, 48.3621, 101.649 )
		call pyramid.inputVerteces     ( -54.891, 46.6502, 101.649 )
		call pyramid.inputVerteces     ( -58.4401, 43.9269, 101.649 )
		call pyramid.inputVerteces     ( -61.1634, 40.3778, 101.649 )
		call pyramid.inputVerteces     ( -62.8754, 36.2447, 101.649 )
		call pyramid.inputVerteces     ( -63.4593, 31.8095, 101.649 )
		call pyramid.inputVerteces     ( -62.8754, 27.3742, 101.649 )
		call pyramid.inputVerteces     ( -61.1634, 23.2412, 101.649 )
		call pyramid.inputVerteces     ( -58.4401, 19.6921, 101.649 )
		call pyramid.inputVerteces     ( -54.891, 16.9687, 101.649 )
		call pyramid.inputVerteces     ( -50.7579, 15.2568, 101.649 )
		call pyramid.inputVerteces     ( -46.3227, 14.6729, 101.649 )
		call pyramid.inputVerteces     ( -41.8874, 15.2568, 101.649 )
		call pyramid.inputVerteces     ( -37.7544, 16.9687, 101.649 )
		call pyramid.inputVerteces     ( -34.2053, 19.6921, 101.649 )
		call pyramid.inputVerteces     ( -31.4819, 23.2412, 101.649 )
		call pyramid.inputVerteces     ( -29.77, 27.3742, 101.649 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )
		call pyramid.inputVerteces     ( -46.3227, 31.8095, 127.062 )


        call pyramid.inputEges(  0)
call pyramid.inputEges(  2)
call pyramid.inputEges(  1)
call pyramid.inputEges(  0)
call pyramid.inputEges(  3)
call pyramid.inputEges(  2)
call pyramid.inputEges(  0)
call pyramid.inputEges(  4)
call pyramid.inputEges(  3)
call pyramid.inputEges(  0)
call pyramid.inputEges(  5)
call pyramid.inputEges(  4)
call pyramid.inputEges(  0)
call pyramid.inputEges(  6)
call pyramid.inputEges(  5)
call pyramid.inputEges(  0)
call pyramid.inputEges(  7)
call pyramid.inputEges(  6)
call pyramid.inputEges(  0)
call pyramid.inputEges(  8)
call pyramid.inputEges(  7)
call pyramid.inputEges(  0)
call pyramid.inputEges(  9)
call pyramid.inputEges(  8)
call pyramid.inputEges(  0)
call pyramid.inputEges(  10)
call pyramid.inputEges(  9)
call pyramid.inputEges(  0)
call pyramid.inputEges(  11)
call pyramid.inputEges(  10)
call pyramid.inputEges(  0)
call pyramid.inputEges(  12)
call pyramid.inputEges(  11)
call pyramid.inputEges(  0)
call pyramid.inputEges(  13)
call pyramid.inputEges(  12)
call pyramid.inputEges(  0)
call pyramid.inputEges(  14)
call pyramid.inputEges(  13)
call pyramid.inputEges(  0)
call pyramid.inputEges(  15)
call pyramid.inputEges(  14)
call pyramid.inputEges(  0)
call pyramid.inputEges(  16)
call pyramid.inputEges(  15)
call pyramid.inputEges(  0)
call pyramid.inputEges(  17)
call pyramid.inputEges(  16)
call pyramid.inputEges(  0)
call pyramid.inputEges(  18)
call pyramid.inputEges(  17)
call pyramid.inputEges(  0)
call pyramid.inputEges(  19)
call pyramid.inputEges(  18)
call pyramid.inputEges(  0)
call pyramid.inputEges(  20)
call pyramid.inputEges(  19)
call pyramid.inputEges(  0)
call pyramid.inputEges(  21)
call pyramid.inputEges(  20)
call pyramid.inputEges(  0)
call pyramid.inputEges(  22)
call pyramid.inputEges(  21)
call pyramid.inputEges(  0)
call pyramid.inputEges(  23)
call pyramid.inputEges(  22)
call pyramid.inputEges(  0)
call pyramid.inputEges(  24)
call pyramid.inputEges(  23)
call pyramid.inputEges(  0)
call pyramid.inputEges(  1)
call pyramid.inputEges(  24)
call pyramid.inputEges(  1)
call pyramid.inputEges(  26)
call pyramid.inputEges(  25)
call pyramid.inputEges(  1)
call pyramid.inputEges(  2)
call pyramid.inputEges(  26)
call pyramid.inputEges(  2)
call pyramid.inputEges(  27)
call pyramid.inputEges(  26)
call pyramid.inputEges(  2)
call pyramid.inputEges(  3)
call pyramid.inputEges(  27)
call pyramid.inputEges(  3)
call pyramid.inputEges(  28)
call pyramid.inputEges(  27)
call pyramid.inputEges(  3)
call pyramid.inputEges(  4)
call pyramid.inputEges(  28)
call pyramid.inputEges(  4)
call pyramid.inputEges(  29)
call pyramid.inputEges(  28)
call pyramid.inputEges(  4)
call pyramid.inputEges(  5)
call pyramid.inputEges(  29)
call pyramid.inputEges(  5)
call pyramid.inputEges(  30)
call pyramid.inputEges(  29)
call pyramid.inputEges(  5)
call pyramid.inputEges(  6)
call pyramid.inputEges(  30)
call pyramid.inputEges(  6)
call pyramid.inputEges(  31)
call pyramid.inputEges(  30)
call pyramid.inputEges(  6)
call pyramid.inputEges(  7)
call pyramid.inputEges(  31)
call pyramid.inputEges(  7)
call pyramid.inputEges(  32)
call pyramid.inputEges(  31)
call pyramid.inputEges(  7)
call pyramid.inputEges(  8)
call pyramid.inputEges(  32)
call pyramid.inputEges(  8)
call pyramid.inputEges(  33)
call pyramid.inputEges(  32)
call pyramid.inputEges(  8)
call pyramid.inputEges(  9)
call pyramid.inputEges(  33)
call pyramid.inputEges(  9)
call pyramid.inputEges(  34)
call pyramid.inputEges(  33)
call pyramid.inputEges(  9)
call pyramid.inputEges(  10)
call pyramid.inputEges(  34)
call pyramid.inputEges(  10)
call pyramid.inputEges(  35)
call pyramid.inputEges(  34)
call pyramid.inputEges(  10)
call pyramid.inputEges(  11)
call pyramid.inputEges(  35)
call pyramid.inputEges(  11)
call pyramid.inputEges(  36)
call pyramid.inputEges(  35)
call pyramid.inputEges(  11)
call pyramid.inputEges(  12)
call pyramid.inputEges(  36)
call pyramid.inputEges(  12)
call pyramid.inputEges(  37)
call pyramid.inputEges(  36)
call pyramid.inputEges(  12)
call pyramid.inputEges(  13)
call pyramid.inputEges(  37)
call pyramid.inputEges(  13)
call pyramid.inputEges(  38)
call pyramid.inputEges(  37)
call pyramid.inputEges(  13)
call pyramid.inputEges(  14)
call pyramid.inputEges(  38)
call pyramid.inputEges(  14)
call pyramid.inputEges(  39)
call pyramid.inputEges(  38)
call pyramid.inputEges(  14)
call pyramid.inputEges(  15)
call pyramid.inputEges(  39)
call pyramid.inputEges(  15)
call pyramid.inputEges(  40)
call pyramid.inputEges(  39)
call pyramid.inputEges(  15)
call pyramid.inputEges(  16)
call pyramid.inputEges(  40)
call pyramid.inputEges(  16)
call pyramid.inputEges(  41)
call pyramid.inputEges(  40)
call pyramid.inputEges(  16)
call pyramid.inputEges(  17)
call pyramid.inputEges(  41)
call pyramid.inputEges(  17)
call pyramid.inputEges(  42)
call pyramid.inputEges(  41)
call pyramid.inputEges(  17)
call pyramid.inputEges(  18)
call pyramid.inputEges(  42)
call pyramid.inputEges(  18)
call pyramid.inputEges(  43)
call pyramid.inputEges(  42)
call pyramid.inputEges(  18)
call pyramid.inputEges(  19)
call pyramid.inputEges(  43)
call pyramid.inputEges(  19)
call pyramid.inputEges(  44)
call pyramid.inputEges(  43)
call pyramid.inputEges(  19)
call pyramid.inputEges(  20)
call pyramid.inputEges(  44)
call pyramid.inputEges(  20)
call pyramid.inputEges(  45)
call pyramid.inputEges(  44)
call pyramid.inputEges(  20)
call pyramid.inputEges(  21)
call pyramid.inputEges(  45)
call pyramid.inputEges(  21)
call pyramid.inputEges(  46)
call pyramid.inputEges(  45)
call pyramid.inputEges(  21)
call pyramid.inputEges(  22)
call pyramid.inputEges(  46)
call pyramid.inputEges(  22)
call pyramid.inputEges(  47)
call pyramid.inputEges(  46)
call pyramid.inputEges(  22)
call pyramid.inputEges(  23)
call pyramid.inputEges(  47)
call pyramid.inputEges(  23)
call pyramid.inputEges(  48)
call pyramid.inputEges(  47)
call pyramid.inputEges(  23)
call pyramid.inputEges(  24)
call pyramid.inputEges(  48)
call pyramid.inputEges(  24)
call pyramid.inputEges(  25)
call pyramid.inputEges(  48)
call pyramid.inputEges(  24)
call pyramid.inputEges(  1)
call pyramid.inputEges(  25)
call pyramid.inputEges(  25)
call pyramid.inputEges(  50)
call pyramid.inputEges(  49)
call pyramid.inputEges(  25)
call pyramid.inputEges(  26)
call pyramid.inputEges(  50)
call pyramid.inputEges(  26)
call pyramid.inputEges(  51)
call pyramid.inputEges(  50)
call pyramid.inputEges(  26)
call pyramid.inputEges(  27)
call pyramid.inputEges(  51)
call pyramid.inputEges(  27)
call pyramid.inputEges(  52)
call pyramid.inputEges(  51)
call pyramid.inputEges(  27)
call pyramid.inputEges(  28)
call pyramid.inputEges(  52)
call pyramid.inputEges(  28)
call pyramid.inputEges(  53)
call pyramid.inputEges(  52)
call pyramid.inputEges(  28)
call pyramid.inputEges(  29)
call pyramid.inputEges(  53)
call pyramid.inputEges(  29)
call pyramid.inputEges(  54)
call pyramid.inputEges(  53)
call pyramid.inputEges(  29)
call pyramid.inputEges(  30)
call pyramid.inputEges(  54)
call pyramid.inputEges(  30)
call pyramid.inputEges(  55)
call pyramid.inputEges(  54)
call pyramid.inputEges(  30)
call pyramid.inputEges(  31)
call pyramid.inputEges(  55)
call pyramid.inputEges(  31)
call pyramid.inputEges(  56)
call pyramid.inputEges(  55)
call pyramid.inputEges(  31)
call pyramid.inputEges(  32)
call pyramid.inputEges(  56)
call pyramid.inputEges(  32)
call pyramid.inputEges(  57)
call pyramid.inputEges(  56)
call pyramid.inputEges(  32)
call pyramid.inputEges(  33)
call pyramid.inputEges(  57)
call pyramid.inputEges(  33)
call pyramid.inputEges(  58)
call pyramid.inputEges(  57)
call pyramid.inputEges(  33)
call pyramid.inputEges(  34)
call pyramid.inputEges(  58)
call pyramid.inputEges(  34)
call pyramid.inputEges(  59)
call pyramid.inputEges(  58)
call pyramid.inputEges(  34)
call pyramid.inputEges(  35)
call pyramid.inputEges(  59)
call pyramid.inputEges(  35)
call pyramid.inputEges(  60)
call pyramid.inputEges(  59)
call pyramid.inputEges(  35)
call pyramid.inputEges(  36)
call pyramid.inputEges(  60)
call pyramid.inputEges(  36)
call pyramid.inputEges(  61)
call pyramid.inputEges(  60)
call pyramid.inputEges(  36)
call pyramid.inputEges(  37)
call pyramid.inputEges(  61)
call pyramid.inputEges(  37)
call pyramid.inputEges(  62)
call pyramid.inputEges(  61)
call pyramid.inputEges(  37)
call pyramid.inputEges(  38)
call pyramid.inputEges(  62)
call pyramid.inputEges(  38)
call pyramid.inputEges(  63)
call pyramid.inputEges(  62)
call pyramid.inputEges(  38)
call pyramid.inputEges(  39)
call pyramid.inputEges(  63)
call pyramid.inputEges(  39)
call pyramid.inputEges(  64)
call pyramid.inputEges(  63)
call pyramid.inputEges(  39)
call pyramid.inputEges(  40)
call pyramid.inputEges(  64)
call pyramid.inputEges(  40)
call pyramid.inputEges(  65)
call pyramid.inputEges(  64)
call pyramid.inputEges(  40)
call pyramid.inputEges(  41)
call pyramid.inputEges(  65)
call pyramid.inputEges(  41)
call pyramid.inputEges(  66)
call pyramid.inputEges(  65)
call pyramid.inputEges(  41)
call pyramid.inputEges(  42)
call pyramid.inputEges(  66)
call pyramid.inputEges(  42)
call pyramid.inputEges(  67)
call pyramid.inputEges(  66)
call pyramid.inputEges(  42)
call pyramid.inputEges(  43)
call pyramid.inputEges(  67)
call pyramid.inputEges(  43)
call pyramid.inputEges(  68)
call pyramid.inputEges(  67)
call pyramid.inputEges(  43)
call pyramid.inputEges(  44)
call pyramid.inputEges(  68)
call pyramid.inputEges(  44)
call pyramid.inputEges(  69)
call pyramid.inputEges(  68)
call pyramid.inputEges(  44)
call pyramid.inputEges(  45)
call pyramid.inputEges(  69)
call pyramid.inputEges(  45)
call pyramid.inputEges(  70)
call pyramid.inputEges(  69)
call pyramid.inputEges(  45)
call pyramid.inputEges(  46)
call pyramid.inputEges(  70)
call pyramid.inputEges(  46)
call pyramid.inputEges(  71)
call pyramid.inputEges(  70)
call pyramid.inputEges(  46)
call pyramid.inputEges(  47)
call pyramid.inputEges(  71)
call pyramid.inputEges(  47)
call pyramid.inputEges(  72)
call pyramid.inputEges(  71)
call pyramid.inputEges(  47)
call pyramid.inputEges(  48)
call pyramid.inputEges(  72)
call pyramid.inputEges(  48)
call pyramid.inputEges(  49)
call pyramid.inputEges(  72)
call pyramid.inputEges(  48)
call pyramid.inputEges(  25)
call pyramid.inputEges(  49)
call pyramid.inputEges(  49)
call pyramid.inputEges(  74)
call pyramid.inputEges(  73)
call pyramid.inputEges(  49)
call pyramid.inputEges(  50)
call pyramid.inputEges(  74)
call pyramid.inputEges(  50)
call pyramid.inputEges(  75)
call pyramid.inputEges(  74)
call pyramid.inputEges(  50)
call pyramid.inputEges(  51)
call pyramid.inputEges(  75)
call pyramid.inputEges(  51)
call pyramid.inputEges(  76)
call pyramid.inputEges(  75)
call pyramid.inputEges(  51)
call pyramid.inputEges(  52)
call pyramid.inputEges(  76)
call pyramid.inputEges(  52)
call pyramid.inputEges(  77)
call pyramid.inputEges(  76)
call pyramid.inputEges(  52)
call pyramid.inputEges(  53)
call pyramid.inputEges(  77)
call pyramid.inputEges(  53)
call pyramid.inputEges(  78)
call pyramid.inputEges(  77)
call pyramid.inputEges(  53)
call pyramid.inputEges(  54)
call pyramid.inputEges(  78)
call pyramid.inputEges(  54)
call pyramid.inputEges(  79)
call pyramid.inputEges(  78)
call pyramid.inputEges(  54)
call pyramid.inputEges(  55)
call pyramid.inputEges(  79)
call pyramid.inputEges(  55)
call pyramid.inputEges(  80)
call pyramid.inputEges(  79)
call pyramid.inputEges(  55)
call pyramid.inputEges(  56)
call pyramid.inputEges(  80)
call pyramid.inputEges(  56)
call pyramid.inputEges(  81)
call pyramid.inputEges(  80)
call pyramid.inputEges(  56)
call pyramid.inputEges(  57)
call pyramid.inputEges(  81)
call pyramid.inputEges(  57)
call pyramid.inputEges(  82)
call pyramid.inputEges(  81)
call pyramid.inputEges(  57)
call pyramid.inputEges(  58)
call pyramid.inputEges(  82)
call pyramid.inputEges(  58)
call pyramid.inputEges(  83)
call pyramid.inputEges(  82)
call pyramid.inputEges(  58)
call pyramid.inputEges(  59)
call pyramid.inputEges(  83)
call pyramid.inputEges(  59)
call pyramid.inputEges(  84)
call pyramid.inputEges(  83)
call pyramid.inputEges(  59)
call pyramid.inputEges(  60)
call pyramid.inputEges(  84)
call pyramid.inputEges(  60)
call pyramid.inputEges(  85)
call pyramid.inputEges(  84)
call pyramid.inputEges(  60)
call pyramid.inputEges(  61)
call pyramid.inputEges(  85)
call pyramid.inputEges(  61)
call pyramid.inputEges(  86)
call pyramid.inputEges(  85)
call pyramid.inputEges(  61)
call pyramid.inputEges(  62)
call pyramid.inputEges(  86)
call pyramid.inputEges(  62)
call pyramid.inputEges(  87)
call pyramid.inputEges(  86)
call pyramid.inputEges(  62)
call pyramid.inputEges(  63)
call pyramid.inputEges(  87)
call pyramid.inputEges(  63)
call pyramid.inputEges(  88)
call pyramid.inputEges(  87)
call pyramid.inputEges(  63)
call pyramid.inputEges(  64)
call pyramid.inputEges(  88)
call pyramid.inputEges(  64)
call pyramid.inputEges(  89)
call pyramid.inputEges(  88)
call pyramid.inputEges(  64)
call pyramid.inputEges(  65)
call pyramid.inputEges(  89)
call pyramid.inputEges(  65)
call pyramid.inputEges(  90)
call pyramid.inputEges(  89)
call pyramid.inputEges(  65)
call pyramid.inputEges(  66)
call pyramid.inputEges(  90)
call pyramid.inputEges(  66)
call pyramid.inputEges(  91)
call pyramid.inputEges(  90)
call pyramid.inputEges(  66)
call pyramid.inputEges(  67)
call pyramid.inputEges(  91)
call pyramid.inputEges(  67)
call pyramid.inputEges(  92)
call pyramid.inputEges(  91)
call pyramid.inputEges(  67)
call pyramid.inputEges(  68)
call pyramid.inputEges(  92)
call pyramid.inputEges(  68)
call pyramid.inputEges(  93)
call pyramid.inputEges(  92)
call pyramid.inputEges(  68)
call pyramid.inputEges(  69)
call pyramid.inputEges(  93)
call pyramid.inputEges(  69)
call pyramid.inputEges(  94)
call pyramid.inputEges(  93)
call pyramid.inputEges(  69)
call pyramid.inputEges(  70)
call pyramid.inputEges(  94)
call pyramid.inputEges(  70)
call pyramid.inputEges(  95)
call pyramid.inputEges(  94)
call pyramid.inputEges(  70)
call pyramid.inputEges(  71)
call pyramid.inputEges(  95)
call pyramid.inputEges(  71)
call pyramid.inputEges(  96)
call pyramid.inputEges(  95)
call pyramid.inputEges(  71)
call pyramid.inputEges(  72)
call pyramid.inputEges(  96)
call pyramid.inputEges(  72)
call pyramid.inputEges(  73)
call pyramid.inputEges(  96)
call pyramid.inputEges(  72)
call pyramid.inputEges(  49)
call pyramid.inputEges(  73)
call pyramid.inputEges(  73)
call pyramid.inputEges(  98)
call pyramid.inputEges(  97)
call pyramid.inputEges(  73)
call pyramid.inputEges(  74)
call pyramid.inputEges(  98)
call pyramid.inputEges(  74)
call pyramid.inputEges(  99)
call pyramid.inputEges(  98)
call pyramid.inputEges(  74)
call pyramid.inputEges(  75)
call pyramid.inputEges(  99)
call pyramid.inputEges(  75)
call pyramid.inputEges(  100)
call pyramid.inputEges(  99)
call pyramid.inputEges(  75)
call pyramid.inputEges(  76)
call pyramid.inputEges(  100)
call pyramid.inputEges(  76)
call pyramid.inputEges(  101)
call pyramid.inputEges(  100)
call pyramid.inputEges(  76)
call pyramid.inputEges(  77)
call pyramid.inputEges(  101)
call pyramid.inputEges(  77)
call pyramid.inputEges(  102)
call pyramid.inputEges(  101)
call pyramid.inputEges(  77)
call pyramid.inputEges(  78)
call pyramid.inputEges(  102)
call pyramid.inputEges(  78)
call pyramid.inputEges(  103)
call pyramid.inputEges(  102)
call pyramid.inputEges(  78)
call pyramid.inputEges(  79)
call pyramid.inputEges(  103)
call pyramid.inputEges(  79)
call pyramid.inputEges(  104)
call pyramid.inputEges(  103)
call pyramid.inputEges(  79)
call pyramid.inputEges(  80)
call pyramid.inputEges(  104)
call pyramid.inputEges(  80)
call pyramid.inputEges(  105)
call pyramid.inputEges(  104)
call pyramid.inputEges(  80)
call pyramid.inputEges(  81)
call pyramid.inputEges(  105)
call pyramid.inputEges(  81)
call pyramid.inputEges(  106)
call pyramid.inputEges(  105)
call pyramid.inputEges(  81)
call pyramid.inputEges(  82)
call pyramid.inputEges(  106)
call pyramid.inputEges(  82)
call pyramid.inputEges(  107)
call pyramid.inputEges(  106)
call pyramid.inputEges(  82)
call pyramid.inputEges(  83)
call pyramid.inputEges(  107)
call pyramid.inputEges(  83)
call pyramid.inputEges(  108)
call pyramid.inputEges(  107)
call pyramid.inputEges(  83)
call pyramid.inputEges(  84)
call pyramid.inputEges(  108)
call pyramid.inputEges(  84)
call pyramid.inputEges(  109)
call pyramid.inputEges(  108)
call pyramid.inputEges(  84)
call pyramid.inputEges(  85)
call pyramid.inputEges(  109)
call pyramid.inputEges(  85)
call pyramid.inputEges(  110)
call pyramid.inputEges(  109)
call pyramid.inputEges(  85)
call pyramid.inputEges(  86)
call pyramid.inputEges(  110)
call pyramid.inputEges(  86)
call pyramid.inputEges(  111)
call pyramid.inputEges(  110)
call pyramid.inputEges(  86)
call pyramid.inputEges(  87)
call pyramid.inputEges(  111)
call pyramid.inputEges(  87)
call pyramid.inputEges(  112)
call pyramid.inputEges(  111)
call pyramid.inputEges(  87)
call pyramid.inputEges(  88)
call pyramid.inputEges(  112)
call pyramid.inputEges(  88)
call pyramid.inputEges(  113)
call pyramid.inputEges(  112)
call pyramid.inputEges(  88)
call pyramid.inputEges(  89)
call pyramid.inputEges(  113)
call pyramid.inputEges(  89)
call pyramid.inputEges(  114)
call pyramid.inputEges(  113)
call pyramid.inputEges(  89)
call pyramid.inputEges(  90)
call pyramid.inputEges(  114)
call pyramid.inputEges(  90)
call pyramid.inputEges(  115)
call pyramid.inputEges(  114)
call pyramid.inputEges(  90)
call pyramid.inputEges(  91)
call pyramid.inputEges(  115)
call pyramid.inputEges(  91)
call pyramid.inputEges(  116)
call pyramid.inputEges(  115)
call pyramid.inputEges(  91)
call pyramid.inputEges(  92)
call pyramid.inputEges(  116)
call pyramid.inputEges(  92)
call pyramid.inputEges(  117)
call pyramid.inputEges(  116)
call pyramid.inputEges(  92)
call pyramid.inputEges(  93)
call pyramid.inputEges(  117)
call pyramid.inputEges(  93)
call pyramid.inputEges(  118)
call pyramid.inputEges(  117)
call pyramid.inputEges(  93)
call pyramid.inputEges(  94)
call pyramid.inputEges(  118)
call pyramid.inputEges(  94)
call pyramid.inputEges(  119)
call pyramid.inputEges(  118)
call pyramid.inputEges(  94)
call pyramid.inputEges(  95)
call pyramid.inputEges(  119)
call pyramid.inputEges(  95)
call pyramid.inputEges(  120)
call pyramid.inputEges(  119)
call pyramid.inputEges(  95)
call pyramid.inputEges(  96)
call pyramid.inputEges(  120)
call pyramid.inputEges(  96)
call pyramid.inputEges(  97)
call pyramid.inputEges(  120)
call pyramid.inputEges(  96)
call pyramid.inputEges(  73)
call pyramid.inputEges(  97)
call pyramid.inputEges(  97)
call pyramid.inputEges(  122)
call pyramid.inputEges(  121)
call pyramid.inputEges(  97)
call pyramid.inputEges(  98)
call pyramid.inputEges(  122)
call pyramid.inputEges(  98)
call pyramid.inputEges(  123)
call pyramid.inputEges(  122)
call pyramid.inputEges(  98)
call pyramid.inputEges(  99)
call pyramid.inputEges(  123)
call pyramid.inputEges(  99)
call pyramid.inputEges(  124)
call pyramid.inputEges(  123)
call pyramid.inputEges(  99)
call pyramid.inputEges(  100)
call pyramid.inputEges(  124)
call pyramid.inputEges(  100)
call pyramid.inputEges(  125)
call pyramid.inputEges(  124)
call pyramid.inputEges(  100)
call pyramid.inputEges(  101)
call pyramid.inputEges(  125)
call pyramid.inputEges(  101)
call pyramid.inputEges(  126)
call pyramid.inputEges(  125)
call pyramid.inputEges(  101)
call pyramid.inputEges(  102)
call pyramid.inputEges(  126)
call pyramid.inputEges(  102)
call pyramid.inputEges(  127)
call pyramid.inputEges(  126)
call pyramid.inputEges(  102)
call pyramid.inputEges(  103)
call pyramid.inputEges(  127)
call pyramid.inputEges(  103)
call pyramid.inputEges(  128)
call pyramid.inputEges(  127)
call pyramid.inputEges(  103)
call pyramid.inputEges(  104)
call pyramid.inputEges(  128)
call pyramid.inputEges(  104)
call pyramid.inputEges(  129)
call pyramid.inputEges(  128)
call pyramid.inputEges(  104)
call pyramid.inputEges(  105)
call pyramid.inputEges(  129)
call pyramid.inputEges(  105)
call pyramid.inputEges(  130)
call pyramid.inputEges(  129)
call pyramid.inputEges(  105)
call pyramid.inputEges(  106)
call pyramid.inputEges(  130)
call pyramid.inputEges(  106)
call pyramid.inputEges(  131)
call pyramid.inputEges(  130)
call pyramid.inputEges(  106)
call pyramid.inputEges(  107)
call pyramid.inputEges(  131)
call pyramid.inputEges(  107)
call pyramid.inputEges(  132)
call pyramid.inputEges(  131)
call pyramid.inputEges(  107)
call pyramid.inputEges(  108)
call pyramid.inputEges(  132)
call pyramid.inputEges(  108)
call pyramid.inputEges(  133)
call pyramid.inputEges(  132)
call pyramid.inputEges(  108)
call pyramid.inputEges(  109)
call pyramid.inputEges(  133)
call pyramid.inputEges(  109)
call pyramid.inputEges(  134)
call pyramid.inputEges(  133)
call pyramid.inputEges(  109)
call pyramid.inputEges(  110)
call pyramid.inputEges(  134)
call pyramid.inputEges(  110)
call pyramid.inputEges(  135)
call pyramid.inputEges(  134)
call pyramid.inputEges(  110)
call pyramid.inputEges(  111)
call pyramid.inputEges(  135)
call pyramid.inputEges(  111)
call pyramid.inputEges(  136)
call pyramid.inputEges(  135)
call pyramid.inputEges(  111)
call pyramid.inputEges(  112)
call pyramid.inputEges(  136)
call pyramid.inputEges(  112)
call pyramid.inputEges(  137)
call pyramid.inputEges(  136)
call pyramid.inputEges(  112)
call pyramid.inputEges(  113)
call pyramid.inputEges(  137)
call pyramid.inputEges(  113)
call pyramid.inputEges(  138)
call pyramid.inputEges(  137)
call pyramid.inputEges(  113)
call pyramid.inputEges(  114)
call pyramid.inputEges(  138)
call pyramid.inputEges(  114)
call pyramid.inputEges(  139)
call pyramid.inputEges(  138)
call pyramid.inputEges(  114)
call pyramid.inputEges(  115)
call pyramid.inputEges(  139)
call pyramid.inputEges(  115)
call pyramid.inputEges(  140)
call pyramid.inputEges(  139)
call pyramid.inputEges(  115)
call pyramid.inputEges(  116)
call pyramid.inputEges(  140)
call pyramid.inputEges(  116)
call pyramid.inputEges(  141)
call pyramid.inputEges(  140)
call pyramid.inputEges(  116)
call pyramid.inputEges(  117)
call pyramid.inputEges(  141)
call pyramid.inputEges(  117)
call pyramid.inputEges(  142)
call pyramid.inputEges(  141)
call pyramid.inputEges(  117)
call pyramid.inputEges(  118)
call pyramid.inputEges(  142)
call pyramid.inputEges(  118)
call pyramid.inputEges(  143)
call pyramid.inputEges(  142)
call pyramid.inputEges(  118)
call pyramid.inputEges(  119)
call pyramid.inputEges(  143)
call pyramid.inputEges(  119)
call pyramid.inputEges(  144)
call pyramid.inputEges(  143)
call pyramid.inputEges(  119)
call pyramid.inputEges(  120)
call pyramid.inputEges(  144)
call pyramid.inputEges(  120)
call pyramid.inputEges(  121)
call pyramid.inputEges(  144)
call pyramid.inputEges(  120)
call pyramid.inputEges(  97)
call pyramid.inputEges(  121)
call pyramid.inputEges(  145)
call pyramid.inputEges(  121)
call pyramid.inputEges(  122)
call pyramid.inputEges(  145)
call pyramid.inputEges(  122)
call pyramid.inputEges(  123)
call pyramid.inputEges(  145)
call pyramid.inputEges(  123)
call pyramid.inputEges(  124)
call pyramid.inputEges(  145)
call pyramid.inputEges(  124)
call pyramid.inputEges(  125)
call pyramid.inputEges(  145)
call pyramid.inputEges(  125)
call pyramid.inputEges(  126)
call pyramid.inputEges(  145)
call pyramid.inputEges(  126)
call pyramid.inputEges(  127)
call pyramid.inputEges(  145)
call pyramid.inputEges(  127)
call pyramid.inputEges(  128)
call pyramid.inputEges(  145)
call pyramid.inputEges(  128)
call pyramid.inputEges(  129)
call pyramid.inputEges(  145)
call pyramid.inputEges(  129)
call pyramid.inputEges(  130)
call pyramid.inputEges(  145)
call pyramid.inputEges(  130)
call pyramid.inputEges(  131)
call pyramid.inputEges(  145)
call pyramid.inputEges(  131)
call pyramid.inputEges(  132)
call pyramid.inputEges(  145)
call pyramid.inputEges(  132)
call pyramid.inputEges(  133)
call pyramid.inputEges(  145)
call pyramid.inputEges(  133)
call pyramid.inputEges(  134)
call pyramid.inputEges(  145)
call pyramid.inputEges(  134)
call pyramid.inputEges(  135)
call pyramid.inputEges(  145)
call pyramid.inputEges(  135)
call pyramid.inputEges(  136)
call pyramid.inputEges(  145)
call pyramid.inputEges(  136)
call pyramid.inputEges(  137)
call pyramid.inputEges(  145)
call pyramid.inputEges(  137)
call pyramid.inputEges(  138)
call pyramid.inputEges(  145)
call pyramid.inputEges(  138)
call pyramid.inputEges(  139)
call pyramid.inputEges(  145)
call pyramid.inputEges(  139)
call pyramid.inputEges(  140)
call pyramid.inputEges(  145)
call pyramid.inputEges(  140)
call pyramid.inputEges(  141)
call pyramid.inputEges(  145)
call pyramid.inputEges(  141)
call pyramid.inputEges(  142)
call pyramid.inputEges(  145)
call pyramid.inputEges(  142)
call pyramid.inputEges(  143)
call pyramid.inputEges(  145)
call pyramid.inputEges(  143)
call pyramid.inputEges(  144)
call pyramid.inputEges(  145)
call pyramid.inputEges(  144)
call pyramid.inputEges(  121 )

		
        
endif 
endfunction

endlibrary 



                                                STRUCT TO MANIPULATE MODELS 


library MODEL uses Math 
/* uses: Math(included) 
        Table by Bribe 3.1
        
    creating a new model:
        go to the model information assigning struct and create a new global variable 
        go to the init function in that trigger and assign edge and vertex data accordingly 
        just look at the example 

        methods:
        create takes (modelInfo type(look in model info struct), real scale, real objectX, real objectY, real objectZ)
        create method creates a model with the scale at location x y and z also requires you to put in the number of edges 
        
        assignEdges() // puts object data in the struct only called once on creation 
        genVerteces() //connects all your object's verteces to make it visible called once on creation 
        
        //-----------------------------------------------------------
        
        scale(x,y,z) //scales your model by a percentage smaller models require higher percentage scales (900%) etc..
        
        move(x,y,z) //moves your model. THIS STRUCT ONLY ACCEPTS NEW COORDINATES IT DOES NOT ADD TO OLD ONES 
        
        rotatex(real angle) //rotate your object, this feature will be refined later 
        
        destroy() //destroy model and all of its stuff 
*/




struct modelData

private Table xVerteces //these are the vertece positons in space as x y and z
private Table yVerteces
private Table zVerteces

readonly Table xVertecesOG //these are the vertece positons as readonly values 
readonly Table yVertecesOG
readonly Table zVertecesOG

private Table edgeConnectionData //this array holds data for edge connections
private Table edgesVisual       //lightning array which connects the verteces

private Quaternian newCoord //used for rotation of a 3d object

real modelX //hold data for the model's location (yes it can be moved)
real modelY
real modelZ

real scalex //the model's scale
real scaley
real scalez

integer vertexC = 0 //counts number of verteces
integer edgeCount = 0 //counts number of eges



static method create takes modelInfo info, real scl, real locx , real locy , real locz  returns thistype
//create method 
local thistype this = thistype.allocate()
set this.xVerteces = Table.create()
set this.yVerteces = Table.create()
set this.zVerteces = Table.create()
set this.xVertecesOG = Table.create()
set this.yVertecesOG = Table.create()
set this.zVertecesOG = Table.create()
set this.edgeConnectionData = Table.create()
set this.edgesVisual = Table.create()
set this.edgeCount = info.edgeCount
set this.vertexC = info.vertexCount
set this.modelX = locx
set this.modelY = locy
set this.modelZ = locz
set this.scalex = scl
set this.scaley = scl
set this.scalez = scl
set this.newCoord = Quaternian.create()
call this.assignVerteces(info)
call this.assignEdges(info) 
call this.genVerteces() 
return this


endmethod


method assignVerteces takes modelInfo info  returns nothing
//used for creation only 
local integer l = 0 
local real x = 0 
local real y = 0
local real z = 0 

loop
exitwhen l > vertexC
set x = info.verteceX.real[l]
set y = info.verteceY.real[l]
set z = info.verteceZ.real[l]

set xVertecesOG.real[l] = x //these tables hold the original data for the verteces 
set yVertecesOG.real[l]  = y 
set zVertecesOG.real[l]  = z 


set x = x *.scalex + .modelX  //???
set y = y *.scaley + .modelY
set z = z *.scalez + .modelZ


set xVerteces.real[l]= x  ///modifiable vertece data  
set yVerteces.real[l]= y
set zVerteces.real[l]= z


set l = l + 1 
endloop 


endmethod                                  

method assignEdges takes modelInfo info  returns nothing
//edge count will be used here
local integer l  = 0
loop
    exitwhen l > .edgeCount
    set .edgeConnectionData.integer[l] = info.edgeData.integer[l]
    set l = l + 1
endloop


endmethod

method genVerteces takes nothing returns nothing
//method used only for creation 
local integer l = 0

loop
    exitwhen l > .edgeCount
    set .edgesVisual.lightning[l] =  AddLightningEx("DRAL", false , .xVerteces.real[edgeConnectionData.integer[l]] , .yVerteces.real[edgeConnectionData.integer[l]] , .zVerteces.real[edgeConnectionData.integer[l]] , .xVerteces.real[edgeConnectionData.integer[l+1]], .yVerteces.real[edgeConnectionData.integer[l+1]] ,.zVerteces.real[edgeConnectionData.integer[l+1]])
    set l = l + 1
endloop
endmethod

method update takes nothing returns nothing
//call this method when you have changed some data on the model and want to update it
//method usually gets called automatically so no need to use it 

local integer l = 0



loop
    exitwhen l > .edgeCount
    call MoveLightningEx(.edgesVisual.lightning[l] , false , .xVerteces.real[edgeConnectionData.integer[l]] , .yVerteces.real[edgeConnectionData.integer[l]] , .zVerteces.real[edgeConnectionData.integer[l]] , .xVerteces.real[edgeConnectionData.integer[l+1]], .yVerteces.real[edgeConnectionData.integer[l+1]] ,.zVerteces.real[edgeConnectionData.integer[l+1]])
    
    set l = l + 1
endloop

set l = 0



endmethod

method scale takes real x , real y, real z returns nothing
//scales the object on either plane by a percentage value 
//the scaling actually depends on your model's coords if u have a very small model u might need to set scale to 8(800%) or 9(900%) or even 100(100000%) just to be visible 
local integer l = 0

loop
    exitwhen l > .vertexC
    
    set xVerteces.real[l]= xVerteces.real[l] * x
    set yVerteces.real[l]= yVerteces.real[l] * y
    set zVerteces.real[l]= zVerteces.real[l] * z

    
    set l = l + 1
endloop

    set scalex = x 
    set scaley = y
    set scalez = z 

call .update()

endmethod

method move takes real x, real y, real z returns nothing
//moves the object to the new coords, this method only accepts new coords it does not add to old ones 
local integer l = 0

loop
    exitwhen l > .vertexC
    
    
    set .xVerteces.real[l] = .xVertecesOG.real[l]*.scalex  + x //recalc errythang 
    set .yVerteces.real[l] = .yVertecesOG.real[l]*.scaley  + y
    set .zVerteces.real[l] = .zVertecesOG.real[l]*.scalez  + z
 
    set l = l + 1
endloop

    set modelX =  x
    set modelY =  y
    set modelZ =  z
    
    

call .update()
endmethod


method rotatex takes real angle returns nothing
//rotates the object 
local VECTOR3  v= VECTOR3.New_0() //will hold vertece data for passing as paramater
local VECTOR3 axis = VECTOR3.New_1(.modelX,.modelY,.modelZ) //x axis vector
local VECTOR3 normal = VECTOR3.New_1(0,0,0)
local integer l =  0

set newCoord = Quaternian.create()
set axis = Vec3Normalize (normal , axis )

//rotate entire object
loop
    exitwhen l > .vertexC
    
    set v.x = xVerteces.real[l]
    set v.y = yVerteces.real[l]
    set v.z = zVerteces.real[l]
    call newCoord.newCoord(v,axis, angle)
    //now we have our new coordinate now update current model
    set xVerteces.real[l]= newCoord.X
    set yVerteces.real[l]= newCoord.Y
    set zVerteces.real[l]= newCoord.Z
    
    //first of all here the object's coords also need to be updated 
    //this is not it the object just rotates it does not move 
    
    
    set l = l + 1
endloop

call .update()

call v.destroy()
call axis.destroy()
call normal.destroy()
call newCoord.destroy() //this might fix the quaternion running out of instances 
endmethod

method destroy takes nothing returns nothing
local integer l = 0

call  this.xVerteces.destroy()
call  this.yVerteces.destroy()
call  this.zVerteces.destroy()
call  this.edgeConnectionData.destroy()
call  this.xVertecesOG.destroy()
call  this.yVertecesOG.destroy()
call  this.zVertecesOG.destroy()
call  this.newCoord.destroy()


loop
    exitwhen l >.edgeCount
    call DestroyLightning(.edgesVisual.lightning[l])
    set  l = l + 1
endloop

call .edgesVisual.destroy()
call  .deallocate()

endmethod


endstruct


endlibrary 



                            QUATERNION STRUCT WHICH PERFORMS MATHS

 ran out of space D:




Keywords:
model
Contents

oOooOoOooOooOooooOO (Map)

Reviews
12th Dec 2015 IcemanBo: For long time as NeedsFix. Rejected. IcemanBo: I just can repeat at first what Magtheridon96 said: Indent properly. Read...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: For long time as NeedsFix. Rejected.

IcemanBo: I just can repeat at first what Magtheridon96 said: Indent properly. Read http://www.hiveworkshop.com/forums/...80/jpag-jass-proper-application-guide-204383/

20:21, 2nd Mar 2014
Magtheridon96: Man, this is garbage.

LocationHolder should not be a thing in there. Please don't pollute this thing with Quasi classes, that's the root of all evil. And unmaintainable projects. And anus? FECES? Really now?

I think you should make Quaternion and other mathematical objects resources on their own in the JASS section.

And for the love of Jesus fucking Christ, INDENT THE CODE PROPERLY. I SAY THIS WITH CAPS BECAUSE I'M THE MODERATOR WHO HAS BEEN REVIEWING ONE OF YOUR SYSTEMS WITH UNINDENTED CODE AND TELLING YOU TO INDENT FOR OVER A YEAR BACK IN THE 2012-2013 PERIOD. JESUS CHRIST MAN. JUST... JESUS FUCKING CHRIST.

Okay, now that that's out, I can continue calmly.

You need to restructure the system. You're providing people with the ability to make their own models in-game dynamically. Therefore, just give them a Model struct and a ModelSpecification struct or something like that. A ModelSpecification struct just stores vertex and face data. A Model has a ModelSpecification and an array of lightnings (use a Table for this) to represent a physical model. No other structs needed for the user to use. Make everything that the user should not use private. Encapsulation is fucking important man.

Your documentation could be improved too. You could "rly" fix the grammatical errors and spelling mistakes. "rly" man, "rly".
 
Level 17
Joined
Jul 17, 2011
Messages
1,864
The demo map dropped my fps to ~1!!!!!

Concerning the accuracy of real numbers like -0.0000011504, you should take a look into this discussion: Complex Numbers

well im kinda curious why the lag happens too, the gpu does this same thing and more maybe hundreds of times a minute without a problem yet when done this way it causes heavy lag must be the real operations being converted to strings or w/e the value u mentioned can be a string or even an integer, not much precision would be lost, but it uses numbers like this because i created this sphere in gmax and replaced some of the other values in notepad, i didnt bother shortening the numbers as they are quite a lot
 
Last edited:
Level 17
Joined
Jul 17, 2011
Messages
1,864
I don't say this offensively
What can I use this for?


What normal application does this have?

i dunno i got bored and i made it :goblin_jawdrop::goblin_yeah::vw_wtf::ogre_haosis::goblin_boom:

well actually since you can generate wireframe and rotate it however you want this can be used in places where models normally are since you can rotate the wireframe x/y/z wise on the fly, for models you have to preset their yaw and pitch :thumbs_up:
 
Last edited:
Level 19
Joined
Aug 8, 2007
Messages
2,765
i dunno i got bored and i made it :goblin_jawdrop::goblin_yeah::vw_wtf::ogre_haosis::goblin_boom:

well actually since you can generate wireframe and rotate it however you want this can be used in places where models normally are since you can rotate the wireframe x/y/z wise on the fly, for models you have to preset their yaw and pitch :thumbs_up:

Please don't upload it here if it has no application whatsoever. . .
 
Level 19
Joined
Aug 8, 2007
Messages
2,765
Why is there a discussion about the usefulness of this? It can be used for spell effects, so it has a clear application. You can also build other shapes with different colours so its basically a spell effect generator.

I like it, however the code should be made a bit cleaner (indentation etc.)

According to previous commenters it drops your framerate to 1fps...

It also only supports a max of 200 tris and requires static vertex positions
 
Level 19
Joined
Mar 18, 2012
Messages
1,716
Beautiful what math is capable of, but I don't see any practical utility for this resource.

What really bothers me is that you literally have no API.
Porper identation and outlined comments would be nice aswell, so normal people understand what is actually going on inside the code.

Edit: Based on newly added relies this seems like a problem of my engine.
For now I consider your submission as some sort of "wc3 ingame art" and I tend to instant reject it, because of framerate it causes.
However it seems to work and out of respect of the required skills to create such a piece of code, I'll just leave the thread. Maybe Maker or Purge have a different opinion.


Good luck :)
 
Last edited:
There is a discussion about it's usefulness because even the one who made it didn't even tell us (or maybe he didn't realized) on how this can be used for practical purposes...

a system for generating simple model wireframe inside wc3

and as long as it drops you to 1fps or so, it won't be usable... it might be "useful" theoretically, but not usable...

Plus he didn't even defined what those parameters are for...
 
This looks cool, you can use this to make unique effects in your map. For me my framerate did not drop at all, so it does have a practical application for spell effects. For example that green lightning sphere in the demo map could totally be a spell projectile/effect. Plus all that math is so beautifully headache inducing! xD
 
Level 17
Joined
Jul 17, 2011
Messages
1,864
thats actually the first thing i tried doing ^^ however like i said you cant make such complex models (well u can generate them but you cant do anything else with them not even move them ) because of operation limit thing so if u generated a peasant it would just be standing there doing nothing
 

Wrda

Spell Reviewer
Level 25
Joined
Nov 18, 2012
Messages
1,873
Beautiful what math is capable of, but I don't see any practical utility for this resource.

What really bothers me is that you literally have no API.
Porper identation and outlined comments would be nice aswell, so normal people understand what is actually going on inside the code.

Good luck :)

There is a discussion about it's usefulness because even the one who made it didn't even tell us (or maybe he didn't realized) on how this can be used for practical purposes...

and as long as it drops you to 1fps or so, it won't be usable... it might be "useful" theoretically, but not usable...

Plus he didn't even defined what those parameters are for...

^ I totally agree.


thats actually the first thing i tried doing ^^ however like i said you cant make such complex models (well u can generate them but you cant do anything else with them not even move them ) because of operation limit thing so if u generated a peasant it would just be standing there doing nothing
For some reason there is wc3 model editor, or such other external systems. No offense, but I don't see how can this be useful (or better, appliable) for users...maybe it was a waste of time.
 
There is barely even a jass interface to allow for configuration at all, I do suggest making it easier to use your system and maybe provide some GUI support.

What I meant is so users of your system can easily change values to match and make any shape they want without requiring much knowledge of math. Maybe like 5-7 examples of shapes such as a sphere like you already got, a cube, a prism.
 
Level 17
Joined
Jul 17, 2011
Messages
1,864
There is barely even a jass interface to allow for configuration at all, I do suggest making it easier to use your system and maybe provide some GUI support.

What I meant is so users of your system can easily change values to match and make any shape they want without requiring much knowledge of math. Maybe like 5-7 examples of shapes such as a sphere like you already got, a cube, a prism.

yea i will provide gui support as well as include other simple models
 
Level 14
Joined
Dec 29, 2009
Messages
931
I'm sorry but this is trash.. I'm not even decent with JASS and I know how badly your code is written. Conventions yo. Grammar is always a plus too.

If you could make significant improvements to these areas I would be able to provide constructive feedback regarding the spell.

No offensive implications intended.
 
Top