VR-Forces 5.0.2 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) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
10 
11 #pragma once
12 
17 
18 using namespace makArchives;
19 
20 namespace makVrv
21 {
22  class DtDeadReckonUpdaterAgent;
23  class DtGroundClampingUpdaterAgent;
24  class DtSurfaceClampingUpdaterAgent;
25  class DtWaterClampingUpdaterAgent;
26  class DtEmbarkationUpdaterAgent;
27  class DtTerrainScalingUpdaterAgent;
28 
35  public DtKinematicState
36  {
37  public:
39  DtEntityKinematicState( DtSceneObjectAgent& sceneObject, DtEntityStateListener& listener,
40  DtAgentManagerInterface& sceneInterface, DtSharedSettingsManager& settingsManager, int modelSet );
41 
43  virtual ~DtEntityKinematicState();
44 
46  DtEntityKinematicState() = delete;
47 
50 
52  DtEntityKinematicState& operator=( const DtEntityKinematicState& ) = delete;
53  public:
55  virtual void initialize() override;
56 
58  virtual void setLocation( const DtVector&, double time );
59 
61  virtual void setOrientation( const DtTaitBryan&, double time );
62 
64  virtual void setVelocity( const DtVector32&, double time );
65 
67  virtual void setAngularVelocity( const DtVector32&, double time );
68 
70  virtual void setAcceleration( const DtVector32&, double time );
71 
74  virtual void setLocation( const DtVector& );
75 
78  virtual void setOrientation( const DtTaitBryan& );
79 
82  virtual void setVelocity( const DtVector32& );
83 
86  virtual void setAngularVelocity( const DtVector32& );
87 
90  virtual void setAcceleration( const DtVector32& );
91 
93  virtual void resetSpatialAttributes();
94 
96  virtual void setDeadReckoning( bool position, bool velocity,
97  bool orientation );
98 
100  virtual DtDeadReckonUpdaterAgent* findDeadReckoner();
101 
103  virtual void setEmbarked( const DtUniqueID& id );
104 
106  virtual void setSmoothingEnabled( bool enabled );
107 
109  virtual void setSmoothingPeriod( float scale );
110 
112  virtual void setFrozen( bool isFrozen );
113 
116  virtual void implementVisibility( const bool vis ) override;
117 
119  virtual void readEntityDisplaySettings();
122 
125  virtual void getEntityStateSettings();
126 
128  virtual void slot_setGroundClampingCullingEnabled( bool enabled );
129 
131  virtual void setGroundClampingScale( float scale );
132 
134  virtual void setGroundClamping( bool enabled );
135 
138  virtual void setGroundClampingMode(
140 
142  virtual void setPossibleGroundClampingModes(
144 
146  virtual DtGroundClampingUpdater::GroundClampingMode groundClampingMode();
147 
149  virtual void slot_lifeformsUprightChanged( bool enabled );
151 
154  virtual void setBuoyancyEnabled( bool enabled );
155 
158  virtual void setBuoyancyLod( float lodDistance );
159 
161  virtual void setWaterlineOriginOffset( float offset );
162 
165  virtual void setWaterClampingPossible( bool enabled );
166 
170  virtual void setIsAmphibious( bool amphibious );
171 
173  virtual bool isAmphibious() const;
174 
176  virtual void setDamageState( EntityStateListener::DamageState damageState );
177 
179  virtual bool destroyed() const;
180 
182  virtual DtEntityStateListener& entityStateListener();
183 
186  virtual std::string motionModel() const;
187  virtual void setMotionModel( const std::string& model );
189 
194  virtual bool deadReckonIsThreadSafe() const;
195  virtual void setDeadReckonIsThreadSafe( const bool safe );
197 
199  virtual void processKinematicStateDefinition( const DtVisualizerDefinition* visDef ) override;
200  protected:
201  virtual void slot_parentSet( DtElement* parent );
202  virtual void slot_resetSmoother();
203 
204  virtual void slot_buoyancyDefaultLODDistanceChanged( float distance );
205  virtual void slot_buoyancyMinimumCullDistanceChanged( float distance );
206  virtual void slot_buoyancyCullTypeChanged(
209  virtual void slot_orientationClampingChanged( bool enabled );
210 
212  virtual void createUpdaters() override;
213  virtual void destroyUpdaters() override;
214 
215  virtual void startDeadReckoning();
216  virtual void startEmbarked();
217  virtual void startGroundClamping();
218  virtual void startWaterClamping();
219 
220  virtual void endEmbarked();
221  virtual void endGroundClamping();
222  virtual void endWaterClamping();
223 
224  virtual void buildSurfaceClampingUpdater();
225  virtual void buildGroundClampingUpdater();
226 
227  virtual void connectClampingUpdaters();
228  protected:
230 
231  DtDeadReckonUpdaterAgent* myDeadReckonUpdaterAgent;
232  DtGroundClampingUpdaterAgent* myGroundClampingUpdaterAgent;
233  DtEmbarkationUpdaterAgent* myEmbarkationUpdaterAgent;
234  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
235  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
236  DtTerrainScalingUpdaterAgent* myTerrainScalingUpdaterAgent;
237 
240 
242 
244 
245  bool myDRPos;
246  bool myDRVel;
247  bool myDROri;
250 
252 
265 
268 
269  std::string myMotionModel;
270  };
271 }
DtEntitySettingsRecord::BuoyancyCullType myBuoyancyCullType
Definition: DtEntityKinematicState.h:264
DtEmbarkationUpdaterAgent * myEmbarkationUpdaterAgent
Definition: DtEntityKinematicState.h:233
std::string myMotionModel
Definition: DtEntityKinematicState.h:269
bool myWaterClampingPossible
Definition: DtEntityKinematicState.h:257
bool myDrAlgorithmSet
Definition: DtEntityKinematicState.h:241
bool myDeadReckonIsThreadSafe
Definition: DtEntityKinematicState.h:251
bool myGroundClampingCullingEnabled
Definition: DtEntityKinematicState.h:255
bool myEmbarkedFlag
Definition: DtEntityKinematicState.h:239
bool myDROri
Definition: DtEntityKinematicState.h:247
DtEntityKinematicState Controls kinematic state of a scene object This class has no accessors to kine...
Definition: DtEntityKinematicState.h:34
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
Definition: DtEntityKinematicState.h:235
DamageState
Definition: DtEntityStateListener.h:59
DtTerrainScalingUpdaterAgent * myTerrainScalingUpdaterAgent
Definition: DtEntityKinematicState.h:236
bool myUseDefaultBuoyancyLOD
Definition: DtEntityKinematicState.h:249
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
DtEntityStateListener & myEntityStateListener
Definition: DtEntityKinematicState.h:229
DtUniqueID myEmbarkedParentID
Definition: DtEntityKinematicState.h:238
bool myIsDestroyed
Definition: DtEntityKinematicState.h:243
float myGroundClampingScale
Definition: DtEntityKinematicState.h:259
bool mySmoothingEnabled
Definition: DtEntityKinematicState.h:258
bool myIsAmphibious
Definition: DtEntityKinematicState.h:248
The DtElement class implements the common behavior of simulation based elements added to the scene...
Definition: DtElement.h:41
DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
Definition: DtEntityKinematicState.h:234
DtGroundClampingUpdater::GroundClampingMode myGroundClampingMode
Definition: DtEntityKinematicState.h:266
BuoyancyCullType
Definition: DtEntitySettingsRecord.h:64
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...
Contains makVrv:DtEntityStateListener class.
float myWaterlineOriginOffset
Definition: DtEntityKinematicState.h:261
Base class for Kinematic State Objects e.g. DtEntityKinematicState Controls kinematic state of a scen...
Definition: DtKinematicState.h:30
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtDeadReckonUpdaterAgent * myDeadReckonUpdaterAgent
Definition: DtEntityKinematicState.h:231
Contains makVrv:DtKinematicState class. Used to position objects in the scene.
DtGroundClampingUpdaterAgent * myGroundClampingUpdaterAgent
Definition: DtEntityKinematicState.h:232
bool myBuoyancyEnabled
Definition: DtEntityKinematicState.h:256
Contains makVrv::DtGroundClampingUpdater class.
bool myGroundClampingEnabled
Ground clamping members.
Definition: DtEntityKinematicState.h:254
float mySmoothingPeriod
Definition: DtEntityKinematicState.h:263
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:22
DtGroundClampingUpdater::GroundClampingMode myPossibleGroundClampingModes
Definition: DtEntityKinematicState.h:267
const char int mode
Definition: ioapi.h:38
float myBuoyancyLod
Definition: DtEntityKinematicState.h:260
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
bool myDRPos
Definition: DtEntityKinematicState.h:245
voidpf uLong offset
Definition: ioapi.h:42
Contains the DtEntitySettingsRecord class declaration.
bool myDRVel
Definition: DtEntityKinematicState.h:246
GroundClampingMode
Ground Clamping Modes.
Definition: DtGroundClampingUpdater.h:36
float myBuoyancyMinimumCullDistance
Definition: DtEntityKinematicState.h:262
DtEntityStateListener.
Definition: DtEntityStateListener.h:132

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)