home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 9 / CD_ASCQ_09_1193.iso / news / 4444 / diver4 / finhead.inc < prev    next >
Text File  |  1992-06-14  |  5KB  |  189 lines

  1. //------ Fin Head .......... 6/4/92 Mike Miller
  2.  
  3. include "tex.inc"
  4. #include "tube1.inc"
  5. #include "tube2.inc"
  6.  
  7.  
  8. #declare FIN = intersection { Cube scale <1 55  35>  }
  9.  
  10. #declare DIFF1 = 
  11. union {
  12.   difference {
  13.     quadric { Sphere scale <22 33 21> }
  14.        plane { <0 1 0> 0 }
  15.   }
  16.          intersection { Y_Disk scale <22 10 21> translate <0 -10 0> }
  17. }         
  18.  
  19.  
  20. //----- Head Section
  21. #declare HEAD =
  22. composite {
  23. object {
  24. union {
  25.   difference {
  26.     union {
  27. quadric { Cylinder_Z scale <15.5 5.5 1> translate <0 -5 0> }
  28. quadric { Cylinder_Z scale <15.5 5.5 1> translate <0 -12 0> }
  29. quadric { Cylinder_Z scale <4.5 6.5 1> translate <-12 -8.5 0> }
  30. quadric { Cylinder_Z scale <4.5 6.5 1> translate <12 -8.5 0> }
  31. union {
  32. intersection { FIN rotate <0 0 0> }
  33. intersection { FIN rotate <0 0 22.5> }
  34. intersection { FIN rotate <0 0 45> }  
  35. intersection { FIN rotate <0 0 67.5> }
  36. intersection { FIN rotate <0 0 90> }
  37. intersection { FIN rotate <0 0 112.5> }
  38. intersection { FIN rotate <0 0 135> }
  39. intersection { FIN rotate <0 0 157.5> }
  40. translate <0 -10 0> }
  41.     }
  42. union { DIFF1 inverse translate <0 0 -1> }
  43. plane { <0 1 0> -20 }
  44. quadric { Cylinder_Z scale <14 4 1> translate <0 -5 0> }
  45. quadric { Cylinder_Z scale <14 4 1> translate <0 -12 0> }
  46. quadric { Cylinder_Z scale <3 5 1> translate <-12 -8.5 0> }
  47. quadric { Cylinder_Z scale <3 5 1> translate <12 -8.5 0> }
  48.     }
  49. quadric { Sphere scale <20 20 20> }
  50. intersection { Y_Disk scale <20 10 20> translate <0 -10 0> }
  51.    }
  52. texture { GOLD_M }
  53. bounded_by { sphere { <0 0 0> 40 }
  54.    }
  55.    }
  56. //----Lens
  57. object {
  58. quadric { Sphere scale <18 15 25> translate <0 -8.5 0> }
  59. texture { color Black reflection 0.2 phong 1 ambient 0.1 phong_size 75 }
  60. }
  61. }
  62.  
  63.  
  64. //------ Air Filter
  65. #declare FILTER = object {
  66.  
  67. union {
  68.   intersection { X_Disk scale <7 4 4> }
  69.   intersection { X_Disk scale <4 5 5> }
  70.   intersection { Y_Disk scale <2 3 2> translate <0 -5 0> }
  71.   intersection { Z_Disk scale <1.5 1.5 10> translate <0 0 10> rotate <-24 0 0 > }
  72.   intersection { Z_Disk scale <1.5 1.5 10> translate <5 0 10> rotate <-24 0 0 > }
  73.   intersection { Z_Disk scale <1.5 1.5 10> translate <-5 0 10> rotate <-24 0 0 > }
  74.  
  75.     intersection {
  76.     quadric { Cone_Y scale <6 10 6> }
  77.     plane { <0 -1 0> 10 }
  78.     plane { <0 1 0> 0 }
  79.     translate <0 -6 0> 
  80.     }
  81.   intersection { Y_Disk scale <7 0.5 7> translate <0 -16.5 0> }
  82.     intersection {
  83.     sphere { <0 -17 0> 6 }
  84.     plane { <0 1 0> -17 }
  85.     }
  86. }
  87. texture { GOLD_M }
  88.     bounded_by {
  89.         sphere { <0 -9 4> 24 }
  90.     }
  91. }
  92.  
  93.  
  94.  
  95. #declare EAR = object {
  96. union {
  97.   intersection { X_Disk scale <4 6 6> translate <-4 0 0> }
  98.   intersection { X_Disk scale <1 7 7> translate <-8 0 0> }
  99.   quadric { Sphere scale <2 6 6> translate <-9 0 0> }
  100.   quadric { Sphere scale <2 3 3> translate <-11 0 0> }
  101. }
  102. texture { BLUE_M }
  103.     bounded_by {
  104.         sphere { <-5 0 0> 11 }
  105.     }
  106. }
  107.  
  108.  
  109. //---- Neck Disk
  110. #declare D1 = intersection { Y_Disk scale <10 0.7 10> }
  111.  
  112. #declare C1 = quadric { Cylinder_X scale <1 5 5> translate <0 0 -15> }
  113.  
  114.  
  115.  
  116. //-------- Chest Plate
  117. #declare CHEST = object {
  118. union {
  119. union {
  120.   intersection { Y_Disk scale <8 10 8> translate <0 0 0> }
  121.   intersection { Cube scale <10 20 20> translate <0 -40 0> }
  122.   intersection { Y_Disk scale <10 10 10> translate <10 -30 0> }
  123.   intersection { Y_Disk scale <10 10 10> translate <-10 -30 0> }
  124.   intersection { D1  translate <0 -2 0> }
  125.   intersection { D1  translate <0 1 0> }
  126.   intersection { D1  translate <0 4 0> }
  127.   intersection { D1  translate <0 7 0> }
  128.   quadric { Sphere scale <10 10 10> translate <-10 -20 0> }
  129.   quadric { Sphere scale <10 10 10> translate <10 -20 0> }
  130. }
  131. difference {
  132. union {
  133.   quadric { C1 rotate <0 0 0> }
  134.   quadric { C1 rotate <22.5 0 0> }
  135.   quadric { C1 rotate <45 0 0> }
  136.   quadric { C1 rotate <67.5 0 0> }
  137.   quadric { C1 rotate <90 0 0> }
  138.   }
  139.   plane { <1 0 0> -10 }
  140.   plane { <1 0 0> 10 inverse }
  141.   translate <0 -20 0>
  142.   }
  143. }
  144. texture { GRAY_M }
  145.     bounded_by {
  146.         sphere { <0 -20 0> 40 }
  147.     }
  148. }
  149.  
  150.  
  151. //----- Air Tank
  152. #declare TANK = object {
  153. union {
  154.   intersection { Y_Disk scale <13 40 13> translate <0 -40 0> }
  155.   intersection { Y_Disk scale <4 3 4> translate <0 13 0> }
  156.   quadric { Sphere scale <13 13 13> }
  157. }
  158. texture { GOLD_M }
  159. }
  160.  
  161.  
  162. //------ Neck Rods
  163. #declare ROD = object {
  164. union {
  165.   intersection { Y_Disk scale <1 25 1> translate <-13 -45 -13> }
  166.   intersection { Y_Disk scale <1 25 1> translate <13 -45 -13> }
  167. }
  168. texture { BLUE_M }
  169. }
  170.  
  171.  
  172. //------ Build The Aquadius Fin Head 
  173.  
  174. #declare FIN_HEAD =
  175. composite {
  176. composite { HEAD }                                   //----- fin head & lens
  177. composite { P1 translate <0 -27 -30> }               //----- inner pipe
  178. composite { P2 translate <0 -27 -30> }               //----- pipe ribs
  179. object { FILTER translate <0 -27 -30> }              //----- Filter
  180. object { EAR rotate <0 0 0> translate <-16 -13 0> }  //----- L Ear
  181. object { EAR rotate <0 180 0> translate <16 -13 0> } //----- R Ear
  182. object { CHEST translate <0 -30 0> }                 //----- Chest Plate
  183. object { TANK translate <-29 -40 19> }               //----- L Tank
  184. object { TANK translate <29 -40 19> }                //----- R Tank
  185. object { ROD }                                       //----- Neck Rods
  186.  
  187. }
  188.  
  189.