25 #include <boost/signal.hpp>
26 #include <boost/unordered_map.hpp>
28 #include <matrix/vlVector.h>
35 class DtCloudLayerRecord;
36 class DtEnvironmentListRecord;
42 class DtAgentManagerInterface;
43 class DtSkyObjectAgent;
44 class DtDynamicOceanObjectAgent;
45 class DtEventQueueInterface;
46 class DtSharedSettingsManager;
73 virtual void setFromRecord(
90 virtual void setEnvironment(
const std::string& name);
94 virtual void removeEnvironment(
const std::string& name);
97 virtual void renameEnvironment(
101 virtual void getEnvironmentNames(std::vector<std::string>&
names);
105 virtual void setDefaultEnvironmentName(
const std::string& name);
109 virtual std::string defaultEnvironmentName()
const;
131 virtual int cloudLayerCount()
const;
135 virtual const DtCloudLayer& cloudLayer(
unsigned int layerId)
const;
138 virtual void setCloudLayer(
unsigned int layerId,
146 virtual void removeCloudLayer(
unsigned int layerId);
149 virtual void removeCloudLayers();
154 virtual void setCloudLayerEnabled(
unsigned int layerId,
bool enabled);
158 virtual bool useCustomCloudCover()
const;
159 virtual void setUseCustomCloudCover(
bool enabled);
164 virtual void setAirTurbidity(
float turbidity);
165 virtual float airTurbidity()
const;
170 virtual void setVisibleDistance(
float distance);
171 virtual float visibleDistance()
const;
182 virtual void setPrecipitationIntensity(
float intensity);
183 virtual float precipitationIntensity()
const;
188 virtual void setWindSpeed(
float speed);
189 virtual float windSpeed()
const;
194 virtual void setWindDirection(
float direction);
195 virtual float windDirection()
const;
200 virtual void setAmbientAirTemperature(
float temperature);
201 virtual float ambientAirTemperature()
const;
206 virtual void setFogHeight(
float height);
207 virtual float fogHeight()
const;
212 virtual void setFogColor(
const DtVector&
color);
213 virtual DtVector fogColor()
const;
218 virtual void setSeaState(
int state);
219 virtual int seaState()
const;
224 virtual void setSeaStateDirection(
float dir);
225 virtual float seaStateDirection()
const;
230 virtual void setWindDrivenSeaState(
bool enabled);
231 virtual bool windDrivenSeaState()
const;
236 virtual void setSwellState(
int state);
237 virtual int swellState()
const;
242 virtual void setSwellStateDirection(
float dir);
243 virtual float swellStateDirection()
const;
248 virtual void setWindFetch(
float distance);
249 virtual float windFetch()
const;
254 virtual void setSeaChoppiness(
float chop);
255 virtual float seaChoppiness()
const;
260 void setUnderwaterVisibilityEnabled(
bool enabled);
261 bool underwaterVisibilityEnabled()
const;
266 virtual void setUnderwaterVisibility(
float distance);
267 virtual float underwaterVisibility()
const;
272 virtual void setWaterSurfaceTransparency(
float normalizedValue);
273 virtual float waterSurfaceTransparency()
const;
278 virtual void setSurgeDepth(
float meters);
279 virtual float surgeDepth()
const;
284 virtual void setDepthOffset(
float meters);
285 virtual float depthOffset()
const;
290 virtual void setAmbientWaterTemperature(
float temperature);
291 virtual float ambientWaterTemperature()
const;
296 virtual void setWaterCurrentSpeed(
float speed);
297 virtual float waterCurrentSpeed()
const;
303 virtual void setWaterCurrentDirection(
float direction);
304 virtual float waterCurrentDirection()
const;
309 virtual void setTidalOffset(
float meters);
310 virtual float tidalOffset()
const;
315 virtual void setTidalDirection(
bool inOut);
316 virtual bool tidalDirection()
const;
321 virtual void setThermoclineDepth(
unsigned int layer,
float depth);
322 virtual float thermoclineDepth(
unsigned int layer)
const;
327 virtual void setThermoclinePermeability(
unsigned int layer,
float permeability);
328 virtual float thermoclinePermeability(
unsigned int layer)
const;
335 virtual float lightLevel()
const;
340 void loadDefaults(
bool loadOnlyFactorySettings =
false);
346 void saveAsDefaults();
351 virtual void exportSettings(
const std::string& filename);
352 virtual void importSettings(
const std::string& filename);
357 return mySettingsBackup;
362 return mySettingsBackup;
366 virtual bool getIsUnderwater()
const;
372 virtual bool isOverWater(
const DtVector& localPosition);
375 virtual float getMaximumWaveHeight();
378 virtual float seaLevel()
const;
385 virtual void deleteOceanManager();
392 virtual void slot_coordinateSystemChanged();
395 virtual void slot_oceanLayerAdded(
const DtOceanLayer& layer);
398 virtual void slot_oceanLayerToBeDeleted(
const DtOceanLayer& layer);
401 virtual void slot_oceanLayerSeaLevelChanged(
const DtOceanLayer& layer,
406 virtual void slot_oceanLayerLodRangeChanged(
const DtOceanLayer& layer,
410 virtual void slot_surgeDepthChanged(
double depth);
413 virtual void slot_depthOffsetChanged(
double offset);
416 virtual void updateEnvironment();
420 virtual void initializeOcean();
422 virtual void createCloudLayers();
424 virtual void processAddedCloudLayer(
const DtCloudLayer& layer,
427 virtual void autoSave();
431 virtual void sendMarineEnvironmentToOceanObject();
435 virtual void sendWeatherEnvironmentToSkyObject();
439 virtual void sendCloudCoverToSkyObject();
489 boost::signal<
void (
unsigned int layerId,
494 boost::signal<void (unsigned int layerId, const DtCloudLayer& changedLayer)>
517 boost::signal<void (double normalizedValue)>
527 boost::signal<void (unsigned int layer, float depth)>
529 boost::signal<void (unsigned int layer, float permeability)>