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) 2024 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;
92  virtual void disconnectUpdaters() override;
94 
99  virtual void processKinematicStateDefinition( const DtVisualizerDefinition* visDef ) override;
100 
104  virtual void resetSpatialAttributes();
105 
107  virtual void setLocation( const DtVector&, double time );
108 
110  virtual void setOrientation( const DtTaitBryan&, double time );
111 
113  virtual void setVelocity( const DtVector32&, double time );
114 
116  virtual void setAngularVelocity( const DtVector32&, double time );
117 
119  virtual void setAcceleration( const DtVector32&, double time );
120 
123  virtual void setLocation( const DtVector& );
124 
127  virtual void setOrientation( const DtTaitBryan& );
128 
131  virtual void setVelocity( const DtVector32& );
132 
135  virtual void setAngularVelocity( const DtVector32& );
136 
139  virtual void setAcceleration( const DtVector32& );
141 
145  virtual void setDeadReckoning( bool position, bool velocity,
146  bool orientation );
147 
149  virtual void setSmoothingEnabled( bool enabled );
150 
152  virtual void setSmoothingPeriod( float scale );
154 
160  virtual void setIsAmphibious( bool amphibious );
161 
163  virtual bool isAmphibious() const;
165 
172  virtual void setWaterClampingEnabled( bool enabled );
173 
176  virtual void setGlobalBuoyancyEnabled( bool enabled );
177 
180  virtual void setBuoyancyLod( float lodDistance );
181 
183  virtual void setWaterlineOriginOffset( float offset );
185 
190  virtual void setGroundClamping( bool enabled );
191 
194  virtual void setGroundClampingMode(
196 
198  virtual void setPossibleGroundClampingModes(
200 
202  virtual void slot_setGroundClampingCullingEnabled( bool enabled );
203 
205  virtual void setGroundClampingScale( float scale );
206 
208  virtual void slot_lifeformsUprightChanged( bool enabled );
209 
211  virtual DtGroundClampingUpdater::GroundClampingMode groundClampingMode();
213 
216  virtual std::string motionModel() const;
217  virtual void setMotionModel( const std::string& model );
219 
223  virtual void setFrozen( bool isFrozen, bool force = false );
224 
226  virtual void setDamageState( EntityStateListener::DamageState damageState );
228 
232  static const std::string& theClassName();
233  protected:
235  virtual void connectToListenerSignals() override;
237  virtual void connectToSettingsSignals() override;
238 
243  virtual void addSceneObjectToUpdaters( DtModelSetId modelSet, DtSceneObjectAgent* sceneObjectAgent ) override;
244 
250  virtual void removeSceneObjectFromUpdaters( DtModelSetId modelSet, DtSceneObjectAgent* sceneObjectAgent ) override;
251 
254  // Always built via creator in constructor
255  virtual void initializeDeadReckonUpdater();
257  virtual void buildSurfaceClampingUpdater();
259  virtual void buildWaterClampingUpdater();
262  virtual void buildGroundClampingUpdater();
263 
270  virtual void initializeUpdaterChain();
273  virtual void connectUpdaters();
274  virtual void removeSceneObjectsFromAllUpdaters();
275  virtual void addAllSceneObjectsToCorrectChain();
277 
280  virtual void startEmbarked() override;
281  virtual void endEmbarked() override;
283 
284  virtual void slot_resetSmoother();
285 
288  virtual void slot_buoyancyDefaultLODDistanceChanged( float distance );
289  virtual void slot_buoyancyMinimumCullDistanceChanged( float distance );
290  virtual void slot_buoyancyCullTypeChanged(
294  virtual void slot_orientationClampingChanged( bool enabled );
295  protected:
297 
298  DtDeadReckonUpdaterAgent* myDeadReckonUpdaterAgent;
299  DtGroundClampingUpdaterAgent* myGroundClampingUpdaterAgent;
300  DtEmbarkationUpdaterAgent* myEmbarkationUpdaterAgent;
301  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
302  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
303 
305 
307 
308  bool myDRPos;
309  bool myDRVel;
310  bool myDROri;
313 
315 
322  bool myFrozen;
329 
332 
333  std::string myMotionModel;
334  };
335 
337 }
DtEntitySettingsRecord::BuoyancyCullType myBuoyancyCullType
Definition: DtEntityKinematicState.h:328
DtEmbarkationUpdaterAgent * myEmbarkationUpdaterAgent
Definition: DtEntityKinematicState.h:300
std::string myMotionModel
Definition: DtEntityKinematicState.h:333
bool myWaterClampingPossible
Definition: DtEntityKinematicState.h:320
bool myDrAlgorithmSet
Definition: DtEntityKinematicState.h:304
bool myFrozen
Definition: DtEntityKinematicState.h:322
bool myDeadReckonIsThreadSafe
Definition: DtEntityKinematicState.h:314
bool myGroundClampingCullingEnabled
Definition: DtEntityKinematicState.h:318
bool myDROri
Definition: DtEntityKinematicState.h:310
DtEntityKinematicState Controls kinematic state of all scene objects for an element This class has no...
Definition: DtEntityKinematicState.h:60
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
Definition: DtEntityKinematicState.h:302
DamageState
Definition: DtEntityStateListener.h:64
bool myUseDefaultBuoyancyLOD
Definition: DtEntityKinematicState.h:312
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
DtEntityStateListener & myEntityStateListener
Definition: DtEntityKinematicState.h:296
bool myIsDestroyed
Definition: DtEntityKinematicState.h:306
float myGroundClampingScale
Definition: DtEntityKinematicState.h:323
bool mySmoothingEnabled
Definition: DtEntityKinematicState.h:321
Definition: DtKinematicState.h:181
bool myIsAmphibious
Definition: DtEntityKinematicState.h:311
DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
Definition: DtEntityKinematicState.h:301
DtGroundClampingUpdater::GroundClampingMode myGroundClampingMode
Definition: DtEntityKinematicState.h:330
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:325
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:298
bool myGlobalBuoyancyEnabled
Definition: DtEntityKinematicState.h:319
Contains makVrv:DtKinematicState class. Used to position objects in the scene.
DtGroundClampingUpdaterAgent * myGroundClampingUpdaterAgent
Definition: DtEntityKinematicState.h:299
Contains makVrv::DtGroundClampingUpdater class.
bool myGlobalGroundClampingEnabled
Ground clamping members.
Definition: DtEntityKinematicState.h:317
float mySmoothingPeriod
Definition: DtEntityKinematicState.h:327
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:331
const char int mode
Definition: ioapi.h:38
float myBuoyancyLod
Definition: DtEntityKinematicState.h:324
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
bool myDRPos
Definition: DtEntityKinematicState.h:308
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:309
GroundClampingMode
Ground Clamping Modes.
Definition: DtGroundClampingUpdater.h:36
float myBuoyancyMinimumCullDistance
Definition: DtEntityKinematicState.h:326
DtEntityStateListener.
Definition: DtEntityStateListener.h:137

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)