VR-Forces 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) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
12 
13 namespace makVrv
14 {
15  class DtWakeModelAgent;
16  class DtWakeUpdaterAgent;
17  class DtEntityStateListener;
18 
19  namespace EntityStateListener
20  {
21  enum class DamageState;
22  }
23 
27  {
28  public:
31  DtSceneObjectAgent* sceneObject, DtModelSetId modelSet );
32 
34  virtual ~DtEntityWakeVisualizer();
35 
37  DtEntityWakeVisualizer() = delete;
38 
41 
43  DtEntityWakeVisualizer& operator=( const DtEntityWakeVisualizer& ) = delete;
44 
45  public:
46 
48  virtual void initialize() override;
49 
53  virtual void setWakeEnabled(bool enabled);
54 
56  virtual void setSprayEnabled(bool enabled);
57 
59  virtual void setSternWaveEnabled(bool enabled);
60 
63  virtual void setWakeOffset(double offset);
64 
67  virtual void setBowSprayOffset(double offset);
68 
70  virtual void setBowWaveOffset(double offset);
71 
73  virtual void setSternWaveOffset(double offset);
74 
76  virtual void setShipLength(double length);
77 
79  virtual void setBeamWidth(double width);
80 
82  virtual void setPropWashEnabled(bool b);
83 
86  virtual void setPropWashOffset(double offset);
87 
90  virtual void setPropWashFadeTime(double fadeTime);
91 
94  virtual void setDraft(double draft);
95 
98  virtual void setLODDistance(double distance);
99 
101  virtual void setSprayVelocityScale(double scale);
102 
104  virtual void setBowWaveScale(double scale);
105 
107  virtual void setMaxBowWaveAmplitude(double amplitude);
108 
110  virtual void setBowSize(double size);
111 
113  virtual void setSpraySizeScale(double scale);
114 
117  virtual void setNumHullSprays(int numSprays);
118 
120  virtual void setHullSpraySizeScale(double scale);
121 
123  virtual void setHullSprayStart(double offset);
124 
126  virtual void setHullSprayEnd(double offset);
127 
130  virtual void setHullSprayVelocityScale(double scale);
131 
133  virtual void setHullSprayVerticalOffset(double offset);
134 
135  virtual void setDamageState(EntityStateListener::DamageState damageState);
136 
138  virtual const DtStateVisualizer::TypeInfo& typeInfo() const;
139 
141  virtual void setIsFrozen(bool frozen);
142 
144  static const DtStateVisualizer::TypeInfo& theTypeInfo();
145 
149  virtual void setMaxRenderAngle( double angle );
150 
152  virtual void setSpeedRenderCuttof( double cutoff );
153 
154  protected:
155 
160  virtual void slot_oceanWakesEnabledChanged(bool enabled);
161 
164  virtual void slot_hullSprayEffectsChanged(bool enabled);
165 
166  virtual bool active() const;
167 
169  virtual void createModelAgents();
170 
172  virtual void destroyModelAgents();
173 
175  virtual void setModelDefinitionForAgents();
176 
179  virtual void connectToListenerSignals() override;
180 
183  virtual void setInitialValuesFromVisualizerDefinition() override;
184 
186  virtual void slot_embarkedStateChanged();
187 
190  virtual bool visible() const;
191 
198  virtual void updateWakeEffects();
199 
204  virtual bool areWakeEffectsEnabled() const;
205 
211  virtual void updateSprayEffects();
212 
216  virtual bool areSprayEffectsEnabled() const;
217 
220  virtual void slot_wakeDefaultLODDistanceChanged(double distance);
221 
222  protected:
223  DtWakeModelAgent* myWakeModel;
224  DtWakeUpdaterAgent* myWakeUpdater;
225  bool myDestroyed;
228 
231  double myWakeOffset;
239  double myShipLength;
240  double myBeamWidth;
246  double myDraft;
252  double myBowSize;
269 
271 
272  // The connection to the entity display settings default LOD distance is handled
273  // separately, so it can be disconnected if setLODDistance() is called from the API
274  boost::signalslib::connection myWakeLODDistanceChangedConnection;
275 
276  };
277 
278 
283 }
284 
bool myWakeOffsetSet
Definition: DtEntityWakeVisualizer.h:232
double mySternWaveOffset
Definition: DtEntityWakeVisualizer.h:237
Base class for entity state visualizers (using the DtModelVisualizer schema)
Definition: DtEntityStateVisualizer.h:22
double myPropWashFadeTime
Definition: DtEntityWakeVisualizer.h:244
DtWakeModelAgent * myWakeModel
Definition: DtEntityWakeVisualizer.h:223
bool mySprayEnabled
Definition: DtEntityWakeVisualizer.h:229
DamageState
Definition: DtEntityStateListener.h:64
double myMaxRenderAngle
Maximum angle between the ship's heading and the wakes direction before the wake is NOT rendereed...
Definition: DtEntityWakeVisualizer.h:265
double mySprayVelocityScale
Definition: DtEntityWakeVisualizer.h:248
double myHullSprayVelocityScale
Definition: DtEntityWakeVisualizer.h:261
bool myEmbarked
Definition: DtEntityWakeVisualizer.h:226
bool mySprayEffectsEnabledGlobalFlag
Definition: DtEntityWakeVisualizer.h:268
voidpf void uLong size
Definition: ioapi.h:39
Definition: DtStateVisualizer.h:274
double myBowWaveOffset
Definition: DtEntityWakeVisualizer.h:235
bool myPropWashOffsetSet
Definition: DtEntityWakeVisualizer.h:243
bool myPropWashFadeTimeSet
Definition: DtEntityWakeVisualizer.h:245
double myBeamWidth
Definition: DtEntityWakeVisualizer.h:240
double myWakeOffset
Definition: DtEntityWakeVisualizer.h:231
bool myHullSprayVerticalOffsetSet
Definition: DtEntityWakeVisualizer.h:260
double myBowSprayOffset
Definition: DtEntityWakeVisualizer.h:233
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
bool myOceanWakesEnabledGlobalFlag
Definition: DtEntityWakeVisualizer.h:267
bool myBowSprayOffsetSet
Definition: DtEntityWakeVisualizer.h:234
bool myHullSprayEndSet
Definition: DtEntityWakeVisualizer.h:258
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...
double myShipLength
Definition: DtEntityWakeVisualizer.h:239
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
double myPropWashOffset
Definition: DtEntityWakeVisualizer.h:242
bool myMaxBowWaveAmplitudeSet
Definition: DtEntityWakeVisualizer.h:251
bool mySternWaveOffsetSet
Definition: DtEntityWakeVisualizer.h:238
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
double myHullSprayVerticalOffset
Definition: DtEntityWakeVisualizer.h:259
bool myHullSprayStartSet
Definition: DtEntityWakeVisualizer.h:256
bool myPropWashEnabled
Definition: DtEntityWakeVisualizer.h:241
bool myBowWaveOffsetSet
Definition: DtEntityWakeVisualizer.h:236
double myHullSprayEnd
Definition: DtEntityWakeVisualizer.h:257
DtStateVisualizerCreatorTemplate< DtEntityWakeVisualizer > DtEntityWakeVisualizerCreator
Creator that will be registered with the state visualizer factory to create this class.
Definition: DtEntityWakeVisualizer.h:282
bool myEffectEnabled
Definition: DtEntityWakeVisualizer.h:227
bool myIsAmphibious
Definition: DtEntityWakeVisualizer.h:270
boost::signalslib::connection myWakeLODDistanceChangedConnection
Definition: DtEntityWakeVisualizer.h:274
double myHullSprayStart
Definition: DtEntityWakeVisualizer.h:255
double myBowSize
Definition: DtEntityWakeVisualizer.h:252
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
double myMaxBowWaveAmplitude
Definition: DtEntityWakeVisualizer.h:250
Contains makVrv:DtEntityStateVisualizer class. Base class for other state visualizers such as articul...
double myHullSpraySizeScale
Definition: DtEntityWakeVisualizer.h:262
DtModelSetId
Definition: DtModelSetEnums.h:19
voidpf uLong offset
Definition: ioapi.h:42
double mySpraySizeScale
Definition: DtEntityWakeVisualizer.h:253
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:26
bool myDestroyed
Definition: DtEntityWakeVisualizer.h:225
double myDraft
Definition: DtEntityWakeVisualizer.h:246
Struct to hold metadata about each functional visualizer type This allows users of the factory to get...
Definition: DtStateVisualizer.h:54
double mySpeedRenderCuttoff
Definition: DtEntityWakeVisualizer.h:266
double myBowWaveScale
Definition: DtEntityWakeVisualizer.h:249
Visualizer for kelvin wakes.
Definition: DtEntityWakeVisualizer.h:26
double myLODDistance
Definition: DtEntityWakeVisualizer.h:247
bool mySternWaveEnabled
Definition: DtEntityWakeVisualizer.h:230
int myNumHullSprays
Definition: DtEntityWakeVisualizer.h:254
DtWakeUpdaterAgent * myWakeUpdater
Definition: DtEntityWakeVisualizer.h:224

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)