VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
makVrv::DtArticulatedModelParser Class Reference

Default implementation of the model parser for Articulated models.

Inheritance diagram for makVrv::DtArticulatedModelParser:
Inheritance graph
[legend]

Classes

struct  ScrollableTextureGroupAndParams
 
struct  SequenceAndParams
 

Public Types

Output structures
enum  TrackSide { TS_LEFT = 0, TS_RIGHT, TS_UKNOWN }
 
typedef std::vector
< osg::ref_ptr
< osgSim::DOFTransform > > 
PartTransformList
 
typedef std::unordered_map
< int, PartTransformList
PartMap
 
typedef std::vector
< osg::ref_ptr
< osgSim::MultiSwitch > > 
MultiSwitchList
 
typedef std::unordered_map
< int, MultiSwitchList
MapStateNumberToMultiSwitchList
 
typedef std::vector
< osg::ref_ptr< osg::Sequence > > 
AnimationList
 
typedef std::unordered_map
< std::string, AnimationList
AnimationMap
 
typedef std::map< int, intMapStateNumberToStateValue
 
typedef std::vector< boolStateExistenceList
 
typedef std::unordered_map
< int, StateExistenceList
MapStateNumberToStateExistenceList
 
typedef std::vector
< osg::ref_ptr< osg::Group > > 
GroupList
 
typedef std::unordered_map
< std::string, GroupList
AnnotationMap
 
typedef std::vector< boolValueList
 
typedef std::vector< ValueListSwitchSetList
 
typedef std::map
< osgSim::MultiSwitch
*, SwitchSetList
MapMultiSwitchToSwitchSetList
 
typedef std::vector
< SequenceAndParams
VectorSequenceAndMultipliers
 
typedef std::unordered_map
< std::string,
VectorSequenceAndMultipliers
FlipBookAnimationMap
 
typedef std::vector
< ScrollableTextureGroupAndParams
VectorScrollableTextureGroupAndParams
 
typedef std::map< std::string,
VectorScrollableTextureGroupAndParams
ScrollableTextureGroupMap
 

Public Member Functions

 DtArticulatedModelParser (DtDe &de, DtModelSemanticsMapper &modelSematicsMapper)
 
virtual ~DtArticulatedModelParser ()
 
virtual void apply (osg::Group &group)
 
virtual void apply (osg::Sequence &sequence)
 
virtual void apply (osgSim::MultiSwitch &multiswitch)
 
virtual void apply (osgSim::DOFTransform &transform)
 
virtual void apply (osg::Transform &transform)
 
- Public Member Functions inherited from makVrv::DtModelParser
 DtModelParser ()
 
virtual ~DtModelParser ()
 

Static Public Member Functions

static std::string parserFormat ()
 

Public Attributes

PartMap myPartMap
 
AnimationMap myAnimationMap
 
FlipBookAnimationMap myFlipBookAnimationMap
 
FlipBookAnimationMap myFlipBookAnimationMapWithVelocityControl
 
AnnotationMap myAnnotationMap
 
ScrollableTextureGroupMap myScrollableTextureGroupMap
 
MapStateNumberToStateExistenceList myMapStateNumberToStateExistenceList
 
MapStateNumberToStateValue myMapStateNumberToStateValue
 
MapStateNumberToMultiSwitchList myMapStateNumberToMultiSwitchList
 
MapMultiSwitchToSwitchSetList myDefaultActiveSwitchState
 
DtModelSemanticsMappermyModelSematicsMapper
 

Protected Member Functions

virtual bool parseSwitchDeclaration (const std::string &desc, osgSim::MultiSwitch &multiswitch)
 
virtual bool parseDefaultMultiSwitchValues (osgSim::MultiSwitch &multiswitch)
 
const
DtModelSemanticsMapper::States::Id
createCustomStateId (const std::string &stateName)
 
virtual bool parseStateDeclaration (const std::string &desc, osg::Group &group)
 
virtual bool parseAnnotationDeclaration (const std::string &desc, osg::Group &group)
 
