home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c100 / 2.ddi / RAYTRACE.ZIP / RAYTRACE.HPP < prev   
Encoding:
C/C++ Source or Header  |  1990-08-14  |  892 b   |  39 lines

  1. /* RAYTRACE.HPP */
  2.  
  3. class RAY
  4. {
  5.     double    dx,    dy,    dz;    /*    Direction Vector    */
  6.     double    ox,    oy,    oz;    /* Orgin                    */
  7.     public:
  8.     RAY(double x, double y, double z, double vx, double vy, double vz);
  9.     friend class PLANE;
  10.     friend class SPHERE;
  11. };
  12.  
  13. class PLANE
  14. {
  15.     double    nx,    ny,    nz;    /* Vector normal ( Perpendicular ) to plane     */
  16.     double   px,    py,    pz;    /* Point on plane                                        */
  17.     public:
  18.     PLANE(double x, double y, double z, double vx, double vy, double vz);
  19.     double Intersect ( RAY ray );
  20.     int Pattern( RAY ray, double time, int light );
  21. };
  22.  
  23. class SPHERE
  24. {
  25.     double   cx,    cy,    cz;    /* Center of SPHERE    */
  26.     double    r2;                    /* Radius^2              */
  27.     public:
  28.     double Intersect ( RAY ray );
  29.     void Reflect ( RAY iray, double time, RAY &rray );
  30.     SPHERE( double x, double y, double z, double r);
  31. };
  32.  
  33. class VECTOR
  34. {
  35.     public:
  36.     double    dx,    dy,    dz;    /* Three dimensional vector */
  37. };
  38.  
  39.