VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends
makVrv::DtOsgArticulatedModel Class Reference

An articulated model manipulator for controlling an articulated model. More...

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

Public Types

typedef std::vector< osg::Node * > NodeList
 
typedef boost::unordered_map
< int, NodeList
NodePathCache
 
typedef std::map< std::string,
std::string > 
LinkageConfigMap
 
- Public Types inherited from makVrv::DtArticulatedModel
enum  AnimationState { START, STOP, PAUSE, RESUME }
 
typedef std::vector< intPartList
 

Public Member Functions

 DtOsgArticulatedModel (DtDe &, DtUniqueID id)
 CTOR. More...
 
virtual ~DtOsgArticulatedModel ()
 DTOR. More...
 
virtual void setModelDefinition (const std::string &str)
 Override the set model definition function. More...
 
virtual const std::string & modelDefinition ()
 
virtual const std::string & className () const
 Get the class name of the model instance owner. More...
 
virtual void setModelScalingEnabled (bool b)
 Indicate whether or not this model may be model-scaled Default is false. More...
 
virtual bool modelScalingEnabled ()
 getter for model scaling enabled flag More...
 
virtual void setLocalModelScalingEnabled (bool enabled)
 Indicates whether local model scaling for the model is enabled. More...
 
virtual void setLocalModelScalingAmount (float localScl)
 Sets the amount of local scaling to apply to the model. More...
 
virtual void setPosition (int vtx, const DtVector &position)
 Set the model's position for the specified vertex. More...
 
virtual void setOrientation (int vtx, const DtTaitBryan &orientation)
 Set the model's orientation for the specified vertex. More...
 
virtual void setPositionOffset (const DtVector &positionOffset)
 Set the position offset of the model. More...
 
virtual void setOrientationOffset (const DtTaitBryan &orientationOffset)
 Set the Orientation Offset of the model. More...
 
virtual void setVisible (bool isVisible)
 Set the visible state of the model and scene connector. More...
 
DtUniqueID sceneObjectId ()
 Get the ID for this model's scene object, if any. More...
 
virtual void setElementId (DtUniqueID id)
 Set the element ID for this model. More...
 
virtual void setLightPointGroup (const std::string &groupName)
 Set the light point group that this model's light points belong to. More...
 
virtual std::string lightPointGroup ()
 Get the light point group that this model's light points belong to. More...
 
virtual LinkageConfigMaplinkageConfigMap ()
 Get the mapping of linkage names (NodeName/Annotation) to configName pairs. More...
 
virtual const LinkageConfigMaplinkageConfigMap () const
 Get the mapping of linkage names (NodeName/Annotation) to configName pairs. More...
 
virtual void setPartTranslation (int partNumber, const DtVector &transform, const DtVector &velocity)
 Update the part translation. More...
 
virtual void setPartOrientation (int partNumber, const DtTaitBryan &orientation, const DtVector &rotationalVelocity)
 Rotate the part. More...
 
virtual void setPartRotationalVelocity (int partNumber, const DtVector &rotationalVelocity, bool forceUpdate=true)
 Set just the rotational velocity (without having to do orientation) forceUpdate will force an update when instancing is enabled. More...
 
virtual void setState (int stateNumber, int stateValue)
 Set the state on the model. More...
 
virtual void reapplyState ()
 Set the state on the model. More...
 
int state (int stateNumber) const
 Get a state of the model Returns -1 if no such state exists. More...
 
virtual void setLightpointMaxDistance (float distance)
 Specify the maximum range at which lightpoints on this model will be visible. More...
 
virtual void setDepthMask (osg::Group &parent)
 Sets child nodes as a depth mask, which writes to the depth buffer and does not get sorted as transparent. More...
 
virtual void setAnimationFrame (const std::string &animationName, int frameIndex)
 Set the current frame of an animation. More...
 
virtual void setAnimationRange (const std::string &animationName, int firstFrameIndex, int lastFrameIndex)
 Set the animation range. More...
 
virtual void setAnimationSpeed (const std::string &animationName, double framesPerSecond)
 Set the animation speed. More...
 
virtual void setAnimationState (const std::string &animationName, AnimationState mode)
 Set the animation mode. More...
 
virtual void setAnimationLastFrameTime (const std::string &animationName, double animationLastFrameTime)
 Set the last frame time in the currnet range in an animation /param animationLastFrameTime should be non-negative value only support in non-instance model. More...
 
virtual void setAnimationLoopCount (const std::string &animationName, int loopCount)
 Get the animation loop count in an animation /param loopCount -1:repeat forever 0:no repetitions only support in non-instance model. More...
 
