VR-Forces 4.10 Class Documentation
 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) 2017 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 
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, int 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 int 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 
154  virtual void setWaterClamping(bool isWaterClamping);
155 
157  virtual void setWaterClampingLod(double lodRange);
158 
161  virtual void setWaterlineOriginOffset( float offset );
162 
164  virtual void addWake();
165 
166  virtual void setWakeLODDistance( double distance );
167 
169  virtual DtWakeModelAgent* wake();
170 
173  virtual void addTidalStreamWake();
174 
177  virtual void addTidalStreamWake( double wakeLength,
178  double draft, double maxWaveAmplitude);
179 
182  virtual void addTidalStreamWake( const std::string& modelDefinitionName );
183 
185  virtual void removeTidalStreamWake();
186 
189  virtual void setTidalStreamWakeLod( double distance );
190 
195  virtual void setTidalStreamWakeCurrent( double speed,
196  double direction );
198 
202 
203 
205  virtual void setArticulatedModelDefinition(const std::string& modelName);
206 
208  virtual const std::string& articulatedModelDefinition() const;
209 
211  virtual void setModelScalingEnabled(bool enabled);
212 
214  virtual void setPartOrientation(int partNumber,
215  const DtTaitBryan& orientation,const DtVector& angularVelocity);
216 
218  virtual void setPartTranslation(int partNumber,
219  const DtVector& translation,const DtVector& velocity);
220 
222  virtual void setPartVisibility(int partNumber, bool onOff);
223 
225  virtual void setSwitchState( int switchToSet, int value );
226 
228  virtual void setLightpointMaxDistance( float distance );
229 
230 
232  virtual DtArticulatedModelAgent* articulatedModelAgent();
234 
235  protected:
236 
238  void init();
239 
242  virtual void slot_globalBuoyancyChanged( bool enabled );
243 
244  // Called when the entity display settings default LOD changes and we are
245  // using the default. Unlike setBuyoyancyLODRange, this does NOT disconnect
246  // us from that signal
247  virtual void slot_buoyancyDefaultLODDistanceChanged( double distance );
248 
249  virtual void createWaterClampingUpdater();
250  virtual void destroyWaterClampingUpdater();
251 
252  protected:
256  bool myDistributeFlag; // whether or not to distribute models to remote displays
261 
263  DtSceneObjectAgent* mySceneObjectAgent;
264  DtArticulatedModelAgent* myModelAgent;
265  DtDeadReckonUpdaterAgent* myDeadReckonUpdaterAgent;
266  DtGroundClampingUpdaterAgent* myGroundClampingUpdaterAgent;
267  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
268  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
269  DtTidalStreamWakeModelAgent * myTidalStreamWakeModelAgent;
270  DtTidalStreamWakeUpdaterAgent* myTidalStreamWakeUpdaterAgent;
271 
272  DtWakeModelAgent* myWakeModelAgent;
273  DtWakeUpdaterAgent* myWakeUpdaterAgent;
275 
276  // The connection to the entity display settings default LOD distance is handled
277  // separately, so it can be disconnected if setWaterClampingLod() is called from the API
278  boost::signalslib::connection myBuoyancyLODDistanceChangedConnection;
279  };
280 }
bool myIsWaterClamping
Definition: DtEntity3dFacade.h:258
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
Definition: DtEntity3dFacade.h:268
std::string myModelDefinitionName
Definition: DtEntity3dFacade.h:260
bool myDistributeFlag
Definition: DtEntity3dFacade.h:256
DtTidalStreamWakeUpdaterAgent * myTidalStreamWakeUpdaterAgent
Definition: DtEntity3dFacade.h:270
DtGroundClampingUpdaterAgent * myGroundClampingUpdaterAgent
Definition: DtEntity3dFacade.h:266
DtArticulatedModelAgent * myModelAgent
Definition: DtEntity3dFacade.h:264
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
double myWaterClampingLod
Definition: DtEntity3dFacade.h:259
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:257
DtSceneObjectAgent * mySceneObjectAgent
Definition: DtEntity3dFacade.h:263
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
DtWakeModelAgent * myWakeModelAgent
Definition: DtEntity3dFacade.h:272
boost::signalslib::connection myBuoyancyLODDistanceChangedConnection
Definition: DtEntity3dFacade.h:278
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtSignalConnectionManager myConnections
Definition: DtEntity3dFacade.h:274
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:265
Contains makVrv::DtGroundClampingUpdater class.
int myModelSet
Definition: DtEntity3dFacade.h:262
Base class to provide boost signal/slot management.
const char int mode
Definition: ioapi.h:38
DtSharedSettingsManager & mySharedSettingsManager
Definition: DtEntity3dFacade.h:253
Contains makVrv::DtUniqueID type.
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
Definition: DtEntity3dFacade.h:267
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
voidpf uLong offset
Definition: ioapi.h:42
DtWakeUpdaterAgent * myWakeUpdaterAgent
Definition: DtEntity3dFacade.h:273
DtAgentManagerInterface & mySceneInterface
Definition: DtEntity3dFacade.h:255
DtElementID myElementId
Definition: DtEntity3dFacade.h:254
DtTidalStreamWakeModelAgent * myTidalStreamWakeModelAgent
Definition: DtEntity3dFacade.h:269
GroundClampingMode
Ground Clamping Modes.
Definition: DtGroundClampingUpdater.h:31
Contains DLL export macros.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)