VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtEntityKinematicState.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
10 
11 #pragma once
12 
16 
17 using namespace makArchives;
18 
19 namespace makVrv
20 {
21  class DtDeadReckonUpdaterAgent;
22  class DtGroundClampingUpdaterAgent;
23  class DtSurfaceClampingUpdaterAgent;
24  class DtWaterClampingUpdaterAgent;
25  class DtEmbarkationUpdaterAgent;
26  class DtEntityStateListener;
27  class DtElement;
28 
29  namespace EntityStateListener
30  {
31  enum class DamageState;
32  }
33 
61  {
62  public:
65  DtSharedSettingsManager& settingsManager );
66 
68  virtual ~DtEntityKinematicState();
69 
71  DtEntityKinematicState() = delete;
72 
75 
77  DtEntityKinematicState& operator=( const DtEntityKinematicState& ) = delete;
78  public:
81  virtual void initialize() override;
82 
90  virtual void createUpdaters() override;
91  virtual void destroyUpdaters() override;
93 
98  virtual void processKinematicStateDefinition( const DtVisualizerDefinition* visDef ) override;
99 
103  virtual void resetSpatialAttributes();
104 
106  virtual void setLocation( const DtVector&, double time );
107 
109  virtual void setOrientation( const DtTaitBryan&, double time );
110 
112  virtual void setVelocity( const DtVector32&, double time );
113 
115  virtual void setAngularVelocity( const DtVector32&, double time );
116 
118  virtual void setAcceleration( const DtVector32&, double time );
119 
122  virtual void setLocation( const DtVector& );
123 
126  virtual void setOrientation( const DtTaitBryan& );
127 
130  virtual void setVelocity( const DtVector32& );
131 
134  virtual void setAngularVelocity( const DtVector32& );
135 
138  virtual void setAcceleration( const DtVector32& );
140 
144  virtual void setDeadReckoning( bool position, bool velocity,
145  bool orientation );
146 
148  virtual void setSmoothingEnabled( bool enabled );
149 
151  virtual void setSmoothingPeriod( float scale );
153 
159  virtual void setIsAmphibious( bool amphibious );
160 
162  virtual bool isAmphibious() const;
164 
171  virtual void setWaterClampingEnabled( bool enabled );
172 
175  virtual void setGlobalBuoyancyEnabled( bool enabled );
176 
179  virtual void setBuoyancyLod( float lodDistance );
180 
182  virtual void setWaterlineOriginOffset( float offset );
184 
189  virtual void setGroundClamping( bool enabled );
190 
193  virtual void setGroundClampingMode(
195 
197  virtual void setPossibleGroundClampingModes(
199 
201  virtual void slot_setGroundClampingCullingEnabled( bool enabled );
202 
204  virtual void setGroundClampingScale( float scale );
205 
207  virtual void slot_lifeformsUprightChanged( bool enabled );
208 
210  virtual DtGroundClampingUpdater::GroundClampingMode groundClampingMode();
212 
215  virtual std::string motionModel() const;
216  virtual void setMotionModel( const std::string& model );
218 
222  virtual void setFrozen( bool isFrozen, bool force = false );
223 
225  virtual void setDamageState( EntityStateListener::DamageState damageState );
227 
231  static const std::string& theClassName();
232  protected:
234  virtual void connectToListenerSignals() override;
236  virtual void connectToSettingsSignals() override;
237 
242  virtual void addSceneObjectToUpdaters( DtModelSetId modelSet, DtSceneObjectAgent* sceneObjectAgent ) override;
243 
249  virtual void removeSceneObjectFromUpdaters( DtModelSetId modelSet, DtSceneObjectAgent* sceneObjectAgent ) override;
250 
253  // Always built via creator in constructor
254  virtual void initializeDeadReckonUpdater();
256  virtual void buildSurfaceClampingUpdater();
258  virtual void buildWaterClampingUpdater();
261  virtual void buildGroundClampingUpdater();
262 
269  virtual void initializeUpdaterChain();
272  virtual void connectUpdaters();
273  virtual void removeSceneObjectsFromAllUpdaters();
274  virtual void addAllSceneObjectsToCorrectChain();
276 
279  virtual void startEmbarked() override;
280  virtual void endEmbarked() override;
282 
283  virtual void slot_resetSmoother();
284 
287  virtual void slot_buoyancyDefaultLODDistanceChanged( float distance );
288  virtual void slot_buoyancyMinimumCullDistanceChanged( float distance );
289  virtual void slot_buoyancyCullTypeChanged(
293  virtual void slot_orientationClampingChanged( bool enabled );
294  protected:
296 
297  DtDeadReckonUpdaterAgent* myDeadReckonUpdaterAgent;
298  DtGroundClampingUpdaterAgent* myGroundClampingUpdaterAgent;
299  DtEmbarkationUpdaterAgent* myEmbarkationUpdaterAgent;
300  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
301  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
302 
304 
306 
307  bool myDRPos;
308  bool myDRVel;
309  bool myDROri;
312 
314 
321  bool myFrozen;
328 
331 
332  std::string myMotionModel;
333  };
334 
336 }
DtEntitySettingsRecord::BuoyancyCullType myBuoyancyCullType
Definition: DtEntityKinematicState.h:327
DtEmbarkationUpdaterAgent * myEmbarkationUpdaterAgent
Definition: DtEntityKinematicState.h:299
std::string myMotionModel
Definition: DtEntityKinematicState.h:332
bool myWaterClampingPossible
Definition: DtEntityKinematicState.h:319
bool myDrAlgorithmSet
Definition: DtEntityKinematicState.h:303
bool myFrozen
Definition: DtEntityKinematicState.h:321
bool myDeadReckonIsThreadSafe
Definition: DtEntityKinematicState.h:313
bool myGroundClampingCullingEnabled
Definition: DtEntityKinematicState.h:317
bool myDROri
Definition: DtEntityKinematicState.h:309
DtEntityKinematicState Controls kinematic state of all scene objects for an element This class has no...
Definition: DtEntityKinematicState.h:60
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
Definition: DtEntityKinematicState.h:301
DamageState
Definition: DtEntityStateListener.h:64
bool myUseDefaultBuoyancyLOD
Definition: DtEntityKinematicState.h:311
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
DtEntityStateListener & myEntityStateListener
Definition: DtEntityKinematicState.h:295
bool myIsDestroyed
Definition: DtEntityKinematicState.h:305
float myGroundClampingScale
Definition: DtEntityKinematicState.h:322
bool mySmoothingEnabled
Definition: DtEntityKinematicState.h:320
Definition: DtKinematicState.h:180
bool myIsAmphibious
Definition: DtEntityKinematicState.h:310
DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
Definition: DtEntityKinematicState.h:300
DtGroundClampingUpdater::GroundClampingMode myGroundClampingMode
Definition: DtEntityKinematicState.h:329
BuoyancyCullType
Definition: DtEntitySettingsRecord.h:28
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
float myWaterlineOriginOffset
Definition: DtEntityKinematicState.h:324
Base class for Kinematic State Objects e.g. DtEntityKinematicState Controls kinematic state of a scen...
Definition: DtKinematicState.h:54
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtDeadReckonUpdaterAgent * myDeadReckonUpdaterAgent
Definition: DtEntityKinematicState.h:297
bool myGlobalBuoyancyEnabled
Definition: DtEntityKinematicState.h:318
Contains makVrv:DtKinematicState class. Used to position objects in the scene.
DtGroundClampingUpdaterAgent * myGroundClampingUpdaterAgent
Definition: DtEntityKinematicState.h:298
Contains makVrv::DtGroundClampingUpdater class.
bool myGlobalGroundClampingEnabled
Ground clamping members.
Definition: DtEntityKinematicState.h:316
float mySmoothingPeriod
Definition: DtEntityKinematicState.h:326
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:26
DtGroundClampingUpdater::GroundClampingMode myPossibleGroundClampingModes
Definition: DtEntityKinematicState.h:330
const char int mode
Definition: ioapi.h:38
float myBuoyancyLod
Definition: DtEntityKinematicState.h:323
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
bool myDRPos
Definition: DtEntityKinematicState.h:307
DtModelSetId
Definition: DtModelSetEnums.h:19
voidpf uLong offset
Definition: ioapi.h:42
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:26
Contains the DtEntitySettingsRecord class declaration.
bool myDRVel
Definition: DtEntityKinematicState.h:308
GroundClampingMode
Ground Clamping Modes.
Definition: DtGroundClampingUpdater.h:36
float myBuoyancyMinimumCullDistance
Definition: DtEntityKinematicState.h:325
DtEntityStateListener.
Definition: DtEntityStateListener.h:137

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)