virtual bool parseScrollableTextureDeclaration (const std::string &desc, osg::Group &group)
 
virtual bool parsePartDeclaration (const std::string &desc, osgSim::DOFTransform &transform)
 
virtual bool parseAnimationDeclaration (const std::string &desc, osg::Sequence &sequence)
 
virtual bool parseFlipBookAnimationDeclaration (const std::string &desc, osg::Sequence &sequence)
 
std::vector< intparseValueList (const std::string &valueList)
 
void pushStateId (int idNumber, osgSim::MultiSwitch *lastStateId)
 
void popStateId ()
 
osgSim::MultiSwitch * lastStateId () const
 
int lastStateIdNumber () const
 
get/set parsed data interface
void getParts (DtArticulatedModel::PartList &parts) const
 
const PartMapparts () const
 
const
MapStateNumberToMultiSwitchList
states () const
 
const AnimationMapanimations () const
 
const FlipBookAnimationMapflipBookAnimations (void) const
 
const FlipBookAnimationMapflipBookAnimationsWithVelocityControl (void) const
 
void addPart (int partNumber, osgSim::DOFTransform *node)
 
void addState (int stateNumber, osgSim::MultiSwitch *node)
 
void addAnimation (const std::string &animationName, osg::Sequence *node)
 
void setStateValueExists (int stateNumber, int stateValue)
 
void addAnnotationGroup (const std::string &annotation, osg::Group *group)
 
void addScrollableTextureGroup (osg::Group *group)
 
void setDepthMask (osg::Group &parent)
 

Protected Attributes

const std::string mySwitchTag
 
const std::string myStateTag
 
const std::string myPartTag
 
const std::string myAnimationTag
 
const std::string mySkipTag
 
const std::string myNoSkipTag
 
const std::string myAnnotationTag
 
const std::string myLoopCountTag
 
const std::string myScrollableTextureTag
 
const std::string myLastFrameTimeTag
 
const std::string myFlipBookAnimationTag
 
const std::string myLoopDurationMultiplierTag
 
std::stack< osg::ref_ptr
< osgSim::MultiSwitch > > 
myStateIds
 
std::stack< intmyStateIdNumbers
 
DtDemyDe
 

Member Typedef Documentation

typedef std::vector<osg::ref_ptr<osgSim::DOFTransform> > makVrv::DtArticulatedModelParser::PartTransformList
typedef std::vector< osg::ref_ptr<osgSim::MultiSwitch> > makVrv::DtArticulatedModelParser::MultiSwitchList
typedef std::vector< osg::ref_ptr<osg::Sequence> > makVrv::DtArticulatedModelParser::AnimationList
typedef std::unordered_map<std::string, AnimationList > makVrv::DtArticulatedModelParser::AnimationMap
typedef std::vector< osg::ref_ptr<osg::Group> > makVrv::DtArticulatedModelParser::GroupList
typedef std::unordered_map<std::string, GroupList > makVrv::DtArticulatedModelParser::AnnotationMap

Member Enumeration Documentation

Enumerator
TS_LEFT 
TS_RIGHT 
TS_UKNOWN 

Constructor & Destructor Documentation

makVrv::DtArticulatedModelParser::DtArticulatedModelParser ( DtDe de,
DtModelSemanticsMapper modelSematicsMapper 
)

CTOR.

virtual makVrv::DtArticulatedModelParser::~DtArticulatedModelParser ( )
virtual

DTOR.

Member Function Documentation

static std::string makVrv::DtArticulatedModelParser::parserFormat ( )
static

Get the string to indicate the parser format this parser supports.

virtual void makVrv::DtArticulatedModelParser::apply ( osg::Group &  group)
virtual

Apply functions used for iterating through a model using the as a node visitor.

Reimplemented in makVrv::DtDynamicTerrainParser.

virtual void makVrv::DtArticulatedModelParser::apply ( osg::Sequence &  sequence)
virtual

Apply functions used for iterating through a model using the as a node visitor.

