16 #include <unordered_map>
19 #include <boost/thread/mutex.hpp>
23 namespace DynamicTerrain
42 template <
typename State>
76 virtual void setState(
const State& state );
88 const osg::NodePath& nodePath);
121 #define DtMultiReferencedNodeContainer_INL_
122 #include "DtMultiReferencedNodeContainer.inl"
123 #undef DtMultiReferencedNodeContainer_INL_
std::unordered_map< DynamicTerrain::NodePathHash, State > NodeInstanceMap
Definition: DtMultiReferencedNodeContainer.h:104
size_t NodePathHash
Typedef used to represent a hash of an OSG Node path to a referenced node.
Definition: DtMultiReferencedNodeContainer.h:26
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:115
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:107
State myDefaultState
Definition: DtMultiReferencedNodeContainer.h:113
virtual const State & defaultState() const
Get the default state used for node references.
virtual ~DtMultiReferencedNodeContainer()
DTOR.
std::set< int > myNodePathDepths
Definition: DtMultiReferencedNodeContainer.h:110
Contains DLL export macros.
DtMultiReferencedNodeContainer is a class template that it used to provide support for dynamic nodes ...
Definition: DtMultiReferencedNodeContainer.h:43
std::function< void(DynamicTerrain::NodePathHash)> NodeReferenceFunction
Function type that runs on node reference.
Definition: DtMultiReferencedNodeContainer.h:91