home *** CD-ROM | disk | FTP | other *** search
/ Ray Tracing Box / RAY_CD.mdf / raytrace / _pov_dat / decset / decanter.inc next >
Text File  |  1994-01-19  |  20KB  |  538 lines

  1. //This file contains the decanter for the decanter set.
  2. //These objects were modeled in MORAY and so the vector coordinate values use
  3. //the "right-handed" system where z=up. The objects are rotated at the end of
  4. //the file so they will work in the standard POV "left-handed" system.
  5.  
  6. #declare Decanterbody = object {
  7.   sphere {<0,0,0>,1}
  8.   scale <2, 2, 2.5>
  9. }
  10.  
  11. #declare Decanterneck = cylinder {
  12.   <0,0,1>, <0,0,0>, 1
  13.   scale <0.5, 0.5, 1.2>
  14.   translate <0, 0, 2.8>
  15. }
  16.  
  17. #declare Decantertorus1 = quartic {
  18.            // Torus MinRadius=   0.750   MajRadius=   1.250
  19.            < 1.000,  0.000,  0.000,  0.000,  2.000,
  20.              0.000,  0.000,  2.000,  0.000,  -4.250,
  21.              0.000,  0.000,  0.000,  0.000,  0.000,
  22.              0.000,  0.000,  0.000,  0.000,  0.000,
  23.              1.000,  0.000,  0.000,  2.000,  0.000,
  24.              -4.250,   0.000,  0.000,  0.000,  0.000,
  25.              1.000,  0.000,  2.000, 0.000,  1.000 >
  26. }
  27.  
  28. #declare Torus1diff = box {
  29.   <-1, -1, -1>, <1, 1, 1>
  30.   scale <2.198654, 2.2, 0.5>
  31.   translate <0, 0.024648, 0.5>
  32. }
  33.  
  34. #declare Torus1clip = cylinder {
  35.   <0,0,1>, <0,0,0>, 1
  36.   scale <1.25, 1.25, 1.6>
  37.   translate <0, 0, -0.8>
  38. }
  39.  
  40. #declare Decanternecklip = object {
  41.   object { Decantertorus1 }
  42.   clipped_by { Torus1diff }
  43.   clipped_by { Torus1clip }
  44.   translate <0, 0, 4>
  45. }
  46.  
  47. #declare Decantertoru2 = quartic {
  48.            // Torus MinRadius=   0.750   MajRadius=   1.250
  49.            < 1.000,  0.000,  0.000,  0.000,  2.000,
  50.              0.000,  0.000,  2.000,  0.000,  -4.250,
  51.              0.000,  0.000,  0.000,  0.000,  0.000,
  52.              0.000,  0.000,  0.000,  0.000,  0.000,
  53.              1.000,  0.000,  0.000,  2.000,  0.000,
  54.              -4.250,   0.000,  0.000,  0.000,  0.000,
  55.              1.000,  0.000,  2.000, 0.000,  1.000 >
  56. }
  57.  
  58. #declare Torus1diff1 = box {
  59.   <-1, -1, -1>, <1, 1, 1>
  60.   scale <2.198654, 2.2, 0.25>
  61.   translate <0, 0.024648, 0.25>
  62. }
  63.  
  64. #declare Torus1clip1 = cylinder {
  65.   <0,0,1>, <0,0,0>, 1
  66.   scale <1.25, 1.25, 1.6>
  67.   translate <0, 0, -0.8>
  68. }
  69.  
  70. #declare Decanterneck1 = object {
  71.   object { Decantertoru2 }
  72.   clipped_by { Torus1diff1 }
  73.   clipped_by { Torus1clip1 }
  74.   rotate <-180, 0, 0>
  75.   translate <0, 0, 2.8>
  76. }
  77.  
  78. #declare Decanterlipwrap = quartic {
  79.            // Torus MinRadius=   0.075   MajRadius=   1.925
  80.            < 1.000,  0.000,  0.000,  0.000,  2.000,
  81.              0.000,  0.000,  2.000,  0.000,  -7.423,
  82.              0.000,  0.000,  0.000,  0.000,  0.000,
  83.              0.000,  0.000,  0.000,  0.000,  0.000,
  84.              1.000,  0.000,  0.000,  2.000,  0.000,
  85.              -7.423,   0.000,  0.000,  0.000,  0.000,
  86.              1.000,  0.000,  7.400, 0.000,  13.690 >
  87.   texture {
  88.     LipWrapTex
  89.   }
  90.   scale <0.675, 0.675, 0.675>
  91.   translate <0, 0, 4.8>
  92. }
  93.  
  94. #declare Decantertop = union {  //the glass top of the decanter
  95.   object { Decanterbody }
  96.   object { Decanterneck }
  97.   object { Decanternecklip }
  98.   object { Decanterneck1 }
  99.   object { Decanterlipwrap }
  100.   texture {
  101.     GlassFrit
  102.   }
  103. }
  104.  
  105. #declare Stoppersphere = object {
  106.   sphere {<0,0,0>,1}
  107.   texture {
  108.     BaseTexture
  109.     translate <0, 0, 1>
  110.   }
  111.   scale <1, 1, 1.25>
  112.   translate <0, 0, 5.639282>
  113. }
  114.  
  115. #declare Stoppercylinder = cylinder {
  116.   <0,0,1>, <0,0,0>, 1
  117.   scale <0.425, 0.425, 1.5>
  118.   translate <0, 0, 3.144368>
  119. }
  120.  
  121. #declare Stopperball = object {
  122.   sphere {<0,0,0>,1}
  123.   scale <0.425, 0.425, 0.425>
  124.   translate <0, 0, 3.15>
  125. }
  126.  
  127. #declare Stopperneck = union {
  128.   object { Stoppercylinder }
  129.   object { Stopperball }
  130.   texture {
  131.     Glass2  //from textures.inc
  132.   }
  133. }
  134.  
  135. #declare Stopperball2 = object {
  136.   sphere {<0,0,0>,1}
  137.   texture {
  138.     StemBeadTex
  139.   }
  140.   scale <0.15, 0.15, 0.15>
  141.   translate <0, 0, 7>
  142. }
  143.  
  144. #declare Stopper = union { //the stopper for the decanter
  145.   object { Stoppersphere }
  146.   object { Stopperneck }
  147.   object { Stopperball2 }
  148. }
  149.  
  150. #declare Stembead = object {
  151.   sphere {<0,0,0>,1}
  152.   texture {
  153.     StemBeadTex
  154.   }
  155.   scale <0.5, 0.5, 0.5>
  156.   translate <0, 0, -2.947915>
  157. }
  158.  
  159. #declare Basecone = cone {
  160.   <0,0,0>, 0
  161.   <0,0,1>, 1
  162.   scale <1.5, 1.5, 5.>
  163.   rotate <-180, 0, 0>
  164.   translate <0, 0, -3>
  165. }
  166.  
  167. #declare Basetorus = quartic {
  168.            // Torus MinRadius=   0.250   MajRadius=   1.750
  169.            < 1.000,  0.000,  0.000,  0.000,  2.000,
  170.              0.000,  0.000,  2.000,  0.000,  -6.250,
  171.              0.000,  0.000,  0.000,  0.000,  0.000,
  172.              0.000,  0.000,  0.000,  0.000,  0.000,
  173.              1.000,  0.000,  0.000,  2.000,  0.000,
  174.              -6.250,   0.000,  0.000,  0.000,  0.000,
  175.              1.000,  0.000,  6.000, 0.000,  9.000 >
  176.   scale <0.75, 0.75, 0.75>
  177.   translate <0, 0, -8>
  178. }
  179.  
  180. #declare Base1 = union { //the decanter base rounded with a torus
  181.   object { Basecone }
  182.   object { Basetorus }
  183.   texture {
  184.     BaseTexture
  185.   }
  186. }
  187.  
  188. //the following declarations are to form the fish ornament at the top
  189.  
  190. #declare fishbodypatch1 = object {
  191.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  192.     <-0.053207, 0.000790, 8.034649>  <-0.053207, -0.204070, 8.034649>  <-0.045686, -0.839136, 1.851693>  <-0.079846, -0.839136, -0.073891>
  193.     <-7.820454, 0.000790, 8.124299>  <-7.820454, -0.204070, 8.124299>  <-5.505897, -0.839136, 1.557865>  <-5.522537, -0.839136, -0.048530>
  194.     <-7.846081, 0.000790, 0.262524>  <-7.846081, -0.204070, 0.262524>  <-7.841059, -0.335546, 0.169068>  <-7.842614, -0.335546, 0.069869>
  195.     <-9.914493, -0.011719, 1.094550>  <-9.914493, -0.060208, 1.091422>  <-9.903977, -0.028123, 0.201230>  <-9.905956, -0.028123, 0.077567>  }
  196. }
  197. #declare fishbodypatch2 = object {
  198.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  199.     <-0.079846, -0.839136, -0.073891>  <-0.114007, -0.839136, -1.999475>  <-0.100037, -0.171602, -6.036417>  <-0.100037, -0.007327, -6.036417>
  200.     <-5.522537, -0.839136, -0.048530>  <-5.539177, -0.839136, -1.654924>  <-7.816932, -0.171602, -5.953656>  <-7.816932, -0.007327, -5.953656>
  201.     <-7.842614, -0.335546, 0.069869>  <-7.844169, -0.335546, -0.029331>  <-7.842477, -0.171602, -0.102761>  <-7.842477, -0.007327, -0.102761>
  202.     <-9.905956, -0.028123, 0.077567>  <-9.907936, -0.028123, -0.046096>  <-9.905891, -0.027740, -0.991266>  <-9.905891, -0.001072, -0.988139>  }
  203. }
  204. #declare fishbodypatch3 = object {
  205.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  206.     <-0.100037, -0.007327, -6.036417>  <-0.100037, 0.156948, -6.036417>  <-0.114007, 0.792014, -1.999475>  <-0.079846, 0.792014, -0.073891>
  207.     <-7.816932, -0.007327, -5.953656>  <-7.816932, 0.156948, -5.953656>  <-5.539177, 0.792014, -1.654924>  <-5.522537, 0.792014, -0.048530>
  208.     <-7.842477, -0.007327, -0.102761>  <-7.842477, 0.156948, -0.102761>  <-7.844169, 0.303236, -0.029331>  <-7.842614, 0.303236, 0.069869>
  209.     <-9.905891, -0.001072, -0.988139>  <-9.905891, 0.025596, -0.985011>  <-9.907936, 0.031040, -0.037763>  <-9.905956, 0.031040, 0.085901>  }
  210. }
  211. #declare fishbodypatch4 = object {
  212.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  213.     <-0.079846, 0.792014, -0.073891>  <-0.045686, 0.792014, 1.851693>  <-0.053207, 0.205651, 8.034649>  <-0.053207, 0.000790, 8.034649>
  214.     <-5.522537, 0.792014, -0.048530>  <-5.505897, 0.792014, 1.557865>  <-7.820454, 0.205651, 8.124299>  <-7.820454, 0.000790, 8.124299>
  215.     <-7.842614, 0.303236, 0.069869>  <-7.841059, 0.303236, 0.169068>  <-7.846081, 0.205651, 0.262524>  <-7.846081, 0.000790, 0.262524>
  216.     <-9.905956, 0.031040, 0.085901>  <-9.903977, 0.031040, 0.209564>  <-9.914493, 0.036769, 1.097677>  <-9.914493, -0.011719, 1.094550>  }
  217. }
  218. #declare fishbodypatch = union {
  219.   object { fishbodypatch1 }
  220.   object { fishbodypatch2 }
  221.   object { fishbodypatch3 }
  222.   object { fishbodypatch4 }
  223.   translate <0, 0.050171, 0>
  224. }
  225.  
  226. #declare fishbodypatc11 = object {
  227.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  228.     <0.161107, 0.000790, 8.034649>  <0.161107, -0.204070, 8.034649>  <0.168628, -0.839136, 1.851693>  <0.134468, -0.839136, -0.073891>
  229.     <-10.392223, 0.000790, 8.767241>  <-10.392223, -0.204070, 8.767241>  <-5.505897, -0.839136, 1.557865>  <-5.522537, -0.839136, -0.048530>
  230.     <-8.167552, 0.012215, -0.809047>  <-8.167552, -0.661043, -0.809047>  <-8.162530, -0.792520, -0.902503>  <-8.164085, -0.792520, -1.001702>
  231.     <-14.303018, 0.000790, -0.391381>  <-14.303018, -0.204070, -0.391381>  <-13.198977, -0.290828, -0.964881>  <-13.200957, -0.290828, -1.088545>  }
  232. }
  233. #declare fishbodypatc12 = object {
  234.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  235.     <0.134468, -0.839136, -0.073891>  <0.100307, -0.839136, -1.999475>  <0.114277, -0.171602, -6.036417>  <0.114277, -0.007327, -6.036417>
  236.     <-5.522537, -0.839136, -0.048530>  <-5.539177, -0.839136, -1.654924>  <-8.674189, -0.171602, -6.382284>  <-8.674189, -0.007327, -6.382284>
  237.     <-8.164085, -0.792520, -1.001702>  <-8.165640, -0.792520, -1.100902>  <-8.163948, -0.171602, -1.174331>  <-8.163948, -0.007327, -1.174331>
  238.     <-13.200957, -0.290828, -1.088545>  <-13.202937, -0.290828, -1.212208>  <-14.294416, -0.171602, -1.528284>  <-14.294416, -0.007327, -1.528284>  }
  239. }
  240. #declare fishbodypatc13 = object {
  241.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  242.     <0.114277, -0.007327, -6.036417>  <0.114277, 0.156948, -6.036417>  <0.100307, 0.792014, -1.999475>  <0.134468, 0.792014, -0.073891>
  243.     <-8.674189, -0.007327, -6.382284>  <-8.674189, 0.156948, -6.382284>  <-5.539177, 0.792014, -1.654924>  <-5.522537, 0.792014, -0.048530>
  244.     <-8.163948, -0.007327, -1.174331>  <-8.163948, 0.156948, -1.174331>  <-8.165640, 0.783058, -1.100902>  <-8.164085, 0.783058, -1.001702>
  245.     <-14.294416, -0.007327, -1.528284>  <-14.294416, 0.156948, -1.528284>  <-13.202937, 0.243706, -1.178855>  <-13.200957, 0.243706, -1.055192>  }
  246. }
  247. #declare fishbodypatc14 = object {
  248.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  249.     <0.134468, 0.792014, -0.073891>  <0.168628, 0.792014, 1.851693>  <0.161107, 0.205651, 8.034649>  <0.161107, 0.000790, 8.034649>
  250.     <-5.522537, 0.792014, -0.048530>  <-5.505897, 0.792014, 1.557865>  <-10.392223, 0.205651, 8.767241>  <-10.392223, 0.000790, 8.767241>
  251.     <-8.164085, 0.783058, -1.001702>  <-8.162530, 0.783058, -0.902503>  <-8.167552, 0.685473, -0.809047>  <-8.167552, 0.012215, -0.809047>
  252.     <-13.200957, 0.243706, -1.055192>  <-13.198977, 0.243706, -0.931528>  <-14.303018, 0.205651, -0.391381>  <-14.303018, 0.000790, -0.391381>  }
  253. }
  254. #declare fishbodypatc1 = union {
  255.   object { fishbodypatc11 }
  256.   object { fishbodypatc12 }
  257.   object { fishbodypatc13 }
  258.   object { fishbodypatc14 }
  259.   rotate <0, 0, -180>
  260. }
  261.  
  262. #declare fishbody = union {
  263.   object { fishbodypatch }
  264.   object { fishbodypatc1 }
  265.   scale <0.9, 1, 1>
  266.   texture {FishBodyTex}
  267. }
  268.  
  269. #declare pectoralpatch1 = object {
  270.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  271.     <-0.874564, -0.009294, 2.393881>  <0.631882, -0.009294, 3.069143>  <1.688154, -0.009294, 3.069143>  <2.969513, -0.009294, 3.012871>
  272.     <-2.000000, -0.004647, 0.999989>  <-1.000000, -0.004647, 0.999989>  <0.000000, -0.004647, 0.999989>  <2.856969, -0.004647, 1.844066>
  273.     <-2.562718, 0.000000, -0.900349>  <-1.000000, 0.000000, 0.000000>  <0.000000, 0.000000, 0.000000>  <1.731533, 0.000000, 0.337631>
  274.     <-3.643200, 0.673792, -4.142458>  <-1.731533, 0.004647, -2.012882>  <-0.337631, 0.004647, -1.112533>  <1.000000, 0.004647, -0.212184>  }
  275. }
  276. #declare pectoralpatch = object {   pectoralpatch1
  277.   scale <0.8, 0.8, 0.8>
  278.   rotate <19.969477, 0, -11.637955>
  279.   translate <1.955446, 1.313440, -7.792051>
  280.   texture {FinTex}
  281. }
  282.  
  283. #declare tailpatch1 = object {
  284.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  285.     <-13.433449, 0.012590, 3.752071>  <-12.433449, 0.012590, 3.260949>  <-11.003717, 0.012590, 2.401486>  <-10.003717, 0.012590, 1.061010>
  286.     <-13.924571, 0.007096, 0.542037>  <-12.003717, 0.007096, 0.542037>  <-11.003717, 0.007096, 0.542037>  <-10.003717, 0.007096, 0.315678>
  287.     <-13.924571, 0.001601, -0.457948>  <-12.003717, 0.001601, -0.457948>  <-11.003717, 0.001601, -0.457948>  <-10.003717, 0.001601, -0.259884>
  288.     <-13.372059, -0.003893, -3.667982>  <-12.372059, -0.003893, -3.176860>  <-11.003717, -0.003893, -2.194616>  <-10.003717, -0.003893, -1.005215>  }
  289. }
  290. #declare tailpatch = object {   tailpatch1
  291.   translate <1.124528, 0.029822, 0.058315>
  292.   texture {FinTex}
  293. }
  294.  
  295. #declare outereyesphere = object {
  296.   sphere {<0,0,0>,1}
  297.   scale <0.75, 0.2, 0.75>
  298.   rotate <4.175116, 0, 354.787201>
  299.   translate <10.0703, 0.431905, 0.507579>
  300.   texture {RedEyeTex}
  301. }
  302.  
  303. #declare pupilsphere = object {
  304.   sphere {<0,0,0>,1}
  305.   texture {
  306.     pupiltex
  307.   }
  308.   scale <0.4, 0.1, 0.4>
  309.   rotate <4.416892, 0, -6.203704>
  310.   translate <10.092627, 0.57502, 0.520804>
  311. }
  312.  
  313. #declare eye1 = union {
  314.   object { outereyesphere }
  315.   object { pupilsphere }
  316.   rotate <1.360893, 0, 0>
  317.   translate <-1.157639, 0, -0.082689>
  318. }
  319.  
  320.  
  321. #declare eye2 = union {
  322.   object { outereyesphere }
  323.   object { pupilsphere }
  324.   rotate <-0.85311, 0, -171.40361>
  325.   translate <18.730058, 1.540279, -0.077757>
  326. }
  327.  
  328. #declare analspine1 = object {
  329.   sphere {<0,0,0>,1}
  330.   scale <0.4, 0.01, 3>
  331.   rotate <0, 26.860054, 0>
  332.   translate <-2.772014, 0, -6.307463>
  333.   texture {FinTex}
  334. }
  335.  
  336. #declare analspine2 = object {
  337.   sphere {<0,0,0>,1}
  338.   scale <0.2, 0.01, 1.5>
  339.   rotate <0, 20.424746, 0>
  340.   translate <-1.958274, 0, -5.932374>
  341.   texture {FinTex}
  342. }
  343.  
  344. #declare dorsalspine1 = object {
  345.   sphere {<0,0,0>,1}
  346.   scale <0.35, 0.01, 3>
  347.   rotate <0, -26.100386, 0>
  348.   translate <-1.252448, 0, 9.324779>
  349. }
  350.  
  351. #declare dorsalspine2 = object {
  352.   sphere {<0,0,0>,1}
  353.   scale <0.42, 0.01, 3>
  354.   rotate <0, -21.129198, 0>
  355.   translate <-0.659824, 0, 9.31476>
  356. }
  357.  
  358. #declare dorsalspine3 = object {
  359.   sphere {<0,0,0>,1}
  360.   scale <0.504, 0.01, 3>
  361.   rotate <0, -17.982313, 0>
  362.   translate <0.117956, 0, 9.302057>
  363. }
  364.  
  365. #declare dorsalspine4 = object {
  366.   sphere {<0,0,0>,1}
  367.   scale <0.504, 0.01, 3>
  368.   rotate <0, -14.267365, 0>
  369.   translate <0.950533, 0, 9.24726>
  370. }
  371.  
  372. #declare dorsalspine5 = object {
  373.   sphere {<0,0,0>,1}
  374.   scale <0.504, 0.01, 3>
  375.   rotate <0, -11.813030, 0>
  376.   translate <1.838245, 0, 9.158043>
  377. }
  378.  
  379. #declare dorsalspine7 = object {
  380.   sphere {<0,0,0>,1}
  381.   scale <0.40824, 0.01, 2.43>
  382.   rotate <0, -4.899249, 0>
  383.   translate <3.370407, 0, 8.795239>
  384. }
  385.  
  386. #declare dorsalspine8 = object {
  387.   sphere {<0,0,0>,1}
  388.   scale <0.367416, 0.01, 2.187>
  389.   rotate <0, -0.273033, 0>
  390.   translate <3.978218, 0, 8.359724>
  391. }
  392.  
  393. #declare dorsalspine9 = object {
  394.   sphere {<0,0,0>,1}
  395.   scale <0.293933, 0.01, 1.7496>
  396.   rotate <0, 3.579628, 0>
  397.   translate <4.555551, 0, 7.887854>
  398. }
  399.  
  400. #declare dorsalspine10 = object {
  401.   sphere {<0,0,0>,1}
  402.   scale <0.235146, 0.01, 1.399680>
  403.   rotate <0, 8.113843, 0>
  404.   translate <5.003019, 0, 7.385063>
  405. }
  406.  
  407. #declare dorsalspine6 = object {
  408.   sphere {<0,0,0>,1}
  409.   scale <0.4536, 0.01, 2.7>
  410.   rotate <0, -7.139027, 0>
  411.   translate <2.601387, 0, 9.036129>
  412. }
  413.  
  414. #declare dorsalspines = union {
  415.   object { dorsalspine1 }
  416.   object { dorsalspine2 }
  417.   object { dorsalspine3 }
  418.   object { dorsalspine4 }
  419.   object { dorsalspine5 }
  420.   object { dorsalspine7 }
  421.   object { dorsalspine8 }
  422.   object { dorsalspine9 }
  423.   object { dorsalspine10 }
  424.   object { dorsalspine6 }
  425.   scale <1.083668, 0.95, 0.916583>
  426.   rotate <0, 7.862904, 0>
  427.   translate <-1.342611, 0, 1.360942>
  428.   texture {FinTex}
  429. }
  430.  
  431. #declare pectoralpatc11 = object {
  432.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  433.     <-0.874564, -0.009294, 2.393881>  <0.631882, -0.009294, 3.069143>  <1.688154, -0.009294, 3.069143>  <2.969513, -0.009294, 3.012871>
  434.     <-2.000000, -0.004647, 0.999989>  <-1.000000, -0.004647, 0.999989>  <0.000000, -0.004647, 0.999989>  <2.856969, -0.004647, 1.844066>
  435.     <-2.562718, 0.000000, -0.900349>  <-1.000000, 0.000000, 0.000000>  <0.000000, 0.000000, 0.000000>  <1.731533, 0.000000, 0.337631>
  436.     <-3.643200, -1.036245, -4.142458>  <-1.731533, 0.004647, -2.012882>  <-0.337631, 0.004647, -1.112533>  <1.000000, 0.004647, -0.212184>  }
  437. }
  438. #declare pectoralpatc1 = object {   pectoralpatc11
  439.   scale <0.8, 0.8, 0.8>
  440.   rotate <-30.257172, -8.83513, -6.680355>
  441.   translate <1.560379, -1.283715, -7.545263>
  442.   texture {FinTex}
  443. }
  444.  
  445. #declare sidefinpatch1 = object {
  446.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  447.     <-7.160986, 3.576524, 2.397867>  <-1.000000, 1.494740, 1.546449>  <0.000000, 1.494740, 1.546449>  <1.180585, 1.494740, 0.426825>
  448.     <-3.635688, 1.489740, 1.215607>  <-1.000000, 1.489740, 0.546462>  <0.000000, 1.489740, 0.546462>  <1.216701, 1.489740, 0.113059>
  449.     <-2.594796, 1.484740, 0.066920>  <-1.000000, 1.484740, -0.453526>  <0.000000, 1.484740, -0.453526>  <1.216701, 1.484740, -0.128474>
  450.     <-1.553903, 1.479740, -1.750911>  <-0.891649, 1.479740, -1.706332>  <0.000000, 1.479740, -1.453513>  <1.144468, 1.479740, -0.550591>  }
  451. }
  452. #declare sidefinpatch = object {   sidefinpatch1
  453.   rotate <0, 0, -21.360031>
  454.   translate <4.343431, -0.517067, -0.371354>
  455.   texture {FinTex}
  456. }
  457.  
  458. #declare sidefinpatch11 = object {
  459.   bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
  460.     <-6.640540, -0.289647, 2.397867>  <-1.000000, 1.494740, 1.546449>  <0.000000, 1.494740, 1.546449>  <1.180585, 1.494740, 0.426825>
  461.     <-3.635688, 1.489740, 1.215607>  <-1.000000, 1.489740, 0.546462>  <0.000000, 1.489740, 0.546462>  <1.216701, 1.489740, 0.113059>
  462.     <-2.594796, 1.484740, 0.066920>  <-1.000000, 1.484740, -0.453526>  <0.000000, 1.484740, -0.453526>  <1.216701, 1.484740, -0.128474>
  463.     <-1.553903, 1.479740, -1.750911>  <-0.891649, 1.479740, -1.706332>  <0.000000, 1.479740, -1.453513>  <1.144468, 1.479740, -0.550591>  }
  464. }
  465. #declare sidefinpatch1 = object {   sidefinpatch11
  466.   rotate <0, 0, -337.206604>
  467.   translate <4.989764, -2.456067, -0.371354>
  468.   texture {FinTex}
  469. }
  470.  
  471. #declare analfinsphere = object {
  472.   sphere {<0,0,0>,1}
  473.   scale <3.671643, 0.01, 7.783871>
  474.   rotate <0, 22.260298, 0>
  475.   translate <-4.699688, 0, -1.909248>
  476.   texture {FinTex}
  477. }
  478.  
  479. #declare dorsalsphere = object {
  480.   sphere {<0,0,0>,1}
  481.   scale <6.05542, 0.01, 8.948157>
  482.   rotate <0, -33.031452, 0>
  483.   translate <-3.338263, 0, 4.932247>
  484. }
  485.  
  486. #declare dorsalsphere1 = object {
  487.   sphere {<0,0,0>,1}
  488.   scale <12.382659, 0.01, 16.276329>
  489.   rotate <0, -22.002117, 0>
  490.   translate <2.898377, 0, 6.812839>
  491. }
  492.  
  493. #declare dorsalsphere2 = object {
  494.   sphere {<0,0,0>,1}
  495.   scale <13.040835, 0.01, 13.14999>
  496.   rotate <0, -22.002117, 0>
  497.   translate <-5.420617, 0, -0.254227>
  498. }
  499.  
  500. #declare dorsalfin = intersection { //this is the only intersection 
  501.   object { dorsalsphere }
  502.   object { dorsalsphere1 }
  503.   object { dorsalsphere2 }
  504.   texture {FinTex}
  505. }
  506.  
  507. #declare fish = union {
  508.   object { fishbody }
  509.   object { pectoralpatch }
  510.   object { tailpatch }
  511.   object { eye1 }
  512.   object { eye2 }
  513.   object { analspine1 }
  514.   object { analspine2 }
  515.   object { dorsalspines }
  516.   object { pectoralpatc1 }
  517.   object { sidefinpatch }
  518.   object { sidefinpatch1 }
  519.   object { analfinsphere }
  520.   object { dorsalfin }
  521.   scale <0.1, 0.1, 0.1>
  522.   translate <0.010437, 0, 7.760437>
  523. }
  524.  
  525.  
  526. union {   // the entire decanter
  527.   object { Decantertop }
  528.   object { Stopper }
  529.   object { Stembead }
  530.   object { Base1 }
  531.   object { fish }
  532.   rotate <-90, 0, 0> //rotate so y=up
  533. }
  534.  
  535.  
  536. //any transformations after this point assume that y=up
  537.  
  538.