00001 //============================================================================= 00016 #ifndef __SCENE_H_ICNLDUDED__ 00017 #define __SCENE_H_ICNLDUDED__ 00018 00019 #include "vector.h" 00020 00021 // forward declarations 00022 class IModel; 00023 class IShader; 00024 class ICameraState; 00025 class ILightingState; 00026 class ITextureState; 00027 00028 00029 //============================================================================= 00030 // IScene - manages test geometry and environment 00031 //============================================================================= 00032 00039 class IScene 00040 { 00041 public: 00045 static IScene* create( void ); 00046 virtual ~IScene( void ) {} 00047 00052 virtual void init( void ) = 0; 00053 00056 virtual void shutdown( void ) = 0; 00057 00060 virtual void render( void ) = 0; 00061 00062 00065 virtual ICameraState* getCameraState( void ) = 0; 00066 00069 virtual ILightingState* getLightingState( void ) = 0; 00070 00073 virtual ITextureState* getTextureState( void ) = 0; 00074 00077 virtual IShader* getShader( void ) = 0; 00078 00079 00083 virtual void setClearColor( const vec4_t & color ) = 0; 00084 00085 00092 virtual void setCurrentModel( IModel* model ) = 0; 00093 00095 virtual IModel* getCurrentModel( void ) = 0; 00096 00097 00103 virtual void setUseProgram( bool enable ) = 0; 00104 00109 virtual void setShowOrigin( bool enable ) = 0; 00110 00115 virtual void setShowNormals( bool enable ) = 0; 00116 00121 virtual void setShowBoundingBox( bool enable ) = 0; 00122 00127 virtual void setShowTangents( bool enable ) = 0; 00128 00134 virtual void setWireframe( bool enable ) = 0; 00135 00140 virtual void setBackFaceCulling( bool enable ) = 0; 00141 }; 00142 00143 00144 #endif // __SCENE_H_ICNLDUDED__