home *** CD-ROM | disk | FTP | other *** search
/ Cutting-Edge 3D Game Programming with C++ / CE3DC++.ISO / BOOK / CHAP08 / POLYOBJ.HPP < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-15  |  1.7 KB  |  52 lines

  1. //
  2. // File name: PolyObj.HPP
  3. //
  4. // Description: Header file for a panel object class
  5. //
  6. // Author: John De Goes
  7. //
  8. // Project: Cutting Edge 3D Game Programming
  9. //
  10.  
  11. #ifndef POLYOBJHPP
  12. #define POLYOBJHPP
  13.  
  14. #include "Matrix3D.HPP"
  15. #include "Point3D.HPP"
  16. #include "ATypes.HPP"
  17. #include "Panel3D.HPP"
  18.  
  19. // An object made of panels:
  20. class PanelObject {
  21.   Point3D *TList;         // Temporary vertex list (used for loading)
  22. protected:              // Data is protected
  23.   void CalcRadius ();     // Calculates radius of object
  24.   void Transform ( Matrix3D &M );       // Transforms vertex list
  25.   Point3D LoadCoord ( FILE *InFile );   // Loads a coordinate
  26.   DWORD CountPanels ( char *FileName ); // Counts 3DFACEs
  27.   WORD LoadVerts ( char *FileName );    // Loads vertex list
  28.   WORD LoadPanelData ();                // Loads panel data
  29.   WORD LoadPanel ( int &VIndex, int Index ); // Loads a panel
  30. public:                                 // Data is public
  31.   PanelObject () { VCount = PCount = 0; } // Constructor
  32.   ~PanelObject ()                         // Destructor
  33.     {
  34.     if ( VList )
  35.        delete [] VList;
  36.     if ( PList )
  37.        delete [] PList;
  38.     }
  39.   Point3D  *VList;  // The list of vertices
  40.   Panel3D *PList;   // The list of panels
  41.   DWORD   VCount;   // The vertex count
  42.   DWORD   PCount;   // The panel count
  43.   WORD Visible;     // A visible flag
  44.   double Radius;    // The object's radius
  45.   void Display ( Matrix3D &M, unsigned char *Buffer ); // A display function
  46.   void LoadDXF ( char *FileName );  // A function for loading DXF files
  47.   void WriteBIN ( char *FileName ); // A function for writing BIN files
  48.   void ReadBIN ( char *FileName );  // A function for reading BIN files
  49. };
  50.  
  51. #endif
  52.