17 #include <tbb/mutex.h>
18 #include <tbb/spin_mutex.h>
20 #include <osg/BoundingBox>
22 #include <boost/shared_ptr.hpp>
27 #include <unordered_map>
48 virtual void inrementRefCount();
49 virtual void decrementRefCount();
50 virtual unsigned int refCount()
const;
52 virtual void setBoundingBox(
const osg::BoundingBox& bb) { myBoundingBox = bb; };
53 virtual osg::BoundingBox
boundingBox()
const {
return myBoundingBox; }
55 virtual bool newlyReferenced()
const;
57 virtual bool newlyUnreferenced()
const;
59 virtual void clearHistory();
86 void removeAllFidEntries();
87 boost::shared_ptr< DtDynamicTerrainChange > change();
88 std::set<DtFid> currentFids()
const;
130 virtual void updateTerrain();
134 virtual void reapplyChangesIfRequired();
135 virtual void reapplyChanges( std::deque<DtDynamicTerrainSphere>& queue );
140 virtual void reapplyChanges();
143 virtual bool isFidHidden(
const DtFid fid)
const;
148 virtual void destroyFids(
const std::vector<DtDynamicFidEntry*>& fidEntries) = 0;
151 virtual void resotreFids(
const std::vector<DtDynamicFidEntry*>& fidEntries) = 0;
154 virtual osgEarth::MapNode* mapNode() = 0;
163 virtual void notifyModifications(
const std::vector<DtDynamicFidEntry*>& modifiedEntries);
170 virtual void removeChangeInternal(boost::shared_ptr<DtDynamicFidChangeEntry> changeEntry);
180 std::unordered_map<DtDynamicFidChangeId, DtDynamicFidChangeEntryPtr >
myChanges;
unsigned int myRefCount
Definition: DtDynamicFidManager.h:65
Definition: DtDynamicFidManager.h:75
virtual DtFid fid() const
Definition: DtDynamicFidManager.h:51
virtual osg::BoundingBox boundingBox() const
Definition: DtDynamicFidManager.h:53
virtual void setBoundingBox(const osg::BoundingBox &bb)
Definition: DtDynamicFidManager.h:52
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Contains makVrv::DtDynamicTerrainSphere class.
Definition: DtDynamicFidManager.h:122
std::vector< DtDynamicFidEntry * > myAlteredFids
Definition: DtDynamicFidManager.h:93
boost::shared_ptr< DtDynamicFidChangeEntry > DtDynamicFidChangeEntryPtr
Definition: DtDynamicFidManager.h:100
long long DtFid
Definition: DtDynamicFidManager.h:37
DtFid myFid
Definition: DtDynamicFidManager.h:62
DtDynamicFidChangeId myNextChangeId
Definition: DtDynamicFidManager.h:182
unsigned int myPrefRefCount
Definition: DtDynamicFidManager.h:66
tbb::spin_mutex myMutex
Definition: DtDynamicFidManager.h:183
std::unordered_map< DtFid, DtDynamicFidEntry * > myAlteredFids
Definition: DtDynamicFidManager.h:181
DtDynamicFidChangeId myChangeId
Definition: DtDynamicFidManager.h:96
std::unordered_map< DtDynamicFidChangeId, DtDynamicFidChangeEntryPtr > myChanges
Definition: DtDynamicFidManager.h:180
osg::BoundingBoxd myBoundingBox
Definition: DtDynamicFidManager.h:63
boost::shared_ptr< makVrv::DtDynamicTerrainChange > myChangeCommand
Definition: DtDynamicFidManager.h:95
Contains DtDynamicTerrainChange class.
Definition: DtDynamicFidManager.h:42
Command which can be given to the dynamic terrain system to perform some change. This class is a simp...
Definition: DtDynamicTerrainChange.h:42
Contains DLL export macros.
virtual ~DtDynamicFidEntry()
Definition: DtDynamicFidManager.h:46
unsigned long DtDynamicFidChangeId
Definition: DtDynamicFidManager.h:38