home *** CD-ROM | disk | FTP | other *** search
/ Cutting-Edge 3D Game Programming with C++ / CE3DC++.ISO / BOOK / CHAP12 / DETAIL3D.HPP < prev    next >
C/C++ Source or Header  |  1996-01-24  |  1KB  |  60 lines

  1. //
  2. // File name: Detail3D.HPP
  3. //
  4. // Description: A 3D point's detail settings
  5. //
  6. // Author: John De Goes
  7. //
  8. // Project: Cutting Edge 3D Game Programming
  9. //
  10.  
  11. #ifndef DETAIL3DHPP
  12. #define DETAIL3DHPP
  13.  
  14. class Detail3D {
  15. public:
  16.   long U, V, I; // U/Z, V/Z, and intensity variables
  17.   inline Detail3D operator - ( Detail3D &D );
  18.   inline Detail3D operator + ( Detail3D &D );
  19.   inline Detail3D operator * ( double N );
  20.   inline Detail3D operator / ( double N );
  21. };
  22.  
  23. inline Detail3D Detail3D::operator - ( Detail3D &D )
  24.    {
  25.    Detail3D Temp;
  26.    Temp.U = U - D.U;
  27.    Temp.V = V - D.V;
  28.    Temp.I = I - D.I;
  29.    return Temp;
  30.    }
  31.  
  32. inline Detail3D Detail3D::operator + ( Detail3D &D )
  33.    {
  34.    Detail3D Temp;
  35.    Temp.U = U + D.U;
  36.    Temp.V = V + D.V;
  37.    Temp.I = I + D.I;
  38.    return Temp;
  39.    }
  40.  
  41. inline Detail3D Detail3D::operator * ( double N )
  42.    {
  43.    Detail3D Temp;
  44.    Temp.U = ( double ) U * ( double ) N;
  45.    Temp.V = ( double ) V * ( double ) N;
  46.    Temp.I = ( double ) I * ( double ) N;
  47.    return Temp;
  48.    }
  49.  
  50. inline Detail3D Detail3D::operator / ( double N )
  51.    {
  52.    Detail3D Temp;
  53.    Temp.U = ( double ) U / ( double ) N;
  54.    Temp.V = ( double ) V / ( double ) N;
  55.    Temp.I = ( double ) I / ( double ) N;
  56.    return Temp;
  57.    }
  58.  
  59. #endif
  60.