home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Raytrace & Morphing / SOS-RAYTRACE.ISO / programm / scripts / pov / sundae / scooper.inc < prev    next >
Encoding:
Text File  |  1993-11-05  |  22.2 KB  |  933 lines

  1. //  Persistance of Vision Raytracer V2.0
  2. //  World definition file.
  3. //
  4. //  Contains 1 lights, 5 textures and 87 primitives.
  5. //
  6. //  This file was generated for POV-Ray V2.0 by
  7. //  MORAY.EXE (c) '91 '92 '93 SoftTronics by Lutz Kretzschmar + Markus Lutz
  8. //
  9.  
  10. //  Date : 11/05/1993    (05.11.1993)
  11. //
  12.  
  13. //
  14. //  This is MORAY's default standard include file for POV.
  15. //  called MRYDEFLT.INC
  16. //
  17. //
  18. //
  19. //
  20.  
  21.  
  22. #declare BezFlatness = 0.01
  23. #declare BezUStep    = 3
  24. #declare BezVStep    = 3
  25.  
  26. // ********  T E X T U R E S  *******
  27. //
  28.  
  29. #include "SCOOP.INC"
  30.  
  31. // ********  O B J E C T S *******
  32. #declare outersphere = object {
  33.   sphere {<0,0,0>,1}
  34. }
  35.  
  36. #declare innersphere = object {
  37.   sphere {<0,0,0>,1}
  38.   scale <0.980000, 0.980000, 0.980000>
  39. }
  40.  
  41. #declare clipcube1 = box {
  42.   <-1, -1, -1>, <1, 1, 1>
  43.   translate <0.000000, 0.000000, 1.000000>
  44. }
  45.  
  46. #declare notchsphere = object {
  47.   sphere {<0,0,0>,1}
  48. }
  49.  
  50. #declare notchcube = box {
  51.   <-1, -1, -1>, <1, 1, 1>
  52.   translate <0.000000, 0.000000, 1.000000>
  53. }
  54.  
  55. #declare notch = union {
  56.   object { notchsphere }
  57.   object { notchcube }
  58.   scale <0.075000, 0.150000, 0.150000>
  59.   translate <0.925000, 0.000000, -0.200000>
  60. }
  61.  
  62. #declare scoopheaddiff = difference {
  63.   object { outersphere }
  64.   object { innersphere }
  65.   object { clipcube1 }
  66.   object { notch }
  67.   texture {
  68.     Chrome_Texture
  69.   }
  70.   translate <-2.783628, 0.000000, 0.341849>
  71. }
  72.  
  73. #declare smallaxisrivet = cylinder {
  74.   <0,0,1>, <0,0,0>, 1
  75.   texture {
  76.     Brass_Texture
  77.   }
  78.   scale <0.075000, 0.075000, 0.150000>
  79.   rotate <-0.000000, -90.000000, -0.000000>
  80.   translate <-3.711006, 0.002223, 0.148791>
  81. }
  82.  
  83. #declare mainaxishead = cylinder {
  84.   <0,0,1>, <0,0,0>, 1
  85.   texture {
  86.     Brass_Texture
  87.   }
  88.   scale <0.140000, 0.140000, 0.300000>
  89.   rotate <-0.000000, -90.000000, -0.000000>
  90.   translate <-1.604288, 0.000000, 0.139839>
  91. }
  92.  
  93. #declare mainaxisshaft = cylinder {
  94.   <0,0,1>, <0,0,0>, 1
  95.   texture {
  96.     Brass_Texture
  97.   }
  98.   scale <0.070000, 0.070000, 3.000000>
  99.   rotate <-0.000000, -90.000000, -0.000000>
  100.   translate <1.375716, 0.002103, 0.148348>
  101. }
  102.  
  103. #declare mainaxistip = object {
  104.   sphere {<0,0,0>,1}
  105.   scale <0.172572, 0.068035, 0.068000>
  106.   translate <1.368793, 0.003911, 0.148505>
  107. }
  108.  
  109. #declare mainaxiscone = cone {
  110.   <0,0,0>, 0
  111.   <0,0,1>, 1
  112.   scale <0.125000, 0.125000, 0.350000>
  113.   rotate <-0.000000, -90.000000, -0.000000>
  114.   translate <-1.017111, 0.000000, 0.151502>
  115. }
  116.  
  117. #declare mainaxis = union {
  118.   object { mainaxishead }
  119.   object { mainaxisshaft }
  120.   object { mainaxistip }
  121.   object { mainaxiscone }
  122.   texture {
  123.     Brass_Texture
  124.   }
  125. }
  126.  
  127. #declare gearcylinder = cylinder {
  128.   <0,0,1>, <0,0,0>, 1
  129.   scale <0.200000, 0.200000, 0.300000>
  130.   rotate <-0.000000, -90.000000, -0.000000>
  131.   translate <1.098562, 0.001860, 0.148563>
  132. }
  133.  
  134. #declare geartoothcube1 = box {
  135.   <-1, -1, -1>, <1, 1, 1>
  136. }
  137.  
  138. #declare geartoothcyl1 = cylinder {
  139.   <0,0,1>, <0,0,0>, 1
  140.   scale <1.000000, 1.000000, 2.000000>
  141.   rotate <-0.000000, -90.000000, -0.000000>
  142.   translate <1.000000, 0.000000, 1.000000>
  143. }
  144.  
  145. #declare geartooth1 = union {
  146.   object { geartoothcube1 }
  147.   object { geartoothcyl1 }
  148.   scale <0.150000, 0.035000, 0.035000>
  149.   translate <0.946741, 0.000000, 0.363066>
  150. }
  151.  
  152. #declare geartoothcub2 = box {
  153.   <-1, -1, -1>, <1, 1, 1>
  154. }
  155.  
  156. #declare geartoothcyl2 = cylinder {
  157.   <0,0,1>, <0,0,0>, 1
  158.   scale <1.000000, 1.000000, 2.000000>
  159.   rotate <-0.000000, -90.000000, -0.000000>
  160.   translate <1.000000, 0.000000, 1.000000>
  161. }
  162.  
  163. #declare geartooth2 = union {
  164.   object { geartoothcub2 }
  165.   object { geartoothcyl2 }
  166.   scale <0.150000, 0.035000, 0.035000>
  167.   rotate <-180.000000, -0.000000, -0.000000>
  168.   translate <0.946939, 0.002527, -0.062202>
  169. }
  170.  
  171. #declare geartoothcub3 = box {
  172.   <-1, -1, -1>, <1, 1, 1>
  173. }
  174.  
  175. #declare geartoothcyl3 = cylinder {
  176.   <0,0,1>, <0,0,0>, 1
  177.   scale <1.000000, 1.000000, 2.000000>
  178.   rotate <-0.000000, -90.000000, -0.000000>
  179.   translate <1.000000, 0.000000, 1.000000>
  180. }
  181.  
  182. #declare geartooth3 = union {
  183.   object { geartoothcub3 }
  184.   object { geartoothcyl3 }
  185.   scale <0.150000, 0.035000, 0.035000>
  186.   rotate <-270.000000, -0.000000, -0.000000>
  187.   translate <0.946939, -0.206726, 0.150320>
  188. }
  189.  
  190. #declare geartoothcub4 = box {
  191.   <-1, -1, -1>, <1, 1, 1>
  192. }
  193.  
  194. #declare geartoothcyl4 = cylinder {
  195.   <0,0,1>, <0,0,0>, 1
  196.   scale <1.000000, 1.000000, 2.000000>
  197.   rotate <-0.000000, -90.000000, -0.000000>
  198.   translate <1.000000, 0.000000, 1.000000>
  199. }
  200.  
  201. #declare geartooth4 = union {
  202.   object { geartoothcub4 }
  203.   object { geartoothcyl4 }
  204.   scale <0.150000, 0.035000, 0.035000>
  205.   rotate <-450.000000, -0.000000, -0.000000>
  206.   translate <0.946939, 0.211780, 0.147051>
  207. }
  208.  
  209. #declare geartoothcub5 = box {
  210.   <-1, -1, -1>, <1, 1, 1>
  211. }
  212.  
  213. #declare geartoothcyl5 = cylinder {
  214.   <0,0,1>, <0,0,0>, 1
  215.   scale <1.000000, 1.000000, 2.000000>
  216.   rotate <-0.000000, -90.000000, -0.000000>
  217.   translate <1.000000, 0.000000, 1.000000>
  218. }
  219.  
  220. #declare geartooth5 = union {
  221.   object { geartoothcub5 }
  222.   object { geartoothcyl5 }
  223.   scale <0.150000, 0.035000, 0.035000>
  224.   rotate <-480.000000, -0.000000, -0.000000>
  225.   translate <0.946939, 0.185623, 0.042424>
  226. }
  227.  
  228. #declare geartoothcub6 = box {
  229.   <-1, -1, -1>, <1, 1, 1>
  230. }
  231.  
  232. #declare geartoothcyl6 = cylinder {
  233.   <0,0,1>, <0,0,0>, 1
  234.   scale <1.000000, 1.000000, 2.000000>
  235.   rotate <-0.000000, -90.000000, -0.000000>
  236.   translate <1.000000, 0.000000, 1.000000>
  237. }
  238.  
  239. #declare geartooth6 = union {
  240.   object { geartoothcub6 }
  241.   object { geartoothcyl6 }
  242.   scale <0.150000, 0.035000, 0.035000>
  243.   rotate <-510.000000, -0.000000, -0.000000>
  244.   translate <0.946939, 0.107153, -0.032776>
  245. }
  246.  
  247. #declare geartoothcub7 = box {
  248.   <-1, -1, -1>, <1, 1, 1>
  249. }
  250.  
  251. #declare geartoothcyl7 = cylinder {
  252.   <0,0,1>, <0,0,0>, 1
  253.   scale <1.000000, 1.000000, 2.000000>
  254.   rotate <-0.000000, -90.000000, -0.000000>
  255.   translate <1.000000, 0.000000, 1.000000>
  256. }
  257.  
  258. #declare geartooth7 = union {
  259.   object { geartoothcub7 }
  260.   object { geartoothcyl7 }
  261.   scale <0.150000, 0.035000, 0.035000>
  262.   rotate <-570.000000, -0.000000, -0.000000>
  263.   translate <0.946939, -0.098830, -0.032776>
  264. }
  265.  
  266. #declare geartoothcub8 = box {
  267.   <-1, -1, -1>, <1, 1, 1>
  268. }
  269.  
  270. #declare geartoothcyl8 = cylinder {
  271.   <0,0,1>, <0,0,0>, 1
  272.   scale <1.000000, 1.000000, 2.000000>
  273.   rotate <-0.000000, -90.000000, -0.000000>
  274.   translate <1.000000, 0.000000, 1.000000>
  275. }
  276.  
  277. #declare geartooth8 = union {
  278.   object { geartoothcub8 }
  279.   object { geartoothcyl8 }
  280.   scale <0.150000, 0.035000, 0.035000>
  281.   rotate <-600.000000, -0.000000, -0.000000>
  282.   translate <0.946939, -0.177300, 0.045694>
  283. }
  284.  
  285. #declare geartoothcub9 = box {
  286.   <-1, -1, -1>, <1, 1, 1>
  287. }
  288.  
  289. #declare geartoothcyl9 = cylinder {
  290.   <0,0,1>, <0,0,0>, 1
  291.   scale <1.000000, 1.000000, 2.000000>
  292.   rotate <-0.000000, -90.000000, -0.000000>
  293.   translate <1.000000, 0.000000, 1.000000>
  294. }
  295.  
  296. #declare geartooth9 = union {
  297.   object { geartoothcub9 }
  298.   object { geartoothcyl9 }
  299.   scale <0.150000, 0.035000, 0.035000>
  300.   rotate <-660.000000, -0.000000, -0.000000>
  301.   translate <0.946939, -0.180570, 0.258217>
  302. }
  303.  
  304. #declare geartoothcub10 = box {
  305.   <-1, -1, -1>, <1, 1, 1>
  306. }
  307.  
  308. #declare geartoothcyl10 = cylinder {
  309.   <0,0,1>, <0,0,0>, 1
  310.   scale <1.000000, 1.000000, 2.000000>
  311.   rotate <-0.000000, -90.000000, -0.000000>
  312.   translate <1.000000, 0.000000, 1.000000>
  313. }
  314.  
  315. #declare geartooth10 = union {
  316.   object { geartoothcub10 }
  317.   object { geartoothcyl10 }
  318.   scale <0.150000, 0.035000, 0.035000>
  319.   rotate <-690.000000, -0.000000, -0.000000>
  320.   translate <0.946939, -0.102100, 0.333417>
  321. }
  322.  
  323. #declare geartoothcub11 = box {
  324.   <-1, -1, -1>, <1, 1, 1>
  325. }
  326.  
  327. #declare geartoothcyl11 = cylinder {
  328.   <0,0,1>, <0,0,0>, 1
  329.   scale <1.000000, 1.000000, 2.000000>
  330.   rotate <-0.000000, -90.000000, -0.000000>
  331.   translate <1.000000, 0.000000, 1.000000>
  332. }
  333.  
  334. #declare geartooth11 = union {
  335.   object { geartoothcub11 }
  336.   object { geartoothcyl11 }
  337.   scale <0.150000, 0.035000, 0.035000>
  338.   rotate <-750.000000, -0.000000, -0.000000>
  339.   translate <0.946939, 0.097345, 0.333417>
  340. }
  341.  
  342. #declare geartoothcub12 = box {
  343.   <-1, -1, -1>, <1, 1, 1>
  344. }
  345.  
  346. #declare geartoothcyl12 = cylinder {
  347.   <0,0,1>, <0,0,0>, 1
  348.   scale <1.000000, 1.000000, 2.000000>
  349.   rotate <-0.000000, -90.000000, -0.000000>
  350.   translate <1.000000, 0.000000, 1.000000>
  351. }
  352.  
  353. #declare geartooth12 = union {
  354.   object { geartoothcub12 }
  355.   object { geartoothcyl12 }
  356.   scale <0.150000, 0.035000, 0.035000>
  357.   rotate <-780.000000, -0.000000, -0.000000>
  358.   translate <0.946939, 0.179084, 0.258217>
  359. }
  360.  
  361. #declare gear = union {
  362.   object { gearcylinder }
  363.   object { geartooth1 }
  364.   object { geartooth2 }
  365.   object { geartooth3 }
  366.   object { geartooth4 }
  367.   object { geartooth5 }
  368.   object { geartooth6 }
  369.   object { geartooth7 }
  370.   object { geartooth8 }
  371.   object { geartooth9 }
  372.   object { geartooth10 }
  373.   object { geartooth11 }
  374.   object { geartooth12 }
  375.   texture {
  376.     Brass_Texture
  377.   }
  378. }
  379.  
  380. #declare thumbbrace1 = cylinder {
  381.   <0,0,1>, <0,0,0>, 1
  382.   scale <0.068375, 0.036014, 0.618994>
  383.   rotate <-0.000000, -90.000000, -8.662107>
  384.   translate <0.776610, -0.131819, -0.118994>
  385. }
  386.  
  387. #declare thumbbrace2 = cylinder {
  388.   <0,0,1>, <0,0,0>, 1
  389.   scale <0.043850, 0.050000, 0.750000>
  390.   rotate <-0.000000, -90.000000, 38.320854>
  391.   translate <0.600851, 0.633987, -0.118994>
  392. }
  393.  
  394. #declare thumbbrace3 = cylinder {
  395.   <0,0,1>, <0,0,0>, 1
  396.   scale <0.050000, 0.050000, 0.650000>
  397.   rotate <-0.000000, -90.000000, 19.019827>
  398.   translate <0.751501, 0.295024, -0.118994>
  399. }
  400.  
  401. #declare thumbgearcyl = cylinder {
  402.   <0,0,1>, <0,0,0>, 1
  403.   scale <0.500000, 0.500000, 0.180594>
  404.   translate <0.000000, 0.000000, -0.200000>
  405. }
  406.  
  407. #declare thumbgearcyl1 = cylinder {
  408.   <0,0,1>, <0,0,0>, 1
  409.   scale <0.400000, 0.400000, 0.200000>
  410.   translate <0.000000, 0.000000, -0.210289>
  411. }
  412.  
  413. #declare thumbgearclip = box {
  414.   <-1, -1, -1>, <1, 1, 1>
  415.   scale <0.267416, 0.425975, 0.120000>
  416.   rotate <-0.000000, -0.000000, -75.000000>
  417.   translate <-0.198360, 0.539234, -0.118994>
  418. }
  419.  
  420. #declare thumbgearcli1 = box {
  421.   <-1, -1, -1>, <1, 1, 1>
  422.   scale <0.267416, 0.425975, 0.120000>
  423.   rotate <0.035524, -0.000000, -105.000000>
  424.   translate <-0.133678, -0.506832, -0.118994>
  425. }
  426.  
  427. #declare thumbgearradius = difference {
  428.   object { thumbgearcyl }
  429.   object { thumbgearcyl1 }
  430.   object { thumbgearclip }
  431.   object { thumbgearcli1 }
  432.   scale <0.768000, 1.188000, 0.650000>
  433.   rotate <-0.000000, -0.000000, 14.989826>
  434.   translate <0.474972, 0.175759, -0.063496>
  435. }
  436.  
  437. #declare geartoothcub13 = box {
  438.   <-1, -1, -1>, <1, 1, 1>
  439. }
  440.  
  441. #declare geartoothcyl13 = cylinder {
  442.   <0,0,1>, <0,0,0>, 1
  443.   scale <1.000000, 1.000000, 2.000000>
  444.   rotate <-0.000000, -90.000000, -0.000000>
  445.   translate <1.018875, 0.062915, 1.000000>
  446. }
  447.  
  448. #declare thumbgeartooth = union {
  449.   object { geartoothcub13 }
  450.   object { geartoothcyl13 }
  451.   scale <0.075000, 0.035000, 0.035000>
  452.   rotate <-180.000000, -0.000000, 32.317162>
  453.   translate <0.653646, 0.535057, -0.076706>
  454. }
  455.  
  456. #declare geartoothcub14 = box {
  457.   <-1, -1, -1>, <1, 1, 1>
  458. }
  459.  
  460. #declare geartoothcyl14 = cylinder {
  461.   <0,0,1>, <0,0,0>, 1
  462.   scale <1.000000, 1.000000, 2.000000>
  463.   rotate <-0.000000, -90.000000, -0.000000>
  464.   translate <1.000000, 0.000000, 1.000000>
  465. }
  466.  
  467. #declare thumbgeartoo1 = union {
  468.   object { geartoothcub14 }
  469.   object { geartoothcyl14 }
  470.   scale <0.075000, 0.035000, 0.035000>
  471.   rotate <-180.000000, -0.000000, 28.787354>
  472.   translate <0.710270, 0.440684, -0.077000>
  473. }
  474.  
  475. #declare geartoothcub15 = box {
  476.   <-1, -1, -1>, <1, 1, 1>
  477. }
  478.  
  479. #declare geartoothcyl15 = cylinder {
  480.   <0,0,1>, <0,0,0>, 1
  481.   scale <1.000000, 1.000000, 2.000000>
  482.   rotate <-0.000000, -90.000000, -0.000000>
  483.   translate <1.018875, 0.062915, 1.000000>
  484. }
  485.  
  486. #declare thumbgeartoo2 = union {
  487.   object { geartoothcub15 }
  488.   object { geartoothcyl15 }
  489.   scale <0.075000, 0.035000, 0.035000>
  490.   rotate <-180.000000, -0.000000, 22.715231>
  491.   translate <0.757456, 0.336874, -0.077000>
  492. }
  493.  
  494. #declare geartoothcub16 = box {
  495.   <-1, -1, -1>, <1, 1, 1>
  496. }
  497.  
  498. #declare geartoothcyl16 = cylinder {
  499.   <0,0,1>, <0,0,0>, 1
  500.   scale <1.000000, 1.000000, 2.000000>
  501.   rotate <-0.000000, -90.000000, -0.000000>
  502.   translate <1.018875, 0.062915, 1.000000>
  503. }
  504.  
  505. #declare thumbgeartoo3 = union {
  506.   object { geartoothcub16 }
  507.   object { geartoothcyl16 }
  508.   scale <0.075000, 0.035000, 0.035000>
  509.   rotate <-180.000000, -0.000000, 15.686882>
  510.   translate <0.798351, 0.223626, -0.077000>
  511. }
  512.  
  513. #declare geartoothcub17 = box {
  514.   <-1, -1, -1>, <1, 1, 1>
  515. }
  516.  
  517. #declare geartoothcyl17 = cylinder {
  518.   <0,0,1>, <0,0,0>, 1
  519.   scale <1.000000, 1.000000, 2.000000>
  520.   rotate <-0.000000, -90.000000, -0.000000>
  521.   translate <1.018875, 0.062915, 1.000000>
  522. }
  523.  
  524. #declare thumbgeartoo4 = union {
  525.   object { geartoothcub17 }
  526.   object { geartoothcyl17 }
  527.   scale <0.075000, 0.035000, 0.035000>
  528.   rotate <-180.000000, -0.000000, 8.842676>
  529.   translate <0.820371, 0.110378, -0.077000>
  530. }
  531.  
  532. #declare geartoothcub18 = box {
  533.   <-1, -1, -1>, <1, 1, 1>
  534. }
  535.  
  536. #declare geartoothcyl18 = cylinder {
  537.   <0,0,1>, <0,0,0>, 1
  538.   scale <1.000000, 1.000000, 2.000000>
  539.   rotate <-0.000000, -90.000000, -0.000000>
  540.   translate <1.018875, 0.062915, 1.000000>
  541. }
  542.  
  543. #declare thumbgeartoo5 = union {
  544.   object { geartoothcub18 }
  545.   object { geartoothcyl18 }
  546.   scale <0.075000, 0.035000, 0.035000>
  547.   rotate <-180.000000, -0.000000, 2.537462>
  548.   translate <0.826663, -0.006015, -0.077000>
  549. }
  550.  
  551. #declare geartoothcub19 = box {
  552.   <-1, -1, -1>, <1, 1, 1>
  553. }
  554.  
  555. #declare geartoothcyl19 = cylinder {
  556.   <0,0,1>, <0,0,0>, 1
  557.   scale <1.000000, 1.000000, 2.000000>
  558.   rotate <-0.000000, -90.000000, -0.000000>
  559.   translate <1.018875, 0.062915, 1.000000>
  560. }
  561.  
  562. #declare thumbgeartoo6 = union {
  563.   object { geartoothcub19 }
  564.   object { geartoothcyl19 }
  565.   scale <0.075000, 0.035000, 0.035000>
  566.   rotate <-180.000000, -0.000000, -4.182305>
  567.   translate <0.823517, -0.122409, -0.077000>
  568. }
  569.  
  570. #declare thumbgear = difference {
  571.   object { thumbgearradius }
  572.   object { thumbgeartooth }
  573.   object { thumbgeartoo1 }
  574.   object { thumbgeartoo2 }
  575.   object { thumbgeartoo3 }
  576.   object { thumbgeartoo4 }
  577.   object { thumbgeartoo5 }
  578.   object { thumbgeartoo6 }
  579. }
  580.  
  581. #declare thumbtabsphere = object {
  582.   sphere {<0,0,0>,1}
  583.   scale <0.474093, 0.045338, 0.237738>
  584. }
  585.  
  586. #declare thumbtabcone = cone {
  587.   <0,0,0>, 0
  588.   <0,0,1>, 1
  589.   scale <0.251754, 0.049263, 1.125104>
  590.   rotate <-0.000000, 90.000000, -0.000000>
  591.   translate <-1.122697, 0.000000, -0.000000>
  592. }
  593.  
  594. #declare thumbtab = union {
  595.   object { thumbtabsphere }
  596.   object { thumbtabcone }
  597.   scale <0.587250, 1.000000, 1.017946>
  598.   rotate <-0.000000, 18.057272, 35.576340>
  599.   translate <0.881941, 0.857315, -0.291111>
  600. }
  601.  
  602. #declare thumbgearGrp = union {
  603.   object { thumbbrace1 }
  604.   object { thumbbrace2 }
  605.   object { thumbbrace3 }
  606.   object { thumbgear }
  607.   object { thumbtab }
  608.   texture {
  609.     Brass_Texture
  610.   }
  611.   translate <-0.042918, 0.000000, -0.036787>
  612. }
  613. #declare thumblevercyl = cylinder {
  614.   <0,0,1>, <0,0,0>, 1
  615.   texture {
  616.     Brass_Texture
  617.   }
  618.   scale <0.200000, 0.200000, 0.200000>
  619.   translate <0.000000, 0.006066, -0.262117>
  620. }
  621.  
  622. #declare thumblevercy1 = cylinder {
  623.   <0,0,1>, <0,0,0>, 1
  624.   texture {
  625.     Brass_Texture
  626.   }
  627.   scale <0.050000, 0.050000, 0.500000>
  628.   translate <0.000000, 0.006066, -0.360089>
  629. }
  630.  
  631. #declare sweepcylinder1 = cylinder {
  632.   <0,0,1>, <0,0,0>, 1
  633.   scale <0.975000, 0.975000, 1.000000>
  634. }
  635.  
  636. #declare sweepcylinde2 = cylinder {
  637.   <0,0,1>, <0,0,0>, 1
  638.   scale <0.925000, 0.925000, 1.500000>
  639.   translate <0.000000, 0.000000, -0.100000>
  640. }
  641.  
  642. #declare sweeper = difference {
  643.   object { sweepcylinder1 }
  644.   object { sweepcylinde2 }
  645.   scale <1.000000, 1.000000, 0.200000>
  646.   rotate <-369.157898, -0.000000, -90.000000>
  647.   translate <-2.796813, -0.089534, 0.067937>
  648. }
  649.  
  650. #declare sweepclip = box {
  651.   <-1, -1, -1>, <1, 1, 1>
  652.   scale <1.000000, 0.711268, 0.851905>
  653.   rotate <8.845161, -0.000000, 90.000000>
  654.   translate <-3.351385, -0.071963, 0.398447>
  655. }
  656.  
  657. #declare halfsweeper = difference {
  658.   object { sweeper }
  659.   object { sweepclip }
  660.   texture {
  661.     Chrome_Texture
  662.   }
  663.   rotate <-0.000000, 25.000000, 90.000000>
  664.   translate <-2.880000, 2.322204, -1.088620>
  665. }
  666.  
  667. #declare Torus001 = quartic {
  668.            // Torus MinRadius=   0.625   MajRadius=   1.375
  669.            < 1.000,  0.000,  0.000,  0.000,  2.000,
  670.              0.000,  0.000,  2.000,  0.000,  -4.562,
  671.              0.000,  0.000,  0.000,  0.000,  0.000,
  672.              0.000,  0.000,  0.000,  0.000,  0.000,
  673.              1.000,  0.000,  0.000,  2.000,  0.000,
  674.              -4.562,   0.000,  0.000,  0.000,  0.000,
  675.              1.000,  0.000,  3.000, 0.000,  2.250 >
  676. }
  677.  
  678. #declare torusclip1 = box {
  679.   <-1, -1, -1>, <1, 1, 1>
  680.   scale <2.187134, 1.801315, 1.000000>
  681.   translate <0.059357, 1.810378, 0.000000>
  682. }
  683.  
  684. #declare torusclip2 = box {
  685.   <-1, -1, -1>, <1, 1, 1>
  686.   scale <2.187134, 1.801315, 1.000000>
  687.   translate <2.196196, -0.534210, 0.000000>
  688. }
  689.  
  690. #declare elbow1 = difference {
  691.   object { Torus001 }
  692.   object { torusclip1 }
  693.   object { torusclip2 }
  694. }
  695.  
  696. #declare Torus2 = quartic {
  697.            // Torus MinRadius=   0.625   MajRadius=   1.375
  698.            < 1.000,  0.000,  0.000,  0.000,  2.000,
  699.              0.000,  0.000,  2.000,  0.000,  -4.562,
  700.              0.000,  0.000,  0.000,  0.000,  0.000,
  701.              0.000,  0.000,  0.000,  0.000,  0.000,
  702.              1.000,  0.000,  0.000,  2.000,  0.000,
  703.              -4.562,   0.000,  0.000,  0.000,  0.000,
  704.              1.000,  0.000,  3.000, 0.000,  2.250 >
  705. }
  706.  
  707. #declare torusclip3 = box {
  708.   <-1, -1, -1>, <1, 1, 1>
  709.   scale <2.187134, 1.801315, 1.000000>
  710.   translate <0.059357, 1.810378, 0.000000>
  711. }
  712.  
  713. #declare torusclip4 = box {
  714.   <-1, -1, -1>, <1, 1, 1>
  715.   scale <2.187134, 1.801315, 1.000000>
  716.   translate <2.196196, -0.534210, 0.000000>
  717. }
  718.  
  719. #declare elbow2 = difference {
  720.   object { Torus2 }
  721.   object { torusclip3 }
  722.   object { torusclip4 }
  723.   rotate <-0.000000, -0.000000, -180.000000>
  724.   translate <-2.742190, -0.005096, 0.000000>
  725. }
  726.  
  727. #declare doubleelbow = union {
  728.   object { elbow1 }
  729.   object { elbow2 }
  730.   scale <1.127577, 0.744847, 1.000000>
  731.   rotate <90.000000, -0.000000, -0.000000>
  732. }
  733.  
  734. #declare lowerbar1 = cylinder {
  735.   <0,0,1>, <0,0,0>, 1
  736.   scale <0.465330, 0.623498, 8.477417>
  737.   rotate <-0.000000, 90.000000, -0.000000>
  738.   translate <0.002325, 0.000000, -1.019203>
  739. }
  740.  
  741. #declare lowerbar2 = cylinder {
  742.   <0,0,1>, <0,0,0>, 1
  743.   scale <0.465330, 0.623498, 6.000000>
  744.   rotate <-0.000000, 90.000000, -0.000000>
  745.   translate <-9.091147, -0.084692, 1.030328>
  746. }
  747.  
  748. #declare undercarriage = union {
  749.   object { doubleelbow }
  750.   object { lowerbar1 }
  751.   object { lowerbar2 }
  752.   texture {
  753.     Brass_Texture
  754.   }
  755.   scale <0.200000, 0.175000, 0.200000>
  756.   translate <-0.081059, 0.000000, -0.244212>
  757. }
  758.  
  759. #declare Cone001 = cone {
  760.   <0,0,0>, 0
  761.   <0,0,1>, 1
  762.   scale <0.500000, 0.500000, 0.500000>
  763.   rotate <-0.000000, -90.000000, -0.000000>
  764. }
  765.  
  766. #declare coneclip1 = object {
  767.   sphere {<0,0,0>,1}
  768.   translate <-1.318241, 0.000000, 0.013182>
  769. }
  770.  
  771. #declare coneclip2 = box {
  772.   <-1, -1, -1>, <1, 1, 1>
  773.   scale <0.500000, 0.500000, 0.299445>
  774.   translate <-0.329560, 0.000000, 0.461384>
  775. }
  776.  
  777. #declare notchsphere1 = object {
  778.   sphere {<0,0,0>,1}
  779. }
  780.  
  781. #declare notchcube1 = box {
  782.   <-1, -1, -1>, <1, 1, 1>
  783.   translate <0.000000, 0.000000, 1.000000>
  784. }
  785.  
  786. #declare notch1 = union {
  787.   object { notchsphere1 }
  788.   object { notchcube1 }
  789.   scale <0.400000, 0.150000, 0.150000>
  790.   translate <-0.300964, 0.000000, 0.000000>
  791. }
  792.  
  793. #declare conediff = difference {
  794.   object { Cone001 }
  795.   object { coneclip1 }
  796.   object { coneclip2 }
  797.   object { notch1 }
  798.   texture {
  799.     Brass_Texture
  800.   }
  801.   rotate <-0.000000, 4.381800, -0.000000>
  802.   translate <-1.466373, 0.000000, 0.138407>
  803. }
  804.  
  805. #declare strapcyl1 = cylinder {
  806.   <0,0,1>, <0,0,0>, 1
  807. }
  808.  
  809. #declare strapcyl2 = cylinder {
  810.   <0,0,1>, <0,0,0>, 1
  811.   scale <0.990000, 0.990000, 1.000000>
  812. }
  813.  
  814. #declare strap = difference {
  815.   object { strapcyl1 }
  816.   object { strapcyl2 }
  817.   texture {
  818.     Copper_Texture
  819.   }
  820.   scale <0.220000, 0.150000, 0.220000>
  821.   rotate <-0.000000, -90.000000, -0.000000>
  822.   translate <-1.370561, 0.000000, 0.065718>
  823. }
  824.  
  825. #declare hilt = object {
  826.   sphere {<0,0,0>,1}
  827.   texture {
  828.     Chrome_Texture
  829.   }
  830.   scale <0.092735, 0.334586, 0.784579>
  831.   translate <1.267192, 0.000000, -0.412662>
  832. }
  833.  
  834. #declare handguardsphere = object {
  835.   sphere {<0,0,0>,1}
  836.   scale <1.500000, 1.000000, 1.000000>
  837. }
  838.  
  839. #declare sphereclip1 = cone {
  840.   <0,0,0>, 0
  841.   <0,0,1>, 1
  842.   scale <1.000000, 1.000000, 20.000000>
  843.   rotate <-0.000000, 90.000000, -0.000000>
  844.   translate <-15.323897, 0.000000, 0.000000>
  845. }
  846.  
  847. #declare clippedsphere1 = intersection {
  848.   object { handguardsphere }
  849.   object { sphereclip1 }
  850. }
  851.  
  852. #declare handguardsph1 = object {
  853.   sphere {<0,0,0>,1}
  854.   scale <1.500000, 1.000000, 1.000000>
  855. }
  856.  
  857. #declare sphereclip2 = cone {
  858.   <0,0,0>, 0
  859.   <0,0,1>, 1
  860.   scale <1.000000, 1.000000, 20.000000>
  861.   rotate <-0.000000, 90.000000, -0.000000>
  862.   translate <-15.323897, 0.000000, 0.000000>
  863. }
  864.  
  865. #declare clippedspher2 = intersection {
  866.   object { handguardsph1 }
  867.   object { sphereclip2 }
  868.   scale <1.200000, 1.200000, 1.200000>
  869.   translate <2.424836, 0.000000, 0.000000>
  870. }
  871.  
  872. #declare handguardcylind = cylinder {
  873.   <0,0,1>, <0,0,0>, 1
  874.   scale <0.500000, 0.500000, 1.711581>
  875.   rotate <-0.000000, 90.000000, -0.000000>
  876.   translate <-1.880607, 0.000000, 0.000000>
  877. }
  878.  
  879. #declare handguard = union {
  880.   object { clippedsphere1 }
  881.   object { clippedspher2 }
  882.   object { handguardcylind }
  883.   texture {
  884.     Copper_Texture
  885.   }
  886. }
  887.  
  888. #declare handle = object {
  889.   sphere {<0,0,0>,1}
  890.   texture {
  891.     DMFLightOak
  892.   }
  893.   scale <2.500000, 1.150000, 1.150000>
  894.   translate <3.710386, 0.000000, 0.000000>
  895. }
  896.  
  897. #declare handletip = object {
  898.   sphere {<0,0,0>,1}
  899.   texture {
  900.     Copper_Texture
  901.   }
  902.   scale <0.750000, 0.750000, 0.750000>
  903.   translate <5.482908, -0.000000, 0.000000>
  904. }
  905.  
  906. #declare wholebackend = union {
  907.   object { handguard }
  908.   object { handle }
  909.   object { handletip }
  910.   scale <0.400000, 0.400000, 0.400000>
  911.   translate <2.196487, 0.000000, -0.462418>
  912. }
  913.  
  914. union {   // icecreamscoop
  915.   object { scoopheaddiff }
  916.   object { smallaxisrivet }
  917.   object { mainaxis }
  918.   object { gear }
  919.   object { thumbgearGrp }
  920.   object { thumblevercyl }
  921.   object { thumblevercy1 }
  922.   object { halfsweeper }
  923.   object { undercarriage }
  924.   object { conediff }
  925.   object { strap }
  926.   object { hilt }
  927.   object { wholebackend }
  928.   scale <1.250000, 1.250000, 1.250000>
  929.   rotate <35.000000, -2.176675, -27.492613>
  930.   translate <-3.277181, -5.361782, -2.862680>
  931. }
  932.  
  933.