19 #include <boost/unordered_map.hpp>
24 #include <matrix/vlTaitBryan.h>
25 #include <matrix/vlVector.h>
27 #include <osg/ref_ptr>
28 #include <osg/Matrixf>
31 #include <boost/thread/mutex.hpp>
49 class DtInstanceManager;
50 class DtOsgSceneConnector;
51 class DtModelDefinition;
73 virtual void setModelDefinition(
const std::string& str);
78 virtual const std::string& className()
const;
82 virtual void setModelScalingEnabled(
bool b);
85 virtual bool modelScalingEnabled();
90 virtual void setLocalModelScalingEnabled(
bool enabled);
94 virtual void setLocalModelScalingAmount(
float localScl);
99 virtual void setPosition(
int vtx,
const DtVector& position);
104 virtual void setOrientation(
int vtx,
const DtTaitBryan& orientation);
108 virtual void setPositionOffset(
const DtVector& positionOffset);
112 virtual void setOrientationOffset(
const DtTaitBryan& orientationOffset);
117 virtual void setVisible(
bool isVisible);
122 virtual void setPartTranslation(
int partNumber,
126 virtual void setPartOrientation(
int partNumber,
127 const DtTaitBryan& orientation,
const DtVector& rotationalVelocity);
131 virtual void setPartRotationalVelocity(
int partNumber,
132 const DtVector& rotationalVelocity,
bool forceUpdate =
true);
135 virtual void setState(
int stateNumber,
int stateValue);
138 virtual void reapplyState();
142 int state(
int stateNumber)
const;
146 virtual void setLightpointMaxDistance(
float distance );
151 virtual void setDepthMask(osg::Group& parent);
155 virtual void setAnimationFrame(
const std::string& animationName,
160 virtual void setAnimationRange(
const std::string& animationName,
161 int firstFrameIndex,
int lastFrameIndex);
164 virtual void setAnimationSpeed(
const std::string& animationName,
165 double framesPerSecond);
168 virtual void setAnimationState(
const std::string& animationName,
169 AnimationState
mode);
174 virtual void setAnimationLastFrameTime(
const std::string& animationName,
double animationLastFrameTime);
179 virtual void setAnimationLoopCount(
const std::string& animationName,
int loopCount);
185 virtual void setUvOffset(
const std::string& annotation,
186 float uOffset,
float vOffset);
189 virtual void setDynamicSensorRegion(
const std::string& region,
bool state);
192 virtual bool dynamicSensorRegion(
const std::string& region);
200 virtual void setLinkageConfigPair(
const std::string& linkageName,
const std::string& configName);
210 virtual bool findPartPositionAndOrientation(
int partNumber,
215 virtual DtVector partTranslation(
int partNumber)
const;
219 virtual DtTaitBryan partOrientation(
int partNumber)
const;
223 virtual int animationFrameCount(
const std::string& animationName)
const;
227 virtual int animationCurrentFrame(
const std::string& animationName)
const;
232 virtual int animationFirstFrame(
const std::string& animationName)
const;
237 virtual int animationLastFrame(
const std::string& animationName)
const;
241 virtual double animationSpeed(
const std::string& animationName)
const;
245 virtual AnimationState animationState(
const std::string& animationName)
const;
250 virtual double animationLastFrameTime(
const std::string& animationName)
const;
255 virtual int animationLoopCount(
const std::string& animationName)
const;
261 virtual void getParts(PartList& parts)
const;
270 virtual void addPart(
int partNumber, osgSim::DOFTransform* node);
273 virtual void addState(
int stateNumber, osgSim::MultiSwitch* node);
277 virtual void setStateValueExists(
int stateNumber,
int stateValue);
280 virtual void addAnimation(
const std::string& animationName,
281 osg::Sequence* node);
284 virtual void addAnnotationGroup(
const std::string& annotation, osg::Group* group);
287 virtual void setColor(
float r,
float g,
float b,
float a);
290 virtual void enableColorBlending(
bool b);
293 virtual void setBlendColor(
float r,
float g,
float b,
float a);
296 virtual void setPartVisibility(
int partNumber,
bool onOff);
301 virtual void setIsSupportModel(
bool isSupport);
304 virtual void getBoundingBoxComponents(
DtVector& minimum,
DtVector& maximum);
308 std::vector<DtVirtualBaseClass*>& modelAttachments();
315 virtual void slot_onShadowStateChanged(
bool on);
318 virtual void slot_atcModeEnableChanged(
bool state);
331 virtual void setLightPointGroup(
const std::string& groupName);
334 virtual std::string lightPointGroup();
337 virtual LinkageConfigMap& linkageConfigMap();
340 virtual const LinkageConfigMap& linkageConfigMap()
const;
346 virtual void setStateInternal(
int stateNumber,
int stateValue);
350 virtual void setUvOffsetInternal(
const std::string& annotation,
float uOffset,
float vOffset);
353 virtual void setPartTranslationInternal(
int partNumber,
357 virtual void setPartOrientationInternal(
int partNumber,
358 const DtTaitBryan& orientation,
const DtVector& rotationalVelocity);
363 virtual void setPartRotationalVelocityInternal(
int partNumber,
364 const DtVector& rotationalVelocity,
bool forceUpdate =
true);
366 virtual void addToScene(
const DtUniqueID& sceneObjectId,
int modelSet,
368 virtual void removeFromScene();
370 virtual void disablePart(
int partNumber);
371 virtual void enablePart(
int partNumber);
373 virtual void modelInstanceToBeDeleted();
376 virtual void modelInstanceCreated(
bool castShadows,
bool daylightControlledLights,
float scale);
382 virtual void parseModel(osg::Node* root);
385 virtual void backgroundLoad();
387 virtual void foregroundLoad();
402 static const unsigned int theNodePathCacheSize = 4;
bool myModelScalingEnabled
Definition: DtOsgArticulatedModel.h:441
Contains makVrv::DtInstanceState declaration.
std::map< std::string, std::string > LinkageConfigMap
Definition: DtOsgArticulatedModel.h:62
NodePathCache myNodePathCache
Definition: DtOsgArticulatedModel.h:401
bool myInitialOrientationOffsetSet
Definition: DtOsgArticulatedModel.h:457
std::map< int, int > StateValueMap
Definition: DtArticulatedModelParser.h:48
DtArticulatedModelParser::AnnotationMap myAnnotationMap
Definition: DtOsgArticulatedModel.h:400
DtArticulatedModelParser::StateValueMap myStateValueMap
Definition: DtOsgArticulatedModel.h:394
DtInstanceUtils::PartMapCache * myPartMapCache
Definition: DtOsgArticulatedModel.h:427
PartTranslationMap myPartTranslationMap
Definition: DtOsgArticulatedModel.h:434
DtArticulatedModelParser::AnimationMap myAnimationMap
Definition: DtOsgArticulatedModel.h:399
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
AnnotationNameToUvsMap myAnnotationsUvMap
Definition: DtOsgArticulatedModel.h:407
SensorRegionStateMap mySensorRegionMap
Definition: DtOsgArticulatedModel.h:410
std::string myLightPointGroup
Definition: DtOsgArticulatedModel.h:465
std::map< int, std::pair< DtVector, DtVector > > PartTranslationMap
Definition: DtOsgArticulatedModel.h:433
bool myInitialOrientationSet
Definition: DtOsgArticulatedModel.h:454
PartOrientationMap myPartOrientationMap
Definition: DtOsgArticulatedModel.h:431
std::map< int, std::pair< DtTaitBryan, DtVector > > PartOrientationMap
Definition: DtOsgArticulatedModel.h:430
boost::unordered_map< int, NodeList > NodePathCache
Definition: DtOsgArticulatedModel.h:61
An articulated model manipulator for controlling an articulated model.
Definition: DtArticulatedModel.h:31
boost::unordered_map< std::string, AnimationList > AnimationMap
Definition: DtArticulatedModelParser.h:47
static boost::mutex theBackgroundLoadCloneMutex
Definition: DtOsgArticulatedModel.h:469
An articulated model manipulator for controlling an articulated model.
Definition: DtOsgArticulatedModel.h:56
DtInstanceManager & myInstanceManager
Definition: DtOsgArticulatedModel.h:412
bool myIsInstanced
Definition: DtOsgArticulatedModel.h:438
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:33
DtInstanceUtils::InstancedAnnotationMap myInstancedAnnotationMap
Definition: DtOsgArticulatedModel.h:392
DtOsgSceneConnector is used by models to create an OSG position/orientation transform so that it can ...
Definition: DtOsgSceneConnector.h:76
boost::unordered_map< int, StateList > StateMap
Definition: DtArticulatedModelParser.h:45
DtArticulatedModelParser::StateExistenceMap myStateExistenceMap
Definition: DtOsgArticulatedModel.h:393
boost::unordered_map< int, PartTransformList > PartMap
Definition: DtArticulatedModelParser.h:43
Contains makVrv::DtVirtualBaseClass class.
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
A helper class to help with animations of a DtOsgArticulatedModel.
Definition: DtArticulatedModelAnimationHelper.h:22
Manages data for instanced rendering system and kicks off DtInstanceProcessors to update instance sta...
Definition: DtInstanceManager.h:75
Contains makVrv::DtArticulatedModel class.
DtVector myBoundMin
Definition: DtOsgArticulatedModel.h:436
DtMetaFileManager::LinkageValueVec myModelMetaFeatures
List of node pointers that have meta data associated with them.
Definition: DtOsgArticulatedModel.h:417
DtUniqueID mySceneObjectId
Definition: DtOsgArticulatedModel.h:414
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
std::vector< osg::Node * > NodeList
Definition: DtOsgArticulatedModel.h:60
DtUniqueID myElementId
Definition: DtOsgArticulatedModel.h:462
DtVector mySetPosition
Definition: DtOsgArticulatedModel.h:451
bool myUseSwitch
Definition: DtOsgArticulatedModel.h:403
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
std::map< std::string, unsigned int > InstancedAnimationMap
Definition: DtInstanceUtils.h:39
DtInstanceUtils::InstancedAnimationMap myInstancedAnimationMap
Definition: DtOsgArticulatedModel.h:391
Base class to provide boost signal/slot management.
DtOsgSceneConnector * mySceneConnector
Definition: DtOsgArticulatedModel.h:396
boost::unordered_map< std::string, GroupList > AnnotationMap
Definition: DtArticulatedModelParser.h:52
virtual const std::string & modelDefinition()
Definition: DtOsgArticulatedModel.h:74
std::map< std::string, ArrayRangeList > InstancedAnnotationMap
Definition: DtInstanceUtils.h:41
const char int mode
Definition: ioapi.h:38
boost::unordered_map< int, StateExistenceList > StateExistenceMap
Definition: DtArticulatedModelParser.h:50
Contains DLL export macros.
boost::unordered_map< std::string, std::pair< float, float > > AnnotationNameToUvsMap
Definition: DtOsgArticulatedModel.h:406
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
A utility Quaternion class.
Definition: DtQuat.h:22
Utilities for interacting with the instanced renderer.
bool myInitialPositionOffsetSet
Definition: DtOsgArticulatedModel.h:456
DtInstanceUtils::PartMapCache * myStateMapCache
Definition: DtOsgArticulatedModel.h:428
DtArticulatedModelParser::PartMap myPartMap
Definition: DtOsgArticulatedModel.h:397
boost::unordered_map< std::string, bool > SensorRegionStateMap
Definition: DtOsgArticulatedModel.h:409
std::vector< DtVirtualBaseClass * > myModelMetaAttachments
Vector of metafile attachment on this object so they can be deleted on object destruction.
Definition: DtOsgArticulatedModel.h:425
LinkageConfigMap myLinkageConfigMap
Map of linkage names (NodeName/Annotation) from the metafile(if it exists) to config names...
Definition: DtOsgArticulatedModel.h:421
DtTaitBryan mySetOrientation
Definition: DtOsgArticulatedModel.h:453
DtArticulatedModelParser::StateMap myStateMap
Definition: DtOsgArticulatedModel.h:398
DtSignalConnectionManager myConnections
Definition: DtOsgArticulatedModel.h:463
Default implementation of the model parser for Articulated models.
Definition: DtArticulatedModelParser.h:37
bool myInitialPositionSet
Definition: DtOsgArticulatedModel.h:452
Definition: DtInstanceUtils.h:52