VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
environmentalStateManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include <vlutil/vlString.h>
17 #include <matrix/vlVector.h>
18 #include <vrfutil/rwUUID.h>
19 
20 #include <set>
21 
22 class DtSimManager;
23 class DtVrfObject;
24 class DtObjectType;
28 class DtChord;
29 class DtSimMessage;
30 
38 {
39 private:
41 
44  orig);
47 
48 public:
49 
52 
54  virtual ~DtEnvironmentalStateManager();
55 
56  virtual bool init();
57 
58  virtual void tick();
59 
60  virtual DtSimManager* simManager();
61 
64  virtual bool globalEnvironmentSimulatedLocally() const;
65 
70  virtual bool startEnvironmentSimulationLocally();
71 
73  virtual DtSharedVrfObjectReference weatherObjectFor(const DtUUID& = DtUUID::nullUUID(),
74  bool* isGlobal = 0) const;
75 
78  virtual DtSharedVrfObjectReference weatherObjectFor(const DtVector& localPosition,
79  bool* isGlobal = 0) const;
80 
82  virtual DtSharedVrfObjectReference weatherObjectFor(const DtChord& localChord,
83  bool* isGlobal = 0) const;
84 
87  virtual std::vector<DtSharedVrfObjectReference> weatherObjectsFor(const DtChord& localChord) const;
88 
91 
92  virtual void setAirTurbidity(double factor, const DtUUID& weatherArea = DtUUID::nullUUID());
93  virtual double airTurbidity(const DtUUID& weatherArea) const;
94  virtual double airTurbidity(const DtVector&) const;
96 
98 
99  virtual void setAmbientAirTemperature(double temp, const DtUUID& weatherArea = DtUUID::nullUUID());
100  virtual double ambientAirTemperature(const DtUUID& weatherArea) const;
101  virtual double ambientAirTemperature(const DtVector&) const;
103 
105 
106  virtual void setCloudState(DtVrfWeatherCloudState current, const DtUUID& weatherArea = DtUUID::nullUUID());
107  virtual DtVrfWeatherCloudState cloudState(const DtUUID& weatherArea) const;
108  virtual DtVrfWeatherCloudState cloudState(const DtVector&) const;
110 
112 
113  virtual void setPrecipitationIntensity(double factor, const DtUUID& weatherArea = DtUUID::nullUUID());
114  virtual double precipitationIntensity(const DtUUID& weatherArea) const;
115  virtual double precipitationIntensity(const DtVector&) const;
117 
119 
120  virtual void setPrecipitationType(DtVrfWeatherPrecipitationType current, const DtUUID& weatherArea = DtUUID::nullUUID());
121  virtual DtVrfWeatherPrecipitationType precipitationType(const DtUUID& weatherArea) const;
122  virtual DtVrfWeatherPrecipitationType precipitationType(const DtVector&) const;
124 
126 
127  virtual void setWindSpeed(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
128  virtual double windSpeed(const DtUUID& weatherArea) const;
129  virtual double windSpeed(const DtVector&) const;
131 
133 
134  virtual void setWindDirection(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
135  virtual double windDirection(const DtUUID& weatherArea) const;
136  virtual double windDirection(const DtVector&) const;
138 
140 
141  virtual void setVisibility(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
142  virtual double visibility(const DtUUID& weatherArea) const;
143  virtual double visibility(const DtVector&) const;
144 
147  virtual double visibility(const DtChord&) const;
149 
154 
155  virtual double illumination(const DtVector& localPosition) const;
157 
160  virtual void setWeatherState(const DtChangeWeatherCommand& command);
161 
164  virtual void setUseDayNightIlluminationModel(const DtChangeTimeOfDayCommand& command);
165  virtual void setDateAndTimeOfDay(double secondsPastMidnight);
166  virtual void setDateAndTimeOfDay(const DtChangeTimeOfDayCommand& command);
167  virtual double timeOfDay() const;
168  virtual double dateAndTimeOfDay() const;
169 
171  virtual void setTimeOfDayAdvancementSpeed(double speed);
172  virtual void setTimeOfDayAdvancementSpeed(const DtChangeTimeOfDayCommand& command);
173  virtual double timeOfDayAdvancementSpeed() const;
174 
176 
177  virtual void setPriority(int p, const DtUUID& weatherArea = DtUUID::nullUUID());
178  virtual int priority(const DtUUID& weatherArea) const;
179  virtual int priority(const DtVector&) const;
181 
183 
184  virtual void setUnderwaterVisibility(double underwaterVisibility, const DtUUID& weatherArea = DtUUID::nullUUID());
185  virtual double underwaterVisibility(const DtUUID& weatherArea) const;
186  virtual double underwaterVisibility(const DtVector&) const;
188 
190 
191  virtual void setSurfaceTransparency(double transparency, const DtUUID& weatherArea = DtUUID::nullUUID());
192  virtual double surfaceTransparency(const DtUUID& weatherArea) const;
193  virtual double surfaceTransparency(const DtVector&) const;
195 
197 
198  virtual void setWaterCurrentSpeed(double waterCurrentSpeed, const DtUUID& weatherArea = DtUUID::nullUUID());
199  virtual double waterCurrentSpeed(const DtUUID& weatherArea) const;
200  virtual double waterCurrentSpeed(const DtVector&) const;
202 
204 
205  virtual void setWaterCurrentDirection(double waterCurrentDirection, const DtUUID& weatherArea = DtUUID::nullUUID());
206  virtual double waterCurrentDirection(const DtUUID& weatherArea) const;
207  virtual double waterCurrentDirection(const DtVector&) const;
209 
211 
212  virtual void setAmbientWaterTemperature(double waterTemperature, const DtUUID& weatherArea = DtUUID::nullUUID());
213  virtual double ambientWaterTemperature(const DtUUID& weatherArea) const;
214  virtual double ambientWaterTemperature(const DtVector&) const;
216 
218 
219  virtual void setTidalOffset(double tidalOffset, const DtUUID& weatherArea = DtUUID::nullUUID());
220  virtual double tidalOffset(const DtUUID& weatherArea) const;
221  virtual double tidalOffset(const DtVector&) const;
223 
227  virtual void setUseDayNightIlluminationModel(bool);
228  virtual bool useDayNightIlluminationModel() const;
230 
233 
234  virtual void setTidalDirection(bool tidalDirection, const DtUUID& weatherArea = DtUUID::nullUUID());
235  virtual bool tidalDirection(const DtUUID& weatherArea) const;
236  virtual bool tidalDirection(const DtVector&) const;
238 
240 
241  virtual void setSwellState(unsigned int state, const DtUUID& weatherArea = DtUUID::nullUUID());
242  virtual unsigned int swellState(const DtUUID& weatherArea) const;
243  virtual unsigned int swellState(const DtVector&) const;
245 
247 
248  virtual void setSwellStateDirection(double direction, const DtUUID& weatherArea = DtUUID::nullUUID());
249  virtual double swellStateDirection(const DtUUID& weatherArea) const;
250  virtual double swellStateDirection(const DtVector&) const;
252 
254 
255  virtual void setSeaState(unsigned int state, const DtUUID& weatherArea = DtUUID::nullUUID());
256  virtual unsigned int seaState(const DtUUID& weatherArea) const;
257  virtual unsigned int seaState(const DtVector&) const;
259 
261 
262  virtual void setSeaStateDirection(double direction, const DtUUID& weatherArea = DtUUID::nullUUID());
263  virtual double seaStateDirection(const DtUUID& weatherArea) const;
264  virtual double seaStateDirection(const DtVector&) const;
266 
268 
269  virtual void setWindDrivenSeaStateEnabled(bool b, const DtUUID& weatherArea = DtUUID::nullUUID());
270  virtual bool windDrivenSeaStateEnabled(const DtUUID& weatherArea) const;
271  virtual bool windDrivenSeaStateEnabled(const DtVector&) const;
273 
275 
276  virtual void setChoppiness(double choppiness, const DtUUID& weatherArea = DtUUID::nullUUID());
277  virtual double choppiness(const DtUUID& weatherArea) const;
278  virtual double choppiness(const DtVector&) const;
280 
282 
283  virtual void setSurgeDepth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
284  virtual double surgeDepth(const DtUUID& weatherArea) const;
285  virtual double surgeDepth(const DtVector&) const;
287 
290  virtual DtObjectType globalEnvironmentObjectType() const;
291 
294 
295  virtual void setThermoclineLayer1Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
296  virtual double thermoclineLayer1Depth(const DtUUID& weatherArea) const;
297  virtual double thermoclineLayer1Depth(const DtVector&) const;
298  virtual void setThermoclineLayer1Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
299  virtual double thermoclineLayer1Permeability(const DtUUID& weatherArea) const;
300  virtual double thermoclineLayer1Permeability(const DtVector&) const;
301  virtual void setThermoclineLayer2Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
302  virtual double thermoclineLayer2Depth(const DtUUID& weatherArea) const;
303  virtual double thermoclineLayer2Depth(const DtVector&) const;
304  virtual void setThermoclineLayer2Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
305  virtual double thermoclineLayer2Permeability(const DtUUID& weatherArea) const;
306  virtual double thermoclineLayer2Permeability(const DtVector&) const;
307  virtual void setThermoclineLayer3Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
308  virtual double thermoclineLayer3Depth(const DtUUID& weatherArea) const;
309  virtual double thermoclineLayer3Depth(const DtVector&) const;
310  virtual void setThermoclineLayer3Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
311  virtual double thermoclineLayer3Permeability(const DtUUID& weatherArea) const;
312  virtual double thermoclineLayer3Permeability(const DtVector&) const;
313  virtual void setThermoclineLayer4Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
314  virtual double thermoclineLayer4Depth(const DtUUID& weatherArea) const;
315  virtual double thermoclineLayer4Depth(const DtVector&) const;
316  virtual void setThermoclineLayer4Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
317  virtual double thermoclineLayer4Permeability(const DtUUID& weatherArea) const;
318  virtual double thermoclineLayer4Permeability(const DtVector&) const;
319  virtual void setThermoclineLayer5Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
320  virtual double thermoclineLayer5Depth(const DtUUID& weatherArea) const;
321  virtual double thermoclineLayer5Depth(const DtVector&) const;
322  virtual void setThermoclineLayer5Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
323  virtual double thermoclineLayer5Permeability(const DtUUID& weatherArea) const;
324  virtual double thermoclineLayer5Permeability(const DtVector&) const;
326 
327 protected:
328  static void objectAddedCallback(DtVrfObject* object, void* usr);
329  virtual void processObjectAdded(DtVrfObject* object);
330 
331  static void objectRemovedCallback(DtVrfObject* object, void* usr);
332  virtual void processObjectRemoved(DtVrfObject* object);
333 
337  virtual void createGlobalEnvironmentObject();
338 
340  virtual DtEnvironmentalStateSetter* createLocalEnvironmentalStateSetter();
342  virtual DtEnvironmentalStateSetter* createRemoteEnvironmentalStateSetter();
343 
344  static void changeWeatherPrioritiesCallback(DtSimMessage* msg, void* usr);
345  virtual void processChangeWeatherPriorities(DtSimMessage* msg);
346 
347 protected:
349 
352 
355 
357 
361 };
362 
363 

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)