VR-Forces 5.0.3 Developer's Guide
 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) 2021 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
13 
16 
19 
20 #include <boost/unordered_map.hpp>
21 
22 namespace makVrv
23 {
24 
25  class DtCharacterModelAgent;
26  class DtCharacterModel;
27  class DtSceneObjectAgent;
28  class DtSurfaceClampingUpdaterAgent;
29  class DtWaterClampingUpdaterAgent;
30 
34  {
35  public:
36 
39  DtAgentManagerInterface& sceneInterface, int entityId, int entityType);
40 
42  virtual ~DtCigiCharacterEntity();
43 
50  virtual void init();
51 
54  virtual void uninit();
55 
58  virtual void restart();
59 
63  virtual void setPosition(const DtGeodeticCoord& pos, bool force=false);
64 
68  virtual void setOrientation(const DtTaitBryan& orientation, bool force=false);
69 
71  virtual void setCharacterPaused( bool paused );
72 
74  virtual void setCharacterActionSpeed( float speed );
75 
79  virtual void unforceAction();
80 
82  virtual void setCharacterAction( const std::string& action );
83 
86  virtual void setCharacterAction( const std::string& action, bool paused,
87  double speed, bool usePositioning, const DtVector& offset );
88 
90  virtual void setCharacterPosture( DtCharacterModel::Posture posture );
91 
94  virtual void setWeaponState( EntityStateListener::WeaponState state );
95 
97  virtual EntityStateListener::WeaponState weaponState() const;
98 
102  virtual void setAlive( bool alive );
103 
105  virtual bool alive() const;
106 
114  virtual void executeGesture(const std::string& gestureName, int reps, float duration, float channelAWeight);
115 
119  virtual void endGesture(const std::string& gestureName, float rampDown);
120 
122  virtual void setItemAppearance( const std::string& itemAppearance );
123 
125  virtual const std::string& itemAppearance() const;
126 
128  virtual void setHeadAppearance( const std::string& headAppearance );
129 
131  virtual const std::string& headAppearance() const;
132 
134  virtual void setCharacterScale( const DtVector& scale );
135 
136  // Get the character scale
137  virtual const DtVector& characterScale() const;
138 
140  virtual void setCharacterWeight( float characterWeight );
141 
143  virtual float characterWeight() const;
144 
146  virtual void setWaterlineOriginOffset( float offset );
147 
149  virtual void startEmbarked();
150 
152  virtual void endEmbarked();
153 
155  virtual void setArtPartTranslation(int partId, float xOffset, float yOffset,
156  float zOffset, bool xEnable, bool yEnable, bool zEnable);
157 
159  virtual void setArtPartOrientation(int partId, float yaw, float pitch, float roll,
160  bool yawEnable, bool pitchEnable, bool rollEnable);
161 
163  virtual void setArtPartLinearRate(int partId, float xRate, float yRate,
164  float zRate);
165 
167  virtual void setArtPartAngularRate(int partId, float yawRate, float pitchRate,
168  float rollRate);
169 
171  virtual void setArtPartEnable(int partId, bool trueFalse);
172 
174  virtual void setIsAmphibious(bool isAmphibious);
180  virtual bool isAmphibious() const;
181 
184  virtual bool gestureInitialRepetitions(const std::string& gestureName, int& reps) const;
185 
188  virtual bool gestureInitialDuration(const std::string& gestureName, float& duration) const;
189 
192  virtual bool gestureChannelAWeight(const std::string& gestureName, float& weight) const;
193 
195 
196  protected:
198  virtual void startDeadReckoning();
199 
201  virtual void endDeadReckoning();
202 
205  virtual void startGroundClamping();
206 
208  virtual void endGroundClamping();
209 
210  protected:
211  DtCharacterModelAgent* myCharacterModel;
213  bool myAlive;
214 
215  std::string myCharacterAction;
220 
223  std::string myItemAppearance;
224  std::string myHeadAppearance;
228 
229  typedef struct gestureData
230  {
231  int repetitions; // Note the character interface doesn't give us a way to know how many repetitions
232  // might have already happened (or for what duration). The best a connection 'restart'
233  // can do is restart a current gesture with it's initial values
234  float duration;
236  } GestureData;
237 
238  typedef boost::unordered_map<std::string, GestureData> GestureDataMap;
239 
241 
242  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
243  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
244  };
245 
250 }
251 
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
Contains makVrv::DtCigiDiGuyCtrl class.
float myWaterlineOriginOffset
Definition: DtCigiCharacterEntity.h:222
std::string myItemAppearance
Definition: DtCigiCharacterEntity.h:223
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
Definition: DtCigiCharacterEntity.h:243
bool myAlive
Definition: DtCigiCharacterEntity.h:213
Posture
Enumerated postures that can be used in the setPosture method. In the DtDiguyCharacterModel class...
Definition: DtCharacterModel.h:30
Contains the makVrv::DtCharacterModel class declaration.
Definition: DtCigiCharacterEntity.h:229
DtVector myCharacterActionOffset
Definition: DtCigiCharacterEntity.h:219
std::string myCharacterAction
Definition: DtCigiCharacterEntity.h:215
boost::unordered_map< std::string, GestureData > GestureDataMap
Definition: DtCigiCharacterEntity.h:238
int repetitions
Definition: DtCigiCharacterEntity.h:231
Contains makVrv:DtEntityStateListener class.
DtCharacterModel::Posture myPosture
Definition: DtCigiCharacterEntity.h:221
std::string myHeadAppearance
Definition: DtCigiCharacterEntity.h:224
float myCharacterActionSpeed
Definition: DtCigiCharacterEntity.h:217
Contains makVrv::DtCigiBaseEntity class declaration.
This class is responsible for the actual processing of CIGI data. This holds the entity visualizer...
Definition: DtCigiConnection.h:57
EntityStateListener::WeaponState myWeaponState
Definition: DtCigiCharacterEntity.h:212
float myCharacterWeight
Definition: DtCigiCharacterEntity.h:226
WeaponState
Definition: DtEntityStateListener.h:96
float duration
Definition: DtCigiCharacterEntity.h:234
DtCigiObjectCreatorTemplate< DtCigiCharacterEntity > DtCigiCharacterEntityCreator
Creator that will be registered with the cigi object factory to create this class.
Definition: DtCigiCharacterEntity.h:249
DtCharacterModelAgent * myCharacterModel
Definition: DtCigiCharacterEntity.h:211
This class provides an abstract base class for CIGI entities. These are created by the DtCigiEntityVi...
Definition: DtCigiBaseEntity.h:42
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
bool myCharacterActionUsesPositioning
Definition: DtCigiCharacterEntity.h:218
DtVector myCharacterScale
Definition: DtCigiCharacterEntity.h:225
A DtCigiCharacterEntity is a CIGI base entity that loads a character (Di Guy) model.
Definition: DtCigiCharacterEntity.h:33
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
voidpf uLong offset
Definition: ioapi.h:42
GestureDataMap myGestureDataMap
Definition: DtCigiCharacterEntity.h:240
Definition: DtCigiBaseEntity.h:434
DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
Definition: DtCigiCharacterEntity.h:242
float channelAWeight
Definition: DtCigiCharacterEntity.h:235
bool myCharacterPaused
Definition: DtCigiCharacterEntity.h:216
bool myIsAmphibious
Definition: DtCigiCharacterEntity.h:227

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)