20 #include <vlutil/vlString.h>
22 #include <osg/Matrixd>
24 #include <boost/unordered_map.hpp>
28 #include <boost/thread/mutex.hpp>
43 class DtDynamicTerrainSequenceNode;
111 const osg::Matrix& matrix = osg::Matrix::identity());
117 const osg::Matrix& matrix = osg::Matrix::identity());
124 static std::string parserFormat();
128 virtual void apply( osg::Group& group );
129 virtual void apply( osgSim::MultiSwitch& multiswitch );
131 virtual void apply( osg::Sequence& sequence );
137 const StateLocationList& stateLocations()
const;
138 void addStateLocation(
const osg::Vec3d& vec);
140 const TerrainSwitchList& terrainSwitches()
const;
143 const StateIndexList& stateIndices()
const;
152 virtual void runVisitor(osg::Node&,
const osg::Matrix&);
158 virtual bool parseSwitchNames(
const std::string& desc,
159 osgSim::MultiSwitch& multiswitch, std::list<DtString>& stateNames );
165 virtual bool parseSwitchPosition(
const std::string& desc,
166 osgSim::MultiSwitch& multiswitch,
DtString& positionStr);
172 virtual void parseSwitchValues(
const osg::Node& node, std::list<DtString>& valueNames );
176 virtual void parseValueListString(
const std::string& valueList, std::list<DtString>& valueNames );
179 virtual void popSwitch();
183 virtual void popSwitchIndex();
186 virtual void pushSwitchChildCount(
int child );
187 virtual void popSwitchChildCount();
188 virtual int findCurrentSwitchChildCount()
const;
189 virtual void incrementSwitchChildCount();
190 virtual void decrementSwitchChildCount();
207 typedef boost::unordered_map<DynamicTerrain::NodePathHash, DynamicTerrain::NodePathHash>
ParentHashMap;
225 static void registerCreator(
DtDe& de);
DtDynamicTerrainWorld & myWorld
Definition: DtDynamicTerrainParser.h:194
Implementation of the model parser for Dynamic Terrain The DtDynamicTerrainParser visits all the node...
Definition: DtDynamicTerrainParser.h:65
std::stack< std::string > myStateNames
Definition: DtDynamicTerrainParser.h:199
StateIndexList myStateIndexList
Definition: DtDynamicTerrainParser.h:197
std::vector< osg::ref_ptr< DtDynamicTerrainSwitchNode > > TerrainSwitchList
TerrainSwitchList defines a vector of all the dynamic terrain switches discovered.
Definition: DtDynamicTerrainParser.h:84
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: DtIndirectSwitchInfo.h:23
DtDynamicTerrainWorld::FeatureHandle myFeatureHandles
Definition: DtDynamicTerrainParser.h:210
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Abstract base class used to parse a model.
Definition: DtModelParser.h:22
std::vector< DynamicTerrain::NodePathHash > StateIndexList
StateIndexList defines a vector of a NodePathHash values associated with each switch reference discov...
Definition: DtDynamicTerrainParser.h:77
static boost::mutex theParserMutex
Definition: DtDynamicTerrainParser.h:212
std::vector< osg::Vec3d > StateLocationList
StateLocationList defines a vector of the world locations of each dynamic terrain switch reference di...
Definition: DtDynamicTerrainParser.h:73
boost::unordered_map< DynamicTerrain::NodePathHash, DynamicTerrain::NodePathHash > ParentHashMap
Definition: DtDynamicTerrainParser.h:207
std::stack< osg::ref_ptr< DtDynamicTerrainSwitchNode > > myCurrentSwitchStack
Definition: DtDynamicTerrainParser.h:200
Contains makVrv::DtDynamicTerrainStateManipulatorFactory class.
StateLocationList myStateLocationList
Definition: DtDynamicTerrainParser.h:196
Create an articulated model parser.
Definition: DtDynamicTerrainParser.h:219
Factory for creating objects which implement some kind of manipulation of the state of dynamically ch...
Definition: DtDynamicTerrainStateManipulatorFactory.h:67
std::stack< int > myCurrentSwitchChildCountStack
Definition: DtDynamicTerrainParser.h:202
ParentHashMap myParentHashMap
Definition: DtDynamicTerrainParser.h:208
bool myAddInstances
Definition: DtDynamicTerrainParser.h:214
DtDynamicTerrainWorld::FeatureHandle featureHandle() const
Accessor the handle to the features which have been paged in by calls to parse.
Definition: DtDynamicTerrainParser.h:120
Contains makVrv::DtArticulatedModelParser class.
DtDynamicTerrainSequenceNode replaces an osg::Sequence in a terrain patch (or page) that is tagged wi...
Definition: DtDynamicTerrainSequenceNode.h:62
Contains makVrv::DtDynamicTerrainWorld class.
Contains DLL export macros.
Feature Insertion/Removal/Paging Features represent parts of the terrain which are individually ident...
Definition: DtDynamicTerrainWorld.h:99
Contains makVrv::DtDynamicTerrainSwitchNode class.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
TerrainSwitchList myTerrainSwitchList
Definition: DtDynamicTerrainParser.h:198
An abstract creator class for the model parser.
Definition: DtModelParser.h:35
std::string mySwitchPosTag
Definition: DtDynamicTerrainParser.h:204
Container for dynamic terrain features, change requests, and queries.
Definition: DtDynamicTerrainWorld.h:71
The DtModelSemanticsMapper object is responsible for mapping Names of model semantics declarations (f...
Definition: DtModelSemanticsMapper.h:27
std::stack< DynamicTerrain::NodePathHash > myCurrentSwitchIndexStack
Definition: DtDynamicTerrainParser.h:201
Default implementation of the model parser for Articulated models.
Definition: DtArticulatedModelParser.h:38