Advertisement
Guest User

METAL BASIC SHIP DESIGNER

a guest
May 14th, 2024
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
FreeBasic 16.79 KB | Source Code | 0 0
  1. ' Spaceship Design V1.04b
  2. ' Experiment with 3D polygons, backface culling, texturee sorting and mouse interface.
  3. ' Written 21.05.02 - 17.01.04 in METAL BASiC (http://www.iit.edu/-sarimar/GDS)
  4. '
  5. ' Any ideas, suggestions and comments please contact me at:
  6.  
  7. 'January 1, 2013 translation to english METAL BASIC
  8.  
  9.  
  10.  
  11. ' *** MAIN *****
  12. gosub variable_initialize
  13. gosub variable_reset
  14. gosub load_shipdata
  15. gosub console_initialize
  16. gosub load_graphic
  17. gosub load_shipdata
  18. gosub ship_draw
  19.  
  20. repeat
  21.    
  22.    gosub get_input
  23.    
  24.    if rotation then
  25.       angelx=angelx+1
  26.       angely=angely+1
  27.       gosub ship_draw  
  28.    endif
  29.    
  30. until exit=true
  31. end
  32.  
  33.  
  34.  
  35.  
  36. ' ***  Save routine for igame 3d  ***
  37. save_igame3d:
  38.  
  39.    file$=save dialog$
  40.    
  41.    if file$<>"" then
  42.    
  43.       out = open file (file$)
  44.  
  45.       fwrite out, "'Igame3D import file made with Shipdesigner v1.04beta"
  46.    
  47.       for i=1 to numtextures
  48.          fwrite out, "line ", datax(tpoint1(i)), ",",datay(tpoint1(i)), ",",dataz(tpoint1(i))
  49.          fwrite out, "line ", datax(tpoint2(i)), ",",datay(tpoint2(i)), ",",dataz(tpoint2(i))
  50.          fwrite out, "line ", datax(tpoint3(i)), ",",datay(tpoint3(i)), ",",dataz(tpoint3(i))
  51.          fwrite out, "line ", datax(tpoint4(i)), ",",datay(tpoint4(i)), ",",dataz(tpoint4(i))
  52.          fwrite out, "line ", datax(tpoint1(i)), ",",datay(tpoint1(i)), ",",dataz(tpoint1(i))
  53.       next i
  54.    
  55.       close file out  
  56.        
  57.    end if
  58.    
  59. return
  60.  
  61.  
  62.  
  63.  
  64. '*** INITIALIZE VARIABLE ***
  65. variable_initialize:
  66. size=2.5
  67. perspective=0.006 'variable
  68. xoff=230
  69. yoff=150
  70. exit=-1
  71. dim cosinus(360) 'SINE and COSINE tables are faster!
  72. dim sinus(360)
  73. for i=1 to 360 step 1
  74.    cosinus(i)=cos(i*0.017453293)
  75.    sinus(i)=sin(i*0.017453293)
  76. next i
  77. dim tpoint1(64)
  78. dim tpoint2(64)
  79. dim tpoint3(64)
  80. dim tpoint4(64)
  81. dim tbigz(64)
  82. dim datax(64)
  83. dim datay(64)
  84. dim dataz(64)
  85. dim datam(64)
  86. dim rotx(64)
  87. dim roty(64)
  88. dim rotz(64)
  89. dim pixelx(64)
  90. dim pixely(64)
  91. vesseltyp=1
  92. lightx = -.7
  93. lighty = .2  
  94. lightz = 0
  95. return
  96.  
  97.  
  98.  
  99.  
  100. '*** Reset the variables ***
  101. variable_reset:
  102. angelx=50  
  103. angely=315
  104. angelz=0  
  105. modifier1=1
  106. modifier2=1
  107. modifier3=1
  108. modifier4=1
  109. modifier5=1
  110. modifier6=1
  111. offset1=0
  112. offset2=0
  113. rotation=false
  114. return
  115.  
  116.  
  117.  
  118.  
  119. '*** INITIALIZE THE CONSOLE ***
  120. console_initialize:
  121. set console title to "Spaceship Design V1.04beta (igame3d) version"
  122. conwidth=640
  123. conheight=320
  124. resize console ((screen width/2) - (conwidth/2)), ((screen height/2) - (conheight/2)),((screen width/2) + (conwidth/2)), ((screen height/2) + (conheight/2))
  125. showcursor
  126. disable done
  127. disable break
  128. background=init screen(0,0,conwidth-1,conheight-1)
  129. backgroundempty=init screen(0,0,conwidth-1,conheight-1)
  130. return
  131.  
  132.  
  133.  
  134.  
  135. '*** LOADING THE BACKGROUND IMAGE and textures ***
  136. load_graphic:
  137. set screen to background
  138. loadpict ":konsole2.pct",0,0,conwidth-1,conheight-1
  139. copyrect 0,0,conwidth-1,conheight-1,0,0,conwidth-1,conheight-1,0,background,backgroundempty
  140. copyrect 0,0,conwidth-1,conheight-1,0,0,conwidth-1,conheight-1,0,background,console
  141. set screen to console
  142. return
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150. '*** DRAWING OF VESSEL ***
  151. ship_draw:
  152. copyrect 100,25,360,285,100,25,360,285,0,backgroundempty,background 'background empty
  153. set screen to background 'draw on background
  154.  
  155. for i=1 to numpoints
  156.    ax=datax(i)
  157.    ay=datay(i)
  158.    az=dataz(i)
  159.    gosub rotation_compute
  160.    rotx(i)=bx
  161.    roty(i)=by
  162.    rotz(i)=bz
  163.    gosub imagepoints_compute
  164. next i
  165.  
  166. gosub texture_sort
  167.  
  168. for i=1 to numtextures
  169.    gosub light_compute
  170.    gosub backface_test
  171.    if backface = -1 then gosub texture_draw
  172. next i
  173.  
  174. copyrect 100,25,360,285,100,25,360,285,0,background,console 'background copy to screen
  175. set screen to console
  176. return
  177.  
  178.  
  179.  
  180.  
  181. ' *** constant filling ***
  182. texture_draw:
  183. forecolor 18000*dotproduct+18000,18000*dotproduct+18000,14000*dotproduct+14000
  184. poly pixelx(tpoint1(i)),pixely(tpoint1(i)),pixelx(tpoint2(i)),pixely(tpoint2(i)),pixelx(tpoint3(i)),pixely(tpoint3(i)),pixelx(tpoint4(i)),pixely(tpoint4(i))
  185. forecolor 0,65535,0
  186. return
  187.  
  188.  
  189.  
  190. ' *** Constant Lightning ***
  191. light_compute:
  192. ax = rotx(tpoint2(i)) - rotx(tpoint1(i))
  193. ay = roty(tpoint2(i)) - roty(tpoint1(i))
  194. az = rotz(tpoint2(i)) - rotz(tpoint1(i))
  195. bx = rotx(tpoint2(i)) - rotx(tpoint3(i))
  196. by = roty(tpoint2(i)) - roty(tpoint3(i))
  197. bz = rotz(tpoint2(i)) - rotz(tpoint3(i))
  198. tnormalx= ay*bz - az*by
  199. tnormaly= az*bx - ax*bz
  200. tnormalz= ax*by - ay*bx
  201. length = sqr( (tnormalx^2) + (tnormaly^2) + (tnormalz^2)  )
  202. tnormalx=tnormalx / length
  203. tnormaly=tnormaly / length
  204. tnormalz=tnormalz / length
  205. dotproduct=(tnormalx*lightx)+(tnormaly*lighty)+(tnormalz*lightz)
  206. return
  207.  
  208.  
  209.  
  210.  
  211. '*** compute the pixels ***
  212. imagepoints_compute:
  213. pixelx(i) = round((rotx(i) / (1 + rotz(i) * perspective)) * size + xoff)
  214. pixely(i) = round((roty(i) / (1 + rotz(i) * perspective)) * size + yoff)
  215. return
  216.  
  217.  
  218.  
  219.  
  220. ' ***BACKFACE CULLING***
  221. backface_test:
  222. backface = -1
  223. ax = pixelx(tpoint2(i)) - pixelx(tpoint1(i))
  224. ay = pixely(tpoint2(i)) - pixely(tpoint1(i))
  225. bx = pixelx(tpoint2(i)) - pixelx(tpoint3(i))
  226. by = pixely(tpoint2(i)) - pixely(tpoint3(i))
  227. if  ( ax*(by-ay)-(bx-ax)*ay ) < 0  then backface=0
  228. return
  229.  
  230.  
  231.  
  232.  
  233. '*** Calculate the rotated coordinates of all points ***
  234. rotation_compute:
  235. if angely>360 then angely=1 'ANGLE CORRECTION!
  236. if angely<1 then angely=360
  237. if angelx>360 then angelx=1
  238. if angelx<1 then angelx=360
  239. if angelz>360 then angelz=1
  240. if angelz<1 then angelz=360
  241. bx = ax * cosinus(angelz) - ay * sinus(angelz)
  242. by = ax * sinus(angelz) + ay * cosinus(angelz)
  243. dd = by * cosinus(angelx) - az * sinus(angelx)   'dd is temporary storage
  244. bz = by * sinus(angelx) + az * cosinus(angelx)
  245. by = dd
  246. dd = bx * cosinus(angely) + bz * sinus(angely)
  247. bz = -ax * sinus(angely) + bz * cosinus(angely)
  248. bx = dd
  249. return
  250.  
  251.  
  252.  
  253. '*** Sort of TEXTURES rotated by Z values ??(SELECTION SORT) ***
  254. texture_sort:
  255.  
  256. for i=1 to numtextures
  257.    tbigz(i)=rotz(tpoint1(i))
  258.    if tbigz(i) < rotz(tpoint2(i)) then tbigz(i) = rotz(tpoint2(i))
  259.    if tbigz(i) < rotz(tpoint3(i)) then tbigz(i) = rotz(tpoint3(i))
  260.    if tbigz(i) < rotz(tpoint4(i)) then tbigz(i) = rotz(tpoint4(i))
  261. next i
  262. for i = numtextures to 1 step -1
  263.    q = 1
  264.    for j = 1 to i
  265.        if tbigz(j) < tbigz(q) then q=j
  266.    next j
  267.    swap tbigz(q),tbigz(i)
  268.    swap tpoint1(q),tpoint1(i)
  269.    swap tpoint2(q),tpoint2(i)
  270.    swap tpoint3(q),tpoint3(i)
  271.    swap tpoint4(q),tpoint4(i)
  272. next i
  273. return
  274.  
  275.  
  276.  
  277.  
  278.  
  279. '*** Reads the MOUSE INPUT_***
  280. get_input:
  281.  
  282.    keymap scan
  283.    IF keymap bit (55) and keymap key ("q") THEN exit=true
  284.    IF keymap bit (55) and keymap key ("i") THEN gosub save_igame3d
  285.    
  286.    while button
  287.       getmousexy mousex,mousey
  288.      
  289.       if mousex > 25 AND mousex < 65 AND mousey > 55 AND mouseY < 80 then gosub save_igame3d
  290.      
  291.       if mousex > 25 AND mousex < 65 AND mousey > 25 AND mouseY < 40 then exit=true
  292.      
  293.       if mousex > 30 AND mousex < 45 AND mousey > 200 AND mouseY < 220 then
  294.       angely=angely + 1
  295.       gosub ship_draw
  296.       endif
  297.      
  298.       if mousex > 45 AND mousex < 60 AND mousey > 200 AND mouseY < 220 then
  299.       angely=angely - 1
  300.       gosub ship_draw
  301.       endif
  302.      
  303.       if mousex > 35 AND mousex < 55 AND mousey > 225 AND mouseY < 240 then
  304.       angelx=angelx + 1
  305.       gosub ship_draw
  306.       endif
  307.      
  308.       if mousex > 35 AND mousex < 55 AND mousey > 240 AND mouseY < 255 then
  309.       angelx=angelx - 1
  310.       gosub ship_draw
  311.       endif
  312.      
  313.       if mousex > 35 AND mousex < 55 AND mousey > 170 AND mouseY < 195 AND (timer-t >.2) then
  314.       rotation = not rotation
  315.       t=timer
  316.       endif
  317.      
  318.       if mousex > 35 AND mousex < 55 AND mousey > 260 AND mouseY < 280 AND (timer-t >.2) then
  319.       gosub variable_reset
  320.       gosub load_shipdata
  321.       gosub ship_draw
  322.       t=timer
  323.       endif
  324.      
  325.       if mousex > 410 AND mousex < 425 AND mousey > 25 AND mouseY < 45 AND (timer-t >.2) then
  326.       vesseltyp = vesseltyp -1
  327.       gosub variable_reset
  328.       gosub load_shipdata
  329.       gosub ship_draw
  330.       t=timer
  331.       endif
  332.      
  333.       if mousex > 425 AND mousex < 440 AND mousey > 25 AND mouseY < 45 AND (timer-t >.2) then
  334.       vesseltyp = vesseltyp +1
  335.       gosub variable_reset
  336.       gosub load_shipdata
  337.       gosub ship_draw
  338.       t=timer
  339.       endif
  340.          
  341.       if mousex > 410 AND mousex < 425 AND mousey > 55 AND mouseY < 75 then
  342.       modifier6=modifier6 - 0.008
  343.       gosub load_shipdata
  344.       gosub ship_draw
  345.       endif
  346.      
  347.       if mousex > 425 AND mousex < 440 AND mousey > 55 AND mouseY < 75 then
  348.       modifier6=modifier6 + 0.008
  349.       gosub load_shipdata
  350.       gosub ship_draw
  351.       endif
  352.      
  353.       if mousex > 410 AND mousex < 425 AND mousey > 85 AND mouseY < 105 then
  354.       modifier1=modifier1 - 0.008
  355.       gosub load_shipdata
  356.       gosub ship_draw
  357.       endif
  358.      
  359.       if mousex > 425 AND mousex < 440 AND mousey > 85 AND mouseY < 105 then
  360.       modifier1=modifier1 + 0.008
  361.       gosub load_shipdata
  362.       gosub ship_draw
  363.       endif
  364.      
  365.       if mousex > 410 AND mousex < 425 AND mousey > 115 AND mouseY < 135 then
  366.       modifier2=modifier2 - 0.008
  367.       gosub load_shipdata
  368.       gosub ship_draw
  369.       endif
  370.      
  371.       if mousex > 425 AND mousex < 440 AND mousey > 115 AND mouseY < 135 then
  372.       modifier2=modifier2 + 0.008
  373.       gosub load_shipdata
  374.       gosub ship_draw
  375.       endif
  376.      
  377.       if mousex > 410 AND mousex < 425 AND mousey > 145 AND mouseY < 165 then
  378.       modifier3=modifier3 - 0.008
  379.       gosub load_shipdata
  380.       gosub ship_draw
  381.       endif
  382.      
  383.       if mousex > 425 AND mousex < 440 AND mousey > 145 AND mouseY < 165 then
  384.       modifier3=modifier3 + 0.008
  385.       gosub load_shipdata
  386.       gosub ship_draw
  387.       endif
  388.      
  389.       if mousex > 410 AND mousex < 425 AND mousey > 175 AND mouseY < 195 then
  390.       modifier4=modifier4 - 0.008
  391.       gosub load_shipdata
  392.       gosub ship_draw
  393.       endif
  394.      
  395.       if mousex > 425 AND mousex < 440 AND mousey > 175 AND mouseY < 195 then
  396.       modifier4=modifier4 + 0.008
  397.       gosub load_shipdata
  398.       gosub ship_draw
  399.       endif
  400.      
  401.       if mousex > 410 AND mousex < 425 AND mousey > 205 AND mouseY < 235 then
  402.       modifier5=modifier5 - 0.008
  403.       gosub load_shipdata
  404.       gosub ship_draw
  405.       endif
  406.      
  407.       if mousex > 425 AND mousex < 440 AND mousey > 205 AND mouseY < 235 then
  408.       modifier5=modifier5 + 0.008
  409.       gosub load_shipdata
  410.       gosub ship_draw
  411.       endif
  412.        
  413.       if mousex > 410 AND mousex < 425 AND mousey > 235 AND mouseY < 255 then
  414.       offset1=offset1 - 0.5
  415.       gosub load_shipdata
  416.       gosub ship_draw
  417.       endif
  418.      
  419.       if mousex > 425 AND mousex < 440 AND mousey > 235 AND mouseY < 255 then
  420.       offset1=offset1 + 0.5
  421.       gosub load_shipdata
  422.       gosub ship_draw
  423.       endif
  424.      
  425.       if mousex > 410 AND mousex < 425 AND mousey > 265 AND mouseY < 285 then
  426.       offset2=offset2 - 0.5
  427.       gosub load_shipdata
  428.       gosub ship_draw
  429.       endif
  430.      
  431.       if mousex > 425 AND mousex < 440 AND mousey > 265 AND mouseY < 285 then
  432.       offset2=offset2 + 0.5
  433.       gosub load_shipdata
  434.       gosub ship_draw
  435.       endif          
  436.    
  437.    wend    
  438.    
  439. return
  440.  
  441.  
  442. '*** LOAD DATA IN THE FIELDS ***
  443. load_shipdata:
  444. if vesseltyp<0 then vesseltyp = 5
  445. if vesseltyp>5 then vesseltyp = 0
  446. if vesseltyp=0 then restore 10
  447. if vesseltyp=1 then restore 20
  448. if vesseltyp=2 then restore 30
  449. if vesseltyp=3 then restore 40
  450. if vesseltyp=4 then restore 50
  451. if vesseltyp=5 then restore 60
  452.  
  453. read numtextures
  454. read numpoints
  455.  
  456. for i=1 to numtextures ' read the texture data
  457.    read tpoint1(i)
  458.    read tpoint2(i)
  459.    read tpoint3(i)
  460.    read tpoint4(i)
  461. next i
  462.  
  463. for i=1 to numpoints ' and modify the coordinates
  464.    read datax(i)
  465.    read datay(i)
  466.    read dataz(i)
  467.    read datam(i)
  468.    
  469.    if datam(i)=1 then
  470.    datay(i)=datay(i) * modifier6
  471.    datax(i)=datax(i) * modifier1
  472.    endif
  473.    
  474.    if datam(i)=2 then
  475.    datax(i)=datax(i) * modifier2
  476.    dataz(i)=dataz(i) * modifier4
  477.    datax(i)=datax(i) + offset1
  478.    endif
  479.    
  480.    if datam(i)=3 then
  481.    datax(i)=datax(i) * modifier3
  482.    dataz(i)=dataz(i) * modifier5
  483.    datax(i)=datax(i) + offset2
  484.    endif
  485. next i
  486.  
  487.  
  488. return
  489.  
  490.  
  491. 10 'type 0 ship data
  492. data 10,16  'ten areas and 16 points
  493. data 1,4,3,2 'Areas bounded by 4 points clockwise (CW!)
  494. data 4,6,8,3
  495. data 2,3,8,7
  496. data 1,2,7,5
  497. data 6,5,7,8
  498. data 5,6,4,1
  499. data 9,10,11,12
  500. data 9,12,11,10
  501. data 13,14,15,16
  502. data 13,16,15,14
  503. data -6,6,-6,1  'points x, y, z and manipulator
  504. data -6,-6,-6,1
  505. data 6,-6,-6,1
  506. data 6,6,-6,1
  507. data -6,6,6,1
  508. data 6,6,6,1
  509. data -6,-6,6,1
  510. data 6,-6,6,1
  511. data -10,0,-15,1
  512. data 10,0,-15,1
  513. data 10,0,-50,2
  514. data -10,0,-50,2
  515. data -10,0,15,1
  516. data -10,0,50,3
  517. data 10,0,50,3
  518. data 10,0,15,1
  519.  
  520. 20 'type 1 ship data
  521. data 10,12
  522. data 1,5,6,2
  523. data 1,2,10,9
  524. data 4,3,7,8
  525. data 4,12,11,3
  526. data 2,3,11,10
  527. data 2,6,7,3
  528. data 4,8,5,1
  529. data 4,1,9,12
  530. data 9,10,11,12
  531. data 8,7,6,5
  532. data -15,3,0,1
  533. data 15,7,0,1
  534. data 15,-7,0,1
  535. data -15,-3,0,1
  536. data -10,1,40,2
  537. data 15,1,40,2
  538. data 15,-1,40,2
  539. data -10,-1,40,2
  540. data -10,1,-40,3
  541. data 15,1,-40,3
  542. data 15,-1,-40,3
  543. data -10,-1,-40,3
  544.  
  545.  
  546. 30 'type 2 ship data
  547. data 14,16
  548. data 1,4,11,12
  549. data 4,3,10,11
  550. data 1,12,9,2
  551. data 3,2,9,10
  552. data 12,11,10,9
  553. data 5,6,4,1
  554. data 6,8,3,4
  555. data 8,7,2,3
  556. data 7,5,1,2
  557. data 7,8,6,5
  558. data 11,10,16,15
  559. data 11,15,16,10
  560. data 12,9,14,13
  561. data 12,13,14,9
  562. data -9,-16,-5,1
  563. data 9,-16,-5,1
  564. data 9,-16,5,1
  565. data -9,-16,5,1
  566. data -2,-24,-2,2
  567. data -2,-24,2,2
  568. data 10,-24,-2,2
  569. data 10,-24,2,2
  570. data 10,0,-10,1
  571. data 10,0,10,1
  572. data -10,0,10,1
  573. data -10,0,-10,1
  574. data -15,24,-45,3
  575. data -3,24,-45,3
  576. data -15,24,45,3
  577. data -3,24,45,3
  578.  
  579. 40 'type 3 ship data
  580. data 15,18
  581. data 1,4,3,2
  582. data 11,4,1,1
  583. data 2,3,15,15
  584. data 11,12,5,4
  585. data 4,5,6,3
  586. data 3,6,16,15
  587. data 15,11,1,2
  588. data 11,15,16,12
  589. data 16,6,5,12
  590. data 7,9,10,8
  591. data 7,8,10,9
  592. data 11,14,13,12
  593. data 11,12,13,14
  594. data 15,16,18,17
  595. data 15,17,18,16
  596. data -23,5,-5,1
  597. data -23,5,5,1
  598. data -15,-5,5,1
  599. data -15,-5,-5,1
  600. data 23,-5,-5,1
  601. data 23,-5,5,1
  602. data 10,-5,0,1
  603. data 23,-5,0,1
  604. data 15,-16,0,3
  605. data 23,-16,0,3
  606. data -7,5,-15,1
  607. data 23,5,-15,1
  608. data 23,5,-40,2
  609. data 16,5,-40,2
  610. data -7,5,15,1
  611. data 23,5,15,1
  612. data 16,5,40,2
  613. data 23,5,40,2
  614.  
  615. 50 'type 4 ship data "ufo"
  616. data 24,32
  617. data 1,2,10,9
  618. data 2,3,11,10
  619. data 3,4,12,11
  620. data 4,5,13,12
  621. data 5,6,14,13
  622. data 6,7,15,14
  623. data 7,8,16,15
  624. data 8,1,9,16
  625. data 25,17,18,26
  626. data 26,18,19,27
  627. data 27,19,20,28
  628. data 28,20,21,29
  629. data 29,21,22,30
  630. data 30,22,23,31
  631. data 31,23,24,32
  632. data 32,24,17,25
  633. data 25,26,2,1
  634. data 26,27,3,2
  635. data 27,28,4,3
  636. data 28,29,5,4
  637. data 29,30,6,5
  638. data 30,31,7,6
  639. data 31,32,8,7
  640. data 32,25,1,8
  641. data 0,36,4,1
  642. data 25.44,25.44,4,1
  643. data 36,0,4,1
  644. data 25.44,-25.44,4,1
  645. data 0,-36,4,1
  646. data -25.44,-25.44,4,1
  647. data -36,0,4,1
  648. data -25.44,25.44,4,1
  649. data 0,4,20,2
  650. data 3,3,20,2
  651. data 4,0,20,2
  652. data 3,-3,20,2
  653. data 0,-4,20,2
  654. data -3,-3,20,2
  655. data -4,0,20,2
  656. data -3,3,20,2
  657. data 0,4,-12,3
  658. data 3,3,-12,3
  659. data 4,0,-12,3
  660. data 3,-3,-12,3
  661. data 0,-4,-12,3
  662. data -3,-3,-12,3
  663. data -4,0,-12,3
  664. data -3,3,-12,3
  665. data 0,36,0,4
  666. data 25.44,25.44,0,4
  667. data 36,0,0,4
  668. data 25.44,-25.44,0,4
  669. data 0,-36,0,4
  670. data -25.44,-25.44,0,4
  671. data -36,0,0,4
  672. data -25.44,25.44,0,4
  673.  
  674.  
  675. 60 'type 5 ship data "p51"
  676. data 29, 36
  677. data  13 , 11 , 12 , 14
  678. data  11 , 9 , 6 , 12
  679. data  10 , 13 , 14 , 8
  680. data  10 , 9 , 11 , 13
  681. data  14 , 12 , 6 , 8
  682. data  9 , 23 , 5 , 6
  683. data  24 , 10 , 8 , 7
  684. data  5,7,8,6
  685. data  24,23,9,10
  686. data  6 , 2 , 1 , 5
  687. data  5 , 1 , 2 , 6
  688. data  4 , 8 , 7 , 3
  689. data  3 , 7 , 8 , 4
  690. data  28 , 30 , 29 , 26
  691. data  30 , 28 , 27 , 29
  692. data  25 , 28 , 26 , 25
  693. data  28 , 25 , 27 , 28
  694. data  23 , 15 , 17 , 5
  695. data  16 , 24 , 7 , 18
  696. data  7 , 5 , 17 , 18
  697. data  16 , 15 , 23 , 24
  698. data  31 , 22 , 15 , 32
  699. data  22 , 31 , 32 , 16
  700. data  22 , 21 , 20 , 19
  701. data  19 , 20 , 21 , 22
  702. data  15 , 35 , 33 , 32
  703. data  32 , 33 , 35 , 15
  704. data  36 , 16 , 32 , 34
  705. data  34 , 32 , 16 , 36
  706. data  1.8 , 50.4 , -1.8 , 2
  707. data  -9.9 , 52.2 , -1.8 , 2
  708. data  1.8 , -50.4 , -1.8 , 2
  709. data  -9.9 , -52.2 , -1.8 , 2
  710. data  9 , 5.4 , -8.1 , 1
  711. data  -16.2 , 5.4 , -8.1 , 1
  712. data  9 , -5.4 , -8.1 , 1
  713. data  -16.2 , -5.4 , -8.1 , 1
  714. data  -11.7 , 5.4 , 5.4 , 1
  715. data  -11.7 , -5.4 , 5.4 , 1
  716. data  -33.3 , 3.6 , 4.5 , 3
  717. data  -33.3 , 3.6 , -5.4 , 3
  718. data  -33.3 , -3.6 , 4.5 , 3
  719. data  -33.3 , -3.6 , -5.4 , 3
  720. data  44.1 , 1.8 , 3.6 , 3
  721. data  44.1 , -1.8 , 3.6 , 3
  722. data  44.1 , 1.8 , -2.7 , 3
  723. data  44.1 , -1.8 , -2.7 , 3
  724. data  44.1 , 0 , -2.7 , 3
  725. data  50.4 , 0 , 0 , 3
  726. data  46.8 , 0 , 15.3 , 3
  727. data  44.1 , 0 , 15.3 , 3
  728. data  12.6 , 5.4 , 5.4 , 1
  729. data  12.6 , -5.4 , 5.4 , 1
  730. data  -11.7 , 0 , 5.4 , 1
  731. data  -3.6 , 5.4 , 5.4 , 1
  732. data  -3.6 , -5.4 , 5.4 , 1
  733. data  -3.6 , 0 , 9 , 1
  734. data  12.6 , 0 , 5.4 , 1
  735. data  12.6 , 0 , 7.65 , 1
  736. data  40.5 , 0 , 15.3 , 3
  737. data  35.1 , 0 , 4.05 , 3
  738. data  36.9 , 18 , 3.6 , 3
  739. data  36.9 , -18 , 3.6 , 3
  740. data  43.2 , 16.2 , 3.6 , 3
  741. data  43.2 , -16.2 , 3.6 , 3
  742.  
  743. end
  744.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement