home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Raytrace & Morphing / SOS-RAYTRACE.ISO / programm / scripts / pov / dice6s / dice.inc < prev   
Encoding:
Text File  |  1994-05-28  |  2.9 KB  |  75 lines

  1. // POV include file - Defines an object to be used as a six-sided die
  2.  
  3. #include "colors.inc"
  4. #include "textures.inc"
  5.  
  6. // Define a die spot.  This is defined as a disc which is raised (very)
  7. // slightly above the plane of the die face.  This prevents contention
  8. // between the disc object and the box object giving the die faces.
  9. // Note that the color of the disk must be declared as a texture called
  10. // DieSpotTexture, e.g.
  11. //    #declare DieSpotTexture = texture {pigment {color Black}}
  12. // before including this file.  This allows for different textures to be
  13. // used for the spots on different dice.
  14. #declare DieSpot =
  15. object {
  16.    union {
  17.       disc { <1.01, 0, 0>, x, 0.4}
  18.       disc { <1.01, 0, 0>, -1*x, 0.4}
  19.    }
  20.    texture {DieSpotTexture}
  21. }
  22.  
  23. //Define die object.  This object is 2 units on a side, centred at the origin
  24. #declare Die =
  25. object {
  26.    union {
  27.       intersection {
  28.      box { <-2,-2,-2>, < 2, 2, 2> }
  29.      sphere { < 0, 0, 0>, 3.0 }
  30.       }
  31.       // Face 1
  32.       object {DieSpot rotate <  0, 90,  0> translate <0, 0, -1>}
  33.       // Face 2
  34.       object {DieSpot                      translate < 1, 1, 1>}
  35.       object {DieSpot                      translate < 1,-1,-1>}
  36.       // Face 3
  37.       object {DieSpot rotate <  0,  0, 90> translate <-1, 1,-1>}
  38.       object {DieSpot rotate <  0,  0, 90> translate < 0, 1, 0>}
  39.       object {DieSpot rotate <  0,  0, 90> translate < 1, 1, 1>}
  40.       // Face 4
  41.       object {DieSpot rotate <  0,  0,-90> translate <-1,-1,-1>}
  42.       object {DieSpot rotate <  0,  0,-90> translate <-1,-1, 1>}
  43.       object {DieSpot rotate <  0,  0,-90> translate < 1,-1,-1>}
  44.       object {DieSpot rotate <  0,  0,-90> translate < 1,-1, 1>}
  45.       // Face 5
  46.       object {DieSpot rotate <  0,180,  0> translate <-1,-1,-1>}
  47.       object {DieSpot rotate <  0,180,  0> translate <-1, 1,-1>}
  48.       object {DieSpot rotate <  0,180,  0> translate <-1, 0, 0>}
  49.       object {DieSpot rotate <  0,180,  0> translate <-1,-1, 1>}
  50.       object {DieSpot rotate <  0,180,  0> translate <-1, 1, 1>}
  51.       // Face 6
  52.       object {DieSpot rotate <  0,-90,  0> translate <-1, 1, 1>}
  53.       object {DieSpot rotate <  0,-90,  0> translate < 1, 1, 1>}
  54.       object {DieSpot rotate <  0,-90,  0> translate <-1, 0, 1>}
  55.       object {DieSpot rotate <  0,-90,  0> translate < 1, 0, 1>}
  56.       object {DieSpot rotate <  0,-90,  0> translate <-1,-1, 1>}
  57.       object {DieSpot rotate <  0,-90,  0> translate < 1,-1, 1>}
  58.    }
  59.    scale 0.5
  60. }
  61.  
  62. //Define dice with different faces facing upwards
  63. //  Face 1
  64. #declare Die1Up = object {Die rotate < 90, 0,  0>}
  65. //  Face 2
  66. #declare Die2Up = object {Die rotate <  0, 0, 90>}
  67. //  Face 3
  68. #declare Die3Up = object {Die}
  69. //  Face 4
  70. #declare Die4Up = object {Die rotate <180, 0,  0>}
  71. //  Face 5
  72. #declare Die5Up = object {Die rotate <  0, 0,-90>}
  73. //  Face 6
  74. #declare Die6Up = object {Die rotate <-90, 0,  0>}
  75.