VR-Vantage API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtEnvironment.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
16 #include <vrvCore/DtSkyObject.h>
18 
21 #include <vrvUtil/event_signal.h>
22 
24 
25 #include <boost/signal.hpp>
26 #include <boost/unordered_map.hpp>
27 
28 #include <matrix/vlVector.h>
29 
30 #include <string>
31 #include <vector>
32 
33 namespace makArchives
34 {
35  class DtCloudLayerRecord;
36  class DtEnvironmentListRecord;
37 }
38 
39 namespace makVrv
40 {
41  class DtDe;
42  class DtAgentManagerInterface;
43  class DtSkyObjectAgent;
44  class DtDynamicOceanObjectAgent;
45  class DtEventQueueInterface;
46  class DtSharedSettingsManager;
47  class DtOceanLayer;
48  class DtCloudLayer;
49 
55  {
56  public:
57 
59  DtEnvironment(DtDe& de, DtAgentManagerInterface& sceneInterface);
60 
62  virtual ~DtEnvironment();
63 
65  virtual void clear();
66 
69  virtual void getRecord(makArchives::DtEnvironmentRecord& record);
70 
73  virtual void setFromRecord(
74  const makArchives::DtEnvironmentRecord& record);
75 
77  virtual makArchives::DtEnvironmentRecord environmentConditionRecord(const std::string&);
78 
86  virtual void saveEnvironment(const std::string& name);
87 
90  virtual void setEnvironment(const std::string& name);
91 
94  virtual void removeEnvironment(const std::string& name);
95 
97  virtual void renameEnvironment(
98  const std::string& oldName, const std::string& newName);
99 
101  virtual void getEnvironmentNames(std::vector<std::string>& names);
102 
105  virtual void setDefaultEnvironmentName(const std::string& name);
106 
109  virtual std::string defaultEnvironmentName() const;
111 
113 
114 
115 
116 
117 
118 
119 
120 
121 
122 
123  virtual void setCloudCover(DtVrfWeatherCloudState cloudCover);
124  virtual DtVrfWeatherCloudState cloudCover() const;
126 
128 
129 
131  virtual int cloudLayerCount() const;
132 
135  virtual const DtCloudLayer& cloudLayer(unsigned int layerId) const;
136 
138  virtual void setCloudLayer(unsigned int layerId,
139  const DtCloudLayer& layer);
141 
143  virtual void addCloudLayer(const DtCloudLayer& layer);
144 
146  virtual void removeCloudLayer(unsigned int layerId);
147 
149  virtual void removeCloudLayers();
150 
154  virtual void setCloudLayerEnabled(unsigned int layerId, bool enabled);
155 
157 
158  virtual bool useCustomCloudCover() const;
159  virtual void setUseCustomCloudCover(bool enabled);
161 
163 
164  virtual void setAirTurbidity(float turbidity);
165  virtual float airTurbidity() const;
167 
169 
170  virtual void setVisibleDistance(float distance);
171  virtual float visibleDistance() const;
173 
175 
176  virtual void setPrecipitationType(PrecipitationType type);
177  virtual PrecipitationType precipitationType() const;
179 
181 
182  virtual void setPrecipitationIntensity(float intensity);
183  virtual float precipitationIntensity() const;
185 
187 
188  virtual void setWindSpeed(float speed);
189  virtual float windSpeed() const;
191 
193 
194  virtual void setWindDirection(float direction);
195  virtual float windDirection() const;
197 
199 
200  virtual void setAmbientAirTemperature(float temperature);
201  virtual float ambientAirTemperature() const;
203 
205 
206  virtual void setFogHeight(float height);
207  virtual float fogHeight() const;
209 
211 
212  virtual void setFogColor(const DtVector& color);
213  virtual DtVector fogColor() const;
215 
217 
218  virtual void setSeaState(int state);
219  virtual int seaState() const;
221 
223 
224  virtual void setSeaStateDirection(float dir);
225  virtual float seaStateDirection() const;
227 
229 
230  virtual void setWindDrivenSeaState(bool enabled);
231  virtual bool windDrivenSeaState() const;
233 
235 
236  virtual void setSwellState(int state);
237  virtual int swellState() const;
239 
241 
242  virtual void setSwellStateDirection(float dir);
243  virtual float swellStateDirection() const;
245 
247 
248  virtual void setWindFetch(float distance);
249  virtual float windFetch() const;
251 
253 
254  virtual void setSeaChoppiness(float chop);
255  virtual float seaChoppiness() const;
257 
260  void setUnderwaterVisibilityEnabled(bool enabled);
261  bool underwaterVisibilityEnabled() const;
263 
265 
266  virtual void setUnderwaterVisibility(float distance);
267  virtual float underwaterVisibility() const;
269 
271 
272  virtual void setWaterSurfaceTransparency(float normalizedValue);
273  virtual float waterSurfaceTransparency() const;
275 
277 
278  virtual void setSurgeDepth(float meters);
279  virtual float surgeDepth() const;
281 
283 
284  virtual void setDepthOffset(float meters);
285  virtual float depthOffset() const;
287 
289 
290  virtual void setAmbientWaterTemperature(float temperature);
291  virtual float ambientWaterTemperature() const;
293 
295 
296  virtual void setWaterCurrentSpeed(float speed);
297  virtual float waterCurrentSpeed() const;
299 
301 
302 
303  virtual void setWaterCurrentDirection(float direction);
304  virtual float waterCurrentDirection() const;
306 
308 
309  virtual void setTidalOffset(float meters);
310  virtual float tidalOffset() const;
312 
314 
315  virtual void setTidalDirection(bool inOut);
316  virtual bool tidalDirection() const;
318 
320 
321  virtual void setThermoclineDepth(unsigned int layer, float depth);
322  virtual float thermoclineDepth(unsigned int layer) const;
324 
326 
327  virtual void setThermoclinePermeability(unsigned int layer, float permeability);
328  virtual float thermoclinePermeability(unsigned int layer) const;
330 
335  virtual float lightLevel() const;
336 
340  void loadDefaults(bool loadOnlyFactorySettings = false);
341 
343  void restore();
344 
346  void saveAsDefaults();
348 
350 
351  virtual void exportSettings(const std::string& filename);
352  virtual void importSettings(const std::string& filename);
354 
355  const DtSettingsBackup* settingsBackup() const
356  {
357  return mySettingsBackup;
358  }
359 
360  DtSettingsBackup* settingsBackup()
361  {
362  return mySettingsBackup;
363  }
364 
366  virtual bool getIsUnderwater() const;
367 
372  virtual bool isOverWater(const DtVector& localPosition);
373 
375  virtual float getMaximumWaveHeight();
376 
378  virtual float seaLevel() const;
379 
382  virtual void setOceanManager(DtOceanStateInterface* oceanManager);
383 
385  virtual void deleteOceanManager();
386 
387  protected:
388 
389  typedef std::vector<DtCloudLayer> CloudLayersVector;
390 
392  virtual void slot_coordinateSystemChanged();
393 
395  virtual void slot_oceanLayerAdded(const DtOceanLayer& layer);
396 
398  virtual void slot_oceanLayerToBeDeleted(const DtOceanLayer& layer);
399 
401  virtual void slot_oceanLayerSeaLevelChanged(const DtOceanLayer& layer,
402  double seaLevel);
403 
406  virtual void slot_oceanLayerLodRangeChanged(const DtOceanLayer& layer,
407  int range);
408 
410  virtual void slot_surgeDepthChanged(double depth);
411 
413  virtual void slot_depthOffsetChanged(double offset);
414 
416  virtual void updateEnvironment();
417 
420  virtual void initializeOcean();
421 
422  virtual void createCloudLayers();
423 
424  virtual void processAddedCloudLayer(const DtCloudLayer& layer,
425  int cloudIndex);
426 
427  virtual void autoSave();
428 
431  virtual void sendMarineEnvironmentToOceanObject();
432 
435  virtual void sendWeatherEnvironmentToSkyObject();
436 
439  virtual void sendCloudCoverToSkyObject();
440 
441  protected:
444 
445 
446  // makArchives::DtEnvironmentListRecord* mySettings;
447 
452 
453  // This is an env record that reflects our current settings
455 
456  // This is an env list that reflects saved settings
458 
459  // This is the cloud layers currently in use, whether custom or
460  // from the sky conditions manager
462 
463  // This is an interface to allow vrvOsg to query specific
464  // vrvTriton functions without an explicit dependency
466  };
467 
471  {
472  public:
473 
475  static DtEnvironmentSignaler& instance(DtDe& de);
476 
478  virtual ~DtEnvironmentSignaler();
479 
480  //Signaled when any of the atmospheric parameters change.
481  boost::signal<void ()> signal_atmosphericParametersChanged;
482 
483  //Signaled when any of the precipitation parameters change.
484  boost::signal<void ()> signal_precipitationSettingsChanged;
485 
486  //Signaled when cloud cover changes
487  boost::signal<void (DtVrfWeatherCloudState)> signal_cloudCoverChanged;
488 
489  boost::signal<void (unsigned int layerId,
491 
492  boost::signal<void (unsigned int layerId)> signal_cloudLayerToBeDestroyed;
493 
494  boost::signal<void (unsigned int layerId, const DtCloudLayer& changedLayer)>
496 
497  boost::signal<void (float height)> signal_fogHeightChanged;
498 
499  boost::signal<void (const DtVector& color)> signal_fogColorChanged;
500 
501  //Signaled when air parameters change.
502  boost::signal<void (float speed)> signal_windSpeedChanged;
503 
504  boost::signal<void (float direction)> signal_windDirectionChanged;
505  boost::signal<void (float celsius)> signal_ambientAirTemperatureChanged;
506 
507  //Signaled when marine states change.
508  boost::signal<void (unsigned int seastate)> signal_seaStateChanged;
509  boost::signal<void (float radians)> signal_seaStateDirectionChanged;
510  boost::signal<void (bool enabled)> signal_windDrivenSeaStateChanged;
511  boost::signal<void (unsigned int swellstate)> signal_swellStateChanged;
512  boost::signal<void (float radians)> signal_swellStateDirectionChanged;
513  boost::signal<void (float distance)> signal_windFetchChanged;
514  boost::signal<void (float chop)> signal_seaChoppinessChanged;
515  boost::signal<void (bool enable)> signal_underwaterVisibilityEnabledChanged;
516  boost::signal<void (double meters)> signal_underwaterVisibilityChanged;
517  boost::signal<void (double normalizedValue)>
519  boost::signal<void (double meters)> signal_surgeDepthChanged;
520  boost::signal<void (double meters)> signal_depthOffsetChanged;
521 
522  boost::signal<void (float celsius)> signal_ambientWaterTemperatureChanged;
523  boost::signal<void (float speed)> signal_waterCurrentSpeedChanged;
524  boost::signal<void (float direction)> signal_waterCurrentDirectionChanged;
525  boost::signal<void (float meters)> signal_tidalOffsetChanged;
526  boost::signal<void (bool inOut)> signal_tidalDirectionChanged;
527  boost::signal<void (unsigned int layer, float depth)>
529  boost::signal<void (unsigned int layer, float permeability)>
531 
532  protected:
534  };
535 
540  {
541  public:
544  static DtWeatherProcessorSignaler& instance(const DtSharedSettingsManager& ssm);
545 
548  static DtWeatherProcessorSignaler& instance(DtEventQueueInterface& eqi);
549 
553  static DtWeatherProcessorSignaler* findInstance(DtEventQueueInterface* eqi);
554 
556  virtual ~DtWeatherProcessorSignaler();
557 
559 
560  protected:
562 
563  private:
566  };
567 
569 }


Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)