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);
130 virtual bool intersect(
const DtVector& position, DtVector& positionOut,
131 DtVector& normalOut,
float waterlineAdjustment = 0.0);
138 virtual bool intersectSeaLevel(
const DtVector& position,
139 const DtVector& direction, DtVector& positionOut);
146 virtual bool getHeight(
const DtVector& position,
const DtVector& direction,
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;
178 virtual int numberOfPropWashes()
const;
183 virtual int maxPropWashes()
const;
185 virtual void setBreakingWaveAmplitude(
float meters);
186 virtual float getBreakingWaveAmplitude()
const;
189 virtual float getMaximumWaveHeight();
194 virtual void setCorrelateIntersectionsToVisuals(
bool visualCorrelation);
195 virtual bool correlateIntersectionsToVisuals()
const;
198 virtual void setIncludeWakesInIntersections(
bool includeWakes);
201 virtual bool includeWakesInIntersections()
const;
206 virtual void setOceanMaskTextureEnabled(
bool enable);
207 virtual bool isOceanMaskTextureEnabled()
const;
219 virtual bool isOverWater(
const DtVector& localPosition,
bool isVisible =
true);
221 virtual bool addedToScene();
224 virtual bool getIsVisible()
const;
228 virtual DtTime oceanTime()
const;
233 virtual double getOceanZoomOverride()
const;
234 virtual void setOceanZoomOverride(
double zoomOverride);
237 virtual void setFreezeEnabled(
bool enable);
240 virtual bool freezeEnabled()
const;
243 virtual void setFreezeTime(
DtTime freezeAtTime);
245 virtual DtTime freezeTime(
void)
const;
248 virtual bool LockHeightData();
250 virtual bool UnLockHeightData();
251 virtual bool IsLockedHeightData()
const;
270 void slot_coordinateSystemChanged();
272 void slot_driverToBeDestroyed(
DtDriver& driver);
273 virtual void installEventProcessor();
277 void slot_postUpdate();
285 virtual bool intersectMslGeocentric(
const DtVector& rayOrigin,
286 const DtVector& rayDirection,
const double seaLevel, DtVector& positionOut);
291 virtual bool intersectMslFlat(
const DtVector& rayOrigin,
292 const DtVector& rayDirection,
const double seaLevel, DtVector& positionOut);
295 virtual bool intersectRaySphere(
const DtVector& rayOrigin,
296 const DtVector& rayDirection,
const DtVector& sphereCenter,
297 const double sphereSize, DtVector& hitPoint);
314 bool myIncludeWakesInIntersections =
true;
320 bool myFreezeEnabled =
false;
osg::ref_ptr< DtTritonDrawable > myTritonDrawable
Definition: DtTritonManager.h:307
DtDe & myDe
Definition: DtTritonManager.h:300
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:334
The declaration of the makVrv::DtEnvironment class.
boost::signalslib::signal< void()> signal_oceanToBeDestroyed
Definition: DtTritonManager.h:264
float myElevationRange
Definition: DtTritonManager.h:310
boost::signalslib::signal< void(DtPlanarReflectionCamera *reflection)> signal_planarReflectionCreated
Signal emitted when a new planar reflection has been created.
Definition: DtTritonManager.h:267
DtDynamicOceanObjectManager & myDynamicOceanObjectManager
Definition: DtTritonManager.h:302
DtTritonEventProcessor * myEventProcessor
Definition: DtTritonManager.h:305
Definition: featureContext.h:36
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
void slot_postInitialize(makVrv::DtDe &de)
voidpf void uLong size
Definition: ioapi.h:39
DtSignalConnectionManager myConnections
Definition: DtTritonManager.h:304
bool myVisualIntersections
Definition: DtTritonManager.h:313
double myOceanZoomOverride
Definition: DtTritonManager.h:316
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:312
Scale
Definition: DtDouglasSeaScale.h:33
static const float theMaxWindSpeedForWindFetch
Definition: DtTritonManager.h:323
boost::signalslib::signal< void()> signal_removedFromScene
Definition: DtTritonManager.h:263
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:30
Definition: DtTritonManager.h:54
boost::signalslib::signal< void()> signal_addedToScene
Definition: DtTritonManager.h:262
boost::signalslib::connection myPostInitializeConnection
Definition: DtTritonManager.h:330
#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:317
osg::ref_ptr< DtTritonGroup > myTritonRoot
Definition: DtTritonManager.h:308
float mySeaLevel
Definition: DtTritonManager.h:311
boost::signalslib::connection myDriverToBeDestroyedConnection
Definition: DtTritonManager.h:329
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:76
An OSG Drawable representing Triton's infinite ocean. /ingroup vrvTriton.
Definition: DtTritonDrawable.h:62
TritonQuality
Definition: DtTritonManager.h:52
boost::signalslib::signal< void()> signal_oceanInitialized
Definition: DtTritonManager.h:261
voidpf uLong offset
Definition: ioapi.h:42
float myBreakerAmplitude
Definition: DtTritonManager.h:332
bool myDecalEffects
Definition: DtTritonManager.h:315