home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Graphics / Graphics.zip / DKBOS2.ZOO / dkb212dt.zoo / poolball.dat < prev    next >
Text File  |  1991-04-12  |  8KB  |  311 lines

  1.    {  Author name : Dan Farmer
  2.                     Minneapolis, MN
  3.    ( with much help from Aaron Collins.)
  4.  
  5.       Pool balls. Illustrates use of intersections.
  6.       Note: Gradients could also be used for the stripes.  The pool table
  7.       needs a rail, and perhaps, pockets.  Maybe a picture of a nude hanging
  8.       on the back wall and a cube of blue chalk sitting on the rail.
  9.       Go for it!!
  10.  
  11.       This data file is for use with DKBTrace by David Buck.  This file
  12.       is released to the public domain and may be used or altered by
  13.       anyone as desired.
  14.    }
  15.  
  16.  
  17. INCLUDE "shapes.dat"
  18. INCLUDE "colors.dat"
  19. INCLUDE "textures.dat"
  20.  
  21. { ***************** SET UP A BUNCH OF DECLARATIONS **************************}
  22.  
  23. DECLARE Ball = SPHERE < 0.0 0.0 0.0 > 1.0 END_SPHERE
  24.  
  25. DECLARE RightSide = OBJECT
  26.     INTERSECTION
  27.         SPHERE Ball END_SPHERE
  28.         PLANE  <-1.0  0.0  0.0 > -0.5 END_PLANE  { Cut by Plane Facing Left }
  29.     END_INTERSECTION
  30.     TEXTURE
  31.       Shiny
  32.       COLOR White
  33.     END_TEXTURE
  34.     COLOR White
  35. END_OBJECT
  36.  
  37.  
  38. DECLARE Stripe = INTERSECTION    { Note: we don't know the OBJECT color yet! }
  39.     SPHERE Ball END_SPHERE
  40.     PLANE  <-1.0  0.0  0.0 > 0.5 END_PLANE  { Cut by Plane Facing Left }
  41.     PLANE  <1.0  0.0  0.0 >  0.5 END_PLANE  { And by Plane Facing Right }
  42. END_INTERSECTION
  43.  
  44.  
  45. DECLARE LeftSide = OBJECT
  46.     INTERSECTION
  47.         SPHERE Ball END_SPHERE
  48.         PLANE  <1.0  0.0  0.0 > -0.5 END_PLANE  { Cut by Plane Facing Right }
  49.     END_INTERSECTION
  50.     TEXTURE
  51.       Shiny
  52.       COLOR White
  53.     END_TEXTURE
  54.     COLOR White
  55. END_OBJECT
  56.  
  57.  
  58.  
  59. DECLARE _1_Ball = OBJECT
  60.     SPHERE  Ball  END_SPHERE
  61.     TEXTURE Shiny COLOR Yellow END_TEXTURE
  62.     COLOR   Yellow
  63. END_OBJECT
  64.  
  65. DECLARE _2_Ball = OBJECT
  66.     SPHERE  Ball  END_SPHERE
  67.     TEXTURE Shiny COLOR Blue END_TEXTURE
  68.     COLOR   Blue
  69. END_OBJECT
  70.  
  71. DECLARE _3_Ball = OBJECT
  72.     SPHERE  Ball  END_SPHERE
  73.     TEXTURE Shiny COLOR Red END_TEXTURE
  74.     COLOR   Red
  75. END_OBJECT
  76.  
  77. DECLARE _4_Ball = OBJECT
  78.     SPHERE  Ball  END_SPHERE
  79.     TEXTURE Shiny COLOR Violet END_TEXTURE
  80.     COLOR   Violet
  81. END_OBJECT
  82.  
  83. DECLARE _5_Ball = OBJECT
  84.     SPHERE  Ball  END_SPHERE
  85.     TEXTURE Shiny COLOR Orange END_TEXTURE
  86.     COLOR   Orange
  87. END_OBJECT
  88.  
  89. DECLARE _6_Ball = OBJECT
  90.     SPHERE  Ball  END_SPHERE
  91.     TEXTURE Shiny COLOR ForestGreen END_TEXTURE
  92.     COLOR   ForestGreen
  93. END_OBJECT
  94.  
  95. DECLARE _7_Ball = OBJECT
  96.     SPHERE  Ball  END_SPHERE
  97.     TEXTURE Shiny COLOR Maroon END_TEXTURE
  98.     COLOR   Maroon
  99. END_OBJECT
  100.  
  101. DECLARE _8_Ball = OBJECT
  102.     SPHERE  Ball  END_SPHERE
  103.     TEXTURE Shiny COLOR Black END_TEXTURE
  104.     COLOR   Black
  105. END_OBJECT
  106.  
  107.  
  108.  
  109. DECLARE _9_Ball = COMPOSITE    { Yellow Stripe }
  110.     OBJECT
  111.       INTERSECTION Stripe END_INTERSECTION
  112.       TEXTURE Shiny COLOR Yellow END_TEXTURE
  113.       COLOR Yellow
  114.     END_OBJECT
  115.     OBJECT LeftSide  END_OBJECT
  116.     OBJECT RightSide END_OBJECT
  117. END_COMPOSITE
  118.  
  119. DECLARE _10_Ball = COMPOSITE    { Blue Stripe }
  120.     OBJECT
  121.       INTERSECTION Stripe END_INTERSECTION
  122.       TEXTURE Shiny COLOR Blue END_TEXTURE
  123.       COLOR Blue
  124.     END_OBJECT
  125.     OBJECT LeftSide  END_OBJECT
  126.     OBJECT RightSide END_OBJECT
  127. END_COMPOSITE
  128.  
  129. DECLARE _11_Ball = COMPOSITE    { Red Stripe }
  130.     OBJECT
  131.       INTERSECTION Stripe END_INTERSECTION
  132.       TEXTURE Shiny COLOR Red END_TEXTURE
  133.       COLOR Red  
  134.     END_OBJECT
  135.     OBJECT LeftSide  END_OBJECT
  136.     OBJECT RightSide END_OBJECT
  137. END_COMPOSITE
  138.  
  139.  
  140. DECLARE _12_Ball = COMPOSITE    { Violet Stripe }
  141.     OBJECT
  142.       INTERSECTION Stripe END_INTERSECTION
  143.       TEXTURE Shiny COLOR Violet END_TEXTURE
  144.       COLOR Violet
  145.     END_OBJECT
  146.     OBJECT LeftSide  END_OBJECT
  147.     OBJECT RightSide END_OBJECT
  148. END_COMPOSITE
  149.  
  150. DECLARE _13_Ball = COMPOSITE    { Orange Stripe }
  151.     OBJECT
  152.       INTERSECTION Stripe END_INTERSECTION
  153.       TEXTURE Shiny COLOR Orange END_TEXTURE
  154.       COLOR Orange
  155.     END_OBJECT
  156.     OBJECT LeftSide  END_OBJECT
  157.     OBJECT RightSide END_OBJECT
  158. END_COMPOSITE
  159.  
  160. DECLARE _14_Ball = COMPOSITE    { Green Stripe }
  161.     OBJECT
  162.       INTERSECTION Stripe END_INTERSECTION
  163.       TEXTURE Shiny COLOR ForestGreen END_TEXTURE
  164.       COLOR ForestGreen
  165.     END_OBJECT
  166.     OBJECT LeftSide  END_OBJECT
  167.     OBJECT RightSide END_OBJECT
  168. END_COMPOSITE
  169.  
  170. DECLARE _15_Ball = COMPOSITE    { Maroon Stripe }
  171.     OBJECT
  172.       INTERSECTION Stripe END_INTERSECTION
  173.       TEXTURE Shiny COLOR Maroon END_TEXTURE
  174.       COLOR Maroon
  175.     END_OBJECT
  176.     OBJECT LeftSide  END_OBJECT
  177.     OBJECT RightSide END_OBJECT
  178. END_COMPOSITE
  179.  
  180. DECLARE CueStick = OBJECT
  181.     INTERSECTION
  182.       QUADRIC Cylinder_Y END_QUADRIC
  183.       PLANE <0.0  1.0  0.0>  1.0 END_PLANE     { Cut by Plane Facing Up }
  184.     END_INTERSECTION
  185.     TEXTURE
  186.       Dark_Wood
  187.       SCALE <0.01  0.01  0.01>
  188.       AMBIENT 0.3
  189.       DIFFUSE 0.7
  190.       PHONG 1.0
  191.       PHONGSIZE 20
  192.       REFLECTION 0.3
  193.     END_TEXTURE
  194. END_OBJECT        
  195.  
  196. { ***************** SET UP THE VIEW & LIGHT SOURCES *************************}
  197.  
  198. VIEW_POINT
  199.    LOCATION <0.0  0.0  -15.0>
  200.    DIRECTION <0.0 0.0  1.0>
  201.    UP  <0.0  1.0  0.0>
  202.    RIGHT <1.33333 0.0 0.0>
  203. END_VIEW_POINT
  204.  
  205. { Light }
  206. OBJECT
  207.    SPHERE <0.0  0.0  0.0>  2.0 END_SPHERE
  208.    TRANSLATE <2.0  2.0  -250.0>
  209.    ROTATE < 70.0 0.0 0.0 >
  210.    TEXTURE
  211.      COLOR White
  212.      AMBIENT 1.0
  213.      DIFFUSE 0.0
  214.    END_TEXTURE
  215.    LIGHT_SOURCE
  216.    COLOR White
  217. END_OBJECT
  218.  
  219. { ************************** SET UP THE TABLE *******************************}
  220.     NOTE : The pooltable is set up as a composite in the X-Y Plane and then 
  221.            the whole thing is thing is tilted "flat". 
  222.            I personally find this easier to visualize.
  223. }         
  224. COMPOSITE
  225.     OBJECT     { Felt table top }
  226.         PLANE <0.0 0.0 1.0 > 1.0 END_PLANE
  227.         TEXTURE Dull COLOR MediumForestGreen END_TEXTURE
  228.     COLOR MediumForestGreen
  229.     END_OBJECT
  230.  
  231.     { Cue stick }
  232.     OBJECT CueStick
  233.         SCALE     <  0.15  1.0  0.15  >         { Skinny and long }
  234.         TRANSLATE <  0.0  -7.5    0.0  > 
  235.     END_OBJECT
  236.  
  237.     { Cue Ball }
  238.     OBJECT
  239.         SPHERE Ball END_SPHERE
  240.         TRANSLATE < 0.0  -6.0  0.0 >
  241.         TEXTURE Shiny COLOR White END_TEXTURE
  242.         COLOR White
  243.     END_OBJECT
  244.  
  245. { **************************** SET UP THE BALLS *******************************}
  246.     { Row #1 }
  247.     OBJECT _1_Ball
  248.     END_OBJECT
  249.  
  250.     { Row #2 }
  251.     OBJECT _3_Ball
  252.         TRANSLATE < 1.0  1.732  0.0 >
  253.     END_OBJECT
  254.     COMPOSITE _10_Ball
  255.         ROTATE < 0.0  0.0  -80.0 >
  256.         TRANSLATE < -1.0  1.732  0.0 >
  257.     END_COMPOSITE
  258.  
  259.     { Row #3 }
  260.     COMPOSITE _11_Ball
  261.         ROTATE < 0.0  -15.0  -2.0 >
  262.         TRANSLATE < 2.0  3.464  0.0 >
  263.     END_COMPOSITE
  264.     OBJECT _8_Ball
  265.         TRANSLATE < 0.0  3.464  0.0 >
  266.     END_OBJECT
  267.     OBJECT _5_Ball
  268.         TRANSLATE <-2.0  3.464  0.0 >
  269.     END_OBJECT
  270.  
  271.     { Row #4 }
  272.     OBJECT _2_Ball
  273.         TRANSLATE <-3.0  5.196  0.0 >
  274.     END_OBJECT
  275.     OBJECT _7_Ball
  276.         TRANSLATE <-1.0  5.196  0.0 >
  277.     END_OBJECT
  278.     OBJECT _4_Ball
  279.         TRANSLATE < 1.0  5.196  0.0 >
  280.     END_OBJECT
  281.     COMPOSITE _14_Ball
  282.         ROTATE < 0.0  -15.0  -2.0 >
  283.         TRANSLATE < 3.0  5.196  0.0 >
  284.     END_COMPOSITE
  285.  
  286.     { Row #5 }
  287.     COMPOSITE _15_Ball
  288.         TRANSLATE <-4.0  6.928  0.0 >
  289.     END_COMPOSITE
  290.     COMPOSITE _13_Ball
  291.         ROTATE < -5.0  11.0  -1.0 >
  292.         TRANSLATE <-2.0  6.928  0.0 >
  293.     END_COMPOSITE
  294.     COMPOSITE _9_Ball
  295.         ROTATE < -80.0  -13.0  29.0 >
  296.         TRANSLATE < 0.0  6.928  0.0 >
  297.     END_COMPOSITE
  298.     COMPOSITE _12_Ball
  299.         ROTATE < 15.0  15.0  -2.0 >
  300.         TRANSLATE < 2.0  6.928  0.0 >
  301.     END_COMPOSITE
  302.     OBJECT _6_Ball
  303.         TRANSLATE < 4.0  6.928  0.0 >
  304.     END_OBJECT
  305.  
  306.     ROTATE < 70.0  0.0  0.0 >     
  307. END_COMPOSITE
  308.  
  309.  
  310.