13 #pragma warning( push )
14 #pragma warning( disable : 4251 )
26 #include <tbb/mutex.h>
56 virtual void destroyLight(
DtLight* pLight);
59 virtual size_t numLights(
void)
const;
62 virtual DtLight* light(
size_t index);
65 virtual const VectorLights& allLights(
void)
const;
68 virtual bool lightExists(
const DtLight* pLight)
const;
71 virtual void findVisibleObjects(std::vector<const DtLight*>& frustumAffectingLights,
Octree_64::NodeVector& visibleOctreeNodes
75 virtual void setlodDistance(
float fDistance);
78 virtual float lodDistance(
void)
const;
81 virtual float lodDistanceSquared(
void)
const;
87 virtual void lightUpdated(
const DtLight* pLight);
90 virtual void lightBoundsUpdated(
const DtLight* pLight);
93 virtual void lightDestroyed(
const DtLight* pLight);
96 virtual void createOctreeNode(
DtLight* pLight);
99 virtual void destroyOctreeNode(
DtLight* pLight);
106 virtual void getClosestLights(std::vector<const DtLight*>& closestLights
107 ,
const std::vector<const DtLight*>& frustumAffectingLights
126 #pragma warning( pop )
LightManager class which allows creation/deletion of lights.
Definition: DtLightManager.h:32
OctreeNode class.
Definition: DtOctreeNode.h:20
float myLODDistance
Definition: DtLightManager.h:119
OctreeNode forward declarations.
bool mybVectorLightsdirty
Definition: DtLightManager.h:113
Camera forward declarations.
Axis Aligned Bounding Box class.
VectorLights myVectorLights
Definition: DtLightManager.h:114
LightType
Definition: DtLight.h:31
Octree datastructure for managing scene nodes. This is a loose octree implementation, meaning that each octant child of the octree actually overlaps it's siblings by a factor of .5. This guarantees that any thing that is half the size of the parent will fit completely into a child, with no splitting necessary.
Definition: DtOctree.h:27
std::vector< DtOctreeNode< T > * > NodeVector
Definition: DtOctree.h:79
ListLights myLights
Definition: DtLightManager.h:111
OctreeNode forward declarations.
Class for generic lights This holds per-light data such as range, attenuation factors, colors, etc.
Definition: DtLight.h:49
#define DT_DLL_VRVGRAPHICSUTILS
Definition: vrvGraphicsUtils.h:18
Helpers to easily define forward declarations.
tbb::mutex myOctreeMutex
Definition: DtLightManager.h:121
Octree_64 * myOctree
Definition: DtLightManager.h:116