00001 #ifndef _IGS_OBJECT_H_ 00002 #define _IGS_OBJECT_H_ 00003 00004 class IGS_Controller; 00005 class Vector2; 00006 class Vector4; 00007 00008 class IGS_Object 00009 { 00010 public: 00011 IGS_Object(); 00012 virtual ~IGS_Object(); 00013 virtual int BinaryFileSize() const; 00014 void CreateDisplayList( const IGS_Controller& controller ) const; 00015 static int GenerateUid(); 00016 const char* GetIdCode() const; 00017 virtual void GlDraw( const IGS_Controller& controller ) const; 00018 virtual void Prepare( const IGS_Controller& controller ); 00019 virtual bool ReadBinary( char* buffer ); 00020 virtual void Render( const IGS_Controller& controller ) const = 0; 00021 virtual void WriteBinary( char* buffer ) const; 00022 00023 protected: 00024 void GlDraw( const Vector2& point ) const; 00025 void GlDraw( const Vector4& point ) const; 00026 bool PreparationComplete() const; 00027 00028 static char g_IdCode[]; 00029 00030 mutable int m_DisplayListNumber; 00031 int mUid; 00032 bool mPreparationComplete; 00033 }; 00034 00035 #ifdef _DEBUG 00036 void CheckGlErrorCode(); 00037 #else 00038 inline void CheckGlErrorCode(){}; 00039 #endif 00040 00041 #endif