2
#include "OgrePagingLandScapePrecompiledHeaders.h"
7
#include "OgrePagingLandScapeOcclusionElement.h"
9
#include "OgrePagingLandScapePrerequisites.h"
10
#include "OgrePagingLandScapeOctreeCamera.h"
11
#include "OgrePagingLandScapeOcclusionVisibilityData.h"
12
#include "OgreDebugRectangle2D.h"
17
//---------------------------------------------------------------------
18
OcclusionElement::OcclusionElement() :
19
#ifdef _VISIBILITYDEBUG
21
#endif //_VISIBILITYDEBUG
22
mIsRegisteredToCam (false)
25
//---------------------------------------------------------------------
26
OcclusionElement::~OcclusionElement()
28
#ifdef _VISIBILITYDEBUG
29
delete mDebugRectangle2d;
30
#endif //_VISIBILITYDEBUG
32
NodeDataPerCamMapiterator i = nodeDataPerCam.begin ();
33
while (i != nodeDataPerCam.end())
38
nodeDataPerCam.clear();
40
//---------------------------------------------------------------------
41
VisibilityData *OcclusionElement::getNodeData(PagingLandScapeOctreeCamera *cam)
43
if (nodeDataPerCam.find(cam->getId()) == nodeDataPerCam.end())
44
nodeDataPerCam[cam->getId()] = new VisibilityData();
45
//assert (nodeDataPerCam.find(cam->getId()) != nodeDataPerCam.end());
46
return nodeDataPerCam[cam->getId()];
48
//---------------------------------------------------------------------
49
void OcclusionElement::addCamNodeData (PagingLandScapeOctreeCamera *cam)
51
if (nodeDataPerCam.find(cam->getId()) == nodeDataPerCam.end())
52
nodeDataPerCam[cam->getId()] = new VisibilityData();
54
//---------------------------------------------------------------------
55
void OcclusionElement::removeCamNodeData (PagingLandScapeOctreeCamera *cam)
57
NodeDataPerCamMapiterator i = nodeDataPerCam.find (cam->getId());
58
if (i != nodeDataPerCam.end())
61
nodeDataPerCam.erase (i);
64
#ifdef _VISIBILITYDEBUG
65
//---------------------------------------------------------------------
66
DebugRectangle2D *OcclusionElement::getRectangle2d(SceneManager *scnMgr)
68
if (!mDebugRectangle2d)
70
mDebugRectangle2d = new DebugRectangle2D();
71
//scnMgr->getRootSceneNode ()->createChildSceneNode ()->attachObject (mDebugRectangle2d);
73
return mDebugRectangle2d;
75
#endif //_VISIBILITYDEBUG