home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Amiga / Jeux / demos / crystalPPC.lha / thing.h < prev    next >
C/C++ Source or Header  |  1998-01-15  |  1KB  |  48 lines

  1. #ifndef THING_H
  2. #define THING_H
  3.  
  4. #ifndef MATH3D_H
  5. #include "math3d.h"
  6. #endif
  7.  
  8. #ifndef POLYSET_H
  9. #include "polyset.h"
  10. #endif
  11.  
  12. class Sector;
  13. class Light;
  14. class ViewPolygon;
  15. class World;
  16. class Textures;
  17.  
  18. class Thing : public PolygonSet
  19. {
  20. private:
  21.   Sector* home, * other;
  22.   Vector3 v_obj2world;
  23.   Matrix3 m_obj2world, m_world2obj;
  24.  
  25. public:
  26.   Thing (char* name, int max_v, int max_p);
  27.   ~Thing ();
  28.  
  29.   void set_move (Sector* home, Vector3& v) { set_move (home, v.x, v.y, v.z); }
  30.   void set_move (Sector* home, float x, float y, float z);
  31.   void set_transform (Matrix3& matrix);
  32.   void move (float dx, float dy, float dz);
  33.   void move (Vector3& v) { move (v.x, v.y, v.z); }
  34.   void transform (Matrix3& matrix);
  35.   void transform ();
  36.  
  37.   void mipmap_settings (int setting);
  38.   void shine (Light* light);
  39.   void clear_shine_done ();
  40.   void draw (ViewPolygon* view, Matrix3& m_w2c, Matrix3& m_c2w, Vector3& v_w2c);
  41.  
  42.   void save (FILE* fp, int indent, Textures* textures);
  43.   void load (World* w, char** buf, Textures* textures);
  44.   void load_sixface (World* w, char** buf, Textures* textures);
  45. };
  46.  
  47. #endif /*THING_H*/
  48.