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(
86 virtual void saveEnvironment(
const std::string& name);
90 virtual void setEnvironment(
const std::string& name);
94 virtual void removeEnvironment(
const std::string& name);
97 virtual void renameEnvironment(
98 const std::string& oldName,
const std::string& newName);
101 virtual void getEnvironmentNames(std::vector<std::string>& names);
105 virtual void setDefaultEnvironmentName(
const std::string& name);
109 virtual std::string defaultEnvironmentName()
const;
123 virtual void setCloudCover(DtVrfWeatherCloudState cloudCover);
124 virtual DtVrfWeatherCloudState cloudCover()
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);
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 virtual void setUnderwaterVisibility(
float distance);
261 virtual float underwaterVisibility()
const;
266 virtual void setWaterSurfaceTransparency(
float normalizedValue);
267 virtual float waterSurfaceTransparency()
const;
272 virtual void setSurgeDepth(
float meters);
273 virtual float surgeDepth()
const;
278 virtual void setDepthOffset(
float meters);
279 virtual float depthOffset()
const;
284 virtual void setAmbientWaterTemperature(
float temperature);
285 virtual float ambientWaterTemperature()
const;
290 virtual void setWaterCurrentSpeed(
float speed);
291 virtual float waterCurrentSpeed()
const;
297 virtual void setWaterCurrentDirection(
float direction);
298 virtual float waterCurrentDirection()
const;
303 virtual void setTidalOffset(
float meters);
304 virtual float tidalOffset()
const;
309 virtual void setTidalDirection(
bool inOut);
310 virtual bool tidalDirection()
const;
315 virtual void setThermoclineDepth(
unsigned int layer,
float depth);
316 virtual float thermoclineDepth(
unsigned int layer)
const;
321 virtual void setThermoclinePermeability(
unsigned int layer,
float permeability);
322 virtual float thermoclinePermeability(
unsigned int layer)
const;
329 virtual float lightLevel()
const;
334 void loadDefaults(
bool loadOnlyFactorySettings =
false);
340 void saveAsDefaults();
345 virtual void exportSettings(
const std::string& filename);
346 virtual void importSettings(
const std::string& filename);
351 return mySettingsBackup;
356 return mySettingsBackup;
360 virtual bool getIsUnderwater()
const;
366 virtual bool isOverWater(
const DtVector& localPosition);
369 virtual float getMaximumWaveHeight();
372 virtual float seaLevel()
const;
379 virtual void deleteOceanManager();
386 virtual void slot_coordinateSystemChanged();
389 virtual void slot_oceanLayerAdded(
const DtOceanLayer& layer);
392 virtual void slot_oceanLayerToBeDeleted(
const DtOceanLayer& layer);
395 virtual void slot_oceanLayerSeaLevelChanged(
const DtOceanLayer& layer,
400 virtual void slot_oceanLayerLodRangeChanged(
const DtOceanLayer& layer,
404 virtual void slot_surgeDepthChanged(
double depth);
407 virtual void slot_depthOffsetChanged(
double offset);
410 virtual void updateEnvironment();
414 virtual void initializeOcean();
416 virtual void createCloudLayers();
418 virtual void processAddedCloudLayer(
const DtCloudLayer& layer,
421 virtual void autoSave();
425 virtual void sendMarineEnvironmentToOceanObject();
429 virtual void sendWeatherEnvironmentToSkyObject();
433 virtual void sendCloudCoverToSkyObject();
483 boost::signal<void (
unsigned int layerId,
488 boost::signal<void (unsigned int layerId, const DtCloudLayer& changedLayer)>
510 boost::signal<void (double normalizedValue)>
520 boost::signal<void (unsigned int layer, float depth)>
522 boost::signal<void (unsigned int layer, float permeability)>