15 #include <vlutil/vlTime.h>
17 #include <boost/signal.hpp>
18 #include <osg/ref_ptr>
25 class WakeGeneratorParameters;
28 class TidalStreamWake;
35 class DtDynamicOceanObject;
37 class DtTritonDrawable;
38 class DtTritonEventProcessor;
40 class DtDynamicOceanObjectManager;
53 virtual void oceanLayerAdded();
54 virtual void oceanLayerToBeDeleted();
56 void setSeaLevel(
float level);
57 float seaLevel()
const;
59 void setElevationLod(
double maxElevation);
60 double elevationLod()
const;
66 void setWind(
double speed,
double direction,
double fetch = 0.0);
76 void setDouglasSeaState(
77 int seaState,
double seaStateDirection,
78 int swellState,
double swellStateDirection);
80 void addSwell(
float wavelength,
float waveHeight,
float radiansClockwiseFromNorth);
85 void setChoppiness(
float chop);
88 bool getIsUnderwater()
const;
89 void setUnderwaterVisibility(
double distance);
90 bool setUnderwaterFogColor(
const DtVector& fogColor);
91 void setUnderwaterFogEnabled(
bool enabled);
94 void setWaterColor(
const DtVector& waterColor);
98 double waterVisibility()
const;
99 void setWaterVisibility(
double distance);
100 void setSurfaceTransparency(
double transparency);
103 bool setSurgeDepth(
float depth);
104 bool getSurgeDepth(
float& depth)
const;
106 void setDepthOffset(
float offset);
115 bool intersectSeaLevel(
const DtVector& position,
121 double& height,
DtVector& normalOut);
123 Triton::WakeGenerator* createWake(
124 const Triton::WakeGeneratorParameters& parameters );
126 Triton::RotorWash* createRotorWash(
double rotorDiameter);
127 Triton::Impact *createImpact(
double impactorDiameter,
double mass,
135 Triton::TidalStreamWake* createTidalStreamWake(
double size,
136 double draft,
double maxWaveHeight,
double offset);
139 void setSplashEffects(
bool screenSplashEnabled);
140 bool splashEffects()
const;
143 void setSprayEffects(
bool screenSprayEnabled);
144 bool sprayEffects()
const;
147 void setWaveSprayEffects(
bool waveSprayEnabled);
148 bool waveSprayEffects()
const;
151 void setDecalEffects(
bool decalsEnabled);
152 bool decalEffects()
const;
155 void setGodRayEffects(
bool godRaysEnabled);
156 bool godRayEffects()
const;
158 void setBreakingWaveAmplitude(
float meters);
159 float getBreakingWaveAmplitude()
const;
162 float getMaximumWaveHeight();
165 void setHeightMapResolution(
float metersPerTexel);
166 bool getHeightMapResolution(
float &metersPerTexel)
const;
168 void setSeaState(
unsigned int beaufortScale);
169 unsigned int seaState()
const;
173 void setPlanarReflections(
bool enable);
174 bool planarReflections()
const;
176 void setHeightMap(
bool enable);
177 bool heightMap()
const;
179 void setWaveDampingDistance(
float distance);
180 float waveDampingDistance()
const;
182 void setCorrelateIntersectionsToVisuals(
bool visualCorrelation);
183 bool correlateIntersectionsToVisuals()
const;
194 virtual void setQuality(TritonQuality quality);
195 virtual TritonQuality getQuality()
const;
207 virtual bool isOverWater(
const DtVector& localPosition,
bool isVisible=
true);
213 void setIsVisible(
bool visible,
unsigned int frameNum);
230 virtual double getOceanZoomOverride()
const;
231 virtual void setOceanZoomOverride(
double zoomOverride);
236 void slot_postInitialize();
237 void slot_driverToBeDestroyed(
DtDriver& driver);