![]() |
VR-Forces Developer's Guide
|
DtOsgLightManager receives LightSource nodes from the DtOsgCullVisitor, and collects them all here where they may by applied simultaneously at the same time.

Public Member Functions | |
| virtual | ~DtOsgLightManager () |
| virtual void | initialize () |
| virtual void | attachToStateSet (osg::StateSet *stateSet) |
| virtual void | setPerPixelLightingEnabled (bool enabled) |
| virtual bool | perPixelLightingEnabled () const |
| virtual DtLightManager & | lightManager () |
| virtual void | setReservedID (int id) |
| virtual int | reservedID () const |
| virtual bool | registerLight (const osg::LightSource *light, const osg::NodePath &nodePath, const osg::Matrixd &modelingMatrix, bool globalLights, const osg::Camera *osgCamera) |
| virtual void | deregisterLight (const osg::LightSource *light) |
| virtual void | update (const osg::State &state, const osg::Camera *camera) |
| virtual void | releaseGLObjects (void) |
| virtual unsigned int | getOrCreateLightSourceTypeId (const osg::LightSource &lightSource) |
| virtual unsigned int | getOrCreateDynamicLightSourceTypeId (const DtLight *pDtLight) |
| virtual void | deleteDynamicLightSourceTypeId (const DtLight *pDtLight) |
| virtual LightReusableVector | lightSourceTypeLightVector () const |
| virtual void | updateLightSourceType (unsigned int id, const DtLight *light) |
| virtual const DtOsgLightingComponent * | lightingComponent () const |
| virtual DtOsgLightingComponent * | lightingComponent () |
Public Member Functions inherited from makVrv::DtVirtualBaseClass | |
| DtVirtualBaseClass () | |
| virtual | ~DtVirtualBaseClass () |
Static Public Member Functions | |
| static DtOsgLightManager & | instance (DtDe &de) |
| static const std::string & | theClassName () |
Static Public Attributes | |
| static const int | theMwirLightSourceSensorMask = 0b0100 |
| static const int | theLwirLightSourceSensorMask = 0b1000 |
| static const int | theIrLightSourceSensorMask = theMwirLightSourceSensorMask | theLwirLightSourceSensorMask |
| static const int | theNvgLightSourceSensorMask = 0b0010 |
| static const int | theVisualLightSourceSensorMask = 0b0001 |
| static const int | theDefaultLightSourceSensorMask = theNvgLightSourceSensorMask | theVisualLightSourceSensorMask |
Protected Types | |
| typedef std::pair< const osg::LightSource *, const makVrv::DtLight * > | LightSourceAndLight |
| typedef std::unordered_map < size_t, LightSourceAndLight > | MapLightSourceHashToLights |
| typedef std::map< size_t, unsigned int > | MapLightSourceTypeToLightID |
Protected Member Functions | |
| DtOsgLightManager (DtDe &de) | |
| virtual bool | computeLightStatusForTime (const DtLight *pDtLight, float ambientLightValue) const |
| virtual void | updateShaderBasedLights (const osg::State &state, const osg::Camera *camera, DtOsgLightManagerTcsUserData *tcsUserData) |
| virtual void | computeFrustumLights (const osg::State &state, const osg::Camera *camera, DtOsgLightManagerTcsUserData *tcsUserData) const |
| virtual void | computeActiveLights (DtOsgLightManagerTcsUserData *tcsUserData, const osg::Camera *camera) const |
| virtual void | proccessLightPath (DtLight *inLight, const osg::NodePath &nodePath) |
| virtual void | configurePerPixelLighting (osg::StateSet *) |
| virtual void | slot_reloadShader () |
| virtual bool | existsInLightManager (const DtLight *light) const |
| virtual void | convertOsgLightToDtLight (DtLight *pDtLight, const osg::LightSource &lightSource, const osg::Matrixd &modelingMatrix) |
| virtual void | getWorldPositionAndDirection (const osg::LightSource &lightSource, const osg::Matrixd &modelingMatrix, osg::Vec3d &vWorldPos, osg::Vec3d &vWorldDir) const |
| virtual unsigned int | getOrCreateLightSourceTypeId (const DtLight *pDtLight) |
| virtual unsigned int | sensorMaskFromLightSource (const osg::LightSource &lightSource) const |
| virtual size_t | getNodePathHashValue (const osg::NodePath &nodePath) const |
| virtual void | printNodePath (const osg::NodePath &nodePath) const |
| virtual size_t | computeHash (const DtLight *pDtLight) const |
| virtual LightType | lightType (const osg::Light *light) const |
| virtual unsigned int | getOrCreateLightSourceTypeId (const DtLight *pDtLight, size_t hash) |
| virtual void | slot_preTick (void) |
Protected Attributes | |
| DtDe & | myDe |
| bool | myInitialized |
| bool | myDebugCallbackInitialized |
| int | myReservedID |
| bool | myPerPixelLightingEnabled |
| osg::ref_ptr < DtOsgLightingComponent > | myLightingComponent |
| osg::observer_ptr< osg::StateSet > | myStateSet |
| DtLightManager * | myLightManager |
| MapLightSourceHashToLights | myMapLightSourceHashToLights |
| std::unordered_set< const DtLight * > | myLightsCreatedViaRegister |
| std::mutex | myRegisterUnRegisterPathMutex |
| DtOsgLightsObserver * | myOsgLightsObserver |
| MapLightSourceTypeToLightID | myLightSourceTypeMap |
| LightReusableVector | myLightSourceTypeLightVector |
| boost::mutex | myMutableLightSourceTypeMutex |
| DtThreadCameraStreamDataManager & | myTcsDataManager |
| DtOsgLightManagerTcsUserDataCreator & | myUserDataCreator |
| DtSignalConnectionManager | myConnections |
Private Member Functions | |
| DtOsgLightManager ()=delete | |
| DtOsgLightManager (const DtOsgLightManager &rhs)=delete | |
| DtOsgLightManager & | operator= (const DtOsgLightManager &rhs)=delete |
|
protected |
|
protected |
|
protected |
|
virtual |
DTOR.
|
protected |
purposely protected
|
privatedelete |
not allowed
|
privatedelete |
not allowed
|
privatedelete |
not allowed
|
virtual |
Initialize the manager, create member variables and connect signals etc.
|
virtual |
Attach the light manager to a particular OSG state set. Pass in NULL to detach.
|
virtual |
Toggles global use of shader-based lighting effects.
|
virtual |
Retrieves whether per-pixel shader-based lighting is active.
|
virtual |
Get the internal light manager implementation object.
|
virtual |
Reserves a light ID that the light manager won't mess with.
|
virtual |
Retrieves the reserved light ID, or -1 if none.
|
virtual |
Add a light source to the ones globally managed.
|
virtual |
|
virtual |
Active the underlying GLLight's, transformed by the matrix passed in on a per camera basis.
|
virtual |
release gl objects
|
virtual |
find or create a light source type id for an osg::LightSource
|
virtual |
find or create a light source type id for a light source that will be changing over time. good for particle system light sources and the flashlight
|
virtual |
delete a dynamic light source type id. Makes it available to be used by a different light source
|
virtual |
get the light source types that are registered with this light manager be careful with this since it makes a copy of the vector for thread safety
|
virtual |
update a light source in the registered types.
|
virtual |
get the lighting component created by this osg light manager.
|
virtual |
get the lighting component created by this osg light manager (non-const)
|
static |
Get/create instance of light manager.
|
static |
Get the name this class is registered by.
|
protectedvirtual |
Will only turn off lights when it is too bright (won't turn on lights)
|
protectedvirtual |
update the information needed to render the dynamic lights. This needs to be done on a per camera basis because it runs at the start of draw. When there is a planar reflection camera the cull for two cameras runs and then the draw for those two cameras run so we have to keep the light data separate for each camera in that case.
|
protectedvirtual |
|
protectedvirtual |
update on/off status
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
update a DtLight's parameters based on an osg::LightSource
|
protectedvirtual |
get the world position and direction from a light source
|
protectedvirtual |
find or create a light source type id for this light source
|
protectedvirtual |
utility function to get the sensorMask from a light source based on the comments on the node.
|
protectedvirtual |
compute node path hash value
|
protectedvirtual |
print node path hash
|
protectedvirtual |
compute light hash
|
protectedvirtual |
Get the DtLightManager LightType for an osg light.
|
protectedvirtual |
|
protectedvirtual |
pre tick
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |