VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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>
21 
22 #include <set>
23 
24 class DtSimManager;
25 class DtVrfObject;
26 class DtObjectType;
30 class DtChord;
31 class DtSimMessage;
32 
40 {
41 private:
43 
46  orig);
49 
50 public:
51 
54 
56  virtual ~DtEnvironmentalStateManager();
57 
58  virtual bool init();
59 
60  virtual void tick();
61 
62  virtual DtSimManager* simManager();
63 
66  virtual bool globalEnvironmentSimulatedLocally() const;
67 
72  virtual bool startEnvironmentSimulationLocally();
73 
75  virtual DtSharedVrfObjectReference weatherObjectFor(const DtUUID& = DtUUID::nullUUID(),
76  bool* isGlobal = 0) const;
77 
80  virtual DtSharedVrfObjectReference weatherObjectFor(const DtVector& localPosition,
81  bool* isGlobal = 0) const;
82 
84  virtual DtSharedVrfObjectReference weatherObjectFor(const DtChord& localChord,
85  bool* isGlobal = 0) const;
86 
89  virtual std::vector<DtSharedVrfObjectReference> weatherObjectsFor(const DtChord& localChord) const;
90 
93 
94  virtual void setAirTurbidity(double factor, const DtUUID& weatherArea = DtUUID::nullUUID());
95  virtual double airTurbidity(const DtUUID& weatherArea) const;
96  virtual double airTurbidity(const DtVector&) const;
98 
100 
101  virtual void setAmbientAirTemperature(double temp, const DtUUID& weatherArea = DtUUID::nullUUID());
102  virtual double ambientAirTemperature(const DtUUID& weatherArea) const;
103  virtual double ambientAirTemperature(const DtVector&) const;
105 
107 
108  virtual void setCloudState(DtVrfWeatherCloudState current, const DtUUID& weatherArea = DtUUID::nullUUID());
109  virtual DtVrfWeatherCloudState cloudState(const DtUUID& weatherArea) const;
110  virtual DtVrfWeatherCloudState cloudState(const DtVector&) const;
112 
114 
115  virtual void setPrecipitationIntensity(double factor, const DtUUID& weatherArea = DtUUID::nullUUID());
116  virtual double precipitationIntensity(const DtUUID& weatherArea) const;
117  virtual double precipitationIntensity(const DtVector&) const;
119 
122 
123  virtual double precipitationIntensity(const DtChord&) const;
125 
127 
128  virtual void setPrecipitationType(DtVrfWeatherPrecipitationType current, const DtUUID& weatherArea = DtUUID::nullUUID());
129  virtual DtVrfWeatherPrecipitationType precipitationType(const DtUUID& weatherArea) const;
130  virtual DtVrfWeatherPrecipitationType precipitationType(const DtVector&) const;
132 
134 
135  virtual void setWindSpeed(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
136  virtual double windSpeed(const DtUUID& weatherArea) const;
137  virtual double windSpeed(const DtVector&) const;
139 
141 
142  virtual void setWindDirection(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
143  virtual double windDirection(const DtUUID& weatherArea) const;
144  virtual double windDirection(const DtVector&) const;
146 
148 
149  virtual void setVisibility(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
150  virtual double visibility(const DtUUID& weatherArea) const;
151  virtual double visibility(const DtVector&) const;
152 
155  virtual double visibility(const DtChord&) const;
157 
162 
163  virtual double illumination(const DtVector& localPosition) const;
165 
168  virtual void setWeatherState(const DtChangeWeatherCommand& command);
169 
172  virtual void setUseDayNightIlluminationModel(const DtChangeTimeOfDayCommand& command);
173  virtual void setDateAndTimeOfDay(double secondsPastMidnight);
174  virtual void setDateAndTimeOfDay(const DtChangeTimeOfDayCommand& command);
175  virtual double timeOfDay() const;
176  virtual double dateAndTimeOfDay() const;
177 
179  virtual void setTimeOfDayAdvancementSpeed(double speed);
180  virtual void setTimeOfDayAdvancementSpeed(const DtChangeTimeOfDayCommand& command);
181  virtual double timeOfDayAdvancementSpeed() const;
182 
184 
185  virtual void setPriority(int p, const DtUUID& weatherArea = DtUUID::nullUUID());
186  virtual int priority(const DtUUID& weatherArea) const;
187  virtual int priority(const DtVector&) const;
189 
191 
192  virtual void setUnderwaterVisibility(double underwaterVisibility, const DtUUID& weatherArea = DtUUID::nullUUID());
193  virtual double underwaterVisibility(const DtUUID& weatherArea) const;
194  virtual double underwaterVisibility(const DtVector&) const;
196 
198 
199  virtual void setSurfaceTransparency(double transparency, const DtUUID& weatherArea = DtUUID::nullUUID());
200  virtual double surfaceTransparency(const DtUUID& weatherArea) const;
201  virtual double surfaceTransparency(const DtVector&) const;
203 
205 
206  virtual void setWaterCurrentSpeed(double waterCurrentSpeed, const DtUUID& weatherArea = DtUUID::nullUUID());
207  virtual double waterCurrentSpeed(const DtUUID& weatherArea) const;
208  virtual double waterCurrentSpeed(const DtVector&) const;
210 
212 
213  virtual void setWaterCurrentDirection(double waterCurrentDirection, const DtUUID& weatherArea = DtUUID::nullUUID());
214  virtual double waterCurrentDirection(const DtUUID& weatherArea) const;
215  virtual double waterCurrentDirection(const DtVector&) const;
217 
219 
220  virtual void setAmbientWaterTemperature(double waterTemperature, const DtUUID& weatherArea = DtUUID::nullUUID());
221  virtual double ambientWaterTemperature(const DtUUID& weatherArea) const;
222  virtual double ambientWaterTemperature(const DtVector&) const;
224 
226 
227  virtual void setTidalOffset(double tidalOffset, const DtUUID& weatherArea = DtUUID::nullUUID());
228  virtual double tidalOffset(const DtUUID& weatherArea) const;
229  virtual double tidalOffset(const DtVector&) const;
231 
235  virtual void setUseDayNightIlluminationModel(bool);
236  virtual bool useDayNightIlluminationModel() const;
238 
241 
242  virtual void setTidalDirection(bool tidalDirection, const DtUUID& weatherArea = DtUUID::nullUUID());
243  virtual bool tidalDirection(const DtUUID& weatherArea) const;
244  virtual bool tidalDirection(const DtVector&) const;
246 
248 
249  virtual void setSwellState(unsigned int state, const DtUUID& weatherArea = DtUUID::nullUUID());
250  virtual unsigned int swellState(const DtUUID& weatherArea) const;
251  virtual unsigned int swellState(const DtVector&) const;
253 
255 
256  virtual void setSwellStateDirection(double direction, const DtUUID& weatherArea = DtUUID::nullUUID());
257  virtual double swellStateDirection(const DtUUID& weatherArea) const;
258  virtual double swellStateDirection(const DtVector&) const;
260 
262 
263  virtual void setSeaState(unsigned int state, const DtUUID& weatherArea = DtUUID::nullUUID());
264  virtual unsigned int seaState(const DtUUID& weatherArea) const;
265  virtual unsigned int seaState(const DtVector&) const;
267 
269 
270  virtual void setSeaStateDirection(double direction, const DtUUID& weatherArea = DtUUID::nullUUID());
271  virtual double seaStateDirection(const DtUUID& weatherArea) const;
272  virtual double seaStateDirection(const DtVector&) const;
274 
276 
277  virtual void setWindDrivenSeaStateEnabled(bool b, const DtUUID& weatherArea = DtUUID::nullUUID());
278  virtual bool windDrivenSeaStateEnabled(const DtUUID& weatherArea) const;
279  virtual bool windDrivenSeaStateEnabled(const DtVector&) const;
281 
283 
284  virtual void setChoppiness(double choppiness, const DtUUID& weatherArea = DtUUID::nullUUID());
285  virtual double choppiness(const DtUUID& weatherArea) const;
286  virtual double choppiness(const DtVector&) const;
288 
290 
291  virtual void setSurgeDepth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
292  virtual double surgeDepth(const DtUUID& weatherArea) const;
293  virtual double surgeDepth(const DtVector&) const;
295 
297 
298  virtual void setFogHeight(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
299  virtual double fogHeight(const DtUUID& weatherArea) const;
300  virtual double fogHeight(const DtVector&) const;
302 
304 
305  virtual void setFogColor(const DtVector& color, const DtUUID& weatherArea = DtUUID::nullUUID());
306  virtual DtVector fogColor(const DtUUID& weatherArea) const;
307  virtual DtVector fogColor(const DtVector&) const;
309 
312  virtual DtObjectType globalEnvironmentObjectType() const;
313 
316 
317  virtual void setThermoclineLayer1Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
318  virtual double thermoclineLayer1Depth(const DtUUID& weatherArea) const;
319  virtual double thermoclineLayer1Depth(const DtVector&) const;
320  virtual void setThermoclineLayer1Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
321  virtual double thermoclineLayer1Permeability(const DtUUID& weatherArea) const;
322  virtual double thermoclineLayer1Permeability(const DtVector&) const;
323  virtual void setThermoclineLayer2Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
324  virtual double thermoclineLayer2Depth(const DtUUID& weatherArea) const;
325  virtual double thermoclineLayer2Depth(const DtVector&) const;
326  virtual void setThermoclineLayer2Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
327  virtual double thermoclineLayer2Permeability(const DtUUID& weatherArea) const;
328  virtual double thermoclineLayer2Permeability(const DtVector&) const;
329  virtual void setThermoclineLayer3Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
330  virtual double thermoclineLayer3Depth(const DtUUID& weatherArea) const;
331  virtual double thermoclineLayer3Depth(const DtVector&) const;
332  virtual void setThermoclineLayer3Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
333  virtual double thermoclineLayer3Permeability(const DtUUID& weatherArea) const;
334  virtual double thermoclineLayer3Permeability(const DtVector&) const;
335  virtual void setThermoclineLayer4Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
336  virtual double thermoclineLayer4Depth(const DtUUID& weatherArea) const;
337  virtual double thermoclineLayer4Depth(const DtVector&) const;
338  virtual void setThermoclineLayer4Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
339  virtual double thermoclineLayer4Permeability(const DtUUID& weatherArea) const;
340  virtual double thermoclineLayer4Permeability(const DtVector&) const;
341  virtual void setThermoclineLayer5Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
342  virtual double thermoclineLayer5Depth(const DtUUID& weatherArea) const;
343  virtual double thermoclineLayer5Depth(const DtVector&) const;
344  virtual void setThermoclineLayer5Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
345  virtual double thermoclineLayer5Permeability(const DtUUID& weatherArea) const;
346  virtual double thermoclineLayer5Permeability(const DtVector&) const;
348 
352  virtual void createGlobalEnvironmentObject();
353 
354 protected:
355  static void objectAddedCallback(DtVrfObject* object, void* usr);
356  virtual void processObjectAdded(DtVrfObject* object);
357 
358  static void objectRemovedCallback(DtVrfObject* object, void* usr);
359  virtual void processObjectRemoved(DtVrfObject* object);
360 
362  virtual DtEnvironmentalStateSetter* createLocalEnvironmentalStateSetter();
364  virtual DtEnvironmentalStateSetter* createRemoteEnvironmentalStateSetter();
365 
366  static void changeWeatherPrioritiesCallback(DtSimMessage* msg, void* usr);
367  virtual void processChangeWeatherPriorities(DtSimMessage* msg);
368 
369  static void physicalWorldParametersChangedCallback(void* usr);
370  virtual void initializeIlluminationObjectsList();
371 
372  virtual const DtIlluminationObjectParameters& findBestMatch(const DtObjectType& objtype) const;
373 
374 protected:
376 
379 
382 
384 
388 
390 
391  std::map<DtObjectType, DtIlluminationObjectParameters> myIlluminationObjectTypes;
392 };
393 
394 

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)