VR-Forces 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) 2022 MAK Technologies, Inc.
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 
30  namespace EntityStateListener
31  {
32  enum class WeaponState;
33  }
34 
38  {
39  public:
40 
43  DtAgentManagerInterface& sceneInterface, int entityId, int entityType);
44 
46  virtual ~DtCigiCharacterEntity();
47 
54  virtual void init();
55 
58  virtual void uninit();
59 
62  virtual void restart();
63 
67  virtual void setPosition(const DtGeodeticCoord& pos, bool force=false);
68 
72  virtual void setOrientation(const DtTaitBryan& orientation, bool force=false);
73 
75  virtual void setCharacterPaused( bool paused );
76 
78  virtual void setCharacterActionSpeed( float speed );
79 
83  virtual void unforceAction();
84 
86  virtual void setCharacterAction( const std::string& action );
87 
90  virtual void setCharacterAction( const std::string& action, bool paused,
91  double speed, bool usePositioning, const DtVector& offset );
92 
94  virtual void setCharacterPosture( DtCharacterModel::Posture posture );
95 
98  virtual void setWeaponState( EntityStateListener::WeaponState state );
99 
101  virtual EntityStateListener::WeaponState weaponState() const;
102 
106  virtual void setAlive( bool alive );
107 
109  virtual bool alive() const;
110 
118  virtual void executeGesture(const std::string& gestureName, int reps, float duration, float channelAWeight);
119 
123  virtual void endGesture(const std::string& gestureName, float rampDown);
124 
126  virtual void setItemAppearance( const std::string& itemAppearance );
127 
129  virtual const std::string& itemAppearance() const;
130 
132  virtual void setHeadAppearance( const std::string& headAppearance );
133 
135  virtual const std::string& headAppearance() const;
136 
138  virtual void setCharacterScale( const DtVector& scale );
139 
140  // Get the character scale
141  virtual const DtVector& characterScale() const;
142 
144  virtual void setCharacterWeight( float characterWeight );
145 
147  virtual float characterWeight() const;
148 
150  virtual void setWaterlineOriginOffset( float offset );
151 
153  virtual void startEmbarked();
154 
156  virtual void endEmbarked();
157 
159  virtual void setArtPartTranslation(int partId, float xOffset, float yOffset,
160  float zOffset, bool xEnable, bool yEnable, bool zEnable);
161 
163  virtual void setArtPartOrientation(int partId, float yaw, float pitch, float roll,
164  bool yawEnable, bool pitchEnable, bool rollEnable);
165 
167  virtual void setArtPartLinearRate(int partId, float xRate, float yRate,
168  float zRate);
169 
171  virtual void setArtPartAngularRate(int partId, float yawRate, float pitchRate,
172  float rollRate);
173 
175  virtual void setArtPartEnable(int partId, bool trueFalse);
176 
178  virtual void setIsAmphibious(bool isAmphibious);
184  virtual bool isAmphibious() const;
185 
188  virtual bool gestureInitialRepetitions(const std::string& gestureName, int& reps) const;
189 
192  virtual bool gestureInitialDuration(const std::string& gestureName, float& duration) const;
193 
196  virtual bool gestureChannelAWeight(const std::string& gestureName, float& weight) const;
197 
199 
200  protected:
202  virtual void startDeadReckoning();
203 
205  virtual void endDeadReckoning();
206 
209  virtual void startGroundClamping();
210 
212  virtual void endGroundClamping();
213 
214  protected:
215  DtCharacterModelAgent* myCharacterModel;
217  bool myAlive;
218 
219  std::string myCharacterAction;
224 
227  std::string myItemAppearance;
228  std::string myHeadAppearance;
232 
233  typedef struct gestureData
234  {
235  int repetitions; // Note the character interface doesn't give us a way to know how many repetitions
236  // might have already happened (or for what duration). The best a connection 'restart'
237  // can do is restart a current gesture with it's initial values
238  float duration;
240  } GestureData;
241 
242  typedef boost::unordered_map<std::string, GestureData> GestureDataMap;
243 
245 
246  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
247  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
248  };
249 
254 }
255 
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
Contains makVrv::DtCigiDiGuyCtrl class.
float myWaterlineOriginOffset
Definition: DtCigiCharacterEntity.h:226
std::string myItemAppearance
Definition: DtCigiCharacterEntity.h:227
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
Definition: DtCigiCharacterEntity.h:247
bool myAlive
Definition: DtCigiCharacterEntity.h:217
Posture
Enumerated postures that can be used in the setPosture method. In the DtDiguyCharacterModel class...
Definition: DtCharacterModel.h:33
Contains the makVrv::DtCharacterModel class declaration.
Definition: DtCigiCharacterEntity.h:233
DtVector myCharacterActionOffset
Definition: DtCigiCharacterEntity.h:223
std::string myCharacterAction
Definition: DtCigiCharacterEntity.h:219
boost::unordered_map< std::string, GestureData > GestureDataMap
Definition: DtCigiCharacterEntity.h:242
int repetitions
Definition: DtCigiCharacterEntity.h:235
DtCharacterModel::Posture myPosture
Definition: DtCigiCharacterEntity.h:225
std::string myHeadAppearance
Definition: DtCigiCharacterEntity.h:228
float myCharacterActionSpeed
Definition: DtCigiCharacterEntity.h:221
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:216
float myCharacterWeight
Definition: DtCigiCharacterEntity.h:230
WeaponState
Definition: DtEntityStateListener.h:101
float duration
Definition: DtCigiCharacterEntity.h:238
DtCigiObjectCreatorTemplate< DtCigiCharacterEntity > DtCigiCharacterEntityCreator
Creator that will be registered with the cigi object factory to create this class.
Definition: DtCigiCharacterEntity.h:253
DtCharacterModelAgent * myCharacterModel
Definition: DtCigiCharacterEntity.h:215
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:222
DtVector myCharacterScale
Definition: DtCigiCharacterEntity.h:229
A DtCigiCharacterEntity is a CIGI base entity that loads a character (Di Guy) model.
Definition: DtCigiCharacterEntity.h:37
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
voidpf uLong offset
Definition: ioapi.h:42
GestureDataMap myGestureDataMap
Definition: DtCigiCharacterEntity.h:244
Definition: DtCigiBaseEntity.h:437
DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
Definition: DtCigiCharacterEntity.h:246
float channelAWeight
Definition: DtCigiCharacterEntity.h:239
bool myCharacterPaused
Definition: DtCigiCharacterEntity.h:220
bool myIsAmphibious
Definition: DtCigiCharacterEntity.h:231

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)