19 #include <boost/unordered_map.hpp>
20 #include <boost/unordered_set.hpp>
22 #include <osg/ref_ptr>
23 #include <osg/observer_ptr>
41 class DtOsgLightingComponent;
43 class DtOsgLightsObserver;
63 static std::string theClassName();
66 static LightType getLightType(
const osg::Light* light);
70 void attachToStateSet(osg::StateSet* stateSet);
73 void setPerPixelLightingEnabled(
bool enabled);
76 bool getPerPixelLightingEnabled()
const;
82 void setReservedID(
int id);
85 int reservedID()
const;
92 bool registerLight(
const osg::LightSource* light,
const osg::NodePath& nodePath,
const osg::Matrixd& modelingMatrix,
bool globalLights);
94 void deregisterLight(
const osg::LightSource* light);
99 void update(
const osg::State& state,
DtDe& de);
102 void deactivateLights();
104 int getTextureStartOffset(
void)
const;
108 void releaseGLObjects(
void);
113 void updateLightOnOffStatus(
void);
115 void updateFixedFunctionLights(
const osg::State& state);
117 void updateShaderBasedLights(
const osg::State& state);
120 void configurePerPixelLighting(osg::StateSet*);
121 void setComponentVisualizationMode(
int mode);
123 void slot_reloadShader();
153 bool existsInLightManager(
const DtLight* light)
const;