16 #include <osg/Sequence>
17 #include <osgSim/DOFTransform>
18 #include <osgSim/MultiSwitch>
22 #include <boost/unordered_map.hpp>
32 class DtOsgArticulatedModel;
33 class DtModelSemanticsMapper;
43 typedef boost::unordered_map<int, PartTransformList >
PartMap;
44 typedef std::vector< osg::ref_ptr<osgSim::MultiSwitch> >
StateList;
45 typedef boost::unordered_map<int, StateList >
StateMap;
47 typedef boost::unordered_map<std::string, AnimationList >
AnimationMap;
51 typedef std::vector< osg::ref_ptr<osg::Group> >
GroupList;
55 typedef std::map<osgSim::MultiSwitch*, SwitchSetList>
SwitchSetMap;
66 static std::string parserFormat();
69 virtual void apply(osg::Group& group);
72 virtual void apply(osg::Sequence& sequence);
73 virtual void apply(osgSim::MultiSwitch& multiswitch);
74 virtual void apply(osgSim::DOFTransform& transform);
75 virtual void apply(osg::Transform& transform);
84 virtual bool parseSwitchDeclaration(
const std::string& desc,
85 osgSim::MultiSwitch& multiswitch );
89 virtual bool parseDefaultMultiSwitchValues(osgSim::MultiSwitch& multiswitch);
100 virtual bool parseStateDeclaration(
const std::string& desc,
107 virtual bool parseAnnotationDeclaration(
const std::string& desc,
114 virtual bool parsePartDeclaration(
const std::string& desc,
115 osgSim::DOFTransform& transform);
121 virtual bool parseAnimationDeclaration(
const std::string& desc,
122 osg::Sequence& sequence);
125 std::vector<int> parseValueList(
const std::string& valueList);
129 void pushStateId(
int idNumber, osgSim::MultiSwitch* lastStateId);
136 osgSim::MultiSwitch* lastStateId()
const;
139 int lastStateIdNumber()
const;
147 void addPart(
int partNumber,osgSim::DOFTransform* node );
148 void addState(
int stateNumber ,osgSim::MultiSwitch* node );
149 void addAnimation(
const std::string& animationName,osg::Sequence* node );
150 void setStateValueExists(
int stateNumber,
int stateValue );
151 void addAnnotationGroup(
const std::string& annotation, osg::Group* group);
152 void setDepthMask( osg::Group& parent );
191 static void registerCreator(
DtDe& de);
std::stack< int > myStateIdNumbers
Definition: DtArticulatedModelParser.h:168
std::string myAnimationTag
Definition: DtArticulatedModelParser.h:160
PartMap myPartMap
Definition: DtArticulatedModelParser.h:173
std::map< int, int > StateValueMap
Definition: DtArticulatedModelParser.h:48
std::string myAnnotationTag
Definition: DtArticulatedModelParser.h:163
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Abstract base class used to parse a model.
Definition: DtModelParser.h:22
std::string myNoSkipTag
Definition: DtArticulatedModelParser.h:162
std::vector< osg::ref_ptr< osg::Group > > GroupList
Definition: DtArticulatedModelParser.h:51
AnnotationMap myAnnotationMap
Definition: DtArticulatedModelParser.h:176
std::vector< osg::ref_ptr< osgSim::DOFTransform > > PartTransformList
Definition: DtArticulatedModelParser.h:42
boost::unordered_map< std::string, AnimationList > AnimationMap
Definition: DtArticulatedModelParser.h:47
std::string myPartTag
Definition: DtArticulatedModelParser.h:159
std::string myLastFrameTimeTag
Definition: DtArticulatedModelParser.h:165
std::map< osgSim::MultiSwitch *, SwitchSetList > SwitchSetMap
Definition: DtArticulatedModelParser.h:55
std::string myStateTag
Definition: DtArticulatedModelParser.h:158
boost::unordered_map< int, StateList > StateMap
Definition: DtArticulatedModelParser.h:45
boost::unordered_map< int, PartTransformList > PartMap
Definition: DtArticulatedModelParser.h:43
StateExistenceMap myStateExistenceMap
Definition: DtArticulatedModelParser.h:177
DtDe & myDe
Definition: DtArticulatedModelParser.h:170
std::stack< osg::ref_ptr< osgSim::MultiSwitch > > myStateIds
Definition: DtArticulatedModelParser.h:167
Contains makVrv::DtModelParser class.
Contains makVrv::DtModelSemanticsMapper class.
Contains makVrv::DtArticulatedModel class.
std::vector< int > StateExistenceList
Definition: DtArticulatedModelParser.h:49
StateValueMap myStateValueMap
Definition: DtArticulatedModelParser.h:178
std::vector< int > PartList
Definition: DtArticulatedModel.h:36
std::string mySkipTag
Definition: DtArticulatedModelParser.h:161
boost::unordered_map< std::string, GroupList > AnnotationMap
Definition: DtArticulatedModelParser.h:52
AnimationMap myAnimationMap
Definition: DtArticulatedModelParser.h:175
std::string myLoopCountTag
Definition: DtArticulatedModelParser.h:164
boost::unordered_map< int, StateExistenceList > StateExistenceMap
Definition: DtArticulatedModelParser.h:50
Create an articulated model parser.
Definition: DtArticulatedModelParser.h:185
DtModelSemanticsMapper & myModelSematicsMapper
Definition: DtArticulatedModelParser.h:180
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
StateMap myStateMap
Definition: DtArticulatedModelParser.h:174
std::string mySwitchTag
Definition: DtArticulatedModelParser.h:157
An abstract creator class for the model parser.
Definition: DtModelParser.h:35
std::vector< ValueList > SwitchSetList
Definition: DtArticulatedModelParser.h:54
std::vector< osg::ref_ptr< osgSim::MultiSwitch > > StateList
Definition: DtArticulatedModelParser.h:44
Id
Definition: DtModelSemanticsMapper.h:40
std::vector< osg::ref_ptr< osg::Sequence > > AnimationList
Definition: DtArticulatedModelParser.h:46
std::vector< bool > ValueList
Definition: DtArticulatedModelParser.h:53
SwitchSetMap myDefaultActiveSwitchState
Definition: DtArticulatedModelParser.h:179
The DtModelSemanticsMapper object is responsible for mapping Names of model semantics declarations (f...
Definition: DtModelSemanticsMapper.h:27
Default implementation of the model parser for Articulated models.
Definition: DtArticulatedModelParser.h:37