16 #include <boost/unordered_map.hpp>
18 #include <osg/observer_ptr>
22 #include <matrix/vlVector.h>
36 class DtOsgLightsObserver;
62 virtual void initialize();
66 virtual void attachToStateSet(osg::StateSet* stateSet);
69 virtual void setPerPixelLightingEnabled(
bool enabled);
72 virtual bool perPixelLightingEnabled()
const;
78 virtual void setReservedID(
int id);
81 virtual int reservedID()
const;
85 virtual void cullReset();
88 virtual bool registerLight(
const osg::LightSource* light,
const osg::NodePath& nodePath,
const osg::Matrixd& modelingMatrix,
bool globalLights);
91 virtual void deregisterLight(
const osg::LightSource* light);
94 virtual void update(
const osg::State& state,
DtDe& de);
96 virtual int getTextureStartOffset(
void)
const;
100 virtual void releaseGLObjects(
void);
106 static const std::string& theClassName();
109 static LightType lightType(
const osg::Light* light);
112 virtual void updateLightOnOffStatus(
DtDe& de,
const VectorLights& lights);
117 virtual void updateFixedFunctionLights(
const osg::State& state);
119 virtual void updateShaderBasedLights(
const osg::State& state,
const VectorLights& lights);
121 virtual const VectorLights& computeFrustumLights(
const osg::State &state);
123 virtual void proccessLightPath(
DtLight* inLight,
const osg::NodePath& nodePath);
125 virtual void configurePerPixelLighting(osg::StateSet*);
127 virtual void setComponentVisualizationMode(
int mode);
129 virtual void slot_reloadShader();
131 virtual bool existsInLightManager(
const DtLight* light)
const;
DtLightManager * myLightManager
Definition: DtOsgLightManager.h:147
LightManager class which allows creation/deletion of lights.
Definition: DtLightManager.h:30
Virtual base class.
Definition: DtVirtualBaseClass.h:22
std::vector< DtLight > VectorLightObjects
Definition: DtOsgLightManager.h:38
DtDe & myDe
Definition: DtOsgLightManager.h:134
MapLightSourceHashToLights myMapLightSourceHashToLights
Definition: DtOsgLightManager.h:152
DtOsgLightsObserver * myOsgLightsObserver
Definition: DtOsgLightManager.h:154
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Definition: featureContext.h:37
bool myPerPixelLightingEnabled
Definition: DtOsgLightManager.h:139
An OSG implementation of the sky.
Definition: DtOsgSkyObject.h:46
boost::unordered_map< size_t, LightSourceAndLight > MapLightSourceHashToLights
Definition: DtOsgLightManager.h:151
bool myInitialized
Definition: DtOsgLightManager.h:135
osg::observer_ptr< osg::StateSet > myStateSet
Definition: DtOsgLightManager.h:144
LightType
Definition: DtLight.h:32
VectorLights myActiveLights
Definition: DtOsgLightManager.h:145
DtOsgLightManager receives LightSource nodes from the DtOsgCullVisitor, and collects them all here wh...
Definition: DtOsgLightManager.h:46
int myReservedID
Definition: DtOsgLightManager.h:137
bool myDebugCallbackInitialized
Definition: DtOsgLightManager.h:136
Contains the DtOsgLightingComponent class.
Class for generic lights.
Definition: DtLight.h:48
const char int mode
Definition: ioapi.h:38
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
osg::ref_ptr< osg::Uniform > myComponentDebugUniform
Definition: DtOsgLightManager.h:142
osg::ref_ptr< DtOsgLightingComponent > myLightingComponent
Definition: DtOsgLightManager.h:141
bool myLightingComponentInstalled
Definition: DtOsgLightManager.h:143
std::pair< const osg::LightSource *, const makVrv::DtLight * > LightSourceAndLight
Definition: DtOsgLightManager.h:149