16 #include <boost/unordered_map.hpp>
17 #include <boost/function.hpp>
18 #include <boost/thread/mutex.hpp>
22 namespace DynamicTerrain
41 template <
typename State>
75 virtual void setState(
const State& state );
87 const osg::NodePath& nodePath);
120 #define DtMultiReferencedNodeContainer_INL_
121 #include "DtMultiReferencedNodeContainer.inl"
122 #undef DtMultiReferencedNodeContainer_INL_
boost::unordered_map< DynamicTerrain::NodePathHash, State > NodeInstanceMap
Definition: DtMultiReferencedNodeContainer.h:103
size_t NodePathHash
Typedef used to represent a hash of an OSG Node path to a referenced node.
Definition: DtMultiReferencedNodeContainer.h:25
virtual DynamicTerrain::NodePathHash addNodeInstance(const osg::NodePath &nodePath)
Add a reference to a node and return the hash for the passed in node path.
virtual void forEachNodeReference(NodeReferenceFunction &perNodeFunction)
Execute a function on each node reference in the container.
virtual DynamicTerrain::NodePathHash calcNodePathHashValue(const osg::NodePath &nodePath)
Calculate a node hash, checks all known depths that nodes werer added at.
virtual void setDefaultState(const State &state)
Specify a default state used to initialize each node reference when added.
DtMultiReferencedNodeContainer & operator=(const DtMultiReferencedNodeContainer &)
Private assignment operator.
boost::mutex myMapMutex
Definition: DtMultiReferencedNodeContainer.h:114
DtMultiReferencedNodeContainer()
CTOR.
virtual void setState(DynamicTerrain::NodePathHash hashIndex, const State &state)
Set the state of a node reference.
virtual bool getState(DynamicTerrain::NodePathHash hashIndex, State &state)
Get the state of node instance.
NodeInstanceMap myNodeInstanceMap
Definition: DtMultiReferencedNodeContainer.h:106
State myDefaultState
Definition: DtMultiReferencedNodeContainer.h:112
virtual const State & defaultState() const
Get the default state used for node references.
virtual ~DtMultiReferencedNodeContainer()
DTOR.
std::set< int > myNodePathDepths
Definition: DtMultiReferencedNodeContainer.h:109
Contains DLL export macros.
boost::function< void(DynamicTerrain::NodePathHash)> NodeReferenceFunction
Function type that runs on node reference.
Definition: DtMultiReferencedNodeContainer.h:90
DtMultiReferencedNodeContainer is a class template that it used to provide support for dynamic nodes ...
Definition: DtMultiReferencedNodeContainer.h:42