15 #include <vrfExtObjects/vrfWeatherStateEnums.h>
16 #include <vrfExtObjects/vrfEnvironmentalWeatherStateRecord.h>
17 #include <vrfExtObjects/vrfSimulationDateTimeStateRecord.h>
18 #include <vrfExtObjects/controlObjectRepository.h>
19 #include <vlutil/vlString.h>
24 class DtReflectedEnvironmentProcessList;
25 class DtReflectedEnvironmentProcess;
26 class DtEnvironmentProcessRepository;
27 class DtWeatherObjectRepository;
30 class DtVrfSimulationDateTimeStateRecord;
58 DtReflectedEnvironmentProcessList* rel,
int sessionId);
63 bool reflectingCurrentWeatherState();
67 virtual void setAirTurbidity(
double value,
const DtString& weatherArea =
"");
69 virtual double airTurbidity(
const DtVector& geocentricLocation);
74 virtual void setAmbientAirTemperature(
double value,
const DtString& weatherArea =
"");
76 virtual double ambientAirTemperature(
const DtVector& geocentricLocation);
81 virtual void setCloudState(DtVrfWeatherCloudState,
const DtString& weatherArea =
"");
83 virtual DtVrfWeatherCloudState cloudState(
const DtVector& geocentricLocation);
88 virtual void setPrecipitationIntensity(
double value,
const DtString& weatherArea =
"");
90 virtual double precipitationIntensity(
const DtVector& geocentricLocation);
95 virtual void setPrecipitationType(DtVrfWeatherPrecipitationType,
const DtString& weatherArea =
"");
97 virtual DtVrfWeatherPrecipitationType precipitationType(
const DtVector& geocentricLocation);
102 virtual void setWindSpeed(
double value,
const DtString& weatherArea =
"");
104 virtual double windSpeed(
const DtVector& geocentricLocation);
109 virtual void setWindDirection(
double value,
const DtString& weatherArea =
"");
111 virtual double windDirection(
const DtVector& geocentricLocation);
116 virtual void setVisibility(
double value,
const DtString& weatherArea =
"");
118 virtual double visibility(
const DtVector& geocentricLocation);
124 virtual void setTimeOfDay(
double secondsPastMidnight);
126 virtual double timeOfDay();
132 virtual void setDateAndTimeOfDay(
double secondsPastUtc);
133 virtual void setDateAndTimeOfDay(
int year,
int month,
int day,
int hours,
int minutes,
int seconds);
136 virtual double dateAndTimeOfDay();
137 virtual void dateAndTimeOfDay(
int& year,
int& month,
int& day,
int& hours,
int& minutes,
int& seconds);
141 virtual void setUseDayNightIlluminationModel(
bool value);
145 virtual void setTimeOfDayAdvancementSpeed(
double speed);
147 virtual double timeOfDayAdvancementSpeed();
152 virtual void setUnderwaterVisibility(
double underwaterVisibility,
const DtString& weatherArea =
"");
153 virtual double underwaterVisibility(
const DtVector& geocentricLocation);
158 virtual void setSurfaceTransparency(
double transparency,
const DtString& weatherArea =
"");
159 virtual double surfaceTransparency(
const DtVector& geocentricLocation);
164 virtual void setWaterCurrentSpeed(
double waterCurrentSpeed,
const DtString& weatherArea =
"");
165 virtual double waterCurrentSpeed(
const DtVector& geocentricLocation);
170 virtual void setWaterCurrentDirection(
double waterCurrentDirection,
const DtString& weatherArea =
"");
171 virtual double waterCurrentDirection(
const DtVector& geocentricLocation);
176 virtual void setAmbientWaterTemperature(
double waterTemperature,
const DtString& weatherArea =
"");
177 virtual double ambientWaterTemperature(
const DtVector& geocentricLocation);
182 virtual void setTidalOffset(
double tidalOffset,
const DtString& weatherArea =
"");
183 virtual double tidalOffset(
const DtVector& geocentricLocation);
189 virtual void setTidalDirection(
bool tidalDirection,
const DtString& weatherArea =
"");
190 virtual bool tidalDirection(
const DtVector& geocentricLocation);
195 virtual void setSwellState(
unsigned int state,
const DtString& weatherArea =
"");
196 virtual unsigned int swellState(
const DtVector& geocentricLocation);
201 virtual void setSwellStateDirection(
double direction,
const DtString& weatherArea =
"");
202 virtual double swellStateDirection(
const DtVector& geocentricLocation);
207 virtual void setSeaState(
unsigned int douglasScale,
const DtString& weatherArea =
"");
208 virtual unsigned int seaState(
const DtVector& geocentricLocation);
213 virtual void setSeaStateDirection(
double radiansFromNorth,
const DtString& weatherArea =
"");
214 virtual double seaStateDirection(
const DtVector& geocentricLocation);
219 virtual void setWindDrivenSeaStateEnabled(
bool enabled,
const DtString& weatherArea =
"");
220 virtual bool windDrivenSeaStateEnabled(
const DtVector& geocentricLocation);
225 virtual void setChoppiness(
double choppiness,
const DtString& weatherArea =
"");
226 virtual double choppiness(
const DtVector& geocentricLocation);
231 virtual void setSurgeDepth(
double depth,
const DtString& weatherArea =
"");
232 virtual double surgeDepth(
const DtVector& geocentricLocation);
238 virtual void setThermoclineLayer1Depth(
double depth,
const DtString& weatherArea =
"");
239 virtual double thermoclineLayer1Depth(
const DtVector& geocentricLocation);
240 virtual void setThermoclineLayer1Permeability(
double depth,
const DtString& weatherArea =
"");
241 virtual double thermoclineLayer1Permeability(
const DtVector& geocentricLocation);
242 virtual void setThermoclineLayer2Depth(
double depth,
const DtString& weatherArea =
"");
243 virtual double thermoclineLayer2Depth(
const DtVector& geocentricLocation);
244 virtual void setThermoclineLayer2Permeability(
double depth,
const DtString& weatherArea =
"");
245 virtual double thermoclineLayer2Permeability(
const DtVector& geocentricLocation);
246 virtual void setThermoclineLayer3Depth(
double depth,
const DtString& weatherArea =
"");
247 virtual double thermoclineLayer3Depth(
const DtVector& geocentricLocation);
248 virtual void setThermoclineLayer3Permeability(
double depth,
const DtString& weatherArea =
"");
249 virtual double thermoclineLayer3Permeability(
const DtVector& geocentricLocation);
250 virtual void setThermoclineLayer4Depth(
double depth,
const DtString& weatherArea =
"");
251 virtual double thermoclineLayer4Depth(
const DtVector& geocentricLocation);
252 virtual void setThermoclineLayer4Permeability(
double depth,
const DtString& weatherArea =
"");
253 virtual double thermoclineLayer4Permeability(
const DtVector& geocentricLocation);
254 virtual void setThermoclineLayer5Depth(
double depth,
const DtString& weatherArea =
"");
255 virtual double thermoclineLayer5Depth(
const DtVector& geocentricLocation);
256 virtual void setThermoclineLayer5Permeability(
double depth,
const DtString& weatherArea =
"");
257 virtual double thermoclineLayer5Permeability(
const DtVector& geocentricLocation);
261 static void environmentProcessAddedCallback(
262 DtReflectedEnvironmentProcess* obj,
void* userData);
266 virtual void processEnvironmentProcessAdded(
267 DtReflectedEnvironmentProcess* obj);
270 static void environmentProcessRemovedCallback(
271 DtReflectedEnvironmentProcess* obj,
void* userData);
275 virtual void processEnvironmentProcessRemoved(
276 DtReflectedEnvironmentProcess* obj);
279 virtual double dT()
const;
288 virtual bool inside(
const DtVector&,
const DtControlObjectRepository::DtCOVertexList&)
const;
294 virtual bool updateGlobalEnvironment();
300 static void environmentProcessUpdatedCallback(DtReflectedEnvironmentProcess* e,
void* usr);
301 virtual void processUpdatedCallback(DtReflectedEnvironmentProcess* e);
307 typedef std::map<DtControlObjectRepository*, DtVrfEnvironmentalWeatherStateRecord*>
WeatherObjects;