DtOsgLightManager receives LightSource nodes from the DtOsgCullVisitor, and collects them all here where they may by applied simultaneously at the same time.
|
| 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 void | cullReset () |
| |
| virtual bool | registerLight (const osg::LightSource *light, const osg::NodePath &nodePath, const osg::Matrixd &modelingMatrix, bool globalLights) |
| |
| virtual DtLight * | createDtLight (const osg::Light *osgLight) |
| |
| virtual void | convertOsgLightToDtLight (const osg::LightSource &lightSource, DtLight *pDtLight, const osg::Matrixd &modelingMatrix) |
| |
| virtual unsigned int | sensorMaskFromLightSource (const osg::LightSource &lightSource) const |
| |
| virtual void | deregisterLight (const osg::LightSource *light) |
| |
| virtual void | getWorldPositionAndDirection (const osg::LightSource &lightSource, const osg::Matrixd &modelingMatrix, osg::Vec3d &vWorldPos, osg::Vec3d &vWorldDir) const |
| |
| virtual void | update (osg::State &state, DtDe &de, const osg::Camera *camera) |
| |
| virtual int | getTextureStartOffset (void) const |
| |
| virtual const Vector2_uint32 & | tileSize (void) const |
| |
| virtual const Vector2_uint32 & | gridMaxDims (void) const |
| |
| virtual void | releaseGLObjects (void) |
| |
| virtual unsigned int | getOrCreateLightSourceTypeId (DtLight *pDtLight) |
| |
| 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 () |
| |
| | DtVirtualBaseClass () |
| |
| virtual | ~DtVirtualBaseClass () |
| |
| virtual makVrv::DtOsgLightManager::~DtOsgLightManager |
( |
| ) |
|
|
virtual |
| makVrv::DtOsgLightManager::DtOsgLightManager |
( |
DtDe & |
de | ) |
|
|
protected |
| makVrv::DtOsgLightManager::DtOsgLightManager |
( |
| ) |
|
|
privatedelete |
| virtual void makVrv::DtOsgLightManager::initialize |
( |
| ) |
|
|
virtual |
Initialize the manager, create member variables and connect signals etc.
| virtual void makVrv::DtOsgLightManager::attachToStateSet |
( |
osg::StateSet * |
stateSet | ) |
|
|
virtual |
Attach the light manager to a particular OSG state set. Pass in NULL to detach.
| virtual void makVrv::DtOsgLightManager::setPerPixelLightingEnabled |
( |
bool |
enabled | ) |
|
|
virtual |
Toggles global use of shader-based lighting effects.
| virtual bool makVrv::DtOsgLightManager::perPixelLightingEnabled |
( |
| ) |
const |
|
virtual |
Retrieves whether per-pixel shader-based lighting is active.
Get the internal light manager implementation object.
| virtual void makVrv::DtOsgLightManager::setReservedID |
( |
int |
id | ) |
|
|
virtual |
Reserves a light ID that the light manager won't mess with.
| virtual int makVrv::DtOsgLightManager::reservedID |
( |
| ) |
const |
|
virtual |
Retrieves the reserved light ID, or -1 if none.
| virtual void makVrv::DtOsgLightManager::cullReset |
( |
| ) |
|
|
virtual |
Clear the internal list of light sources and implement state changes when the cull visitor is reset each frame.
| virtual bool makVrv::DtOsgLightManager::registerLight |
( |
const osg::LightSource * |
light, |
|
|
const osg::NodePath & |
nodePath, |
|
|
const osg::Matrixd & |
modelingMatrix, |
|
|
bool |
globalLights |
|
) |
| |
|
virtual |
Add a light source to the ones globally managed.
| virtual DtLight* makVrv::DtOsgLightManager::createDtLight |
( |
const osg::Light * |
osgLight | ) |
|
|
virtual |
create a DtLight from an osg::Light. It does not pass through all the parameters. Use convertOsgLightToDtLight afterwards to do that.
| virtual void makVrv::DtOsgLightManager::convertOsgLightToDtLight |
( |
const osg::LightSource & |
lightSource, |
|
|
DtLight * |
pDtLight, |
|
|
const osg::Matrixd & |
modelingMatrix |
|
) |
| |
|
virtual |
update a DtLight's parameters based on an osg::LightSource
| virtual unsigned int makVrv::DtOsgLightManager::sensorMaskFromLightSource |
( |
const osg::LightSource & |
lightSource | ) |
const |
|
virtual |
utility function to get the sensorMask from a light source based on the comments on the node.
| virtual void makVrv::DtOsgLightManager::deregisterLight |
( |
const osg::LightSource * |
light | ) |
|
|
virtual |
| virtual void makVrv::DtOsgLightManager::getWorldPositionAndDirection |
( |
const osg::LightSource & |
lightSource, |
|
|
const osg::Matrixd & |
modelingMatrix, |
|
|
osg::Vec3d & |
vWorldPos, |
|
|
osg::Vec3d & |
vWorldDir |
|
) |
| const |
|
virtual |
get the world position and direction from a light source
| virtual void makVrv::DtOsgLightManager::update |
( |
osg::State & |
state, |
|
|
DtDe & |
de, |
|
|
const osg::Camera * |
camera |
|
) |
| |
|
virtual |
Active the underlying GLLight's, transformed by the matrix passed in on a per camera basis.
| virtual int makVrv::DtOsgLightManager::getTextureStartOffset |
( |
void |
| ) |
const |
|
virtual |
| virtual const Vector2_uint32& makVrv::DtOsgLightManager::tileSize |
( |
void |
| ) |
const |
|
virtual |
| virtual const Vector2_uint32& makVrv::DtOsgLightManager::gridMaxDims |
( |
void |
| ) |
const |
|
virtual |
| virtual void makVrv::DtOsgLightManager::releaseGLObjects |
( |
void |
| ) |
|
|
virtual |
| virtual unsigned int makVrv::DtOsgLightManager::getOrCreateLightSourceTypeId |
( |
DtLight * |
pDtLight | ) |
|
|
virtual |
find or create a light source type id for this light source
| virtual unsigned int makVrv::DtOsgLightManager::getOrCreateLightSourceTypeId |
( |
const osg::LightSource & |
lightSource | ) |
|
|
virtual |
find or create a light source type id for an osg::LightSource
| virtual unsigned int makVrv::DtOsgLightManager::getOrCreateDynamicLightSourceTypeId |
( |
const DtLight * |
pDtLight | ) |
|
|
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 void makVrv::DtOsgLightManager::deleteDynamicLightSourceTypeId |
( |
const DtLight * |
pDtLight | ) |
|
|
virtual |
delete a dynamic light source type id. Makes it available to be used by a different light source
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 void makVrv::DtOsgLightManager::updateLightSourceType |
( |
unsigned int |
id, |
|
|
const DtLight * |
light |
|
) |
| |
|
virtual |
update a light source in the registered types.
get the lighting component created by this osg light manager.
get the lighting component created by this osg light manager (non-const)
Get/create instance of light manager.
| static const std::string& makVrv::DtOsgLightManager::theClassName |
( |
| ) |
|
|
static |
Get the name this class is registered by.
| static LightType makVrv::DtOsgLightManager::lightType |
( |
const osg::Light * |
light | ) |
|
|
static |
| virtual void makVrv::DtOsgLightManager::updateLightOnOffStatus |
( |
const VectorLights & |
lights | ) |
|
|
protectedvirtual |
Will only turn off lights when it is too bright (won't turn on lights)
| virtual void makVrv::DtOsgLightManager::updateFixedFunctionLights |
( |
const osg::State & |
state | ) |
|
|
protectedvirtual |
| virtual void makVrv::DtOsgLightManager::updateShaderBasedLights |
( |
const osg::State & |
state, |
|
|
const VectorLights & |
lights, |
|
|
const osg::Camera * |
camera |
|
) |
| |
|
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.
| virtual const VectorLights& makVrv::DtOsgLightManager::computeFrustumLights |
( |
const osg::State & |
state, |
|
|
const osg::Camera * |
camera |
|
) |
| |
|
protectedvirtual |
| virtual void makVrv::DtOsgLightManager::proccessLightPath |
( |
DtLight * |
inLight, |
|
|
const osg::NodePath & |
nodePath |
|
) |
| |
|
protectedvirtual |
| virtual void makVrv::DtOsgLightManager::configurePerPixelLighting |
( |
osg::StateSet * |
| ) |
|
|
protectedvirtual |
| virtual void makVrv::DtOsgLightManager::slot_reloadShader |
( |
| ) |
|
|
protectedvirtual |
| virtual bool makVrv::DtOsgLightManager::existsInLightManager |
( |
const DtLight * |
light | ) |
const |
|
protectedvirtual |
| const int makVrv::DtOsgLightManager::theMwirLightSourceSensorMask = 0b0100 |
|
static |
| const int makVrv::DtOsgLightManager::theLwirLightSourceSensorMask = 0b1000 |
|
static |
| const int makVrv::DtOsgLightManager::theNvgLightSourceSensorMask = 0b0010 |
|
static |
| const int makVrv::DtOsgLightManager::theVisualLightSourceSensorMask = 0b0001 |
|
static |
| DtDe& makVrv::DtOsgLightManager::myDe |
|
protected |
| bool makVrv::DtOsgLightManager::myInitialized |
|
protected |
| bool makVrv::DtOsgLightManager::myDebugCallbackInitialized |
|
protected |
| int makVrv::DtOsgLightManager::myReservedID |
|
protected |
| bool makVrv::DtOsgLightManager::myPerPixelLightingEnabled |
|
protected |
| osg::observer_ptr<osg::StateSet> makVrv::DtOsgLightManager::myStateSet |
|
protected |
| VectorLights makVrv::DtOsgLightManager::myActiveLights |
|
protected |
| DtOsgLightsObserver* makVrv::DtOsgLightManager::myOsgLightsObserver |
|
protected |
| boost::mutex makVrv::DtOsgLightManager::myMutableLightSourceTypeMutex |
|
mutableprotected |
The documentation for this class was generated from the following file: