VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtEntity3dFacade.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 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 DtArticulatedModelAgent* articulatedModelAgent();
230 
231  protected:
232 
234  void init();
235 
238  virtual void slot_globalBuoyancyChanged( bool enabled );
239 
240  // Called when the entity display settings default LOD changes and we are
241  // using the default. Unlike setBuyoyancyLODRange, this does NOT disconnect
242  // us from that signal
243  virtual void slot_buoyancyDefaultLODDistanceChanged( double distance );
244 
245  virtual void createWaterClampingUpdater();
246  virtual void destroyWaterClampingUpdater();
247 
248  protected:
252  bool myDistributeFlag; // whether or not to distribute models to remote displays
257 
259  DtSceneObjectAgent* mySceneObjectAgent;
260  DtArticulatedModelAgent* myModelAgent;
261  DtDeadReckonUpdaterAgent* myDeadReckonUpdaterAgent;
262  DtGroundClampingUpdaterAgent* myGroundClampingUpdaterAgent;
263  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
264  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
265  DtTidalStreamWakeModelAgent * myTidalStreamWakeModelAgent;
266  DtTidalStreamWakeUpdaterAgent* myTidalStreamWakeUpdaterAgent;
267 
268  DtWakeModelAgent* myWakeModelAgent;
269  DtWakeUpdaterAgent* myWakeUpdaterAgent;
271 
272  // The connection to the entity display settings default LOD distance is handled
273  // separately, so it can be disconnected if setWaterClampingLod() is called from the API
274  boost::signalslib::connection myBuoyancyLODDistanceChangedConnection;
275  };
276 }

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)