VR-Forces Development_Version 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) 2016 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 
36  {
37  public:
40  DtAgentManagerInterface& sceneInterface, int entityId, int entityType);
41 
43  virtual ~DtCigiWatercraftEntity();
44 
48  virtual void setPosition(const DtGeodeticCoord& pos, bool force=false);
49 
53  virtual void setOrientation(const DtTaitBryan& orientation, bool force=false);
54 
55  // Override to determine moving state when attached to a wake
56  virtual void setLinearRate(const DtVector& rate, bool useWorldCoordinates, bool force=false);
57 
59  virtual void setWakeEntity( DtCigiWakeEntity* wakeEntity );
60 
62  virtual void startSinking();
63 
65  virtual void stopSinking();
66 
68  virtual bool isSinking() const;
69 
72  virtual void setWaterlineOriginOffset( float offset );
73 
79  virtual void setIsAmphibious( bool isAmphibious );
80  virtual bool isAmphibious() const;
81 
82  virtual void setBuoyancyEnabled( bool enable );
83 
90  virtual void setBuoyancyLODDistance( double distance );
91 
92  protected:
93 
95  virtual void startDeadReckoning();
96 
98  virtual void endDeadReckoning();
99 
101  virtual void startBuoyancy();
102 
104  virtual void endBuoyancy();
105 
106  // Called when the entity display settings default LOD changes and we are
107  // using the default. Unlike setBuyoyancyLODRange, this does NOT disconnect
108  // us from that signal
109  virtual void slot_buoyancyDefaultLODDistanceChanged( float distance );
110 
111  virtual void slot_buoyancyMinimumCullDistanceChanged( float distance );
112  virtual void slot_buoyancyCullTypeChanged(
114 
115 
116  protected:
117  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
118  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
123 
124  // The connection to the entity display settings default LOD distance is handled
125  // separately, so it can be disconnected if setBuoyancyLODDistance() is called from the API
126  boost::signalslib::connection myBuoyancyLODDistanceChangedConnection;
127 
133  };
134 
139 }

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)