VR-Forces 4.10 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 }
bool myIsSinking
Definition: DtCigiWakeEntity.h:182
DtCigiObjectCreatorTemplate< DtCigiWakeEntity > DtCigiWakeEntityCreator
Creator that will be registered with the CIGI object factory to create this class.
Definition: DtCigiWakeEntity.h:188
double myWakeLODRange
Definition: DtCigiWakeEntity.h:183
voidpf void uLong size
Definition: ioapi.h:39
Contains DLL export macros.
A DtCigiWatercraftEntity is a CIGI entity that manages buoyancy and the the parenting of wake entitie...
Definition: DtCigiWaterCraftEntity.h:36
A DtCigiWakeEntity is a CIGI entity that loads an wake model.
Definition: DtCigiWakeEntity.h:33
boost::signalslib::connection myWakeLODDistanceChangedConnection
Definition: DtCigiWakeEntity.h:180
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtCigiBaseEntity class declaration.
This class is responsible for the actual processing of CIGI data.
Definition: DtCigiConnection.h:57
Base class to provide boost signal/slot management.
DtWakeModelAgent * myWakeModelAgent
Definition: DtCigiWakeEntity.h:173
This class provides an abstract base class for CIGI entities.
Definition: DtCigiBaseEntity.h:42
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
DtSignalConnectionManager myConnections
Definition: DtCigiWakeEntity.h:176
DtWakeUpdaterAgent * myWakeUpdaterAgent
Definition: DtCigiWakeEntity.h:174
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
voidpf uLong offset
Definition: ioapi.h:42
Definition: DtCigiBaseEntity.h:434

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)