VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtCigiWakeEntity.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2015 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 
49  virtual void setPosition(const DtGeodeticCoord& pos, bool force=false);
50 
52  virtual void setRelativePosition(const DtVector& pos);
53 
57  virtual void setOrientation(const DtTaitBryan& orient, bool force=false);
58 
61  virtual void setRelativeOrientation(const DtTaitBryan& orient);
62 
64  virtual void setRelativeTo(DtCigiBaseEntity* parent);
65 
66  // Override to determine moving state when not attached to a parent ship
67  virtual void setLinearRate(const DtVector& rate, bool useWorldCoordinates, bool force=false);
68 
70  virtual void setSprayEnabled(bool enabled);
71 
74  virtual void setWakeOffset(double offset);
75 
78  virtual void setBowSprayOffset(double offset);
79 
81  virtual void setBowWaveOffset(double offset);
82 
84  virtual void setSternWaveOffset(double offset);
85 
87  virtual void setShipLength(double length);
88 
90  virtual void setBeamWidth(double width);
91 
93  virtual void setPropWashEnabled(bool b);
94 
97  virtual void setPropWashOffset(double offset);
98 
101  virtual void setPropWashFadeTime(double fadeTime);
102 
105  virtual void setDraft(double draft);
106 
113  virtual void setLODDistance(double distance);
114 
116  virtual void setSprayVelocityScale(double scale);
117 
119  virtual void setBowWaveScale(double scale);
120 
122  virtual void setMaxBowWaveAmplitude(double amplitude);
123 
125  virtual void setBowSize(double size);
126 
128  virtual void setSpraySizeScale(double scale);
129 
132  virtual void setNumHullSprays(int numSprays);
133 
135  virtual void setHullSpraySizeScale(double scale);
136 
138  virtual void setHullSprayStart(double offset);
139 
141  virtual void setHullSprayEnd(double offset);
142 
145  virtual void setHullSprayVelocityScale(double scale);
146 
148  virtual void setHullSprayVerticalOffset(double offset);
149 
150  virtual void setVisible( bool isVisible );
151 
153  virtual void setIsSinking( bool sinking );
154 
155  protected:
156  virtual void addToParent( DtSceneObjectAgent* parent);
157  virtual void removeFromParent( DtSceneObjectAgent* parent);
158 
159  virtual void createModelAgents();
160  virtual void destroyModelAgents();
161 
162  // Called when the entity display settings default LOD changes and we are
163  // using the default. Unlike setLODDistance, this does NOT disconnect
164  // us from that signal
165  virtual void slot_wakeDefaultLODDistanceChanged( double distance );
166 
167  virtual void slot_wakesEnabledChanged( bool enabled );
168 
169  protected:
170  DtWakeModelAgent* myWakeModelAgent;
171  DtWakeUpdaterAgent* myWakeUpdaterAgent;
172  DtSceneObjectAgent* myParentSceneObjectAgent;
173 
175 
176  // The connection to the entity display settings default LOD distance is handled
177  // separately, so it can be disconnected if setLODDistance() is called from the API
178  boost::signalslib::connection myWakeLODDistanceChangedConnection;
179 
180  std::string myEntityModel;
183  };
184 
188 }

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)