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;
52 virtual void oceanLayerAdded();
53 virtual void oceanLayerToBeDeleted();
55 void setSeaLevel(
float level);
56 float seaLevel()
const;
58 void setElevationLod(
double maxElevation);
59 double elevationLod()
const;
65 void setWind(
double speed,
double direction,
double fetch = 0.0);
75 void setDouglasSeaState(
76 int seaState,
double seaStateDirection,
77 int swellState,
double swellStateDirection);
79 void addSwell(
float wavelength,
float waveHeight,
float radiansClockwiseFromNorth);
84 void setChoppiness(
float chop);
87 bool getIsUnderwater()
const;
88 void setUnderwaterVisibility(
double distance);
89 bool setUnderwaterFogColor(
const DtVector& fogColor);
90 void setUnderwaterFogEnabled(
bool enabled);
93 void setWaterColor(
const DtVector& waterColor);
97 double waterVisibility()
const;
98 void setWaterVisibility(
double distance);
99 void setSurfaceTransparency(
double transparency);
102 bool setSurgeDepth(
float depth);
103 bool getSurgeDepth(
float& depth)
const;
105 void setDepthOffset(
float offset);
114 bool intersectSeaLevel(
const DtVector& position,
120 double& height,
DtVector& normalOut);
122 Triton::WakeGenerator* createWake(
123 const Triton::WakeGeneratorParameters& parameters );
125 Triton::RotorWash* createRotorWash(
double rotorDiameter);
126 Triton::Impact *createImpact(
double impactorDiameter,
double mass,
134 Triton::TidalStreamWake* createTidalStreamWake(
double size,
135 double draft,
double maxWaveHeight,
double offset);
138 void setSplashEffects(
bool screenSplashEnabled);
139 bool splashEffects()
const;
142 void setSprayEffects(
bool screenSprayEnabled);
143 bool sprayEffects()
const;
146 void setWaveSprayEffects(
bool waveSprayEnabled);
147 bool waveSprayEffects()
const;
150 void setDecalEffects(
bool decalsEnabled);
151 bool decalEffects()
const;
154 void setGodRayEffects(
bool godRaysEnabled);
155 bool godRayEffects()
const;
157 void setBreakingWaveAmplitude(
float meters);
158 float getBreakingWaveAmplitude()
const;
161 float getMaximumWaveHeight();
164 void setHeightMapResolution(
float metersPerTexel);
165 bool getHeightMapResolution(
float &metersPerTexel)
const;
167 void setSeaState(
unsigned int beaufortScale);
168 unsigned int seaState()
const;
172 void setPlanarReflections(
bool enable);
173 bool planarReflections()
const;
175 void setHeightMap(
bool enable);
176 bool heightMap()
const;
178 void setWaveDampingDistance(
float distance);
179 float waveDampingDistance()
const;
181 void setCorrelateIntersectionsToVisuals(
bool visualCorrelation);
182 bool correlateIntersectionsToVisuals()
const;
193 virtual void setQuality(TritonQuality quality);
194 virtual TritonQuality getQuality()
const;
206 virtual bool isOverWater(
const DtVector& localPosition,
bool isVisible=
true);
212 void setIsVisible(
bool visible,
unsigned int frameNum);
229 virtual double getOceanZoomOverride()
const;
230 virtual void setOceanZoomOverride(
double zoomOverride);
235 void slot_postInitialize();
236 void slot_driverToBeDestroyed(
DtDriver& driver);