VR-Forces 5.0.3 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) 2021 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 
193  protected:
194  double mySeaLevel;
196 
197  double myWindSpeed;
199  double myWindFetch;
201 
209  double mySurgeDepth;
214 
216  };
217 }
218 
219 
double myDouglasSeaDirection
Definition: DtDynamicOceanObject.h:203
DtDouglasSwellState::Scale myDouglasSwellState
Definition: DtDynamicOceanObject.h:204
OceanSwellList myOceanSwells
Definition: DtDynamicOceanObject.h:215
double myWindDirection
Definition: DtDynamicOceanObject.h:198
double myWindSpeed
Definition: DtDynamicOceanObject.h:197
int myLodAltitude
Definition: DtDynamicOceanObject.h:195
DtDouglasSeaState::Scale myDouglasSeaState
Definition: DtDynamicOceanObject.h:202
float myWaterCurrentSpeed
Definition: DtDynamicOceanObject.h:211
double mySurfaceTransparency
Definition: DtDynamicOceanObject.h:208
double myUnderwaterVisibility
Definition: DtDynamicOceanObject.h:207
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:209
double mySeaChoppiness
Definition: DtDynamicOceanObject.h:206
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
double myWindFetch
Definition: DtDynamicOceanObject.h:199
double mySeaLevel
Definition: DtDynamicOceanObject.h:194
double myDouglasSwellDirection
Definition: DtDynamicOceanObject.h:205
Contains makVrv::DtUniqueID type.
float myWaterCurrentDirection
Definition: DtDynamicOceanObject.h:212
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:70
bool myWindDrivenSeaStateEnabled
Definition: DtDynamicOceanObject.h:200
double myDepthOffset
Definition: DtDynamicOceanObject.h:210
bool myUnderwaterVisibilityEnabled
Definition: DtDynamicOceanObject.h:213
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 Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)