15 #include <matrix/vlVector.h>
16 #include <boost/signal.hpp>
17 #include <osg/ref_ptr>
24 class WakeGeneratorParameters;
27 class TidalStreamWake;
36 class DtDynamicOceanObject;
38 class DtTritonDrawable;
39 class DtTritonEventProcessor;
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);
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;
200 virtual bool isOverWater(
const DtVector& localPosition);
206 void setIsVisible(
bool visible,
unsigned int frameNum);
226 void slot_postInitialize();
227 void slot_driverToBeDestroyed(
DtDriver& driver);