VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtCigiWaterCraftEntity.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 
12 #include <vrvCigi/vrvCigi.h>
13 
14 #include <vrvCigi/DtCigiEntity.h>
15 
17 #include <vrvUtil/signalslib.h>
18 
19 #include <boost/signals/connection.hpp>
20 
21 
23 
24 #include <matrix/geodeticCoord.h>
25 #include <matrix/vlTaitBryan.h>
26 
27 namespace makVrv
28 {
29  class DtSurfaceClampingUpdaterAgent;
30  class DtWaterClampingUpdaterAgent;
31  class DtCigiWakeEntity;
32 
37  {
38  public:
41  DtAgentManagerInterface& sceneInterface, int entityId, int entityType);
42 
44  virtual ~DtCigiWatercraftEntity();
45 
48  virtual void init();
49 
52  virtual void uninit();
53 
56  virtual void restart();
57 
61  virtual void setPosition(const DtGeodeticCoord& pos, bool force=false);
62 
66  virtual void setOrientation(const DtTaitBryan& orientation, bool force=false);
67 
68  // Override to determine moving state when attached to a wake
69  virtual void setLinearRate(const DtVector& rate, bool useWorldCoordinates, bool force=false);
70 
72  virtual void setWakeEntity( DtCigiWakeEntity* wakeEntity );
73 
75  virtual void startSinking();
76 
78  virtual void stopSinking();
79 
81  virtual bool isSinking() const;
82 
85  virtual void setWaterlineOriginOffset( float offset );
86 
88 
89 
90 
91 
92 
93  virtual void setIsAmphibious( bool isAmphibious );
94  virtual bool isAmphibious() const;
96 
97  virtual void setBuoyancyEnabled( bool enable );
98 
105  virtual void setBuoyancyLODDistance( double distance );
106 
107  protected:
108 
110  virtual void startDeadReckoning();
111 
113  virtual void endDeadReckoning();
114 
116  virtual void startBuoyancy();
117 
119  virtual void endBuoyancy();
120 
121  // Called when the entity display settings default LOD changes and we are
122  // using the default. Unlike setBuoyancyLODDistance, this does NOT disconnect
123  // us from that signal
124  virtual void slot_buoyancyDefaultLODDistanceChanged( float distance );
125 
129  virtual void slot_buoyancyMinimumCullDistanceChanged( float distance );
130 
134  virtual void slot_buoyancyCullTypeChanged(
136 
137  protected:
138  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
139  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
144 
145  // The connection to the entity display settings default LOD distance is handled
146  // separately, so it can be disconnected if setBuoyancyLODDistance() is called from the API
147  boost::signalslib::connection myBuoyancyLODDistanceChangedConnection;
148 
155 
156  // True if setWaterlineOriginOffset has been called (only restore on restart if this is true)
158 
159  // True if set BuoyancyLODDistance has been called
161  };
162 
167 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)