home *** CD-ROM | disk | FTP | other *** search
/ Ray Tracing Box / RAY_CD.mdf / raytrace / _pov_dat / magnif / magnify.inc < prev    next >
Text File  |  1994-01-14  |  5KB  |  176 lines

  1. // POV-Ray 2.0 include file describing an old-fashioned hand magnifier.
  2. // Dick LeVitt  1/13/94
  3.  
  4.  
  5. // ********  T E X T U R E S  *******
  6. #declare Mymetal = texture { 
  7.      pigment { color red 0.9  green 0.6  blue 0.15 }
  8.      finish {
  9.        ambient 0.25
  10.        diffuse .80
  11.        brilliance 15
  12.        phong 0.41
  13.        phong_size 5
  14.      }   
  15. #declare Handle = texture { Rosewood
  16.                   rotate <10,10,10> 
  17.                   finish {specular 0.8 roughness 0.04}
  18.                   } 
  19.  
  20. // ********  O B J E C T S *******
  21. #declare Sphere002 = object { 
  22.   sphere {<0,0,0>,1}
  23.   scale <5.000000, 5.000000, 5.000000>
  24.   translate <0.000000, 0.000000, 4.841230>
  25. }
  26.  
  27. #declare Sphere001 = object { 
  28.   sphere {<0,0,0>,1}
  29.   scale <5.000000, 5.000000, 5.000000>
  30.   translate <0.000000, 0.000000, -4.841230>
  31. }
  32.  
  33. #declare lens = intersection {
  34.   object { Sphere002 }
  35.   object { Sphere001 }
  36.   texture {
  37.     Glass3
  38.     finish { refraction 1 ior 1.57}
  39.   }
  40. }
  41.  
  42. #declare outerring = cylinder {
  43.   <0,0,1>, <0,0,0>, 1
  44.   texture {
  45.     Mymetal
  46.   }
  47.   scale <1.300000, 1.300000, 0.250000>
  48.   translate <0.000000, 0.000000, -0.1250000>
  49. }
  50.  
  51. #declare innerring = cylinder {
  52.   <0,0,1>, <0,0,0>, 1
  53.   texture {
  54.     Mymetal
  55.   }
  56.   scale <1.200000, 1.200000, 0.2520000>
  57.   translate <0.000000, 0.000000, -0.1260000>
  58. }
  59.  
  60. #declare topring = quartic { 
  61.            // Torus MinRadius=   0.050   MajRadius=   1.250 
  62.            < 1.000,  0.000,  0.000,  0.000,  2.000,
  63.              0.000,  0.000,  2.000,  0.000,  -3.130,
  64.              0.000,  0.000,  0.000,  0.000,  0.000,
  65.              0.000,  0.000,  0.000,  0.000,  0.000,
  66.              1.000,  0.000,  0.000,  2.000,  0.000,
  67.              -3.130,   0.000,  0.000,  0.000,  0.000,
  68.              1.000,  0.000,  3.120, 0.000,  2.434 >
  69.   sturm
  70.   texture {
  71.     Mymetal
  72.   }
  73.   translate <0.000000, 0.000000, 0.125000>
  74. }
  75.  
  76. #declare botring = quartic { 
  77.            // Torus MinRadius=   0.050   MajRadius=   1.250 
  78.            < 1.000,  0.000,  0.000,  0.000,  2.000,
  79.              0.000,  0.000,  2.000,  0.000,  -3.130,
  80.              0.000,  0.000,  0.000,  0.000,  0.000,
  81.              0.000,  0.000,  0.000,  0.000,  0.000,
  82.              1.000,  0.000,  0.000,  2.000,  0.000,
  83.              -3.130,   0.000,  0.000,  0.000,  0.000,
  84.              1.000,  0.000,  3.120, 0.000,  2.434 >
  85.   sturm
  86.   texture {
  87.     Mymetal
  88.   }
  89.   translate <0.000000, 0.000000, -0.125000>
  90. }
  91.  
  92. #declare ring = union {
  93.   difference {
  94.     object { outerring }
  95.     object { innerring }
  96.   }  
  97.   object { topring }
  98.   object { botring }
  99. }
  100.  
  101. /* Quartic Cylinder - moderate neckdown from cylinder */
  102. #declare neckdown= quartic {
  103.    < 0.0,  0.0,  0.0,  0.0,  1.0,  0.0,  0.0,  0.0,  0.0,  0.4,
  104.      0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
  105.      0.0,  0.0,  0.0,  1.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
  106.      0.0,  0.0,  0.4,  0.0, -0.4 >
  107.  
  108.    bounded_by { cylinder {<0,0,0>,<0,1,0>,1} }
  109.    texture {
  110.      Mymetal
  111.    }
  112.    scale <0.275000, .45, 0.275000>
  113.    rotate <-0.000000, -0.000000, -90.000000>
  114.    translate <-1.750000, 0.000000, 0.000000> 
  115. }
  116. #declare neckcyl = cylinder {
  117.   <0,0,1>, <0,0,0>, 1
  118.   texture {
  119.     Mymetal
  120.   }
  121.   scale <0.275000, 0.275000, 0.400000>
  122.   rotate <-0.000000, -90.000000, -0.000000>
  123.   translate <-1.750000, 0.000000, 0.000000>
  124. }
  125. #declare groove = quartic { 
  126.            // Torus MinRadius=   0.050   MajRadius=   1.050 
  127.            < 1.000,  0.000,  0.000,  0.000,  2.000,
  128.              0.000,  0.000,  2.000,  0.000,  -2.210,
  129.              0.000,  0.000,  0.000,  0.000,  0.000,
  130.              0.000,  0.000,  0.000,  0.000,  0.000,
  131.              1.000,  0.000,  0.000,  2.000,  0.000,
  132.              -2.210,   0.000,  0.000,  0.000,  0.000,
  133.              1.000,  0.000,  2.200, 0.000,  1.210 >
  134.   texture {
  135.     Mymetal
  136.   }
  137.   scale <0.262000, 0.262000, 0.262000>
  138.   rotate <-0.000000, 90.000000, -0.000000>
  139.   translate <-1.8500000, 0.000000, 0.000000>
  140. }
  141.  
  142. #declare groovedcyl = difference {
  143.   object { neckcyl }
  144.   object { groove }
  145. }
  146.  
  147. #declare grip = cylinder {
  148.   <0,0,1>, <0,0,0>, 1
  149.   scale <0.275000, 0.275000, 3.500000>
  150.   texture {
  151.     Handle
  152.   }
  153.   rotate <-0.000000, -90.000000, -0.000000>
  154.   translate <-2.150000, 0.000000, 0.000000>
  155. }
  156.  
  157. #declare endcap = cylinder {
  158.   <0,0,1>, <0,0,0>, 1
  159.   texture {
  160.     Mymetal
  161.   }
  162.   scale <0.275000, 0.275000, 0.250000>
  163.   rotate <-0.000000, -90.000000, -0.000000>
  164.   translate <-5.650000, 0.000000, 0.000000>
  165. }
  166.  
  167. #declare magnifier = union {
  168.   object { lens }
  169.   object { ring }
  170.   object { neckdown }
  171.   object { groovedcyl }
  172.   object { grip }
  173.   object { endcap }
  174. }
  175.