Reimplemented in makVrv::DtDynamicTerrainParser.

virtual void makVrv::DtArticulatedModelParser::apply ( osgSim::MultiSwitch &  multiswitch)
virtual

Apply functions used for iterating through a model using the as a node visitor.

Reimplemented in makVrv::DtDynamicTerrainParser.

virtual void makVrv::DtArticulatedModelParser::apply ( osgSim::DOFTransform &  transform)
virtual

Apply functions used for iterating through a model using the as a node visitor.

virtual void makVrv::DtArticulatedModelParser::apply ( osg::Transform &  transform)
virtual

Apply functions used for iterating through a model using the as a node visitor.

virtual bool makVrv::DtArticulatedModelParser::parseSwitchDeclaration ( const std::string &  desc,
osgSim::MultiSwitch &  multiswitch 
)
protectedvirtual

Parse a switch declaration and add a state to the model if it is able to parse the description.

Return values
trueif a state was added.
falseif a state was not added.
virtual bool makVrv::DtArticulatedModelParser::parseDefaultMultiSwitchValues ( osgSim::MultiSwitch &  multiswitch)
protectedvirtual

Parse a switch to save the default values to be re-used when use by a simple model (props)

const DtModelSemanticsMapper::States::Id* makVrv::DtArticulatedModelParser::createCustomStateId ( const std::string &  stateName)
protected

Creates a custom state id if possible.

Returns
NULL if a state was not added.
virtual bool makVrv::DtArticulatedModelParser::parseStateDeclaration ( const std::string &  desc,
osg::Group &  group 
)
protectedvirtual

Parse a state node. A state is added if a declaration was parsed.

Return values
trueif a state was added.
falseif a state was not added.
virtual bool makVrv::DtArticulatedModelParser::parseAnnotationDeclaration ( const std::string &  desc,
osg::Group &  group 
)
protectedvirtual

Parse a annotation node. An annotation is added if a declaration was parsed.

Return values
trueif a state was added.
falseif a state was not added.
virtual bool makVrv::DtArticulatedModelParser::parseScrollableTextureDeclaration ( const std::string &  desc,
osg::Group &  group 
)
protectedvirtual

Parse a group node with scrollable texture.

Return values
trueif a group was added.
falseif a group was not added.
virtual bool makVrv::DtArticulatedModelParser::parsePartDeclaration ( const std::string &  desc,
osgSim::DOFTransform &  transform 
)
protectedvirtual

Parse a part declaration and add a part if the parse was successful.

Return values
trueif a part was added.
falseif a part was not added.

Reimplemented in DtVrfArticulatedModelParser.

virtual bool makVrv::DtArticulatedModelParser::parseAnimationDeclaration ( const std::string &  desc,
osg::Sequence &  sequence 
)
protectedvirtual

Parse an animation declaration and add an animation if the part was successful.

Return values
trueif an animation was added.
falseif an animation was not added.
virtual bool makVrv::DtArticulatedModelParser::parseFlipBookAnimationDeclaration ( const std::string &  desc,
osg::Sequence &  sequence 
)
protectedvirtual

Parse flip book animation types.

std::vector<int> makVrv::DtArticulatedModelParser::parseValueList ( const std::string &  valueList)
protected

Parse a value list string into a list of integers.

void makVrv::DtArticulatedModelParser::pushStateId ( int  idNumber,
osgSim::MultiSwitch *  lastStateId 
)
protected

Push a state id onto a local stack. This allows for tracking which the current state is when adding children.

void makVrv::DtArticulatedModelParser::popStateId ( )
protected

Pop a state id onto a local stack. This removes a state id after a node's children have been traversed.

