VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCigiWakeEntity.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 
15 
17 #include <vrvUtil/signalslib.h>
18 
19 #include <boost/signals/connection.hpp>
20 
21 
22 #include <matrix/geodeticCoord.h>
23 #include <matrix/vlTaitBryan.h>
24 
25 namespace makVrv
26 {
27  class DtWakeModelAgent;
28  class DtWakeUpdaterAgent;
29  class DtSceneObjectAgent;
30 
34  {
35  public:
36 
37  friend class DtCigiWatercraftEntity;
38 
41  DtAgentManagerInterface& sceneInterface, int entityId, int entityType);
42 
44  virtual ~DtCigiWakeEntity();
45 
47  virtual void uninit();
48 
52  virtual void setPosition(const DtGeodeticCoord& pos, bool force=false);
53 
55  virtual void setRelativePosition(const DtVector& pos);
56 
60  virtual void setOrientation(const DtTaitBryan& orient, bool force=false);
61 
64  virtual void setRelativeOrientation(const DtTaitBryan& orient);
65 
67  virtual void setRelativeTo(DtCigiBaseEntity* parent);
68 
69  // Override to determine moving state when not attached to a parent ship
70  virtual void setLinearRate(const DtVector& rate, bool useWorldCoordinates, bool force=false);
71 
73  virtual void setSprayEnabled(bool enabled);
74 
77  virtual void setWakeOffset(double offset);
78 
81  virtual void setBowSprayOffset(double offset);
82 
84  virtual void setBowWaveOffset(double offset);
85 
87  virtual void setSternWaveOffset(double offset);
88 
90  virtual void setShipLength(double length);
91 
93  virtual void setBeamWidth(double width);
94 
96  virtual void setPropWashEnabled(bool b);
97 
100  virtual void setPropWashOffset(double offset);
101 
104  virtual void setPropWashFadeTime(double fadeTime);
105 
108  virtual void setDraft(double draft);
109 
116  virtual void setLODDistance(double distance);
117 
119  virtual void setSprayVelocityScale(double scale);
120 
122  virtual void setBowWaveScale(double scale);
123 
125  virtual void setMaxBowWaveAmplitude(double amplitude);
126 
128  virtual void setBowSize(double size);
129 
131  virtual void setSpraySizeScale(double scale);
132 
135  virtual void setNumHullSprays(int numSprays);
136 
138  virtual void setHullSpraySizeScale(double scale);
139 
141  virtual void setHullSprayStart(double offset);
142 
144  virtual void setHullSprayEnd(double offset);
145 
148  virtual void setHullSprayVelocityScale(double scale);
149 
151  virtual void setHullSprayVerticalOffset(double offset);
152 
153  virtual void setVisible( bool isVisible );
154 
156  virtual void setIsSinking( bool sinking );
157 
158  protected:
159  virtual void addToParent( DtSceneObjectAgent* parent);
160  virtual void removeFromParent( DtSceneObjectAgent* parent);
161 
162  virtual void createModelAgents();
163  virtual void destroyModelAgents();
164 
165  // Called when the entity display settings default LOD changes and we are
166  // using the default. Unlike setLODDistance, this does NOT disconnect
167  // us from that signal
168  virtual void slot_wakeDefaultLODDistanceChanged( double distance );
169 
170  virtual void slot_wakesEnabledChanged( bool enabled );
171 
172  protected:
173  DtWakeModelAgent* myWakeModelAgent;
174  DtWakeUpdaterAgent* myWakeUpdaterAgent;
175 
177 
178  // The connection to the entity display settings default LOD distance is handled
179  // separately, so it can be disconnected if setLODDistance() is called from the API
180  boost::signalslib::connection myWakeLODDistanceChangedConnection;
181 
184  };
185 
189 }

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)