VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 startEmbarked();
76 
78  virtual void endEmbarked();
79 
81  virtual void startSinking();
82 
84  virtual void stopSinking();
85 
87  virtual bool isSinking() const;
88 
91  virtual void setWaterlineOriginOffset( float offset );
92 
94 
95 
96 
97 
98 
99  virtual void setIsAmphibious( bool isAmphibious );
100  virtual bool isAmphibious() const;
102 
103  virtual void setBuoyancyEnabled( bool enable );
104 
111  virtual void setBuoyancyLODDistance( double distance );
112 
113  protected:
114 
116  virtual void startDeadReckoning();
117 
119  virtual void endDeadReckoning();
120 
122  virtual void startBuoyancy();
123 
125  virtual void endBuoyancy();
126 
127  // Called when the entity display settings default LOD changes and we are
128  // using the default. Unlike setBuoyancyLODDistance, this does NOT disconnect
129  // us from that signal
130  virtual void slot_buoyancyDefaultLODDistanceChanged( float distance );
131 
135  virtual void slot_buoyancyMinimumCullDistanceChanged( float distance );
136 
140  virtual void slot_buoyancyCullTypeChanged(
142 
143  protected:
144  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
145  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
150 
151  // The connection to the entity display settings default LOD distance is handled
152  // separately, so it can be disconnected if setBuoyancyLODDistance() is called from the API
153  boost::signalslib::connection myBuoyancyLODDistanceChangedConnection;
154 
161 
162  // True if setWaterlineOriginOffset has been called (only restore on restart if this is true)
164 
165  // True if set BuoyancyLODDistance has been called
167  };
168 
173 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)