VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtLightManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 #pragma once
10 
11 #include "DtGraphicsUtilsPreReqs.h"
12 
13 #pragma warning( push )
14 #pragma warning( disable : 4251 )
15 
16 #include "DtForwardDeclare.h"
18 #include "DtLight.h"
19 
20 #include "DtOctreeFwdDeclare.h"
21 #include "DtOctreeNodeFwdDeclare.h"
22 #include "DtCameraFwdDeclare.h"
23 #include "DtOctree.h"
24 
25 namespace makVrv {
26 
30  {
31  public:
32  DtLightManager(const AxisAlignedBoundingBox_64& box, size_t depth);
33  virtual ~DtLightManager();
34 
36 
37  DtLight* createLight(LightType lightType);
38  void destroyLight(DtLight* pLight);
39  size_t numLights(void) const;
40  DtLight* getLight(size_t index);
42 
44  const VectorLights& getAllLights(void) const;
45 
47  bool lightExists(const DtLight* pLight) const;
48 
50 
51  void update(Camera_64* pCamera);
52  void update(Frustum_64* pFrustum, const Vector3_64& vRefPosition);
54 
56  void getClosestLights(VectorLights& closestLights
57  , const Vector3_64& vPosition, size_t n);
58 
60  const VectorLights& getFrustumAffectingLights(void) const;
61 
62  void setlodDistance(float fDistance);
63  float lodDistance(void) const;
64  float lodDistanceSquared(void) const;
65  private:
66  ListLights myLights;
67 
68  mutable bool mybVectorLightsdirty;
69  mutable VectorLights myVectorLights;
70 
72  void initOctree(const AxisAlignedBoundingBox_64& box);
73 
74  void lightUpdated(const DtLight* pLight);
75  void lightBoundsUpdated(const DtLight* pLight);
76  void lightDestroyed(const DtLight* pLight);
77 
78  void connectSignals(DtLight* pSceneNode);
79  void disconnectSignals(const DtLight* pLight);
80 
81  void createOctreeNode(DtLight* pLight);
82  void destroyOctreeNode(DtLight* pLight);
83  OctreeNode_64* getOctreeNode(const DtLight* pLight) const;
84 
85  void findVisibleObjects(Camera_64* pCamera);
86  void findVisibleObjects(Frustum_64* pCamera, const Vector3_64& vRefPosition);
87 
90 
92 
94 
96  };
97 
98 } //namespace makVrv
99 
100 #pragma warning( pop )

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)