osgSim::MultiSwitch* makVrv::DtArticulatedModelParser::lastStateId ( ) const
protected
Return values
0(invalidId) if there are no ids.
int makVrv::DtArticulatedModelParser::lastStateIdNumber ( ) const
protected
Return values
0(invalidId) if there are no ids.
void makVrv::DtArticulatedModelParser::getParts ( DtArticulatedModel::PartList parts) const
protected
const PartMap& makVrv::DtArticulatedModelParser::parts ( ) const
protected
const MapStateNumberToMultiSwitchList& makVrv::DtArticulatedModelParser::states ( ) const
protected
const AnimationMap& makVrv::DtArticulatedModelParser::animations ( ) const
protected
const FlipBookAnimationMap& makVrv::DtArticulatedModelParser::flipBookAnimations ( void  ) const
protected
const FlipBookAnimationMap& makVrv::DtArticulatedModelParser::flipBookAnimationsWithVelocityControl ( void  ) const
protected
void makVrv::DtArticulatedModelParser::addPart ( int  partNumber,
osgSim::DOFTransform *  node 
)
protected
void makVrv::DtArticulatedModelParser::addState ( int  stateNumber,
osgSim::MultiSwitch *  node 
)
protected
void makVrv::DtArticulatedModelParser::addAnimation ( const std::string &  animationName,
osg::Sequence *  node 
)
protected
void makVrv::DtArticulatedModelParser::setStateValueExists ( int  stateNumber,
int  stateValue 
)
protected
void makVrv::DtArticulatedModelParser::addAnnotationGroup ( const std::string &  annotation,
osg::Group *  group 
)
protected
void makVrv::DtArticulatedModelParser::addScrollableTextureGroup ( osg::Group *  group)
protected
void makVrv::DtArticulatedModelParser::setDepthMask ( osg::Group &  parent)
protected

Member Data Documentation

const std::string makVrv::DtArticulatedModelParser::mySwitchTag
protected
const std::string makVrv::DtArticulatedModelParser::myStateTag
protected
const std::string makVrv::DtArticulatedModelParser::myPartTag
protected
const std::string makVrv::DtArticulatedModelParser::myAnimationTag
protected
const std::string makVrv::DtArticulatedModelParser::mySkipTag
protected
const std::string makVrv::DtArticulatedModelParser::myNoSkipTag
protected
const std::string makVrv::DtArticulatedModelParser::myAnnotationTag
protected
const std::string makVrv::DtArticulatedModelParser::myLoopCountTag
protected
const std::string makVrv::DtArticulatedModelParser::myScrollableTextureTag
protected
const std::string makVrv::DtArticulatedModelParser::myLastFrameTimeTag
protected
const std::string makVrv::DtArticulatedModelParser::myFlipBookAnimationTag
protected
const std::string makVrv::DtArticulatedModelParser::myLoopDurationMultiplierTag
protected
std::stack<osg::ref_ptr<osgSim::MultiSwitch> > makVrv::DtArticulatedModelParser::myStateIds
protected
std::stack<int> makVrv::DtArticulatedModelParser::myStateIdNumbers
protected
DtDe& makVrv::DtArticulatedModelParser::myDe
protected
PartMap makVrv::DtArticulatedModelParser::myPartMap
AnimationMap makVrv::DtArticulatedModelParser::myAnimationMap
FlipBookAnimationMap makVrv::DtArticulatedModelParser::myFlipBookAnimationMap
FlipBookAnimationMap makVrv::DtArticulatedModelParser::myFlipBookAnimationMapWithVelocityControl
AnnotationMap makVrv::DtArticulatedModelParser::myAnnotationMap
ScrollableTextureGroupMap makVrv::DtArticulatedModelParser::myScrollableTextureGroupMap
MapStateNumberToStateExistenceList makVrv::DtArticulatedModelParser::myMapStateNumberToStateExistenceList
MapStateNumberToStateValue makVrv::DtArticulatedModelParser::myMapStateNumberToStateValue
MapStateNumberToMultiSwitchList makVrv::DtArticulatedModelParser::myMapStateNumberToMultiSwitchList
MapMultiSwitchToSwitchSetList makVrv::DtArticulatedModelParser::myDefaultActiveSwitchState
DtModelSemanticsMapper& makVrv::DtArticulatedModelParser::myModelSematicsMapper

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)