VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCigiCharacterEntity.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2020 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
13 
16 
18 
19 #include <boost/unordered_map.hpp>
20 
21 namespace makVrv
22 {
23 
24  class DtCharacterModelAgent;
25  class DtCharacterModel;
26  class DtSceneObjectAgent;
27  class DtSurfaceClampingUpdaterAgent;
28  class DtWaterClampingUpdaterAgent;
29 
33  {
34  public:
35 
38  DtAgentManagerInterface& sceneInterface, int entityId, int entityType);
39 
41  virtual ~DtCigiCharacterEntity();
42 
49  virtual void init();
50 
53  virtual void uninit();
54 
57  virtual void restart();
58 
62  virtual void setPosition(const DtGeodeticCoord& pos, bool force=false);
63 
67  virtual void setOrientation(const DtTaitBryan& orientation, bool force=false);
68 
70  virtual void setCharacterPaused( bool paused );
71 
73  virtual void setCharacterActionSpeed( float speed );
74 
78  virtual void unforceAction();
79 
81  virtual void setCharacterAction( const std::string& action );
82 
85  virtual void setCharacterAction( const std::string& action, bool paused,
86  double speed, bool usePositioning, const DtVector& offset );
87 
89  virtual void setCharacterPosture( DtCharacterModel::Posture posture );
90 
93  virtual void setWeaponDeployed(bool deployed);
94 
96  virtual bool weaponDeployed() const;
97 
101  virtual void setAlive( bool alive );
102 
104  virtual bool alive() const;
105 
113  virtual void executeGesture(const std::string& gestureName, int reps, float duration, float channelAWeight);
114 
118  virtual void endGesture(const std::string& gestureName, float rampDown);
119 
121  virtual void setItemAppearance( const std::string& itemAppearance );
122 
124  virtual const std::string& itemAppearance() const;
125 
127  virtual void setHeadAppearance( const std::string& headAppearance );
128 
130  virtual const std::string& headAppearance() const;
131 
133  virtual void setCharacterScale( const DtVector& scale );
134 
135  // Get the character scale
136  virtual const DtVector& characterScale() const;
137 
139  virtual void setCharacterWeight( float characterWeight );
140 
142  virtual float characterWeight() const;
143 
145  virtual void setWaterlineOriginOffset( float offset );
146 
148  virtual void startEmbarked();
149 
151  virtual void endEmbarked();
152 
154  virtual void setArtPartTranslation(int partId, float xOffset, float yOffset,
155  float zOffset, bool xEnable, bool yEnable, bool zEnable);
156 
158  virtual void setArtPartOrientation(int partId, float yaw, float pitch, float roll,
159  bool yawEnable, bool pitchEnable, bool rollEnable);
160 
162  virtual void setArtPartLinearRate(int partId, float xRate, float yRate,
163  float zRate);
164 
166  virtual void setArtPartAngularRate(int partId, float yawRate, float pitchRate,
167  float rollRate);
168 
170  virtual void setArtPartEnable(int partId, bool trueFalse);
171 
173  virtual void setIsAmphibious(bool isAmphibious);
179  virtual bool isAmphibious() const;
180 
183  virtual bool gestureInitialRepetitions(const std::string& gestureName, int& reps) const;
184 
187  virtual bool gestureInitialDuration(const std::string& gestureName, float& duration) const;
188 
191  virtual bool gestureChannelAWeight(const std::string& gestureName, float& weight) const;
192 
194 
195  protected:
197  virtual void startDeadReckoning();
198 
200  virtual void endDeadReckoning();
201 
204  virtual void startGroundClamping();
205 
207  virtual void endGroundClamping();
208 
209  protected:
210  DtCharacterModelAgent* myCharacterModel;
212  bool myAlive;
213 
214  std::string myCharacterAction;
219 
222  std::string myItemAppearance;
223  std::string myHeadAppearance;
227 
228  typedef struct gestureData
229  {
230  int repetitions; // Note the character interface doesn't give us a way to know how many repetitions
231  // might have already happened (or for what duration). The best a connection 'restart'
232  // can do is restart a current gesture with it's initial values
233  float duration;
235  } GestureData;
236 
237  typedef boost::unordered_map<std::string, GestureData> GestureDataMap;
238 
240 
241  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
242  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
243  };
244 
249 }
250 
Contains makVrv::DtCigiDiGuyCtrl class.
float myWaterlineOriginOffset
Definition: DtCigiCharacterEntity.h:221
std::string myItemAppearance
Definition: DtCigiCharacterEntity.h:222
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
Definition: DtCigiCharacterEntity.h:242
bool myAlive
Definition: DtCigiCharacterEntity.h:212
Posture
Definition: DtCharacterModel.h:24
Contains the makVrv::DtCharacterModel class declaration.
Definition: DtCigiCharacterEntity.h:228
DtVector myCharacterActionOffset
Definition: DtCigiCharacterEntity.h:218
std::string myCharacterAction
Definition: DtCigiCharacterEntity.h:214
boost::unordered_map< std::string, GestureData > GestureDataMap
Definition: DtCigiCharacterEntity.h:237
int repetitions
Definition: DtCigiCharacterEntity.h:230
DtCharacterModel::Posture myPosture
Definition: DtCigiCharacterEntity.h:220
std::string myHeadAppearance
Definition: DtCigiCharacterEntity.h:223
float myCharacterActionSpeed
Definition: DtCigiCharacterEntity.h:216
Contains makVrv::DtCigiBaseEntity class declaration.
This class is responsible for the actual processing of CIGI data.
Definition: DtCigiConnection.h:56
float myCharacterWeight
Definition: DtCigiCharacterEntity.h:225
float duration
Definition: DtCigiCharacterEntity.h:233
DtCigiObjectCreatorTemplate< DtCigiCharacterEntity > DtCigiCharacterEntityCreator
Creator that will be registered with the cigi object factory to create this class.
Definition: DtCigiCharacterEntity.h:248
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtCharacterModelAgent * myCharacterModel
Definition: DtCigiCharacterEntity.h:210
This class provides an abstract base class for CIGI entities.
Definition: DtCigiBaseEntity.h:42
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:36
bool myCharacterActionUsesPositioning
Definition: DtCigiCharacterEntity.h:217
DtVector myCharacterScale
Definition: DtCigiCharacterEntity.h:224
A DtCigiCharacterEntity is a CIGI base entity that loads a character (Di Guy) model.
Definition: DtCigiCharacterEntity.h:32
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
voidpf uLong offset
Definition: ioapi.h:42
GestureDataMap myGestureDataMap
Definition: DtCigiCharacterEntity.h:239
Definition: DtCigiBaseEntity.h:427
DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
Definition: DtCigiCharacterEntity.h:241
float channelAWeight
Definition: DtCigiCharacterEntity.h:234
bool myWeaponDeployed
Definition: DtCigiCharacterEntity.h:211
bool myCharacterPaused
Definition: DtCigiCharacterEntity.h:215
bool myIsAmphibious
Definition: DtCigiCharacterEntity.h:226

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)