home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 1995 January / pcw-0195.iso / polyray / dat / animate / cannon / cannon.inc next >
Encoding:
Text File  |  1994-12-31  |  1.6 KB  |  54 lines

  1. // The location of the chamber of the cannon
  2. static define CPos <-10, 0, -8>
  3.  
  4. // Locations of the three cannon balls - they all start inside the cannon
  5. static define Ball1_Pos CPos
  6. static define Ball2_Pos CPos
  7. static define Ball3_Pos CPos
  8. static define Ball4_Pos CPos
  9. static define Ball5_Pos CPos
  10. static define Ball6_Pos CPos
  11.  
  12. static define ang1 1 * pi / 12 // 15 degrees
  13. static define ang2 2 * pi / 12 // 30 
  14. static define ang3 3 * pi / 12 // 45
  15. static define ang4 4 * pi / 12 // 60
  16. static define ang5 5 * pi / 12 // 75
  17.  
  18. static define Ball1_Vel <cos(ang4)*cos(ang4),sin(ang4),sin(ang4)*cos(ang4)>
  19. static define Ball2_Vel <cos(ang2)*cos(ang4),sin(ang4),sin(ang2)*cos(ang4)>
  20. static define Ball3_Vel <cos(ang3)*cos(ang3),sin(ang3),sin(ang3)*cos(ang3)>
  21. static define Ball4_Vel <cos(ang5)*cos(ang2),sin(ang2),sin(ang5)*cos(ang2)>
  22. static define Ball5_Vel <cos(ang1)*cos(ang3),sin(ang3),sin(ang1)*cos(ang3)>
  23. static define Ball6_Vel <cos(ang3)*cos(ang2),sin(ang2),sin(ang3)*cos(ang2)>
  24.  
  25. static define Gravity <0, -0.1, 0>
  26.  
  27. static define bumpy_gray
  28. texture {
  29.    special surface {
  30.       color grey
  31.       normal N + (dnoise(3*W) - white/2)
  32.       ambient 0.2
  33.       diffuse 0.3
  34.       specular white, 0.7
  35.       microfacet Cook 5
  36.       }
  37.    scale <0.05, 0.05, 0.05>
  38.    }
  39.  
  40. static define Cannon
  41. object {
  42.    (  object { sphere <0, 0, 0>, 1.75 }
  43.     + object { cylinder <0, 0, 0>, <4, 0, 0>, 1.3 }
  44.     + object { torus 1.3, 0.3, <4, 0, 0>, <1, 0, 0> })
  45.    - object { cylinder <-0.5, 0, 0>, <4.5, 0, 0>, 1 }
  46.    texture { shiny { color <0.14, 0.42, 0.56> } }
  47.    }
  48.  
  49. static define Projectile
  50. object {
  51.    sphere <0, 0, 0>, 1
  52.    bumpy_gray
  53.    }
  54.