VR-Forces 4.10 Class Documentation
 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 
29  virtual ~DtEntityWakeVisualizer();
30 
32  DtEntityWakeVisualizer() = delete;
33 
36 
38  DtEntityWakeVisualizer& operator=( const DtEntityWakeVisualizer& ) = delete;
39 
40  public:
41 
45  virtual void setWakeEnabled(bool enabled);
46 
48  virtual void setSprayEnabled(bool enabled);
49 
51  virtual void setSternWaveEnabled(bool enabled);
52 
55  virtual void setWakeOffset(double offset);
56 
59  virtual void setBowSprayOffset(double offset);
60 
62  virtual void setBowWaveOffset(double offset);
63 
65  virtual void setSternWaveOffset(double offset);
66 
68  virtual void setShipLength(double length);
69 
71  virtual void setBeamWidth(double width);
72 
74  virtual void setPropWashEnabled(bool b);
75 
78  virtual void setPropWashOffset(double offset);
79 
82  virtual void setPropWashFadeTime(double fadeTime);
83 
86  virtual void setDraft(double draft);
87 
90  virtual void setLODDistance(double distance);
91 
93  virtual void setSprayVelocityScale(double scale);
94 
96  virtual void setBowWaveScale(double scale);
97 
99  virtual void setMaxBowWaveAmplitude(double amplitude);
100 
102  virtual void setBowSize(double size);
103 
105  virtual void setSpraySizeScale(double scale);
106 
109  virtual void setNumHullSprays(int numSprays);
110 
112  virtual void setHullSpraySizeScale(double scale);
113 
115  virtual void setHullSprayStart(double offset);
116 
118  virtual void setHullSprayEnd(double offset);
119 
122  virtual void setHullSprayVelocityScale(double scale);
123 
125  virtual void setHullSprayVerticalOffset(double offset);
126 
127  virtual void setDamageState(DtEntityStateListener::DamageState damageState);
128 
130  virtual const DtStateVisualizer::TypeInfo& typeInfo() const;
131 
135  virtual void setParent( DtStateVisualizer* parent );
136 
138  virtual void setIsFrozen(bool frozen);
139 
141  static const DtStateVisualizer::TypeInfo& theTypeInfo();
142 
143  protected:
144 
149  virtual void slot_oceanWakesEnabledChanged(bool enabled);
150 
153  virtual void slot_hullSprayEffectsChanged(bool enabled);
154 
155  virtual bool active() const;
156 
158  virtual void createModelAgents();
159 
161  virtual void destroyModelAgents();
162 
164  virtual void setModelDefinitionForAgents();
165 
168  virtual void setVisualizerDefinition(const DtVisualizerDefinition& visDef);
169 
171  virtual void setEmbarkedOn(const std::string&);
172 
175  virtual bool visible() const;
176 
183  virtual void updateWakeEffects();
184 
189  virtual bool areWakeEffectsEnabled() const;
190 
196  virtual void updateSprayEffects();
197 
201  virtual bool areSprayEffectsEnabled() const;
202 
205  virtual void slot_wakeDefaultLODDistanceChanged(double distance);
206 
207  protected:
208  DtWakeModelAgent* myWakeModel;
209  DtWakeUpdaterAgent* myWakeUpdater;
210  bool myDestroyed;
213 
216  double myWakeOffset;
224  double myShipLength;
225  double myBeamWidth;
231  double myDraft;
237  double myBowSize;
248 
251 
253 
254  // The connection to the entity display settings default LOD distance is handled
255  // separately, so it can be disconnected if setLODDistance() is called from the API
256  boost::signalslib::connection myWakeLODDistanceChangedConnection;
257 
258  };
259 
260 
265 }
266 
bool myWakeOffsetSet
Definition: DtEntityWakeVisualizer.h:217
double mySternWaveOffset
Definition: DtEntityWakeVisualizer.h:222
Base class for entity state visualizers (using the DtModelVisualizer schema)
Definition: DtEntityStateVisualizer.h:23
double myPropWashFadeTime
Definition: DtEntityWakeVisualizer.h:229
DtWakeModelAgent * myWakeModel
Definition: DtEntityWakeVisualizer.h:208
bool mySprayEnabled
Definition: DtEntityWakeVisualizer.h:214
double mySprayVelocityScale
Definition: DtEntityWakeVisualizer.h:233
double myHullSprayVelocityScale
Definition: DtEntityWakeVisualizer.h:246
bool myEmbarked
Definition: DtEntityWakeVisualizer.h:211
bool mySprayEffectsEnabledGlobalFlag
Definition: DtEntityWakeVisualizer.h:250
voidpf void uLong size
Definition: ioapi.h:39
Definition: DtStateVisualizer.h:322
double myBowWaveOffset
Definition: DtEntityWakeVisualizer.h:220
bool myPropWashOffsetSet
Definition: DtEntityWakeVisualizer.h:228
bool myPropWashFadeTimeSet
Definition: DtEntityWakeVisualizer.h:230
double myBeamWidth
Definition: DtEntityWakeVisualizer.h:225
double myWakeOffset
Definition: DtEntityWakeVisualizer.h:216
bool myHullSprayVerticalOffsetSet
Definition: DtEntityWakeVisualizer.h:245
double myBowSprayOffset
Definition: DtEntityWakeVisualizer.h:218
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:34
bool myOceanWakesEnabledGlobalFlag
Definition: DtEntityWakeVisualizer.h:249
bool myBowSprayOffsetSet
Definition: DtEntityWakeVisualizer.h:219
bool myHullSprayEndSet
Definition: DtEntityWakeVisualizer.h:243
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
Contains makVrv:DtEntityStateListener class.
double myShipLength
Definition: DtEntityWakeVisualizer.h:224
double myPropWashOffset
Definition: DtEntityWakeVisualizer.h:227
bool myMaxBowWaveAmplitudeSet
Definition: DtEntityWakeVisualizer.h:236
bool mySternWaveOffsetSet
Definition: DtEntityWakeVisualizer.h:223
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
double myHullSprayVerticalOffset
Definition: DtEntityWakeVisualizer.h:244
bool myHullSprayStartSet
Definition: DtEntityWakeVisualizer.h:241
bool myPropWashEnabled
Definition: DtEntityWakeVisualizer.h:226
bool myBowWaveOffsetSet
Definition: DtEntityWakeVisualizer.h:221
double myHullSprayEnd
Definition: DtEntityWakeVisualizer.h:242
DtStateVisualizerCreatorTemplate< DtEntityWakeVisualizer > DtEntityWakeVisualizerCreator
Creator that will be registered with the state visualizer factory to create this class.
Definition: DtEntityWakeVisualizer.h:264
bool myEffectEnabled
Definition: DtEntityWakeVisualizer.h:212
bool myIsAmphibious
Definition: DtEntityWakeVisualizer.h:252
boost::signalslib::connection myWakeLODDistanceChangedConnection
Definition: DtEntityWakeVisualizer.h:256
double myHullSprayStart
Definition: DtEntityWakeVisualizer.h:240
The DtStateVisualizer is an abstract class.
Definition: DtStateVisualizer.h:32
double myBowSize
Definition: DtEntityWakeVisualizer.h:237
A definition of a visualizer.
Definition: DtVisualizerDefinition.h:22
DamageState
Definition: DtEntityStateListener.h:88
double myMaxBowWaveAmplitude
Definition: DtEntityWakeVisualizer.h:235
Contains makVrv:DtEntityStateVisualizer class.
double myHullSpraySizeScale
Definition: DtEntityWakeVisualizer.h:247
voidpf uLong offset
Definition: ioapi.h:42
double mySpraySizeScale
Definition: DtEntityWakeVisualizer.h:238
The DtStateListener is an abstract class.
Definition: DtStateListener.h:21
bool myDestroyed
Definition: DtEntityWakeVisualizer.h:210
double myDraft
Definition: DtEntityWakeVisualizer.h:231
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:234
Visualizer for kelvin wakes.
Definition: DtEntityWakeVisualizer.h:21
double myLODDistance
Definition: DtEntityWakeVisualizer.h:232
bool mySternWaveEnabled
Definition: DtEntityWakeVisualizer.h:215
int myNumHullSprays
Definition: DtEntityWakeVisualizer.h:239
DtWakeUpdaterAgent * myWakeUpdater
Definition: DtEntityWakeVisualizer.h:209

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)