11 #include <boost/shared_ptr.hpp>
12 #include <boost/unordered_map.hpp>
13 #include <boost/unordered_set.hpp>
14 #include <tbb/spin_mutex.h>
22 : myBoundingSphere(boundingSphere)
23 , myOriginalBoundingSphere(boundingSphere)
24 , myFilename(filename)
53 unsigned int numTriangles,
55 : myBoundingInfo(boundingInfo)
56 , myLastUsed(lastUsed)
57 , myNumTriangles(numTriangles)
58 , myPendingRemoval(false)
69 if (lastUsed > myLastUsed)
71 myLastUsed = lastUsed;
91 boost::hash<DtNodeBoundingInfo*> hasher;
92 return hasher(p.get());
98 myNodeBoundingInfoPtr(nodeBoundingInfoPtr),
103 myNodeBoundingInfoPtr(rh.myNodeBoundingInfoPtr),
104 myMatrix(rh.myMatrix)
DtBoost::shared_ptr< DtNodeBoundingInfo > DtNodeBoundingInfoPtr
Definition: boundingNodeInfo.h:85
boost::unordered_map< DtNodeId, DtPagedInExtendInfo > DtNodeBoundingExtendedInfoMap
Definition: boundingNodeInfo.h:131
DtNodeBoundingInfo(DtSphere boundingSphere, std::string filename, bool known=false)
Definition: boundingNodeInfo.h:21
DtTerrainIntersectIDType lastUsed() const
Definition: boundingNodeInfo.h:75
DtBoost::shared_ptr< DtPagedNodeStatus > DtPagedNodeStatusPtr
Definition: boundingNodeInfo.h:86
boost::unordered_map< DtNodeId, DtNodeBoundingInfoPtr > DtNodeBoundingInfoMap
Definition: boundingNodeInfo.h:130
DtPagedNodeStatus(DtNodeBoundingInfo boundingInfo, unsigned int numTriangles, DtTerrainIntersectIDType lastUsed=0)
Definition: boundingNodeInfo.h:51
Definition: boundingNodeInfo.h:95
const DtSphere myOriginalBoundingSphere
Definition: boundingNodeInfo.h:44
boost::unordered_map< DtNodeId, DtPagedNodeStatusPtr > DtPagedNodeStatusMap
Definition: boundingNodeInfo.h:132
unsigned long long DtTerrainIntersectIDType
Definition: terrainInterfaceDefines.h:28
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
std::list< DtNodeBoundingInfoPtr > DtNodeBoundingInfoList
Definition: boundingNodeInfo.h:128
virtual void expandToInclude(const DtExtent &otherExtent)
Expand extent, if necessary, to include input extent.
bool myPendingRemoval
Definition: boundingNodeInfo.h:65
virtual DtExtent extent() const
Definition: boundingNodeInfo.h:33
std::vector< size_t > myNbTriangles
triangles by drawable
Definition: boundingNodeInfo.h:125
DtSphere myBoundingSphere
Definition: boundingNodeInfo.h:43
const unsigned int myNumTriangles
Definition: boundingNodeInfo.h:63
DT_DLL_geometry DtExtent extentOfSphere(const DtSphere &sphere)
const std::string myFilename
Definition: boundingNodeInfo.h:45
std::vector< size_t > myAssociatedDrawableId
Definition: boundingNodeInfo.h:123
DtNodeBoundingInfoPtr myNodeBoundingInfoPtr
Definition: boundingNodeInfo.h:120
Stores the status of a paged in bounding volume.
Definition: boundingNodeInfo.h:49
void updateLastUsed(DtTerrainIntersectIDType lastUsed)
Definition: boundingNodeInfo.h:67
DtPagedInExtendInfo(const DtPagedInExtendInfo &rh)
Definition: boundingNodeInfo.h:102
Definition: boundingNodeInfo.h:19
std::size_t hash_value(const DtNodeBoundingInfoPtr &p)
needed for boost::unordered
Definition: boundingNodeInfo.h:89
std::vector< DtNodeId > myAssociatedDrawable
Definition: boundingNodeInfo.h:122
osg::Matrix myMatrix
Definition: boundingNodeInfo.h:121
DtPagedInExtendInfo(const DtNodeBoundingInfoPtr &nodeBoundingInfoPtr, const osg::Matrix &matrix)
Definition: boundingNodeInfo.h:97
virtual std::string filename() const
Definition: boundingNodeInfo.h:38
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
std::atomic< DtTerrainIntersectIDType > myLastUsed
Definition: boundingNodeInfo.h:82
virtual void expandExtent(DtExtent &ext) const
Definition: boundingNodeInfo.h:28
DtPagedInExtendInfo()
Definition: boundingNodeInfo.h:115
boost::unordered_set< DtNodeBoundingInfoPtr > DtNodeBoundingInfoSet
Definition: boundingNodeInfo.h:129
const DtNodeBoundingInfo myBoundingInfo
Definition: boundingNodeInfo.h:62