VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtEntity3dFacade.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 #include <vrvCore/vrvCore.h>
12 #include <vrvCore/DtUniqueID.h>
15 #include <matrix/vlVector.h>
16 #include <string>
17 
18 class DtTaitBryan;
19 
20 namespace makVrv
21 {
22  class DtAgentManagerInterface;
23  class DtArticulatedModelAgent;
24  class DtDeadReckonUpdaterAgent;
25  class DtGroundClampingUpdaterAgent;
26  class DtWaterClampingUpdaterAgent;
27  class DtWakeModelAgent;
28  class DtWakeUpdaterAgent;
29  class DtTidalStreamWakeModelAgent;
30  class DtTidalStreamWakeUpdaterAgent;
31  class DtSurfaceClampingUpdaterAgent;
32  class DtSceneObjectAgent;
33  class DtSharedSettingsManager;
34  enum class DtModelSetId;
35 
40  {
41  public:
42 
44  DtEntity3dFacade( DtAgentManagerInterface& sceneInterface,
45  DtSharedSettingsManager& settingsMgr, DtElementID id,
46  bool distribute = false );
47 
48 
50  DtEntity3dFacade( DtAgentManagerInterface& sceneInterface,
51  DtSharedSettingsManager& settingsMgr, DtElementID id, DtModelSetId modelset,
52  bool distribute = false );
53 
55  virtual ~DtEntity3dFacade();
56 
60 
61 
63  virtual void setUpdateTypes(bool deadReckon=true, bool groundClamp=true);
64 
66  virtual void setVisible(bool visible);
67 
69  virtual bool visible() const;
70 
72  virtual DtElementID elementId() const;
73 
75  virtual DtModelSetId modelSet() const;
76 
78  DtSceneObjectAgent& sceneObjectAgent();
79 
81 
84 
85 
89  virtual void setPosition(const DtVector& position);
90 
96  virtual DtVector position() const;
97 
101  virtual void setVelocity(const DtVector32& velocity);
102 
107  virtual DtVector32 velocity() const;
108 
110  virtual void setAcceleration(const DtVector32& acceleration);
111 
116  virtual DtVector32 acceleration() const;
117 
119  virtual void setOrientation(const DtTaitBryan& orientation);
120 
122  virtual DtTaitBryan orientation() const;
123 
125  virtual void setAngularVelocity(const DtVector32& angularVelocity);
126 
128  virtual DtVector32 angularVelocity() const;
129 
131 
135 
136 
139  virtual void setDeadReckoningEnabled(bool position, bool velocity,
140  bool orientation);
141 
143  virtual void setSmoothingEnabled(bool enabled);
144 
146  virtual void setSmoothingPeriod(float period);
147 
150  virtual void setGroundClampingMode(
152 
157  virtual void SetGroundClampingCullCylinderRadiusScale(float scale);
158 
160  virtual void setWaterClamping(bool isWaterClamping);
161 
163  virtual void setWaterClampingLod(double lodRange);
164 
167  virtual void setWaterlineOriginOffset( float offset );
168 
170  virtual void addWake();
171 
172  virtual void setWakeLODDistance( double distance );
173 
175  virtual DtWakeModelAgent* wake();
176 
179  virtual void addTidalStreamWake();
180 
183  virtual void addTidalStreamWake( double wakeLength,
184  double draft, double maxWaveAmplitude);
185 
188  virtual void addTidalStreamWake( const std::string& modelDefinitionName );
189 
191  virtual void removeTidalStreamWake();
192 
195  virtual void setTidalStreamWakeLod( double distance );
196 
201  virtual void setTidalStreamWakeCurrent( double speed,
202  double direction );
204 
208 
209 
211  virtual void setArticulatedModelDefinition(const std::string& modelName);
212 
214  virtual const std::string& articulatedModelDefinition() const;
215 
217  virtual void setModelScalingEnabled(bool enabled);
218 
220  virtual void setPartOrientation(int partNumber,
221  const DtTaitBryan& orientation,const DtVector& angularVelocity);
222 
224  virtual void setPartTranslation(int partNumber,
225  const DtVector& translation,const DtVector& velocity);
226 
228  virtual void setPartVisibility(int partNumber, bool onOff);
229 
231  virtual void setSwitchState( int switchToSet, int value );
232 
234  virtual void setLightpointMaxDistance( float distance );
235 
236 
238  virtual DtArticulatedModelAgent* articulatedModelAgent();
240 
241  protected:
242 
244  void init();
245 
248  virtual void slot_globalBuoyancyChanged( bool enabled );
249 
250  // Called when the entity display settings default LOD changes and we are
251  // using the default. Unlike setBuyoyancyLODRange, this does NOT disconnect
252  // us from that signal
253  virtual void slot_buoyancyDefaultLODDistanceChanged( double distance );
254 
255  virtual void createWaterClampingUpdater();
256  virtual void destroyWaterClampingUpdater();
257 
258  protected:
262  bool myDistributeFlag; // whether or not to distribute models to remote displays
267 
269  DtSceneObjectAgent* mySceneObjectAgent;
270  DtArticulatedModelAgent* myModelAgent;
271  DtDeadReckonUpdaterAgent* myDeadReckonUpdaterAgent;
272  DtGroundClampingUpdaterAgent* myGroundClampingUpdaterAgent;
273  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
274  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
275  DtTidalStreamWakeModelAgent * myTidalStreamWakeModelAgent;
276  DtTidalStreamWakeUpdaterAgent* myTidalStreamWakeUpdaterAgent;
277 
278  DtWakeModelAgent* myWakeModelAgent;
279  DtWakeUpdaterAgent* myWakeUpdaterAgent;
281 
282  // The connection to the entity display settings default LOD distance is handled
283  // separately, so it can be disconnected if setWaterClampingLod() is called from the API
284  boost::signalslib::connection myBuoyancyLODDistanceChangedConnection;
285  };
286 }
bool myIsWaterClamping
Definition: DtEntity3dFacade.h:264
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
Definition: DtEntity3dFacade.h:274
std::string myModelDefinitionName
Definition: DtEntity3dFacade.h:266
bool myDistributeFlag
Definition: DtEntity3dFacade.h:262
DtTidalStreamWakeUpdaterAgent * myTidalStreamWakeUpdaterAgent
Definition: DtEntity3dFacade.h:276
DtGroundClampingUpdaterAgent * myGroundClampingUpdaterAgent
Definition: DtEntity3dFacade.h:272
DtArticulatedModelAgent * myModelAgent
Definition: DtEntity3dFacade.h:270
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
double myWaterClampingLod
Definition: DtEntity3dFacade.h:265
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
float myWaterlineOffset
Definition: DtEntity3dFacade.h:263
DtModelSetId myModelSet
Definition: DtEntity3dFacade.h:268
DtSceneObjectAgent * mySceneObjectAgent
Definition: DtEntity3dFacade.h:269
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...
DtWakeModelAgent * myWakeModelAgent
Definition: DtEntity3dFacade.h:278
boost::signalslib::connection myBuoyancyLODDistanceChangedConnection
Definition: DtEntity3dFacade.h:284
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtSignalConnectionManager myConnections
Definition: DtEntity3dFacade.h:280
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The DtEntity3dFacade is a facade around agents that make up an entity in the 3D model set...
Definition: DtEntity3dFacade.h:39
DtDeadReckonUpdaterAgent * myDeadReckonUpdaterAgent
Definition: DtEntity3dFacade.h:271
Contains makVrv::DtGroundClampingUpdater class.
Base class to provide boost signal/slot management.
const char int mode
Definition: ioapi.h:38
DtSharedSettingsManager & mySharedSettingsManager
Definition: DtEntity3dFacade.h:259
Contains makVrv::DtUniqueID type.
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
Definition: DtEntity3dFacade.h:273
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
DtModelSetId
Definition: DtModelSetEnums.h:19
voidpf uLong offset
Definition: ioapi.h:42
DtWakeUpdaterAgent * myWakeUpdaterAgent
Definition: DtEntity3dFacade.h:279
DtAgentManagerInterface & mySceneInterface
Definition: DtEntity3dFacade.h:261
DtElementID myElementId
Definition: DtEntity3dFacade.h:260
DtTidalStreamWakeModelAgent * myTidalStreamWakeModelAgent
Definition: DtEntity3dFacade.h:275
GroundClampingMode
Ground Clamping Modes.
Definition: DtGroundClampingUpdater.h:36
Contains DLL export macros.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)