14 #include <vlutil/vlString.h>
18 #include <matrix/vlVector.h>
68 virtual bool globalEnvironmentSimulatedLocally()
const;
74 virtual bool startEnvironmentSimulationLocally();
78 bool* isGlobal = 0)
const;
83 bool* isGlobal = 0)
const;
87 virtual std::vector<DtSharedVrfObjectReference> weatherObjectsFor(
const DtChord& localChord)
const;
91 bool* isGlobal = 0)
const;
103 virtual std::vector<DtSharedVrfObjectReference> cloudLayersFor(
const DtChord& localChord)
const;
106 virtual std::vector<DtSharedVrfObjectReference> cloudLayers()
const;
112 virtual void setCloudAltitude(
double,
const DtUUID& cloudLayer);
113 virtual double cloudAltitude(
const DtUUID& cloudLayer)
const;
114 virtual double cloudAltitude(
const DtVector& cloudLayer)
const;
116 virtual void setCloudThickness(
double,
const DtUUID& cloudLayer);
117 virtual double cloudThickness(
const DtUUID& cloudLayer)
const;
118 virtual double cloudThickness(
const DtVector& cloudLayer)
const;
120 virtual void setCornerRadius(
double,
const DtUUID& cloudLayer);
121 virtual double cornerRadius(
const DtUUID& cloudLayer)
const;
122 virtual double cornerRadius(
const DtVector& cloudLayer)
const;
124 virtual void setCloudDensity(
double,
const DtUUID& cloudLayer);
125 virtual double cloudDensity(
const DtUUID& cloudLayer)
const;
126 virtual double cloudDensity(
const DtVector& cloudLayer)
const;
128 virtual void setCloudBox(
const DtVector& center,
double width,
double length,
const DtUUID& cloudLayer);
129 virtual void cloudBox(
const DtUUID& cloudLayer,
DtVector& center,
double& width,
double& length)
const;
130 virtual void cloudBox(
const DtVector& cloudLayer,
DtVector& center,
double& width,
double& length)
const;
142 virtual double airTurbidity(
const DtUUID& weatherArea)
const;
143 virtual double airTurbidity(
const DtVector&)
const;
149 virtual double ambientAirTemperature(
const DtUUID& weatherArea)
const;
150 virtual double ambientAirTemperature(
const DtVector&)
const;
163 virtual double precipitationIntensity(
const DtUUID& weatherArea)
const;
164 virtual double precipitationIntensity(
const DtVector&)
const;
170 virtual double precipitationIntensity(
const DtChord&)
const;
183 virtual double windSpeed(
const DtUUID& weatherArea)
const;
184 virtual double windSpeed(
const DtVector&)
const;
190 virtual double windDirection(
const DtUUID& weatherArea)
const;
191 virtual double windDirection(
const DtVector&)
const;
197 virtual double visibility(
const DtUUID& weatherArea)
const;
198 virtual double visibility(
const DtVector&)
const;
202 virtual double visibility(
const DtChord&)
const;
207 virtual double illumination(
const DtVector& localPosition)
const;
212 virtual double expectedIllumination(
const DtVector& localPosition,
double dateAndTime)
const;
221 virtual void setDateAndTimeOfDay(
double secondsPastMidnight);
223 virtual double timeOfDay()
const;
224 virtual double dateAndTimeOfDay()
const;
227 virtual void setTimeOfDayAdvancementSpeed(
double speed);
229 virtual double timeOfDayAdvancementSpeed()
const;
234 virtual int priority(
const DtUUID& weatherArea)
const;
235 virtual int priority(
const DtVector&)
const;
240 virtual void setUnderwaterVisibility(
double underwaterVisibility,
const DtUUID& weatherArea =
DtUUID::nullUUID());
241 virtual double underwaterVisibility(
const DtUUID& weatherArea)
const;
242 virtual double underwaterVisibility(
const DtVector&)
const;
248 virtual double surfaceTransparency(
const DtUUID& weatherArea)
const;
249 virtual double surfaceTransparency(
const DtVector&)
const;
254 virtual void setWaterCurrentSpeed(
double waterCurrentSpeed,
const DtUUID& weatherArea =
DtUUID::nullUUID());
255 virtual double waterCurrentSpeed(
const DtUUID& weatherArea)
const;
256 virtual double waterCurrentSpeed(
const DtVector&)
const;
261 virtual void setWaterCurrentDirection(
double waterCurrentDirection,
const DtUUID& weatherArea =
DtUUID::nullUUID());
262 virtual double waterCurrentDirection(
const DtUUID& weatherArea)
const;
263 virtual double waterCurrentDirection(
const DtVector&)
const;
268 virtual void setAmbientWaterTemperature(
double waterTemperature,
const DtUUID& weatherArea =
DtUUID::nullUUID());
269 virtual double ambientWaterTemperature(
const DtUUID& weatherArea)
const;
270 virtual double ambientWaterTemperature(
const DtVector&)
const;
276 virtual double tidalOffset(
const DtUUID& weatherArea)
const;
277 virtual double tidalOffset(
const DtVector&)
const;
283 virtual void setUseDayNightIlluminationModel(
bool);
284 virtual bool useDayNightIlluminationModel()
const;
291 virtual bool tidalDirection(
const DtUUID& weatherArea)
const;
292 virtual bool tidalDirection(
const DtVector&)
const;
298 virtual unsigned int swellState(
const DtUUID& weatherArea)
const;
299 virtual unsigned int swellState(
const DtVector&)
const;
305 virtual double swellStateDirection(
const DtUUID& weatherArea)
const;
306 virtual double swellStateDirection(
const DtVector&)
const;
312 virtual unsigned int seaState(
const DtUUID& weatherArea)
const;
313 virtual unsigned int seaState(
const DtVector&)
const;
319 virtual double seaStateDirection(
const DtUUID& weatherArea)
const;
320 virtual double seaStateDirection(
const DtVector&)
const;
326 virtual bool windDrivenSeaStateEnabled(
const DtUUID& weatherArea)
const;
327 virtual bool windDrivenSeaStateEnabled(
const DtVector&)
const;
333 virtual double choppiness(
const DtUUID& weatherArea)
const;
334 virtual double choppiness(
const DtVector&)
const;
340 virtual double surgeDepth(
const DtUUID& weatherArea)
const;
341 virtual double surgeDepth(
const DtVector&)
const;
347 virtual double fogHeight(
const DtUUID& weatherArea)
const;
348 virtual double fogHeight(
const DtVector&)
const;
360 virtual DtObjectType globalEnvironmentObjectType()
const;
366 virtual double thermoclineLayer1Depth(
const DtUUID& weatherArea)
const;
367 virtual double thermoclineLayer1Depth(
const DtVector&)
const;
368 virtual void setThermoclineLayer1Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
369 virtual double thermoclineLayer1Permeability(
const DtUUID& weatherArea)
const;
370 virtual double thermoclineLayer1Permeability(
const DtVector&)
const;
372 virtual double thermoclineLayer2Depth(
const DtUUID& weatherArea)
const;
373 virtual double thermoclineLayer2Depth(
const DtVector&)
const;
374 virtual void setThermoclineLayer2Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
375 virtual double thermoclineLayer2Permeability(
const DtUUID& weatherArea)
const;
376 virtual double thermoclineLayer2Permeability(
const DtVector&)
const;
378 virtual double thermoclineLayer3Depth(
const DtUUID& weatherArea)
const;
379 virtual double thermoclineLayer3Depth(
const DtVector&)
const;
380 virtual void setThermoclineLayer3Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
381 virtual double thermoclineLayer3Permeability(
const DtUUID& weatherArea)
const;
382 virtual double thermoclineLayer3Permeability(
const DtVector&)
const;
384 virtual double thermoclineLayer4Depth(
const DtUUID& weatherArea)
const;
385 virtual double thermoclineLayer4Depth(
const DtVector&)
const;
386 virtual void setThermoclineLayer4Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
387 virtual double thermoclineLayer4Permeability(
const DtUUID& weatherArea)
const;
388 virtual double thermoclineLayer4Permeability(
const DtVector&)
const;
390 virtual double thermoclineLayer5Depth(
const DtUUID& weatherArea)
const;
391 virtual double thermoclineLayer5Depth(
const DtVector&)
const;
392 virtual void setThermoclineLayer5Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
393 virtual double thermoclineLayer5Permeability(
const DtUUID& weatherArea)
const;
394 virtual double thermoclineLayer5Permeability(
const DtVector&)
const;
400 virtual void createGlobalEnvironmentObject();
403 static void objectAddedCallback(
DtVrfObject*
object,
void* usr);
404 virtual void processObjectAdded(
DtVrfObject*
object);
406 static void objectRemovedCallback(
DtVrfObject*
object,
void* usr);
407 virtual void processObjectRemoved(
DtVrfObject*
object);
414 static void changeWeatherPrioritiesCallback(
DtSimMessage* msg,
void* usr);
415 virtual void processChangeWeatherPriorities(
DtSimMessage* msg);
417 static void physicalWorldParametersChangedCallback(
void* usr);
418 virtual void initializeIlluminationObjectsList();