15 #include <vlutil/vlTime.h>
20 #include <osg/ref_ptr>
25 class WakeGeneratorParameters;
28 class TidalStreamWake;
38 class DtCoordinateSystem;
41 class DtDynamicOceanObject;
42 class DtPlanarReflectionCamera;
44 class DtTritonDrawable;
45 class DtTritonEventProcessor;
47 class DtDynamicOceanObjectManager;
53 TritonQuality_Good = 0,
59 TritonSpectralModel_JonSwap = 0
60 , TritonSpectralModel_Pierson_Moskowitz
61 , TritonSpectralModel_Tessendorf
75 virtual void addToScene();
77 virtual void oceanLayerAdded();
78 virtual void oceanLayerToBeDeleted();
80 virtual void setSeaLevel(
float level);
81 virtual float seaLevel()
const;
83 virtual void setElevationLod(
double maxElevation);
84 virtual double elevationLod()
const;
90 virtual void setWind(
double speed,
double direction,
double fetch = 0.0);
100 virtual void setDouglasSeaState(
104 virtual void addSwell(
float wavelength,
float waveHeight,
float radiansClockwiseFromNorth);
105 virtual void clearSwells();
109 virtual void setChoppiness(
float chop);
112 virtual bool getIsUnderwater(
const osg::Camera* osgCamera)
const;
113 virtual void setUnderwaterVisibility(
double distance);
114 virtual bool setUnderwaterFogColor(
const DtVector& fogColor);
115 virtual void setUnderwaterFogEnabled(
bool enabled);
118 virtual double waterVisibility()
const;
119 virtual void setWaterVisibility(
double distance);
120 virtual void setSurfaceTransparency(
double transparency);
123 virtual void setSurgeDepth(
float depth);
124 virtual float getSurgeDepth()
const;
126 virtual void setDepthOffset(
float offset);
131 DtVector& normalOut,
float waterlineAdjustment = 0.0);
138 virtual bool intersectSeaLevel(
const DtVector& position,
147 double& height,
DtVector& normalOut);
149 virtual Triton::WakeGenerator* createWake(
150 const Triton::WakeGeneratorParameters& parameters);
152 virtual Triton::RotorWash* createRotorWash(
double rotorDiameter);
154 virtual Triton::Impact* createImpact(
double impactorDiameter,
double mass,
162 virtual Triton::TidalStreamWake* createTidalStreamWake(
double size,
163 double draft,
double maxWaveHeight,
double offset);
166 virtual void setWaveSprayEffects(
bool waveSprayEnabled);
167 virtual bool waveSprayEffects()
const;
170 virtual void setDecalEffects(
bool decalsEnabled);
171 virtual bool decalEffects()
const;
174 virtual void setGodRayEffects(
bool godRaysEnabled);
175 virtual bool godRayEffects()
const;
177 virtual void setBreakingWaveAmplitude(
float meters);
178 virtual float getBreakingWaveAmplitude()
const;
181 virtual float getMaximumWaveHeight();
186 virtual void setCorrelateIntersectionsToVisuals(
bool visualCorrelation);
187 virtual bool correlateIntersectionsToVisuals()
const;
190 virtual void setIncludeWakesInIntersections(
bool includeWakes);
193 virtual bool includeWakesInIntersections()
const;
198 virtual void setOceanMaskTextureEnabled(
bool enable);
199 virtual bool isOceanMaskTextureEnabled()
const;
211 virtual bool isOverWater(
const DtVector& localPosition,
bool isVisible =
true);
213 virtual bool addedToScene();
216 virtual bool getIsVisible()
const;
220 virtual DtTime oceanTime()
const;
225 virtual double getOceanZoomOverride()
const;
226 virtual void setOceanZoomOverride(
double zoomOverride);
229 virtual void setFreezeEnabled(
bool enable);
232 virtual bool freezeEnabled()
const;
235 virtual void setFreezeTime(
DtTime freezeAtTime);
237 virtual DtTime freezeTime(
void)
const;
240 virtual bool LockHeightData();
242 virtual bool UnLockHeightData();
243 virtual bool IsLockedHeightData()
const;
262 void slot_coordinateSystemChanged();
263 void slot_postInitialize();
264 void slot_driverToBeDestroyed(
DtDriver& driver);
265 virtual void installEventProcessor();
269 void slot_postUpdate();
277 virtual bool intersectMslGeocentric(
const DtVector& rayOrigin,
278 const DtVector& rayDirection,
const double seaLevel,
DtVector& positionOut);
283 virtual bool intersectMslFlat(
const DtVector& rayOrigin,
284 const DtVector& rayDirection,
const double seaLevel,
DtVector& positionOut);
287 virtual bool intersectRaySphere(
const DtVector& rayOrigin,
289 const double sphereSize,
DtVector& hitPoint);
306 bool myIncludeWakesInIntersections =
true;
312 bool myFreezeEnabled =
false;
osg::ref_ptr< DtTritonDrawable > myTritonDrawable
Definition: DtTritonManager.h:299
DtDe & myDe
Definition: DtTritonManager.h:292
LOD node that switches by observer elevation ranges.
Definition: DtTritonGroup.h:34
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
float mySurgeDepth
Definition: DtTritonManager.h:326
The declaration of the makVrv::DtEnvironment class.
boost::signalslib::signal< void()> signal_oceanToBeDestroyed
Definition: DtTritonManager.h:256
float myElevationRange
Definition: DtTritonManager.h:302
boost::signalslib::signal< void(DtPlanarReflectionCamera *reflection)> signal_planarReflectionCreated
Signal emitted when a new planar reflection has been created.
Definition: DtTritonManager.h:259
DtDynamicOceanObjectManager & myDynamicOceanObjectManager
Definition: DtTritonManager.h:294
DtTritonEventProcessor * myEventProcessor
Definition: DtTritonManager.h:297
Definition: featureContext.h:37
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
voidpf void uLong size
Definition: ioapi.h:39
DtSignalConnectionManager myConnections
Definition: DtTritonManager.h:296
bool myVisualIntersections
Definition: DtTritonManager.h:305
double myOceanZoomOverride
Definition: DtTritonManager.h:308
The declaration of the makVrv::DtBeaufortWindScale class.
Manager that provides direct access to the dynamic ocean objects in use within a display engine...
Definition: DtDynamicOceanObjectManager.h:27
Contains DLL export macros.
double myWaterVisibility
Definition: DtTritonManager.h:304
Scale
Definition: DtDouglasSeaScale.h:33
static const float theMaxWindSpeedForWindFetch
Definition: DtTritonManager.h:315
boost::signalslib::signal< void()> signal_removedFromScene
Definition: DtTritonManager.h:255
The base dynamic ocean object. An actual (do-nothing) implementation is provided so that an implement...
Definition: DtDynamicOceanObject.h:29
Scale
Definition: DtBeaufortWindScale.h:29
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...
The DtDriver is an abstract class. Developers derive from this to create logic that "directs" things ...
Definition: DtDriver.h:31
Definition: DtTritonManager.h:54
boost::signalslib::signal< void()> signal_addedToScene
Definition: DtTritonManager.h:254
boost::signalslib::connection myPostInitializeConnection
Definition: DtTritonManager.h:322
#define DT_DLL_VRVTRITON
Definition: vrvTriton.h:19
Scale
Definition: DtDouglasSeaScale.h:114
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool myOceanMaskTextureEnabled
Definition: DtTritonManager.h:309
osg::ref_ptr< DtTritonGroup > myTritonRoot
Definition: DtTritonManager.h:300
float mySeaLevel
Definition: DtTritonManager.h:303
boost::signalslib::connection myDriverToBeDestroyedConnection
Definition: DtTritonManager.h:321
Definition: DtTritonEventProcessor.h:22
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
Definition: DtTritonManager.h:49
TritonSpectralModel
Definition: DtTritonManager.h:58
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:72
An OSG Drawable representing Triton's infinite ocean. /ingroup vrvTriton.
Definition: DtTritonDrawable.h:60
TritonQuality
Definition: DtTritonManager.h:52
boost::signalslib::signal< void()> signal_oceanInitialized
Definition: DtTritonManager.h:253
voidpf uLong offset
Definition: ioapi.h:42
float myBreakerAmplitude
Definition: DtTritonManager.h:324
bool myDecalEffects
Definition: DtTritonManager.h:307