home *** CD-ROM | disk | FTP | other *** search
/ Mega A/V / mega_av.zip / mega_av / GRAPHUTL / POVSCN.ZIP / INCLUDE.ZIP / SHAPES.OLD < prev    next >
Text File  |  1992-07-02  |  5KB  |  215 lines

  1. // Persistence Of Vision Raytracer 
  2. // Historical include file.
  3.  
  4. // Old standard shapes include file
  5. // Included for historical comparison.  
  6. // Some shapes have been changed
  7. // for POV-Ray Version 1.0.
  8.  
  9. #declare Sphere = quadric {
  10.     <1.0 1.0 1.0>
  11.     <0.0 0.0 0.0>
  12.     <0.0 0.0 0.0>
  13.     -1.0
  14. }
  15.  
  16. #declare Cylinder_X = quadric {
  17.     <0.0 1.0 1.0>
  18.     <0.0 0.0 0.0>
  19.     <0.0 0.0 0.0>
  20.     -1.0
  21. }
  22.  
  23. #declare Cylinder_Y = quadric {
  24.     <1.0 0.0 1.0>
  25.     <0.0 0.0 0.0>
  26.     <0.0 0.0 0.0>
  27.     -1.0
  28. }
  29.  
  30. #declare Cylinder_Z = quadric {
  31.     <1.0 1.0 0.0>
  32.     <0.0 0.0 0.0>
  33.     <0.0 0.0 0.0>
  34.     -1.0
  35. }
  36.  
  37. #declare Cone_X = quadric {
  38.     <-1.0 1.0 1.0>
  39.     <0.0 0.0 0.0>
  40.     <0.0 0.0 0.0>
  41.     0.0
  42. }
  43.  
  44. #declare Cone_Y = quadric {
  45.     <1.0 -1.0 1.0>
  46.     <0.0 0.0 0.0>
  47.     <0.0 0.0 0.0>
  48.     0.0
  49. }
  50.  
  51. #declare Cone_Z = quadric {
  52.     <1.0 1.0 -1.0>
  53.     <0.0 0.0 0.0>
  54.     <0.0 0.0 0.0>
  55.     0.0
  56. }
  57.  
  58. #declare Plane_YZ = quadric {
  59.     <0.0 0.0 0.0>
  60.     <0.0 0.0 0.0>
  61.     <1.0 0.0 0.0>
  62.     0.0
  63. }
  64.        
  65. #declare Plane_XZ = quadric {
  66.     <0.0 0.0 0.0>
  67.     <0.0 0.0 0.0>
  68.     <0.0 1.0 0.0>
  69.     0.0
  70. }
  71.        
  72. #declare Plane_XY = quadric {
  73.     <0.0 0.0 0.0>
  74.     <0.0 0.0 0.0>
  75.     <0.0 0.0 1.0>
  76.     0.0
  77. }
  78.  
  79. /* y^2 + z^2 - x = 0 */
  80. #declare Paraboloid_X = quadric {
  81.     <0.0  1.0  1.0>
  82.     <0.0  0.0  0.0>
  83.     <-1.0 0.0  0.0>
  84.     0.0
  85. }
  86.  
  87. /* x^2 + z^2 - y = 0 */
  88. #declare Paraboloid_Y = quadric {
  89.     <1.0  0.0  1.0>
  90.     <0.0  0.0  0.0>
  91.     <0.0 -1.0  0.0>
  92.     0.0
  93. }
  94.  
  95. /* x^2 + y^2 - z = 0 */
  96. #declare Paraboloid_Z = quadric {
  97.     <1.0  1.0  0.0>
  98.     <0.0  0.0  0.0>
  99.     <0.0  0.0 -1.0>
  100.     0.0
  101. }
  102.  
  103. /* y - x^2 + z^2 = 0 */
  104. #declare Hyperboloid = quadric {
  105.     < -1.0  0.0  1.0>
  106.     <  0.0  0.0  0.0>
  107.     <  0.0  1.0  0.0>
  108.     0.0
  109. }
  110.  
  111. #declare Hyperboloid_Y = quadric {  /* Vertical hyperboloid */
  112.     <1.0 -1.0  1.0>          /*                      */
  113.     <0.0  0.0  0.0>          /*            \   /     */
  114.     <0.0  0.0  0.0>          /* Like this:  ) (      */
  115.     -1.0                     /*            /   \     */
  116. }
  117.  
  118. #declare Cube = intersection {    box { <-1 -1 -1> <1 1 1> } }
  119.  
  120. #declare Tetrahedron = intersection {
  121.     plane { <0.0 -1.0 0.0> 1.0 }
  122.     plane { <0.0 0.0 1.0> 1.0 rotate <-30.0 0.0 0.0> }
  123.     plane { <1.0 0.0 0.0> 1.0 rotate <0.0 30.0 30.0> }
  124.     plane { <-1.0 0.0 0.0> 1.0 rotate <0.0 -30.0 -30.0> }
  125. }
  126.  
  127. #declare X_Disk = intersection {       /* Capped cylinder, Length in x axis */
  128.   quadric { Cylinder_X }
  129.   plane { <1.0 0.0 0.0> 0.0 inverse }
  130.   plane { <1.0 0.0 0.0> 1.0 }
  131. }
  132.  
  133. #declare Y_Disk = intersection {       /* Capped cylinder, Length in y axis */
  134.   quadric { Cylinder_Y }
  135.   plane { <0.0 1.0 0.0> 0.0 inverse }
  136.   plane { <0.0 1.0 0.0> 1.0 }
  137. }
  138.  
  139. #declare Z_Disk = intersection {       /* Capped cylinder, Length in z axis */
  140.   quadric { Cylinder_Z }
  141.   plane { <0.0 0.0 1.0> 0.0 inverse }
  142.   plane { <0.0 0.0 1.0> 1.0 }
  143. }
  144.  
  145. #declare Hexagon = intersection {            /* Hexagonal Solid, axis along x */
  146.     plane { <0.0 0.0 1.0> 1.0 }   /* Rotate 90 in z axis to stand up */
  147.     plane { <0.0 0.0 1.0> 1.0 rotate <60.0 0.0 0.0> }
  148.     plane { <0.0 0.0 1.0> 1.0 rotate <120.0 0.0 0.0> }
  149.     plane { <0.0 0.0 1.0> 1.0 rotate <180.0 0.0 0.0> }
  150.     plane { <0.0 0.0 1.0> 1.0 rotate <240.0 0.0 0.0> }
  151.     plane { <0.0 0.0 1.0> 1.0 rotate <300.0 0.0 0.0> }
  152.     plane { <1.0 0.0 0.0> 1.0 }
  153.     plane { <1.0 0.0 0.0> -1.0 inverse }
  154. }
  155.  
  156. #declare Rhomboid =            /* Three Dimensional 4-Sided Diamond */
  157. intersection {
  158.     plane { <-1.0  0.0  0.0>  1.0 rotate <0.0 0.0 -30.0> }
  159.     plane { < 1.0  0.0  0.0>  1.0 rotate <0.0 0.0 -30.0> }
  160.     plane { < 0.0  0.0  1.0>  1.0 }
  161.     plane { < 0.0  0.0 -1.0>  1.0 }
  162.     plane { < 0.0  1.0  0.0>  1.0 }
  163.     plane { < 0.0 -1.0  0.0>  1.0 }
  164. }
  165.  
  166. #declare Square_X =  union {        /* Scale-able plane in x */
  167.     triangle {
  168.         < 0  1 -1>
  169.         < 0 -1  1>
  170.         < 1  1  1>
  171.     }
  172.     triangle {
  173.         < 0  1 -1>
  174.         < 0 -1  1>
  175.         < 0 -1 -1>
  176.     }
  177. }
  178.  
  179. #declare Square_Y =  union {        /* Scale-able plane in y */
  180.     triangle {
  181.         <-1 0 1>
  182.         <1 0 -1>
  183.         <1 0 1>
  184.     }
  185.     triangle {
  186.         <-1 0  1>
  187.         < 1 0 -1>
  188.         <-1 0 -1>
  189.     }
  190. }
  191.  
  192. #declare Square_Z =  union {        /* Scale-able plane in z */
  193.     triangle {
  194.         <-1 1 0.0>
  195.         <1 -1 0.0>
  196.         <-1 -1 0.0>
  197.     }
  198.     triangle {
  199.         <-1 1 0.0>
  200.         <1 -1 0.0>
  201.         <1 1 0.0>
  202.     }
  203. }
  204.  
  205. #declare Pyramid =
  206.     intersection {
  207.         union {
  208.             triangle { <-1 0 -1> <+1 0 -1> <0 1 0> }
  209.             triangle { <+1 0 -1> <+1 0 +1> <0 1 0> }
  210.             triangle { <-1 0 +1> <+1 0 +1> <0 1 0> }
  211.             triangle { <-1 0 +1> <-1 0 -1> <0 1 0> }
  212.         }
  213.         plane { <0.0 -1.0  0.0> 0.0 }
  214. }
  215.