VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtEntityWakeVisualizer.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
13 
14 namespace makVrv
15 {
16  class DtWakeModelAgent;
17  class DtWakeUpdaterAgent;
18 
22  {
23  public:
26  DtStateListener& listener, int modelSet);
27 
30  DtSceneObjectAgent* sceneObject, int modelSet );
31 
33  virtual ~DtEntityWakeVisualizer();
34 
36  DtEntityWakeVisualizer() = delete;
37 
40 
42  DtEntityWakeVisualizer& operator=( const DtEntityWakeVisualizer& ) = delete;
43 
44  public:
45 
47  virtual void initialize() override;
48 
52  virtual void setWakeEnabled(bool enabled);
53 
55  virtual void setSprayEnabled(bool enabled);
56 
58  virtual void setSternWaveEnabled(bool enabled);
59 
62  virtual void setWakeOffset(double offset);
63 
66  virtual void setBowSprayOffset(double offset);
67 
69  virtual void setBowWaveOffset(double offset);
70 
72  virtual void setSternWaveOffset(double offset);
73 
75  virtual void setShipLength(double length);
76 
78  virtual void setBeamWidth(double width);
79 
81  virtual void setPropWashEnabled(bool b);
82 
85  virtual void setPropWashOffset(double offset);
86 
89  virtual void setPropWashFadeTime(double fadeTime);
90 
93  virtual void setDraft(double draft);
94 
97  virtual void setLODDistance(double distance);
98 
100  virtual void setSprayVelocityScale(double scale);
101 
103  virtual void setBowWaveScale(double scale);
104 
106  virtual void setMaxBowWaveAmplitude(double amplitude);
107 
109  virtual void setBowSize(double size);
110 
112  virtual void setSpraySizeScale(double scale);
113 
116  virtual void setNumHullSprays(int numSprays);
117 
119  virtual void setHullSpraySizeScale(double scale);
120 
122  virtual void setHullSprayStart(double offset);
123 
125  virtual void setHullSprayEnd(double offset);
126 
129  virtual void setHullSprayVelocityScale(double scale);
130 
132  virtual void setHullSprayVerticalOffset(double offset);
133 
134  virtual void setDamageState(EntityStateListener::DamageState damageState);
135 
137  virtual const DtStateVisualizer::TypeInfo& typeInfo() const;
138 
140  virtual void setIsFrozen(bool frozen);
141 
143  static const DtStateVisualizer::TypeInfo& theTypeInfo();
144 
145  protected:
146 
151  virtual void slot_oceanWakesEnabledChanged(bool enabled);
152 
155  virtual void slot_hullSprayEffectsChanged(bool enabled);
156 
157  virtual bool active() const;
158 
160  virtual void createModelAgents();
161 
163  virtual void destroyModelAgents();
164 
166  virtual void setModelDefinitionForAgents();
167 
170  virtual void connectToListenerSignals() override;
171 
174  virtual void setInitialValuesFromVisualizerDefinition() override;
175 
177  virtual void setEmbarkedOn(const std::string&);
178 
181  virtual bool visible() const;
182 
189  virtual void updateWakeEffects();
190 
195  virtual bool areWakeEffectsEnabled() const;
196 
202  virtual void updateSprayEffects();
203 
207  virtual bool areSprayEffectsEnabled() const;
208 
211  virtual void slot_wakeDefaultLODDistanceChanged(double distance);
212 
213  protected:
214  DtWakeModelAgent* myWakeModel;
215  DtWakeUpdaterAgent* myWakeUpdater;
216  bool myDestroyed;
219 
222  double myWakeOffset;
230  double myShipLength;
231  double myBeamWidth;
237  double myDraft;
243  double myBowSize;
254 
257 
259 
260  // The connection to the entity display settings default LOD distance is handled
261  // separately, so it can be disconnected if setLODDistance() is called from the API
262  boost::signalslib::connection myWakeLODDistanceChangedConnection;
263 
264  };
265 
266 
271 }
272 
bool myWakeOffsetSet
Definition: DtEntityWakeVisualizer.h:223
double mySternWaveOffset
Definition: DtEntityWakeVisualizer.h:228
Base class for entity state visualizers (using the DtModelVisualizer schema)
Definition: DtEntityStateVisualizer.h:23
double myPropWashFadeTime
Definition: DtEntityWakeVisualizer.h:235
DtWakeModelAgent * myWakeModel
Definition: DtEntityWakeVisualizer.h:214
bool mySprayEnabled
Definition: DtEntityWakeVisualizer.h:220
DamageState
Definition: DtEntityStateListener.h:59
double mySprayVelocityScale
Definition: DtEntityWakeVisualizer.h:239
double myHullSprayVelocityScale
Definition: DtEntityWakeVisualizer.h:252
bool myEmbarked
Definition: DtEntityWakeVisualizer.h:217
bool mySprayEffectsEnabledGlobalFlag
Definition: DtEntityWakeVisualizer.h:256
voidpf void uLong size
Definition: ioapi.h:39
Definition: DtStateVisualizer.h:305
double myBowWaveOffset
Definition: DtEntityWakeVisualizer.h:226
bool myPropWashOffsetSet
Definition: DtEntityWakeVisualizer.h:234
bool myPropWashFadeTimeSet
Definition: DtEntityWakeVisualizer.h:236
double myBeamWidth
Definition: DtEntityWakeVisualizer.h:231
double myWakeOffset
Definition: DtEntityWakeVisualizer.h:222
bool myHullSprayVerticalOffsetSet
Definition: DtEntityWakeVisualizer.h:251
double myBowSprayOffset
Definition: DtEntityWakeVisualizer.h:224
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:38
bool myOceanWakesEnabledGlobalFlag
Definition: DtEntityWakeVisualizer.h:255
bool myBowSprayOffsetSet
Definition: DtEntityWakeVisualizer.h:225
bool myHullSprayEndSet
Definition: DtEntityWakeVisualizer.h:249
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
Contains makVrv:DtEntityStateListener class.
double myShipLength
Definition: DtEntityWakeVisualizer.h:230
double myPropWashOffset
Definition: DtEntityWakeVisualizer.h:233
bool myMaxBowWaveAmplitudeSet
Definition: DtEntityWakeVisualizer.h:242
bool mySternWaveOffsetSet
Definition: DtEntityWakeVisualizer.h:229
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
double myHullSprayVerticalOffset
Definition: DtEntityWakeVisualizer.h:250
bool myHullSprayStartSet
Definition: DtEntityWakeVisualizer.h:247
bool myPropWashEnabled
Definition: DtEntityWakeVisualizer.h:232
bool myBowWaveOffsetSet
Definition: DtEntityWakeVisualizer.h:227
double myHullSprayEnd
Definition: DtEntityWakeVisualizer.h:248
DtStateVisualizerCreatorTemplate< DtEntityWakeVisualizer > DtEntityWakeVisualizerCreator
Creator that will be registered with the state visualizer factory to create this class.
Definition: DtEntityWakeVisualizer.h:270
bool myEffectEnabled
Definition: DtEntityWakeVisualizer.h:218
bool myIsAmphibious
Definition: DtEntityWakeVisualizer.h:258
boost::signalslib::connection myWakeLODDistanceChangedConnection
Definition: DtEntityWakeVisualizer.h:262
double myHullSprayStart
Definition: DtEntityWakeVisualizer.h:246
double myBowSize
Definition: DtEntityWakeVisualizer.h:243
double myMaxBowWaveAmplitude
Definition: DtEntityWakeVisualizer.h:241
Contains makVrv:DtEntityStateVisualizer class. Base class for other state visualizers such as articul...
double myHullSpraySizeScale
Definition: DtEntityWakeVisualizer.h:253
voidpf uLong offset
Definition: ioapi.h:42
double mySpraySizeScale
Definition: DtEntityWakeVisualizer.h:244
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:25
bool myDestroyed
Definition: DtEntityWakeVisualizer.h:216
double myDraft
Definition: DtEntityWakeVisualizer.h:237
Struct to hold metadata about each functional visualizer type This allows users of the factory to get...
Definition: DtStateVisualizer.h:56
double myBowWaveScale
Definition: DtEntityWakeVisualizer.h:240
Visualizer for kelvin wakes.
Definition: DtEntityWakeVisualizer.h:21
double myLODDistance
Definition: DtEntityWakeVisualizer.h:238
bool mySternWaveEnabled
Definition: DtEntityWakeVisualizer.h:221
int myNumHullSprays
Definition: DtEntityWakeVisualizer.h:245
DtWakeUpdaterAgent * myWakeUpdater
Definition: DtEntityWakeVisualizer.h:215

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)