24 #include <boost/signal.hpp>
25 #include <boost/unordered_map.hpp>
27 #include <matrix/vlVector.h>
34 class DtCloudLayerRecord;
35 class DtEnvironmentListRecord;
41 class DtAgentManagerInterface;
42 class DtSkyObjectAgent;
43 class DtDynamicOceanObjectAgent;
44 class DtForestEnvControllerAgent;
45 class DtEventQueueInterface;
46 class DtSharedSettingsManager;
73 virtual void setFromRecord(
87 virtual void setEnvironment(
const std::string& name);
91 virtual void removeEnvironment(
const std::string& name);
94 virtual void renameEnvironment(
98 virtual void getEnvironmentNames(std::vector<std::string>&
names);
102 virtual void setDefaultEnvironmentName(
const std::string& name);
106 virtual std::string defaultEnvironmentName()
const;
128 virtual int cloudLayerCount()
const;
132 virtual const DtCloudLayer& cloudLayer(
unsigned int layerId)
const;
135 virtual void setCloudLayer(
unsigned int layerId,
143 virtual void removeCloudLayer(
unsigned int layerId);
146 virtual void removeCloudLayers();
151 virtual void setCloudLayerEnabled(
unsigned int layerId,
bool enabled);
155 virtual bool useCustomCloudCover()
const;
156 virtual void setUseCustomCloudCover(
bool enabled);
161 virtual void setAirTurbidity(
float turbidity);
162 virtual float airTurbidity()
const;
167 virtual void setVisibleDistance(
float distance);
168 virtual float visibleDistance()
const;
179 virtual void setPrecipitationIntensity(
float intensity);
180 virtual float precipitationIntensity()
const;
185 virtual void setWindSpeed(
float speed);
186 virtual float windSpeed()
const;
191 virtual void setWindDirection(
float direction);
192 virtual float windDirection()
const;
197 virtual void setAmbientAirTemperature(
float temperature);
198 virtual float ambientAirTemperature()
const;
203 virtual void setFogHeight(
float height);
204 virtual float fogHeight()
const;
209 virtual void setFogColor(
const DtVector&
color);
210 virtual DtVector fogColor()
const;
215 virtual void setSeaState(
int state);
216 virtual int seaState()
const;
221 virtual void setSeaStateDirection(
float dir);
222 virtual float seaStateDirection()
const;
227 virtual void setWindDrivenSeaState(
bool enabled);
228 virtual bool windDrivenSeaState()
const;
233 virtual void setSwellState(
int state);
234 virtual int swellState()
const;
239 virtual void setSwellStateDirection(
float dir);
240 virtual float swellStateDirection()
const;
245 virtual void setWindFetch(
float distance);
246 virtual float windFetch()
const;
251 virtual void setSeaChoppiness(
float chop);
252 virtual float seaChoppiness()
const;
257 virtual void setUnderwaterVisibility(
float distance);
258 virtual float underwaterVisibility()
const;
263 virtual void setWaterSurfaceTransparency(
float normalizedValue);
264 virtual float waterSurfaceTransparency()
const;
269 virtual void setSurgeDepth(
float meters);
270 virtual float surgeDepth()
const;
275 virtual void setDepthOffset(
float meters);
276 virtual float depthOffset()
const;
281 virtual void setAmbientWaterTemperature(
float temperature);
282 virtual float ambientWaterTemperature()
const;
287 virtual void setWaterCurrentSpeed(
float speed);
288 virtual float waterCurrentSpeed()
const;
294 virtual void setWaterCurrentDirection(
float direction);
295 virtual float waterCurrentDirection()
const;
300 virtual void setTidalOffset(
float meters);
301 virtual float tidalOffset()
const;
306 virtual void setTidalDirection(
bool inOut);
307 virtual bool tidalDirection()
const;
312 virtual void setThermoclineDepth(
unsigned int layer,
float depth);
313 virtual float thermoclineDepth(
unsigned int layer)
const;
318 virtual void setThermoclinePermeability(
unsigned int layer,
float permeability);
319 virtual float thermoclinePermeability(
unsigned int layer)
const;
325 void loadDefaults(
bool loadOnlyFactorySettings =
false);
331 void saveAsDefaults();
336 virtual void exportSettings(
const std::string& filename);
337 virtual void importSettings(
const std::string& filename);
342 return mySettingsBackup;
347 return mySettingsBackup;
355 virtual void slot_coordinateSystemChanged();
358 virtual void slot_oceanLayerAdded(
const DtOceanLayer& layer);
361 virtual void slot_oceanLayerToBeDeleted(
const DtOceanLayer& layer);
364 virtual void slot_oceanLayerSeaLevelChanged(
const DtOceanLayer& layer,
369 virtual void slot_oceanLayerLodRangeChanged(
const DtOceanLayer& layer,
373 virtual void slot_surgeDepthChanged(
double depth);
376 virtual void slot_depthOffsetChanged(
double offset);
379 virtual void updateEnvironment();
383 virtual void initializeOcean();
385 virtual void createCloudLayers();
387 virtual void processAddedCloudLayer(
const DtCloudLayer& layer,
390 virtual void autoSave();
394 virtual void sendMarineEnvironmentToOceanObject();
398 virtual void sendWeatherEnvironmentToSkyObject();
402 virtual void sendCloudCoverToSkyObject();
448 boost::signal<
void (
unsigned int layerId,
453 boost::signal<void (unsigned int layerId, const DtCloudLayer& changedLayer)>
475 boost::signal<void (double normalizedValue)>
485 boost::signal<void (unsigned int layer, float depth)>
487 boost::signal<void (unsigned int layer, float permeability)>