18 #include <osg/Sequence>
19 #include <osgSim/DOFTransform>
20 #include <osgSim/MultiSwitch>
23 #include <unordered_map>
33 class DtOsgArticulatedModel;
34 class DtModelSemanticsMapper;
44 typedef std::unordered_map<int, PartTransformList >
PartMap;
50 typedef std::unordered_map<std::string, AnimationList >
AnimationMap;
56 typedef std::vector< osg::ref_ptr<osg::Group> >
GroupList;
67 SequenceAndParams(osg::Sequence* sequence,
float multiplier,
float duration,
float defaultSpeed)
68 : mySequence(sequence)
69 , myMuliplier(multiplier)
70 , myDuration(duration)
71 , myDefaultSpeed(defaultSpeed)
110 , myMultiplier(uvMultiplier)
141 static std::string parserFormat();
144 virtual void apply(osg::Group& group);
147 virtual void apply(osg::Sequence& sequence);
148 virtual void apply(osgSim::MultiSwitch& multiswitch);
149 virtual void apply(osgSim::DOFTransform& transform);
150 virtual void apply(osg::Transform& transform);
159 virtual bool parseSwitchDeclaration(
const std::string& desc,
160 osgSim::MultiSwitch& multiswitch );
164 virtual bool parseDefaultMultiSwitchValues(osgSim::MultiSwitch& multiswitch);
174 virtual bool parseStateDeclaration(
const std::string& desc,
181 virtual bool parseAnnotationDeclaration(
const std::string& desc,
187 virtual bool parseScrollableTextureDeclaration(
const std::string& desc,
194 virtual bool parsePartDeclaration(
const std::string& desc,
195 osgSim::DOFTransform& transform);
201 virtual bool parseAnimationDeclaration(
const std::string& desc, osg::Sequence& sequence);
204 virtual bool parseFlipBookAnimationDeclaration(
const std::string& desc, osg::Sequence& sequence);
207 std::vector<int> parseValueList(
const std::string& valueList);
211 void pushStateId(
int idNumber, osgSim::MultiSwitch* lastStateId);
218 osgSim::MultiSwitch* lastStateId()
const;
221 int lastStateIdNumber()
const;
231 void addPart(
int partNumber,osgSim::DOFTransform* node );
232 void addState(
int stateNumber ,osgSim::MultiSwitch* node );
233 void addAnimation(
const std::string& animationName,osg::Sequence* node );
234 void setStateValueExists(
int stateNumber,
int stateValue );
235 void addAnnotationGroup(
const std::string& annotation, osg::Group* group);
236 void addScrollableTextureGroup(osg::Group* group);
237 void setDepthMask( osg::Group& parent );
285 static void registerCreator(
DtDe& de);
SequenceAndParams(osg::Sequence *sequence, float multiplier, float duration, float defaultSpeed)
Definition: DtArticulatedModelParser.h:67
std::stack< int > myStateIdNumbers
Definition: DtArticulatedModelParser.h:257
PartMap myPartMap
Definition: DtArticulatedModelParser.h:262
FlipBookAnimationMap myFlipBookAnimationMap
Definition: DtArticulatedModelParser.h:264
float myDuration
default loop duration that is computed from the sequence while parsing
Definition: DtArticulatedModelParser.h:94
structure for holding a parsed sequence and information about it.
Definition: DtArticulatedModelParser.h:64
float myMuliplier
loop duration multiplier (from the comments in art/model) Per Petr: Tanks - flipbook_animation loopd...
Definition: DtArticulatedModelParser.h:90
const std::string myAnnotationTag
Definition: DtArticulatedModelParser.h:248
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Abstract base class used to parse a model.
Definition: DtModelParser.h:22
std::vector< osg::ref_ptr< osg::Group > > GroupList
Definition: DtArticulatedModelParser.h:56
const std::string myStateTag
Definition: DtArticulatedModelParser.h:243
AnnotationMap myAnnotationMap
Definition: DtArticulatedModelParser.h:266
osg::ref_ptr< osg::Group > myGroup
group
Definition: DtArticulatedModelParser.h:122
ScrollableTextureGroupAndParams(osg::Group *group, Vector2_32 uvMultiplier)
Definition: DtArticulatedModelParser.h:108
std::vector< osg::ref_ptr< osgSim::DOFTransform > > PartTransformList
Definition: DtArticulatedModelParser.h:43
float myDefaultSpeed
default speed that is gotten from sequence while parsing
Definition: DtArticulatedModelParser.h:98
std::unordered_map< int, MultiSwitchList > MapStateNumberToMultiSwitchList
Definition: DtArticulatedModelParser.h:47
std::unordered_map< std::string, VectorSequenceAndMultipliers > FlipBookAnimationMap
Definition: DtArticulatedModelParser.h:102
osg::ref_ptr< osg::Sequence > mySequence
sequence
Definition: DtArticulatedModelParser.h:84
MapStateNumberToStateValue myMapStateNumberToStateValue
Definition: DtArticulatedModelParser.h:270
MapMultiSwitchToSwitchSetList myDefaultActiveSwitchState
Definition: DtArticulatedModelParser.h:272
std::map< int, int > MapStateNumberToStateValue
Definition: DtArticulatedModelParser.h:52
std::vector< bool > StateExistenceList
Definition: DtArticulatedModelParser.h:53
std::unordered_map< std::string, AnimationList > AnimationMap
Definition: DtArticulatedModelParser.h:50
std::vector< osg::ref_ptr< osgSim::MultiSwitch > > MultiSwitchList
Definition: DtArticulatedModelParser.h:46
Vector2_32 myMultiplier
speed multiplier (from the comments in art/model)
Definition: DtArticulatedModelParser.h:125
DtDe & myDe
Definition: DtArticulatedModelParser.h:259
std::unordered_map< std::string, GroupList > AnnotationMap
Definition: DtArticulatedModelParser.h:57
std::stack< osg::ref_ptr< osgSim::MultiSwitch > > myStateIds
Definition: DtArticulatedModelParser.h:256
const std::string mySkipTag
Definition: DtArticulatedModelParser.h:246
MapStateNumberToStateExistenceList myMapStateNumberToStateExistenceList
Definition: DtArticulatedModelParser.h:269
const std::string myFlipBookAnimationTag
Definition: DtArticulatedModelParser.h:253
Contains makVrv::DtModelParser class.
const std::string myScrollableTextureTag
Definition: DtArticulatedModelParser.h:250
Contains makVrv::DtModelSemanticsMapper class.
Contains makVrv::DtArticulatedModel class.
FlipBookAnimationMap myFlipBookAnimationMapWithVelocityControl
Definition: DtArticulatedModelParser.h:265
const std::string myAnimationTag
Definition: DtArticulatedModelParser.h:245
const std::string myPartTag
Definition: DtArticulatedModelParser.h:244
std::vector< ScrollableTextureGroupAndParams > VectorScrollableTextureGroupAndParams
Definition: DtArticulatedModelParser.h:128
structure for holding a parsed group that has scrollable textures underneath it and some information ...
Definition: DtArticulatedModelParser.h:106
const std::string myNoSkipTag
Definition: DtArticulatedModelParser.h:247
ScrollableTextureGroupMap myScrollableTextureGroupMap
Definition: DtArticulatedModelParser.h:267
MapStateNumberToMultiSwitchList myMapStateNumberToMultiSwitchList
Definition: DtArticulatedModelParser.h:271
const std::string myLoopCountTag
Definition: DtArticulatedModelParser.h:249
const std::string mySwitchTag
Definition: DtArticulatedModelParser.h:242
ScrollableTextureGroupAndParams()
Definition: DtArticulatedModelParser.h:115
std::vector< int > PartList
Definition: DtArticulatedModel.h:36
std::unordered_map< int, PartTransformList > PartMap
Definition: DtArticulatedModelParser.h:44
AnimationMap myAnimationMap
Definition: DtArticulatedModelParser.h:263
Create an articulated model parser.
Definition: DtArticulatedModelParser.h:279
DtModelSemanticsMapper & myModelSematicsMapper
Definition: DtArticulatedModelParser.h:274
const std::string myLastFrameTimeTag
Definition: DtArticulatedModelParser.h:251
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::map< osgSim::MultiSwitch *, SwitchSetList > MapMultiSwitchToSwitchSetList
Definition: DtArticulatedModelParser.h:61
const std::string myLoopDurationMultiplierTag
Definition: DtArticulatedModelParser.h:254
An abstract creator class for the model parser.
Definition: DtModelParser.h:35
std::vector< ValueList > SwitchSetList
Definition: DtArticulatedModelParser.h:60
Id
Definition: DtModelSemanticsMapper.h:40
std::vector< osg::ref_ptr< osg::Sequence > > AnimationList
Definition: DtArticulatedModelParser.h:49
std::vector< bool > ValueList
Definition: DtArticulatedModelParser.h:59
std::map< std::string, VectorScrollableTextureGroupAndParams > ScrollableTextureGroupMap
Definition: DtArticulatedModelParser.h:129
The DtModelSemanticsMapper object is responsible for mapping Names of model semantics declarations (f...
Definition: DtModelSemanticsMapper.h:27
SequenceAndParams()
Definition: DtArticulatedModelParser.h:75
Default implementation of the model parser for Articulated models.
Definition: DtArticulatedModelParser.h:38
std::unordered_map< int, StateExistenceList > MapStateNumberToStateExistenceList
Definition: DtArticulatedModelParser.h:54
std::vector< SequenceAndParams > VectorSequenceAndMultipliers
Definition: DtArticulatedModelParser.h:101