VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
makVrv::DtLightManager Class Reference

LightManager class which allows creation/deletion of lights. More...

Public Member Functions

 DtLightManager (const AxisAlignedBoundingBox_64 &box, size_t depth)
virtual ~DtLightManager ()
const VectorLights & getAllLights (void) const
 Get all the lights that have been registered/created.
bool lightExists (const DtLight *pLight) const
 Find if a light exists in this manager.
void getClosestLights (VectorLights &closestLights, const Vector3_64 &vPosition, size_t n)
 Get the 'n' closest lights to vPosition. Must be called after LightManager::Update.
const VectorLights & getFrustumAffectingLights (void) const
 Get all the lights that affect the view frustum. Must be called after LightManager::Update.
void setlodDistance (float fDistance)
float lodDistance (void) const
float lodDistanceSquared (void) const
DtLightcreateLight (LightType lightType)
 create/destroy/get lights
void destroyLight (DtLight *pLight)
size_t numLights (void) const
DtLightgetLight (size_t index)
void update (Camera_64 *pCamera)
 Call these before calling either of the 2 queries below.
void update (Frustum_64 *pFrustum, const Vector3_64 &vRefPosition)

Private Member Functions

void initOctree (const AxisAlignedBoundingBox_64 &box)
void lightUpdated (const DtLight *pLight)
void lightBoundsUpdated (const DtLight *pLight)
void lightDestroyed (const DtLight *pLight)
void connectSignals (DtLight *pSceneNode)
void disconnectSignals (const DtLight *pLight)
void createOctreeNode (DtLight *pLight)
void destroyOctreeNode (DtLight *pLight)
OctreeNode_64getOctreeNode (const DtLight *pLight) const
void findVisibleObjects (Camera_64 *pCamera)
void findVisibleObjects (Frustum_64 *pCamera, const Vector3_64 &vRefPosition)
 DtLightManager ()

Private Attributes

ListLights myLights
bool mybVectorLightsdirty
VectorLights myVectorLights
Octree_64myOctree
Octree_64::NodeList myVisibleOctreeNodes
VectorLights myFrustumAffectingLights
VectorLights myFrustumAffectingLightsSortingScratchPad
float myLODDistance

Detailed Description

LightManager class which allows creation/deletion of lights.

Constructor & Destructor Documentation

makVrv::DtLightManager::DtLightManager ( const AxisAlignedBoundingBox_64 box,
size_t  depth 
)
virtual makVrv::DtLightManager::~DtLightManager ( )
virtual
makVrv::DtLightManager::DtLightManager ( )
inlineprivate

Member Function Documentation

DtLight* makVrv::DtLightManager::createLight ( LightType  lightType)

create/destroy/get lights

void makVrv::DtLightManager::destroyLight ( DtLight pLight)
size_t makVrv::DtLightManager::numLights ( void  ) const
DtLight* makVrv::DtLightManager::getLight ( size_t  index)
const VectorLights& makVrv::DtLightManager::getAllLights ( void  ) const

Get all the lights that have been registered/created.

bool makVrv::DtLightManager::lightExists ( const DtLight pLight) const

Find if a light exists in this manager.

void makVrv::DtLightManager::update ( Camera_64 pCamera)

Call these before calling either of the 2 queries below.

void makVrv::DtLightManager::update ( Frustum_64 pFrustum,
const Vector3_64 vRefPosition 
)
void makVrv::DtLightManager::getClosestLights ( VectorLights &  closestLights,
const Vector3_64 vPosition,
size_t  n 
)

Get the 'n' closest lights to vPosition. Must be called after LightManager::Update.

const VectorLights& makVrv::DtLightManager::getFrustumAffectingLights ( void  ) const

Get all the lights that affect the view frustum. Must be called after LightManager::Update.

void makVrv::DtLightManager::setlodDistance ( float  fDistance)
float makVrv::DtLightManager::lodDistance ( void  ) const
float makVrv::DtLightManager::lodDistanceSquared ( void  ) const
void makVrv::DtLightManager::initOctree ( const AxisAlignedBoundingBox_64 box)
private
void makVrv::DtLightManager::lightUpdated ( const DtLight pLight)
private
void makVrv::DtLightManager::lightBoundsUpdated ( const DtLight pLight)
private
void makVrv::DtLightManager::lightDestroyed ( const DtLight pLight)
private
void makVrv::DtLightManager::connectSignals ( DtLight pSceneNode)
private
void makVrv::DtLightManager::disconnectSignals ( const DtLight pLight)
private
void makVrv::DtLightManager::createOctreeNode ( DtLight pLight)
private
void makVrv::DtLightManager::destroyOctreeNode ( DtLight pLight)
private
OctreeNode_64* makVrv::DtLightManager::getOctreeNode ( const DtLight pLight) const
private
void makVrv::DtLightManager::findVisibleObjects ( Camera_64 pCamera)
private
void makVrv::DtLightManager::findVisibleObjects ( Frustum_64 pCamera,
const Vector3_64 vRefPosition 
)
private

Member Data Documentation

ListLights makVrv::DtLightManager::myLights
private
bool makVrv::DtLightManager::mybVectorLightsdirty
mutableprivate
VectorLights makVrv::DtLightManager::myVectorLights
mutableprivate
Octree_64* makVrv::DtLightManager::myOctree
private
Octree_64::NodeList makVrv::DtLightManager::myVisibleOctreeNodes
private
VectorLights makVrv::DtLightManager::myFrustumAffectingLights
private
VectorLights makVrv::DtLightManager::myFrustumAffectingLightsSortingScratchPad
private
float makVrv::DtLightManager::myLODDistance
private

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)