VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCigiEntity.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2020 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
13 
15 
16 #include <matrix/geodeticCoord.h>
17 
18 #include <boost/unordered_map.hpp>
19 
20 #include <string>
21 
22 namespace makVrv
23 {
24  class DtCigiConnection;
25  class DtAgentManagerInterface;
26  class DtOsgArticulatedModel;
27 
28  class DtArticulatedModelAgent;
29 
33  {
34  public:
36  DtCigiEntity(DtCigiConnection& connection,
37  DtAgentManagerInterface& mySceneInterface,
38  int entityId, int entityType);
39 
41  virtual ~DtCigiEntity();
42 
46  virtual void init();
47 
50  virtual void uninit();
51 
55  virtual void restartRequest();
56 
59  virtual void restart();
60 
62  virtual void setState(int stateId, int stateValue);
63 
65  virtual void setArtPartTranslation(int partId, float xOffset, float yOffset,
66  float zOffset, bool xEnable, bool yEnable, bool zEnable);
67 
69  virtual void setArtPartOrientation(int partId, float yaw, float pitch, float roll,
70  bool yawEnable, bool pitchEnable, bool rollEnable);
71 
73  virtual void setArtPartLinearRate(int partId, float xRate, float yRate,
74  float zRate);
75 
77  virtual void setArtPartAngularRate(int partId, float yawRate, float pitchRate,
78  float rollRate);
79 
81  virtual void setArtPartEnable(int partId, bool trueFalse);
82 
84  virtual void setAnimationSpeed(const std::string& animationName, double speed);
85 
87  virtual void setAnimationFrame(const std::string& animationName, int frame);
88 
90  virtual void setActiveRegionState( const std::string& regionName, bool state );
91 
93  virtual void setAnimationRange(const std::string& animationName,
94  int firstFrameIndex, int lastFrameIndex);
95 
98  virtual void setAnimationState( const std::string& animationName, int stateEnum );
99 
102  virtual int animationState( const std::string& animationName );
103 
108  virtual bool hasAnimations() const;
109 
111  virtual const DtArticulatedModelAgent& articulatedModelAgent() const;
114  virtual DtArticulatedModelAgent& articulatedModelAgent();
116  protected:
117  virtual void getExtrapolatedValuesAndRestart();
118 
122  virtual void queryCurrentAnimationFrame( DtUniqueID modelId, std::string animationName );
123 
128  virtual void returnCurrentAnimationFrame( const std::string& animationName, int frameNum );
129 
133  virtual void queryExtrapolatedArtPartTranslation( DtUniqueID modelId, int cigiPartId,
134  int disRprPartId );
135  protected:
139  virtual void returnExtrapolatedArtPartTranslation( int cigiPartId, int disRprPartId,
140  const DtVector& translation );
141 
145  virtual void queryExtrapolatedArtPartOrientation( DtUniqueID modelId, int cigiPartId,
146  int disRprPartId );
147  protected:
151  virtual void returnExtrapolatedArtPartOrientation( int cigiPartId, int disRprPartId,
152  const DtTaitBryan& translation );
153  public:
156  virtual DtOsgArticulatedModel* findArticulatedModelInRenderThread( DtUniqueID modelId ) const;
157  protected:
161  virtual void queryCurrentAnimationState( DtUniqueID modelId, std::string animationName );
162 
168  virtual void returnCurrentAnimationState( const std::string& animationName, int stateEnum );
169 
170  protected:
171  DtArticulatedModelAgent* myArticulatedModel;
172 
173  typedef boost::unordered_map<int, int> StateMap;
175 
176  typedef boost::unordered_map<std::string, int> AnimationFrameMap;
178 
179  typedef boost::unordered_map<std::string, double> AnimationSpeedMap;
181 
183  {
185  int endFrame;
186  };
187  typedef boost::unordered_map<std::string, AnimationRange> AnimationRangeMap;
189 
190  // Animation State Group is CIGI mappings
191  typedef boost::unordered_map<std::string, DtCigiBaseEntity::AnimationStateGroup > AnimationStateMap;
193 
194  typedef boost::unordered_map<std::string, bool> DynamicRegionMap;
196  };
197 
202 }
AnimationStateMap myAnimationStateMap
Definition: DtCigiEntity.h:192
boost::unordered_map< int, int > StateMap
Definition: DtCigiEntity.h:173
int startFrame
Definition: DtCigiEntity.h:184
boost::unordered_map< std::string, DtCigiBaseEntity::AnimationStateGroup > AnimationStateMap
Definition: DtCigiEntity.h:191
boost::unordered_map< std::string, double > AnimationSpeedMap
Definition: DtCigiEntity.h:179
An articulated model manipulator for controlling an articulated model.
Definition: DtOsgArticulatedModel.h:56
Contains DLL export macros.
int endFrame
Definition: DtCigiEntity.h:185
DynamicRegionMap myDynamicRegionMap
Definition: DtCigiEntity.h:195
AnimationFrameMap myAnimationCurrentFrameMap
Definition: DtCigiEntity.h:177
DtCigiObjectCreatorTemplate< DtCigiEntity > DtCigiEntityCreator
Creator that will be registered with the cigi object factory to create this class.
Definition: DtCigiEntity.h:201
boost::unordered_map< std::string, bool > DynamicRegionMap
Definition: DtCigiEntity.h:194
Definition: DtCigiEntity.h:182
boost::unordered_map< std::string, int > AnimationFrameMap
Definition: DtCigiEntity.h:176
StateMap myStateMap
Definition: DtCigiEntity.h:174
Contains makVrv::DtCigiBaseEntity class declaration.
This class is responsible for the actual processing of CIGI data.
Definition: DtCigiConnection.h:56
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtArticulatedModelAgent * myArticulatedModel
Definition: DtCigiEntity.h:171
A DtCigiEntity is a base CIGI entity that loads an articulated model.
Definition: DtCigiEntity.h:32
This class provides an abstract base class for CIGI entities.
Definition: DtCigiBaseEntity.h:42
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:36
boost::unordered_map< std::string, AnimationRange > AnimationRangeMap
Definition: DtCigiEntity.h:187
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
AnimationRangeMap myAnimationRangeMap
Definition: DtCigiEntity.h:188
Definition: DtCigiBaseEntity.h:427
AnimationSpeedMap myAnimationSpeedMap
Definition: DtCigiEntity.h:180

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)