VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::DtLightManager Class Reference

LightManager class which allows creation/deletion of lights.

Public Member Functions

 DtLightManager (const AxisAlignedBoundingBox_64 &box, size_t depth)
 
virtual ~DtLightManager ()
 
virtual DtLightcreateLight (LightType lightType)
 
virtual void destroyLight (DtLight *pLight)
 
virtual size_t numLights (void) const
 
virtual DtLightlight (size_t index)
 
virtual const VectorLights & allLights (void) const
 
virtual bool lightExists (const DtLight *pLight) const
 
virtual void getClosestLights (VectorLights &closestLights, const Vector3_64 &vPosition, size_t n)
 
virtual const VectorLights & frustumAffectingLights (void) const
 
virtual void setlodDistance (float fDistance)
 
virtual float lodDistance (void) const
 
virtual float lodDistanceSquared (void) const
 
virtual void initOctree (const AxisAlignedBoundingBox_64 &box)
 
virtual void lightUpdated (const DtLight *pLight)
 
virtual void lightBoundsUpdated (const DtLight *pLight)
 
virtual void lightDestroyed (const DtLight *pLight)
 
virtual void createOctreeNode (DtLight *pLight)
 
virtual void destroyOctreeNode (DtLight *pLight)
 
virtual OctreeNode_64octreeNode (const DtLight *pLight) const
 
virtual void update (Camera_64 *pCamera)
 
virtual void update (Frustum_64 *pFrustum, const Vector3_64 &vRefPosition)
 

Protected Member Functions

virtual void findVisibleObjects (const Camera_64 *pCamera)
 
virtual void findVisibleObjects (const Frustum_64 *pCamera, const Vector3_64 &vRefPosition)
 

Protected Attributes

ListLights myLights
 
bool mybVectorLightsdirty
 
VectorLights myVectorLights
 
Octree_64myOctree
 
Octree_64::NodeVector myVisibleOctreeNodes
 
VectorLights myFrustumAffectingLights
 
VectorLights myFrustumAffectingLightsSortingScratchPad
 
float myLODDistance
 
tbb::mutex myOctreeMutex
 

Private Member Functions

 DtLightManager ()=delete
 
 DtLightManager (const DtLightManager &rhs)=delete
 
DtLightManageroperator= (const DtLightManager &rhs)=delete
 

Constructor & Destructor Documentation

makVrv::DtLightManager::DtLightManager ( const AxisAlignedBoundingBox_64 box,
size_t  depth 
)

CTOR.

virtual makVrv::DtLightManager::~DtLightManager ( )
virtual

DTOR.

makVrv::DtLightManager::DtLightManager ( )
privatedelete

not allowed

makVrv::DtLightManager::DtLightManager ( const DtLightManager rhs)
privatedelete

not allowed

Member Function Documentation

DtLightManager& makVrv::DtLightManager::operator= ( const DtLightManager rhs)
privatedelete

not allowed

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

create a light

virtual void makVrv::DtLightManager::destroyLight ( DtLight pLight)
virtual

destroy a light

virtual size_t makVrv::DtLightManager::numLights ( void  ) const
virtual

number of lights

virtual DtLight* makVrv::DtLightManager::light ( size_t  index)
virtual

light for an index

virtual const VectorLights& makVrv::DtLightManager::allLights ( void  ) const
virtual

Get all the lights that have been registered/created.

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

Find if a light exists in this manager.

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

Call these before calling either of the 2 queries below.

virtual void makVrv::DtLightManager::update ( Frustum_64 pFrustum,
const Vector3_64 vRefPosition 
)
virtual

Call these before calling either of the 2 queries below.

virtual void makVrv::DtLightManager::getClosestLights ( VectorLights &  closestLights,
const Vector3_64 vPosition,
size_t  n 
)
virtual

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

virtual const VectorLights& makVrv::DtLightManager::frustumAffectingLights ( void  ) const
virtual

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

virtual void makVrv::DtLightManager::setlodDistance ( float  fDistance)
virtual

set the lod distance

virtual float makVrv::DtLightManager::lodDistance ( void  ) const
virtual

get the lod distance

virtual float makVrv::DtLightManager::lodDistanceSquared ( void  ) const
virtual

get the lod distance squared

virtual void makVrv::DtLightManager::initOctree ( const AxisAlignedBoundingBox_64 box)
virtual

initailize the internal octress with box extens

virtual void makVrv::DtLightManager::lightUpdated ( const DtLight pLight)
virtual

indicate that this light changed

virtual void makVrv::DtLightManager::lightBoundsUpdated ( const DtLight pLight)
virtual

indicate that light bounds were updated

virtual void makVrv::DtLightManager::lightDestroyed ( const DtLight pLight)
virtual

indicate that light was destroyed

virtual void makVrv::DtLightManager::createOctreeNode ( DtLight pLight)
virtual

create an octree node for this light

virtual void makVrv::DtLightManager::destroyOctreeNode ( DtLight pLight)
virtual

destroy the octree node for this light

virtual OctreeNode_64* makVrv::DtLightManager::octreeNode ( const DtLight pLight) const
virtual

Get the octree node for this light.

virtual void makVrv::DtLightManager::findVisibleObjects ( const Camera_64 pCamera)
protectedvirtual
virtual void makVrv::DtLightManager::findVisibleObjects ( const Frustum_64 pCamera,
const Vector3_64 vRefPosition 
)
protectedvirtual

Member Data Documentation

ListLights makVrv::DtLightManager::myLights
protected
bool makVrv::DtLightManager::mybVectorLightsdirty
mutableprotected
VectorLights makVrv::DtLightManager::myVectorLights
mutableprotected
Octree_64* makVrv::DtLightManager::myOctree
protected
Octree_64::NodeVector makVrv::DtLightManager::myVisibleOctreeNodes
protected
VectorLights makVrv::DtLightManager::myFrustumAffectingLights
protected
VectorLights makVrv::DtLightManager::myFrustumAffectingLightsSortingScratchPad
protected
float makVrv::DtLightManager::myLODDistance
protected
tbb::mutex makVrv::DtLightManager::myOctreeMutex
protected

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

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)