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;
42 class DtOsgLightsObserver;
62 static std::string theClassName();
65 static LightType getLightType(
const osg::Light* light);
69 void attachToStateSet(osg::StateSet* stateSet);
72 void setPerPixelLightingEnabled(
bool enabled);
75 bool getPerPixelLightingEnabled()
const;
81 void setReservedID(
int id);
84 int reservedID()
const;
91 bool registerLight(
const osg::LightSource* light,
const osg::NodePath& nodePath,
const osg::Matrixd& modelingMatrix,
bool globalLights);
93 void deregisterLight(
const osg::LightSource* light);
98 void update(
const osg::State& state,
DtDe& de);
101 void deactivateLights();
103 int getTextureStartOffset(
void)
const;
107 void releaseGLObjects(
void);
112 void updateLightOnOffStatus(
DtDe& de,
const VectorLights& lights);
117 void updateFixedFunctionLights(
const osg::State& state);
119 void updateShaderBasedLights(
const osg::State& state,
const VectorLights& lights);
121 const VectorLights& computeFrustumLights(
const osg::State &state);
123 void proccessLightPath(
DtLight* inLight,
const osg::NodePath& nodePath);
126 void configurePerPixelLighting(osg::StateSet*);
127 void setComponentVisualizationMode(
int mode);
129 void slot_reloadShader();
159 bool existsInLightManager(
const DtLight* light)
const;