00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _CIvfOldLightModel_h_
00027 #define _CIvfOldLightModel_h_
00028
00029 #include <ivf/IvfObject.h>
00030 #include <ivf/IvfOldLight.h>
00031
00032 IvfSmartPointer(CIvfOldLightModel);
00033
00040 class IVF_API CIvfOldLightModel : public CIvfObject {
00041 public:
00042 void deleteLight(CIvfOldLight* light);
00044 CIvfOldLightModel();
00045
00047 ~CIvfOldLightModel();
00048
00049 IvfClassInfo("CIvfOldLightModel",CIvfObject);
00050
00052 void setAmbient( GLfloat r, GLfloat g,
00053 GLfloat b, GLfloat a );
00054
00056 void setLocalViewer( GLboolean t );
00057
00059 void setTwoSide( GLboolean t );
00060
00062 void getAmbient( GLfloat &r, GLfloat &g,
00063 GLfloat &b, GLfloat &a ) const;
00064
00066 bool getLocalViewer() const;
00067
00069 bool getTwoSide( ) const;
00070
00072 void render();
00073
00079 void setUseReference( bool flag );
00080
00088 void addLight( CIvfOldLight *light );
00089
00091 CIvfOldLight* removeLight( int index );
00092
00094 void deleteLight( int index );
00095
00097 CIvfOldLight* getLight( int i );
00098 const CIvfOldLight* getLight( int i ) const;
00099
00101 int getNoLights() const;
00102
00104 void activate();
00105
00107 void deactivate();
00108
00110 void disableAll();
00111
00112 void deleteAll();
00113 protected:
00114 CIvfOldLightModel& operator = ( const CIvfOldLightModel& );
00115 CIvfOldLightModel( const CIvfOldLightModel& );
00116
00117 private:
00118 bool m_usereference;
00119 std::vector<CIvfOldLight*> m_lights;
00120
00121 GLfloat m_ambient[4];
00122 GLint m_local[1], m_twoside[1];
00123 };
00124
00125 #endif