virtual void setUvOffset (const std::string &annotation, float uOffset, float vOffset)
 Groups using a texture atlas are identified using an annotation (ex. More...
 
virtual void setDynamicSensorRegion (const std::string &region, bool state)
 Set the state of a dynamic sensor region. More...
 
virtual bool dynamicSensorRegion (const std::string &region)
 Get the state of a dynamic sensor region. More...
 
virtual void setLinkageConfigPair (const std::string &linkageName, const std::string &configName)
 Specifies a linkage/config pair where the linkageName is the name of a node or an annotation on a node that identifies it and configName is a string looked up in the Mappings section of the FeatureData for the linkage in the metafile associated with the model. More...
 
virtual bool findPartPositionAndOrientation (int partNumber, DtVector &position, DtQuat &ori)
 Finds the absolute position and orientation of a part. More...
 
virtual DtVector partTranslation (int partNumber) const
 Get a part translation. More...
 
virtual DtTaitBryan partOrientation (int partNumber) const
 Get a part orientation. More...
 
virtual int animationFrameCount (const std::string &animationName) const
 Get number of frames in an animation. More...
 
virtual int animationCurrentFrame (const std::string &animationName) const
 Get the current frame of an animation. More...
 
virtual int animationFirstFrame (const std::string &animationName) const
 Get the first frame in the current range in an animation. More...
 
virtual int animationLastFrame (const std::string &animationName) const
 Get the last frame in the current range in an animation. More...
 
virtual double animationSpeed (const std::string &animationName) const
 Get the speed of an animation. More...
 
virtual AnimationState animationState (const std::string &animationName) const
 Get the animation mode of an animation. More...
 
virtual double animationLastFrameTime (const std::string &animationName) const
 Get the last frame time in the current range in an animation. More...
 
virtual int animationLoopCount (const std::string &animationName) const
 Get the animation loop count in an animation. More...
 
const
DtArticulatedModelParser::PartMap
parts () const
 Get a map of the current parts. More...
 
virtual void getParts (PartList &parts) const
 Only a list of all the parts. More...
 
const
DtArticulatedModelParser::StateMap
states () const
 Get a map of the current states. More...
 
const
DtArticulatedModelParser::AnimationMap
animations () const
 Get a map of the current animations. More...
 
virtual void addPart (int partNumber, osgSim::DOFTransform *node)
 Add a part off the DOF transform node and a part Number. More...
 
virtual void addState (int stateNumber, osgSim::MultiSwitch *node)
 Add a switch off the DOF switch node and a part number. More...
 
virtual void setStateValueExists (int stateNumber, int stateValue)
 Set when a state value exists; only state values that have had this method called on them will be used. More...
 
virtual void addAnimation (const std::string &animationName, osg::Sequence *node)
 Add animation Sequence. More...
 
virtual void addAnnotationGroup (const std::string &annotation, osg::Group *group)
 Add a mapping from an annotation to a group node. More...
 
virtual void setColor (float r, float g, float b, float a)
 Set the blend color for the model. More...
 
virtual void enableColorBlending (bool b)
 enable color blending for the model More...
 
virtual void setBlendColor (float r, float g, float b, float a)
 Set the blend color for the model. More...
 
virtual void setPartVisibility (int partNumber, bool onOff)
 Set an articulated part visible/invisible by part number. More...
 
virtual void setIsSupportModel (bool isSupport)
 Set whether the model is part of the support group (whether or not other scene objects can ground clamp to this model) More...
 
virtual void getBoundingBoxComponents (DtVector &minimum, DtVector &maximum)
 Get the minimum and maximum X,Y,Z components of the bounding box. More...
 
std::vector
< DtVirtualBaseClass * > & 
modelAttachments ()
 Get the list of dynamic feature objects for this model (created by .meta files) More...
 
virtual bool applyMetafile (const DtModelDefinition *definition)
 For a given model definition, get the .medf file name, load the corresponding .meta file and created nodes in the DtOsgModelInstance. More...
 
virtual void slot_onShadowStateChanged (bool on)
 Turn on or off the shadow polygon on objects (ex. vehicles) More...
 
virtual void slot_atcModeEnableChanged (bool state)
 slot for handling when alpha to coverage on all models is changed More...
 
- Public Member Functions inherited from makVrv::DtArticulatedModel
 DtArticulatedModel (DtDe &, DtUniqueID id)
 CTOR. More...
 
virtual ~DtArticulatedModel ()
 DTOR. More...
 
virtual bool supportsMultithreadedLoad ()
 controls if the model is loaded in the background More...
 
- Public Member Functions inherited from makVrv::DtModel
 DtModel (DtDe &de, DtUniqueID id)
 CTOR. More...
 
virtual ~DtModel ()
 DTOR. More...
 
DtModelInstancecreateModelInstance (const std::string &modelDefName, bool realize=true)
 Set the model definition and creates an instance of the model. More...
 
virtual const std::string & modelDefinitionName ()
 returns the model definition name. More...
 
virtual void saveModelToFile (const std::string &filename)
 
unsigned int transformSize () const
 Get the number of position/orientations this model has. More...
 
virtual const DtVectorposition (int vtx=0) const
 Get the Position of a given point. More...
 
virtual void removePosition (int vtx)
 Remove a transform at the given position. More...
 
virtual const DtVectorpositionOffset () const
 Get the Position Offset of the model. More...
 
virtual void setPositionAndOrientation (int vtx, const DtVector &positionOffset, const DtTaitBryan &orientation)
 Set the position and orientation of a vertex in the model at the same time. More...
 
virtual const DtTaitBryan & orientation (int vtx=0) const
 Get the Orientation of a given point. More...
 
virtual const DtTaitBryan & orientationOffset () const
 Get the Orientation Offset of the model. More...
 
virtual void getBlendColor (float &r, float &g, float &b, float &a)
 Returns the blend color. More...
 
virtual bool colorBlendingEnabled () const
 Returns whether or not blending is enabled. More...
 
virtual void enableLighting (bool l)
 set whether the model is lit; this may not be an option on all models More...
 
virtual int modelSet () const
 Get the model set this model is part of. More...
 
const DtVectorboundingBoxExtents () const
 Get the bounding box extents of the model instance. More...
 
void getBoundingBoxExtents (double &x, double &y, double &z) const
 Get the bounding box extents of the model instance. More...
 
const DtVectorboundingBoxCenter () const
 Get the bounding box center of the model instance. More...
 
virtual void getBoundingBoxCenter (double &x, double &y, double &z) const
 Get the bounding box center of the model instance. More...
 
void setContributesToBound (bool trueOrFalse)
 Set whether this model instance contributes to an object's overall bounding volume. More...
 
bool contributesToBound () const
 Get whether this model instance contributes to an object's overall bounding volume. More...
 
DtDede ()
 Get the DtDe object. More...
 
virtual void setModelInstance (DtModelInstance *modelInstance)
 Internally set the model instance pointer. More...
 
virtual void promoteBackgroundModelInstance (DtModelDefinition &defintion)
 Internally set the model instance pointer to the background one, also realizes and sends signal. More...
 
virtual bool visible () const
 Get the visible state of the model. More...
 
DtUniqueID parentSceneObjectID () const
 Parent of the model. More...
 
virtual void addedToSceneObjectAsProp (const DtUniqueID &sceneObj)
 Called when a scene object added the model as a prop. More...
 
virtual void addedToSceneObject (const DtUniqueID &sceneObj, int modelSet, int visualizerType)
 Called when a scene object added the model with the given model set and visualizer type. More...
 
virtual void removedFromSceneObject ()
 Called when the model was removed from a scene object. More...
 
virtual void setSolid (bool isSolid)
 Set whether or not other this model is drawn filled in. More...
 
virtual bool isProp ()
 Return whether or not this model was added as a prop. More...
 
virtual void updateMinLastFrameDistance (float distance)
 updates the closest distance to an observer over the last frame More...
 
virtual void resetLastFrameDistance ()
 resets the closest distance to an observer More...
 
virtual float minLastFrameDistance () const
 gets the closest distance to an observer last frame More...
 
virtual DtModelInstancemodelInstance ()
 Get the model instance. More...
 
virtual const DtModelInstancemodelInstance () const
 
int visualizerType () const
 The visualizer type determines which channel-specific group node this model will be parented to, and consequently, which observer setting will cause it to be rendered in which channel. More...
 
virtual bool isActivelyBackgroundLoading ()
 is this being actively loaded (it has a myInLoadQueueHandle object and it's loading) More...
 
virtual DtLoaderHandlegetLoadQueueHandle ()
 returns the load queue object More...
 

Protected Types

typedef boost::unordered_map
< std::string, std::pair
< float, float > > 
AnnotationNameToUvsMap
 
typedef boost::unordered_map
< std::string, bool
SensorRegionStateMap
 
typedef std::map< int,
std::pair< DtTaitBryan,
DtVector > > 
PartOrientationMap
 
typedef std::map< int,
std::pair< DtVector, DtVector > > 
PartTranslationMap
 
- Protected Types inherited from makVrv::DtModel
typedef std::vector
< ObjectTransform
TransformList
 

Protected Member Functions

virtual void setStateInternal (int stateNumber, int stateValue)
 actually sets the state, it does not cache the state, call setUvOffset to cache the state More...
 
virtual void setUvOffsetInternal (const std::string &annotation, float uOffset, float vOffset)
 actually sets the uv offset, it does not cache the state, call setUvOffset to cache the state More...
 
virtual void setPartTranslationInternal (int partNumber, const DtVector &transform, const DtVector &velocity)
 Actually update the part translation. Does not cache the state call setPartTranslation to cache the state. More...
 
virtual void setPartOrientationInternal (int partNumber, const DtTaitBryan &orientation, const DtVector &rotationalVelocity)
 Actually rotate the part. Does not cache the state call setPartOrientation to cache the state. More...
 
virtual void setPartRotationalVelocityInternal (int partNumber, const DtVector &rotationalVelocity, bool forceUpdate=true)
 Actually update the rotational velocity of the part. More...
 
virtual void addToScene (const DtUniqueID &sceneObjectId, int modelSet, int visualizerType)
 Virtual Functions to be implemented, add this model to the scene. More...
 
virtual void removeFromScene ()
 Virtual Functions to be implemented, remove this model from the scene. More...
 
virtual void disablePart (int partNumber)
 
virtual void enablePart (int partNumber)
 
virtual void modelInstanceToBeDeleted ()
 
virtual void modelInstanceCreated (bool castShadows, bool daylightControlledLights, float scale)
 daylightControlled is only used if the light points do not already have a type specified More...
 
virtual void mergeCurrentStateWithDefaults (DtArticulatedModelParser *parser)
 applies all the state merging code More...
 
virtual void parseModel (osg::Node *root)
 parses the model More...
 
virtual void backgroundLoad ()
 multithreaded loading functions More...
 
virtual void foregroundLoad ()
 the chunk of loading that must happen happen in the foreground, adding to scene graph etc. More...
 
- Protected Member Functions inherited from makVrv::DtModel
virtual void addToSceneAsProp (const DtUniqueID &sceneObjectId)
 Add this model to the scene as a prop. More...
 
virtual void initializeModelInstance ()
 Push any state maintained by the model to the model instance. More...
 
void slot_modelInstanceChanged (DtModelInstance *instance)
 Called when the model instance changed. More...
 
virtual void waitAndClearLoadHandle ()
 avoids race condition, on destruction subclasses need to wait for the model to cleanly finish loading this can happen if an object times in and out very quickly More...
 
virtual void removedFromLoadQueue ()
 deletes the myInLoadQueueHandle handle More...
 
virtual void setDoneBackgroundLoading ()
 called by async task, updates myCurrentlyLoading atomic More...
 
virtual void setActivelyBackgroundLoading ()
 called right before tbb task creation More...
 

Protected Attributes

DtInstanceUtils::InstancedAnimationMap myInstancedAnimationMap
 
DtInstanceUtils::InstancedAnnotationMap myInstancedAnnotationMap
 
DtArticulatedModelParser::StateExistenceMap myStateExistenceMap
 
DtArticulatedModelParser::StateValueMap myStateValueMap
 
DtOsgSceneConnectormySceneConnector
 
DtArticulatedModelParser::PartMap myPartMap
 
DtArticulatedModelParser::StateMap myStateMap
 
DtArticulatedModelParser::AnimationMap myAnimationMap
 
DtArticulatedModelParser::AnnotationMap myAnnotationMap
 
NodePathCache myNodePathCache
 
bool myUseSwitch
 
AnnotationNameToUvsMap myAnnotationsUvMap
 
SensorRegionStateMap mySensorRegionMap
 
DtInstanceManagermyInstanceManager
 
DtUniqueID mySceneObjectId
 
DtMetaFileManager::LinkageValueVec myModelMetaFeatures
 List of node pointers that have meta data associated with them. More...
 
LinkageConfigMap myLinkageConfigMap
 Map of linkage names (NodeName/Annotation) from the metafile(if it exists) to config names. More...
 
std::vector< DtVirtualBaseClass * > myModelMetaAttachments
 Vector of metafile attachment on this object so they can be deleted on object destruction. More...
 
DtInstanceUtils::PartMapCachemyPartMapCache
 
DtInstanceUtils::PartMapCachemyStateMapCache
 
PartOrientationMap myPartOrientationMap
 
PartTranslationMap myPartTranslationMap
 
DtVector myBoundMin
 
DtVector myBoundMax
 
bool myIsInstanced
 
bool myModelScalingEnabled
 
DtVector mySetPosition
 
bool myInitialPositionSet
 
DtTaitBryan mySetOrientation
 
bool myInitialOrientationSet
 
bool myInitialPositionOffsetSet
 
bool myInitialOrientationOffsetSet
 
DtUniqueID myElementId
 
DtSignalConnectionManager myConnections
 
std::string myLightPointGroup
 
- Protected Attributes inherited from makVrv::DtModel
DtLoaderHandlemyInLoadQueueHandle
 
DtDemyDe
 
const DtUniqueID myUniqueId
 The unique id is constant after initialization. More...
 
bool myColorBlendingEnabled
 The color blending enabled is needed to be set by the derived class so it doesn't get down to the model instances when instancing is enabled. More...
 
DtModelInstancemyBackgroundModelInstance
 holds the model created in the background for a bit More...
 
float myMinLastFrameDistance
 last frames mimimal distance to the camera, calculated by the instancing system More...
 
TransformList myTransforms
 We keep our own copy in case we get updates before we get a model instance. More...
 
DtModelInstancemyModelInstance
 
int myModelSet
 
int myVisualizerType
 
bool myContributesToBound
 
DtUniqueID myParentSceneObjectID
 
bool myIsPropFlag
 
float myBlendColor [4]
 
bool myVisibleFlag
 
DtVector myPositionOffset
 
DtTaitBryan myOrientationOffset
 
std::string myModelDefinitionName
 

Static Protected Attributes

static const unsigned int theNodePathCacheSize = 4
 
static boost::mutex theBackgroundLoadCloneMutex
 
- Static Protected Attributes inherited from makVrv::DtModel
static bool theInittedState
 

Friends

class DtArticulatedModelAnimationHelper
 

Additional Inherited Members

- Public Attributes inherited from makVrv::DtModel
boost::signal< void(DtModel *)> signal_modelToBeDestroyed
 Signal emitted when the model is to be destroyed. More...
 
boost::signal< void(DtModel *)> signal_modelChanged
 
boost::signal< bool(DtModel
*, bool), SlotReturnOR
signal_visibilityChangeRequested
 Signal when the visibility has been requested, if any slot returns false, it will not change. More...
 
boost::signal< void(DtModelInstance
*, DtModel *)> 
signal_modelInstanceCreated
 Signal emitted when the model instance is created. More...
 
boost::signal< void(DtModelInstance
*, DtModel *)> 
signal_modelInstanceToBeDestroyed
 Signal emitted when the model instance is to be destroyed. More...
 

Detailed Description

An articulated model manipulator for controlling an articulated model.

Member Typedef Documentation

typedef std::vector<osg::Node*> makVrv::DtOsgArticulatedModel::NodeList
typedef std::map<std::string, std::string> makVrv::DtOsgArticulatedModel::LinkageConfigMap
typedef boost::unordered_map<std::string, std::pair<float, float> > makVrv::DtOsgArticulatedModel::AnnotationNameToUvsMap
protected
typedef boost::unordered_map<std::string, bool> makVrv::DtOsgArticulatedModel::SensorRegionStateMap
protected
typedef std::map<int, std::pair<DtTaitBryan, DtVector> > makVrv::DtOsgArticulatedModel::PartOrientationMap
protected
typedef std::map<int, std::pair<DtVector, DtVector> > makVrv::DtOsgArticulatedModel::PartTranslationMap
protected

Constructor & Destructor Documentation

makVrv::DtOsgArticulatedModel::DtOsgArticulatedModel ( DtDe ,
DtUniqueID  id 
)

CTOR.

virtual makVrv::DtOsgArticulatedModel::~DtOsgArticulatedModel ( )
virtual

DTOR.

Member Function Documentation

virtual void makVrv::DtOsgArticulatedModel::setModelDefinition ( const std::string &  str)
virtual

Override the set model definition function.

Use this to parse a model after it is loaded.

Implements makVrv::DtArticulatedModel.

Reimplemented in makVrf::DtVrfOsgArticulatedModel, and DtVrfOsgArticulatedModel.

virtual const std::string& makVrv::DtOsgArticulatedModel::modelDefinition ( )
inlinevirtual
virtual const std::string& makVrv::DtOsgArticulatedModel::className ( ) const
virtual

Get the class name of the model instance owner.

This is used to control how model instances are created.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setModelScalingEnabled ( bool  b)
virtual

Indicate whether or not this model may be model-scaled Default is false.

Implements makVrv::DtArticulatedModel.

virtual bool makVrv::DtOsgArticulatedModel::modelScalingEnabled ( )
virtual

getter for model scaling enabled flag

virtual void makVrv::DtOsgArticulatedModel::setLocalModelScalingEnabled ( bool  enabled)
virtual

Indicates whether local model scaling for the model is enabled.

Local model scaling overrides generic (global) model scaling. Default is false.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setLocalModelScalingAmount ( float  localScl)
virtual

Sets the amount of local scaling to apply to the model.

Only applies when local model scaling is enabled.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setPosition ( int  vtx,
const DtVector position 
)
virtual

Set the model's position for the specified vertex.

Vertex 0 moves the whole model; other vertices are no-ops

Reimplemented from makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::setOrientation ( int  vtx,
const DtTaitBryan &  orientation 
)
virtual

Set the model's orientation for the specified vertex.

Vertex 0 moves the whole model; other vertices are no-ops

Reimplemented from makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::setPositionOffset ( const DtVector positionOffset)
virtual

Set the position offset of the model.

This offsets the position of the entire model.

Reimplemented from makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::setOrientationOffset ( const DtTaitBryan &  orientationOffset)
virtual

Set the Orientation Offset of the model.

This offsets the orientation of the entire model.

Reimplemented from makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::setVisible ( bool  isVisible)
virtual

Set the visible state of the model and scene connector.

Parameters
[in]isVisibleis the new visible state; true = visible, false = hidden.

Reimplemented from makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::setPartTranslation ( int  partNumber,
const DtVector transform,
const DtVector velocity 
)
virtual

Update the part translation.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setPartOrientation ( int  partNumber,
const DtTaitBryan &  orientation,
const DtVector rotationalVelocity 
)
virtual

Rotate the part.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setPartRotationalVelocity ( int  partNumber,
const DtVector rotationalVelocity,
bool  forceUpdate = true 
)
virtual

Set just the rotational velocity (without having to do orientation) forceUpdate will force an update when instancing is enabled.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setState ( int  stateNumber,
int  stateValue 
)
virtual

Set the state on the model.

Implements makVrv::DtArticulatedModel.

Reimplemented in DtVrfOsgMultipleArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::reapplyState ( )
virtual

Set the state on the model.

int makVrv::DtOsgArticulatedModel::state ( int  stateNumber) const

Get a state of the model Returns -1 if no such state exists.

virtual void makVrv::DtOsgArticulatedModel::setLightpointMaxDistance ( float  distance)
virtual

Specify the maximum range at which lightpoints on this model will be visible.

This sets ALL lightpoints to the same range.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setDepthMask ( osg::Group &  parent)
virtual

Sets child nodes as a depth mask, which writes to the depth buffer and does not get sorted as transparent.

(Useful for things like masking water out of the inside of ship hulls by placing a transparent polygon above it as a depth mask.)

virtual void makVrv::DtOsgArticulatedModel::setAnimationFrame ( const std::string &  animationName,
int  frameIndex 
)
virtual

Set the current frame of an animation.

only support in non-instance model

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setAnimationRange ( const std::string &  animationName,
int  firstFrameIndex,
int  lastFrameIndex 
)
virtual

Set the animation range.

only support in non-instance model

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setAnimationSpeed ( const std::string &  animationName,
double  framesPerSecond 
)
virtual

Set the animation speed.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setAnimationState ( const std::string &  animationName,
AnimationState  mode 
)
virtual

Set the animation mode.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setAnimationLastFrameTime ( const std::string &  animationName,
double  animationLastFrameTime 
)
virtual

Set the last frame time in the currnet range in an animation /param animationLastFrameTime should be non-negative value only support in non-instance model.

virtual void makVrv::DtOsgArticulatedModel::setAnimationLoopCount ( const std::string &  animationName,
int  loopCount 
)
virtual

Get the animation loop count in an animation /param loopCount -1:repeat forever 0:no repetitions only support in non-instance model.

virtual void makVrv::DtOsgArticulatedModel::setUvOffset ( const std::string &  annotation,
float  uOffset,
float  vOffset 
)
virtual

Groups using a texture atlas are identified using an annotation (ex.

annotation label_char_1). setUvOffset is used to set the offset into the atlas texture for the group indicated by the annotation.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setDynamicSensorRegion ( const std::string &  region,
bool  state 
)
virtual

Set the state of a dynamic sensor region.

Implements makVrv::DtArticulatedModel.

virtual bool makVrv::DtOsgArticulatedModel::dynamicSensorRegion ( const std::string &  region)
virtual

Get the state of a dynamic sensor region.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setLinkageConfigPair ( const std::string &  linkageName,
const std::string &  configName 
)
virtual

Specifies a linkage/config pair where the linkageName is the name of a node or an annotation on a node that identifies it and configName is a string looked up in the Mappings section of the FeatureData for the linkage in the metafile associated with the model.

The resultant string from the configName is used to apply textures to the node.

Implements makVrv::DtArticulatedModel.

virtual bool makVrv::DtOsgArticulatedModel::findPartPositionAndOrientation ( int  partNumber,
DtVector position,
DtQuat ori 
)
virtual

Finds the absolute position and orientation of a part.

This function is more efficient than calling both the position and orientation functions.

Implements makVrv::DtArticulatedModel.

virtual DtVector makVrv::DtOsgArticulatedModel::partTranslation ( int  partNumber) const
virtual

Get a part translation.

Return values
0,0,0when the part number is invalid.
virtual DtTaitBryan makVrv::DtOsgArticulatedModel::partOrientation ( int  partNumber) const
virtual

Get a part orientation.

Return values
0,0,0when the part number is invalid.
virtual int makVrv::DtOsgArticulatedModel::animationFrameCount ( const std::string &  animationName) const
virtual

Get number of frames in an animation.

Return values
-1when the animation number is invalid.
virtual int makVrv::DtOsgArticulatedModel::animationCurrentFrame ( const std::string &  animationName) const
virtual

Get the current frame of an animation.

Return values
-1when the animation number is invalid.
virtual int makVrv::DtOsgArticulatedModel::animationFirstFrame ( const std::string &  animationName) const
virtual

Get the first frame in the current range in an animation.

Return values
-1when the animation number is invalid. only support in non-instance model
virtual int makVrv::DtOsgArticulatedModel::animationLastFrame ( const std::string &  animationName) const
virtual

Get the last frame in the current range in an animation.

Return values
-1when the animation number is invalid. only support in non-instance model
virtual double makVrv::DtOsgArticulatedModel::animationSpeed ( const std::string &  animationName) const
virtual

Get the speed of an animation.

Return values
-1.0when the animation number is invalid.
virtual AnimationState makVrv::DtOsgArticulatedModel::animationState ( const std::string &  animationName) const
virtual

Get the animation mode of an animation.

Return values
STOPwhen the animation name is invalid
virtual double makVrv::DtOsgArticulatedModel::animationLastFrameTime ( const std::string &  animationName) const
virtual

Get the last frame time in the current range in an animation.

Return values
-1when the animation number is invalid. only support in non-instance model
virtual int makVrv::DtOsgArticulatedModel::animationLoopCount ( const std::string &  animationName) const
virtual

Get the animation loop count in an animation.

only support in non-instance model

const DtArticulatedModelParser::PartMap& makVrv::DtOsgArticulatedModel::parts ( ) const

Get a map of the current parts.

virtual void makVrv::DtOsgArticulatedModel::getParts ( PartList parts) const
virtual

Only a list of all the parts.

Implements makVrv::DtArticulatedModel.

const DtArticulatedModelParser::StateMap& makVrv::DtOsgArticulatedModel::states ( ) const

Get a map of the current states.

const DtArticulatedModelParser::AnimationMap& makVrv::DtOsgArticulatedModel::animations ( ) const

Get a map of the current animations.

virtual void makVrv::DtOsgArticulatedModel::addPart ( int  partNumber,
osgSim::DOFTransform *  node 
)
virtual

Add a part off the DOF transform node and a part Number.

virtual void makVrv::DtOsgArticulatedModel::addState ( int  stateNumber,
osgSim::MultiSwitch *  node 
)
virtual

Add a switch off the DOF switch node and a part number.

virtual void makVrv::DtOsgArticulatedModel::setStateValueExists ( int  stateNumber,
int  stateValue 
)
virtual

Set when a state value exists; only state values that have had this method called on them will be used.

virtual void makVrv::DtOsgArticulatedModel::addAnimation ( const std::string &  animationName,
osg::Sequence *  node 
)
virtual

Add animation Sequence.

virtual void makVrv::DtOsgArticulatedModel::addAnnotationGroup ( const std::string &  annotation,
osg::Group *  group 
)
virtual

Add a mapping from an annotation to a group node.

virtual void makVrv::DtOsgArticulatedModel::setColor ( float  r,
float  g,
float  b,
float  a 
)
virtual

Set the blend color for the model.

Reimplemented from makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::enableColorBlending ( bool  b)
virtual

enable color blending for the model

Reimplemented from makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::setBlendColor ( float  r,
float  g,
float  b,
float  a 
)
virtual

Set the blend color for the model.

Reimplemented from makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::setPartVisibility ( int  partNumber,
bool  onOff 
)
virtual

Set an articulated part visible/invisible by part number.

Implements makVrv::DtArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::setIsSupportModel ( bool  isSupport)
virtual

Set whether the model is part of the support group (whether or not other scene objects can ground clamp to this model)

Implements makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::getBoundingBoxComponents ( DtVector minimum,
DtVector maximum 
)
virtual

Get the minimum and maximum X,Y,Z components of the bounding box.

Reimplemented from makVrv::DtModel.

std::vector<DtVirtualBaseClass*>& makVrv::DtOsgArticulatedModel::modelAttachments ( )

Get the list of dynamic feature objects for this model (created by .meta files)

virtual bool makVrv::DtOsgArticulatedModel::applyMetafile ( const DtModelDefinition definition)
virtual

For a given model definition, get the .medf file name, load the corresponding .meta file and created nodes in the DtOsgModelInstance.

virtual void makVrv::DtOsgArticulatedModel::slot_onShadowStateChanged ( bool  on)
virtual

Turn on or off the shadow polygon on objects (ex. vehicles)

virtual void makVrv::DtOsgArticulatedModel::slot_atcModeEnableChanged ( bool  state)
virtual

slot for handling when alpha to coverage on all models is changed

DtUniqueID makVrv::DtOsgArticulatedModel::sceneObjectId ( )

Get the ID for this model's scene object, if any.

Returns 0 if it's not part of a scene object

virtual void makVrv::DtOsgArticulatedModel::setElementId ( DtUniqueID  id)
virtual

Set the element ID for this model.

Reimplemented from makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::setLightPointGroup ( const std::string &  groupName)
virtual

Set the light point group that this model's light points belong to.

virtual std::string makVrv::DtOsgArticulatedModel::lightPointGroup ( )
virtual

Get the light point group that this model's light points belong to.

virtual LinkageConfigMap& makVrv::DtOsgArticulatedModel::linkageConfigMap ( )
virtual

Get the mapping of linkage names (NodeName/Annotation) to configName pairs.

virtual const LinkageConfigMap& makVrv::DtOsgArticulatedModel::linkageConfigMap ( ) const
virtual

Get the mapping of linkage names (NodeName/Annotation) to configName pairs.

virtual void makVrv::DtOsgArticulatedModel::setStateInternal ( int  stateNumber,
int  stateValue 
)
protectedvirtual

actually sets the state, it does not cache the state, call setUvOffset to cache the state

virtual void makVrv::DtOsgArticulatedModel::setUvOffsetInternal ( const std::string &  annotation,
float  uOffset,
float  vOffset 
)
protectedvirtual

actually sets the uv offset, it does not cache the state, call setUvOffset to cache the state

virtual void makVrv::DtOsgArticulatedModel::setPartTranslationInternal ( int  partNumber,
const DtVector transform,
const DtVector velocity 
)
protectedvirtual

Actually update the part translation. Does not cache the state call setPartTranslation to cache the state.

virtual void makVrv::DtOsgArticulatedModel::setPartOrientationInternal ( int  partNumber,
const DtTaitBryan &  orientation,
const DtVector rotationalVelocity 
)
protectedvirtual

Actually rotate the part. Does not cache the state call setPartOrientation to cache the state.

virtual void makVrv::DtOsgArticulatedModel::setPartRotationalVelocityInternal ( int  partNumber,
const DtVector rotationalVelocity,
bool  forceUpdate = true 
)
protectedvirtual

Actually update the rotational velocity of the part.

Does not cache the state call setPartRotationVelocity to cache the state forceUpdate will force an update when instancing is enabled

virtual void makVrv::DtOsgArticulatedModel::addToScene ( const DtUniqueID sceneObjectId,
int  modelSet,
int  visualizerType 
)
protectedvirtual

Virtual Functions to be implemented, add this model to the scene.

Implements makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::removeFromScene ( )
protectedvirtual

Virtual Functions to be implemented, remove this model from the scene.

Implements makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::disablePart ( int  partNumber)
protectedvirtual
virtual void makVrv::DtOsgArticulatedModel::enablePart ( int  partNumber)
protectedvirtual
virtual void makVrv::DtOsgArticulatedModel::modelInstanceToBeDeleted ( )
protectedvirtual
virtual void makVrv::DtOsgArticulatedModel::modelInstanceCreated ( bool  castShadows,
bool  daylightControlledLights,
float  scale 
)
protectedvirtual

daylightControlled is only used if the light points do not already have a type specified

virtual void makVrv::DtOsgArticulatedModel::mergeCurrentStateWithDefaults ( DtArticulatedModelParser parser)
protectedvirtual

applies all the state merging code

virtual void makVrv::DtOsgArticulatedModel::parseModel ( osg::Node *  root)
protectedvirtual

parses the model

Reimplemented in DtVrfOsgArticulatedModel.

virtual void makVrv::DtOsgArticulatedModel::backgroundLoad ( )
protectedvirtual

multithreaded loading functions

Reimplemented from makVrv::DtModel.

virtual void makVrv::DtOsgArticulatedModel::foregroundLoad ( )
protectedvirtual

the chunk of loading that must happen happen in the foreground, adding to scene graph etc.

Reimplemented from makVrv::DtModel.

Friends And Related Function Documentation

friend class DtArticulatedModelAnimationHelper
friend

Member Data Documentation

DtInstanceUtils::InstancedAnimationMap makVrv::DtOsgArticulatedModel::myInstancedAnimationMap
protected
DtInstanceUtils::InstancedAnnotationMap makVrv::DtOsgArticulatedModel::myInstancedAnnotationMap
protected
DtArticulatedModelParser::StateExistenceMap makVrv::DtOsgArticulatedModel::myStateExistenceMap
protected
DtArticulatedModelParser::StateValueMap makVrv::DtOsgArticulatedModel::myStateValueMap
protected
DtOsgSceneConnector* makVrv::DtOsgArticulatedModel::mySceneConnector
protected
DtArticulatedModelParser::PartMap makVrv::DtOsgArticulatedModel::myPartMap
protected
DtArticulatedModelParser::StateMap makVrv::DtOsgArticulatedModel::myStateMap
protected
DtArticulatedModelParser::AnimationMap makVrv::DtOsgArticulatedModel::myAnimationMap
protected
DtArticulatedModelParser::AnnotationMap makVrv::DtOsgArticulatedModel::myAnnotationMap
protected
NodePathCache makVrv::DtOsgArticulatedModel::myNodePathCache
protected
const unsigned int makVrv::DtOsgArticulatedModel::theNodePathCacheSize = 4
staticprotected
bool makVrv::DtOsgArticulatedModel::myUseSwitch
protected
AnnotationNameToUvsMap makVrv::DtOsgArticulatedModel::myAnnotationsUvMap
protected
SensorRegionStateMap makVrv::DtOsgArticulatedModel::mySensorRegionMap
protected
DtInstanceManager& makVrv::DtOsgArticulatedModel::myInstanceManager
protected
DtUniqueID makVrv::DtOsgArticulatedModel::mySceneObjectId
protected
DtMetaFileManager::LinkageValueVec makVrv::DtOsgArticulatedModel::myModelMetaFeatures
protected

List of node pointers that have meta data associated with them.

LinkageConfigMap makVrv::DtOsgArticulatedModel::myLinkageConfigMap
protected

Map of linkage names (NodeName/Annotation) from the metafile(if it exists) to config names.

Used by applyMetafile function.

std::vector<DtVirtualBaseClass*> makVrv::DtOsgArticulatedModel::myModelMetaAttachments
protected

Vector of metafile attachment on this object so they can be deleted on object destruction.

DtInstanceUtils::PartMapCache* makVrv::DtOsgArticulatedModel::myPartMapCache
protected
DtInstanceUtils::PartMapCache* makVrv::DtOsgArticulatedModel::myStateMapCache
protected
PartOrientationMap makVrv::DtOsgArticulatedModel::myPartOrientationMap
protected
PartTranslationMap makVrv::DtOsgArticulatedModel::myPartTranslationMap
protected
DtVector makVrv::DtOsgArticulatedModel::myBoundMin
protected
DtVector makVrv::DtOsgArticulatedModel::myBoundMax
protected
bool makVrv::DtOsgArticulatedModel::myIsInstanced
protected
bool makVrv::DtOsgArticulatedModel::myModelScalingEnabled
protected
DtVector makVrv::DtOsgArticulatedModel::mySetPosition
protected
bool makVrv::DtOsgArticulatedModel::myInitialPositionSet
protected
DtTaitBryan makVrv::DtOsgArticulatedModel::mySetOrientation
protected
bool makVrv::DtOsgArticulatedModel::myInitialOrientationSet
protected
bool makVrv::DtOsgArticulatedModel::myInitialPositionOffsetSet
protected
bool makVrv::DtOsgArticulatedModel::myInitialOrientationOffsetSet
protected
DtUniqueID makVrv::DtOsgArticulatedModel::myElementId
protected
DtSignalConnectionManager makVrv::DtOsgArticulatedModel::myConnections
protected
std::string makVrv::DtOsgArticulatedModel::myLightPointGroup
protected
boost::mutex makVrv::DtOsgArticulatedModel::theBackgroundLoadCloneMutex
staticprotected

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

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)