VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDynamicOceanObject.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtUniqueID.h>
14 
16 
17 #include <list>
18 
19 #include <matrix/vlVector.h>
20 
21 namespace makVrv
22 {
23  class DtDe;
24 
30  {
31  public:
32  //We should refactor the class with the DtSkyObject and DtWeatherEffectObject
33  // and combine them to make a consistent way
34  // to send down environment settings to the RDE.
35 
39  {
40  public:
42  OceanSwell(double lengthInMeters = 0.0, double heightInMeters = 0.0,
43  double radiansClockwiseFromNorth = 0.0);
44 
46  OceanSwell(const OceanSwell& orig);
47 
49  OceanSwell& operator =(const OceanSwell& rhs);
50 
53 
55  void setLength(double meters);
56  double length() const;
58 
60  void setHeight(double meters);
61  double height() const;
63 
65  void setDirection(double radiansClockwiseFromNorth);
66  double direction() const;
68 
70 
71  private:
72  double myLength;
73  double myHeight;
74  double myDirection;
75  };
76 
77  typedef std::list<OceanSwell> OceanSwellList;
78 
79 
82 
84  virtual ~DtDynamicOceanObject();
85 
87  virtual void setSeaLevel(double meters);
89  virtual double seaLevel() const;
91 
93  virtual void setLodAltitude(int meters);
95  virtual int lodAltitude() const;
97 
99  virtual void setWindSpeed(double metersPerSecond);
101  virtual double windSpeed() const;
103 
105  virtual void setWindDirection(double radiansClockwiseFromNorth);
107  virtual double windDirection() const;
109 
111  virtual void setWindFetch(double meters);
113  virtual double windFetch() const;
115 
117  virtual void setWindDrivenSeaState(bool enabled);
119  virtual bool windDrivenSeaState() const;
121 
123  virtual void setDouglasSeaState(DtDouglasSeaState::Scale seaState, double seaStateDirection,
125  DtDouglasSwellState::Scale swellState, double swellStateDirection);
126  virtual void getDouglasSeaState(DtDouglasSeaState::Scale& seaState, double& seaStateDirection,
127  DtDouglasSwellState::Scale& swellState, double& swellStateDirection) const;
129 
131  virtual void setSeaChoppiness(double chop);
133  virtual double seaChoppiness() const;
135 
138  virtual void setUnderwaterVisibilityEnabled(bool enabled);
139  virtual bool underwaterVisibilityEnabled() const;
141 
143  virtual void setUnderwaterVisibility(double meters);
145  virtual double underwaterVisibility() const;
147 
149  virtual void setSurfaceTransparency(double transparency);
152  virtual double surfaceTransparency() const;
154 
156  virtual void setSurgeDepth(double meters);
158  virtual double surgeDepth() const;
160 
162  virtual void setDepthOffset(double meters);
164  virtual double depthOffset() const;
166 
168  virtual void addSwell(double lengthInMeters, double heightInMeters,
170  double radiansClockwiseFromNorth);
171  virtual void addSwell(const OceanSwell& swell);
172 
174  virtual const OceanSwellList& getSwells() const;
175 
177  virtual void clearSwells();
179 
181  virtual void setWaterCurrentSpeed(float speed);
183  virtual float waterCurrentSpeed() const;
185 
187  virtual void setWaterCurrentDirection(float direction);
190  virtual float waterCurrentDirection() const;
192 
194  virtual bool LockHeightData();
196  virtual bool UnLockHeightData();
197  virtual bool IsLockedHeightData() const;
199 
200  protected:
201  double mySeaLevel;
203 
204  double myWindSpeed;
206  double myWindFetch;
208 
216  double mySurgeDepth;
221 
223  };
224 }
225 
226 
double myDouglasSeaDirection
Definition: DtDynamicOceanObject.h:210
DtDouglasSwellState::Scale myDouglasSwellState
Definition: DtDynamicOceanObject.h:211
OceanSwellList myOceanSwells
Definition: DtDynamicOceanObject.h:222
double myWindDirection
Definition: DtDynamicOceanObject.h:205
double myWindSpeed
Definition: DtDynamicOceanObject.h:204
int myLodAltitude
Definition: DtDynamicOceanObject.h:202
DtDouglasSeaState::Scale myDouglasSeaState
Definition: DtDynamicOceanObject.h:209
float myWaterCurrentSpeed
Definition: DtDynamicOceanObject.h:218
double mySurfaceTransparency
Definition: DtDynamicOceanObject.h:215
double myUnderwaterVisibility
Definition: DtDynamicOceanObject.h:214
A description of a single type of ocean swell.
Definition: DtDynamicOceanObject.h:38
double myLength
Definition: DtDynamicOceanObject.h:72
Scale
Definition: DtDouglasSeaScale.h:33
double mySurgeDepth
Definition: DtDynamicOceanObject.h:216
double mySeaChoppiness
Definition: DtDynamicOceanObject.h:213
double myDirection
Definition: DtDynamicOceanObject.h:74
The base dynamic ocean object. An actual (do-nothing) implementation is provided so that an implement...
Definition: DtDynamicOceanObject.h:29
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Scale
Definition: DtDouglasSeaScale.h:114
std::list< OceanSwell > OceanSwellList
Definition: DtDynamicOceanObject.h:77
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
double myWindFetch
Definition: DtDynamicOceanObject.h:206
double mySeaLevel
Definition: DtDynamicOceanObject.h:201
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 myDouglasSwellDirection
Definition: DtDynamicOceanObject.h:212
Contains makVrv::DtUniqueID type.
float myWaterCurrentDirection
Definition: DtDynamicOceanObject.h:219
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
bool myWindDrivenSeaStateEnabled
Definition: DtDynamicOceanObject.h:207
double myDepthOffset
Definition: DtDynamicOceanObject.h:217
bool myUnderwaterVisibilityEnabled
Definition: DtDynamicOceanObject.h:220
double myHeight
Definition: DtDynamicOceanObject.h:73
The declaration of the makVrv::DtDouglasSeaState and makVrv::DtDouglasSwellState classes.
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)