16 #include <vlutil/vlString.h>
19 #include <osg/Sequence>
21 #include <boost/unordered_map.hpp>
27 namespace MAKBoost_1_63 {}
namespace boost = MAKBoost_1_63;
namespace MAKBoost_1_63
34 boost::hash<std::string> string_hash;
35 return string_hash(std::string(v.c_str()));
47 class DtDynamicTerrainSequenceNode;
100 const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
106 virtual const char*
className()
const {
return "DtDynamicTerrainSwitchNode"; }
124 virtual void setState(
int state );
128 virtual void setState(
const std::string& valueName );
132 virtual int numStates()
const;
136 virtual void setStateNames(
const StateNameList& stateNames );
141 virtual void setPositionInModelCoordinates(osg::Vec3d pos);
144 virtual osg::Vec3d positionInModelCoordinates()
const;
148 virtual const StateNameList& stateNames()
const;
153 virtual void addValues(
int state,
const ValueNameList& valueNames );
160 virtual const ValueChildMap& valueToChildMap()
const;
163 boost::signalslib::signal<void(DtDynamicTerrainSwitchNode*, DynamicTerrain::NodePathHash, int)>
signal_setSwitch;
170 virtual const osg::BoundingSphere& originalBounds()
const;
173 virtual void setOriginalBounds(
const osg::BoundingSphere& bounds);
181 virtual void traverse(osg::NodeVisitor& nv);
virtual const char * className() const
Return the className to OSG.
Definition: DtDynamicTerrainSwitchNode.h:106
DtDynamicTerrainSwitchNode replaces an osgSim::multiswitch in a terrain patch (or page) that is tagge...
Definition: DtDynamicTerrainSwitchNode.h:74
size_t NodePathHash
Typedef used to represent a hash of an OSG Node path to a referenced node.
Definition: DtMultiReferencedNodeContainer.h:26
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Definition: featureContext.h:37
StateNameList myStateNames
Definition: DtDynamicTerrainSwitchNode.h:212
int mySwitchChild
Definition: DtDynamicTerrainSwitchNode.h:198
std::list< SequenceDescriptor > SequenceInstanceList
Definition: DtDynamicTerrainSwitchNode.h:202
boost::signalslib::signal< void(DtDynamicTerrainSwitchNode *, DynamicTerrain::NodePathHash, int)> signal_setSwitch
signal for things to listen to so they can find out when a switch changes
Definition: DtDynamicTerrainSwitchNode.h:163
osg::BoundingSphere myOriginalbounds
Definition: DtDynamicTerrainSwitchNode.h:217
ValueChildMap myValueToChildMap
Definition: DtDynamicTerrainSwitchNode.h:215
unsigned int mySwitchState
Definition: DtDynamicTerrainSwitchNode.h:54
SwitchToSequenceMap mySwitchToSequenceMap
Definition: DtDynamicTerrainSwitchNode.h:209
boost::unordered_map< DynamicTerrain::NodePathHash, SequenceInstanceList > SwitchToSequenceMap
Definition: DtDynamicTerrainSwitchNode.h:206
This is everything we track for each switch reference.
Definition: DtDynamicTerrainSwitchNode.h:50
size_t operator()(DtString const &v) const
Definition: DtDynamicTerrainSwitchNode.h:33
boost::unordered_map< DtString, int > ValueChildMap
ValueChildMap defines an unordered map of value names to the child indices to which they correspond...
Definition: DtDynamicTerrainSwitchNode.h:91
Contains makVrv::DtMultiReferencedNodeContainer class.
DtDynamicTerrainSequenceNode replaces an osg::Sequence in a terrain patch (or page) that is tagged wi...
Definition: DtDynamicTerrainSequenceNode.h:62
osg::ref_ptr< DtDynamicTerrainSequenceNode > mySequence
Definition: DtDynamicTerrainSwitchNode.h:196
Contains DLL export macros.
osg::Vec3d myPosInModelCoords
Definition: DtDynamicTerrainSwitchNode.h:219
std::list< DtString > ValueNameList
ValueNameList defines a list of the names of state values (like 'on', or 'off', or 'damaged' etc...
Definition: DtDynamicTerrainSwitchNode.h:87
DtMultiReferencedNodeContainer is a class template that it used to provide support for dynamic nodes ...
Definition: DtMultiReferencedNodeContainer.h:43
std::list< DtString > StateNameList
StateNameList defines a list of the names this switch can be referred to by, as discovered with WRM '...
Definition: DtDynamicTerrainSwitchNode.h:83
DynamicTerrain::NodePathHash mySeqIndex
Definition: DtDynamicTerrainSwitchNode.h:197
Definition: DtDynamicTerrainSwitchNode.h:194