VR-Vantage 2.2 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 
18 
20 #include <vrvUtil/event_signal.h>
21 
22 namespace makArchives
23 {
24  class DtCloudLayerRecord;
25  class DtEnvironmentListRecord;
26 }
27 
28 namespace makVrv
29 {
30  class DtDe;
31  class DtAgentManagerInterface;
32  class DtSkyObjectAgent;
33  class DtDynamicOceanObjectAgent;
34  class DtEventQueueInterface;
35  class DtSharedSettingsManager;
36  class DtOceanLayer;
37  class DtCloudLayer;
38  class DtOceanStateInterface;
39 
45  {
46  public:
47 
49  DtEnvironment(DtDe& de, DtAgentManagerInterface& sceneInterface);
50 
52  virtual ~DtEnvironment();
53 
55  virtual void clear();
56 
59  virtual void getRecord(makArchives::DtEnvironmentRecord& record);
60 
63  virtual void setFromRecord(
64  const makArchives::DtEnvironmentRecord& record);
65 
67  virtual makArchives::DtEnvironmentRecord environmentConditionRecord(const std::string&);
68 
76  virtual void saveEnvironment(const std::string& name);
77 
80  virtual void setEnvironment(const std::string& name);
81 
84  virtual void removeEnvironment(const std::string& name);
85 
87  virtual void renameEnvironment(
88  const std::string& oldName, const std::string& newName);
89 
91  virtual void getEnvironmentNames(std::vector<std::string>& names);
92 
95  virtual void setDefaultEnvironmentName(const std::string& name);
96 
99  virtual std::string defaultEnvironmentName() const;
101 
103 
104 
105 
106 
107 
108 
109 
110 
111 
112 
113  virtual void setCloudCover(DtVrfWeatherCloudState cloudCover);
114  virtual DtVrfWeatherCloudState cloudCover() const;
116 
118 
119 
121  virtual int cloudLayerCount() const;
122 
125  virtual const DtCloudLayer& cloudLayer(unsigned int layerId) const;
126 
128  virtual void setCloudLayer(unsigned int layerId,
129  const DtCloudLayer& layer);
131 
133  virtual void addCloudLayer(const DtCloudLayer& layer);
134 
136  virtual void removeCloudLayer(unsigned int layerId);
137 
139  virtual void removeCloudLayers();
140 
144  virtual void setCloudLayerEnabled(unsigned int layerId, bool enabled);
145 
147 
148  virtual bool useCustomCloudCover() const;
149  virtual void setUseCustomCloudCover(bool enabled);
151 
153 
154  virtual void setAirTurbidity(float turbidity);
155  virtual float airTurbidity() const;
157 
159 
160  virtual void setVisibleDistance(float distance);
161  virtual float visibleDistance() const;
163 
165 
166  virtual void setPrecipitationType(PrecipitationType type);
167  virtual PrecipitationType precipitationType() const;
169 
171 
172  virtual void setPrecipitationIntensity(float intensity);
173  virtual float precipitationIntensity() const;
175 
177 
178  virtual void setWindSpeed(float speed);
179  virtual float windSpeed() const;
181 
183 
184  virtual void setWindDirection(float direction);
185  virtual float windDirection() const;
187 
189 
190  virtual void setAmbientAirTemperature(float temperature);
191  virtual float ambientAirTemperature() const;
193 
195 
196  virtual void setFogHeight(float height);
197  virtual float fogHeight() const;
199 
201 
202  virtual void setFogColor(const DtVector& color);
203  virtual DtVector fogColor() const;
205 
207 
208  virtual void setSeaState(int state);
209  virtual int seaState() const;
211 
213 
214  virtual void setSeaStateDirection(float dir);
215  virtual float seaStateDirection() const;
217 
219 
220  virtual void setWindDrivenSeaState(bool enabled);
221  virtual bool windDrivenSeaState() const;
223 
225 
226  virtual void setSwellState(int state);
227  virtual int swellState() const;
229 
231 
232  virtual void setSwellStateDirection(float dir);
233  virtual float swellStateDirection() const;
235 
237 
238  virtual void setWindFetch(float distance);
239  virtual float windFetch() const;
241 
243 
244  virtual void setSeaChoppiness(float chop);
245  virtual float seaChoppiness() const;
247 
250  void setUnderwaterVisibilityEnabled(bool enabled);
251  bool underwaterVisibilityEnabled() const;
253 
255 
256  virtual void setUnderwaterVisibility(float distance);
257  virtual float underwaterVisibility() const;
259 
261 
262  virtual void setWaterSurfaceTransparency(float normalizedValue);
263  virtual float waterSurfaceTransparency() const;
265 
267 
268  virtual void setSurgeDepth(float meters);
269  virtual float surgeDepth() const;
271 
273 
274  virtual void setDepthOffset(float meters);
275  virtual float depthOffset() const;
277 
279 
280  virtual void setAmbientWaterTemperature(float temperature);
281  virtual float ambientWaterTemperature() const;
283 
285 
286  virtual void setWaterCurrentSpeed(float speed);
287  virtual float waterCurrentSpeed() const;
289 
291 
292 
293  virtual void setWaterCurrentDirection(float direction);
294  virtual float waterCurrentDirection() const;
296 
298 
299  virtual void setTidalOffset(float meters);
300  virtual float tidalOffset() const;
302 
304 
305  virtual void setTidalDirection(bool inOut);
306  virtual bool tidalDirection() const;
308 
310 
311  virtual void setThermoclineDepth(unsigned int layer, float depth);
312  virtual float thermoclineDepth(unsigned int layer) const;
314 
316 
317  virtual void setThermoclinePermeability(unsigned int layer, float permeability);
318  virtual float thermoclinePermeability(unsigned int layer) const;
320 
325  virtual float lightLevel() const;
326 
330  void loadDefaults(bool loadOnlyFactorySettings = false);
331 
333  void restore();
334 
336  void saveAsDefaults();
338 
340 
341  virtual void exportSettings(const std::string& filename);
342  virtual void importSettings(const std::string& filename);
344 
345  const DtSettingsBackup* settingsBackup() const
346  {
347  return mySettingsBackup;
348  }
349 
350  DtSettingsBackup* settingsBackup()
351  {
352  return mySettingsBackup;
353  }
354 
356  virtual bool getIsUnderwater() const;
357 
371  virtual bool isOverWater(const DtVector& localPosition, bool isVisible=true);
372 
374  virtual float getMaximumWaveHeight();
375 
377  virtual float seaLevel() const;
378 
381  virtual void setOceanManager(DtOceanStateInterface* oceanManager);
382 
384  virtual void deleteOceanManager();
385 
386  protected:
387 
388  typedef std::vector<DtCloudLayer> CloudLayersVector;
389 
391  virtual void slot_coordinateSystemChanged();
392 
394  virtual void slot_oceanLayerAdded(const DtOceanLayer& layer);
395 
397  virtual void slot_oceanLayerToBeDeleted(const DtOceanLayer& layer);
398 
400  virtual void slot_oceanLayerSeaLevelChanged(const DtOceanLayer& layer,
401  double seaLevel);
402 
405  virtual void slot_oceanLayerLodRangeChanged(const DtOceanLayer& layer,
406  int range);
407 
409  virtual void slot_surgeDepthChanged(double depth);
410 
412  virtual void slot_depthOffsetChanged(double offset);
413 
415  virtual void updateEnvironment();
416 
419  virtual void initializeOcean();
420 
421  virtual void createCloudLayers();
422 
423  virtual void processAddedCloudLayer(const DtCloudLayer& layer,
424  int cloudIndex);
425 
426  virtual void autoSave();
427 
430  virtual void sendMarineEnvironmentToOceanObject();
431 
434  virtual void sendWeatherEnvironmentToSkyObject();
435 
438  virtual void sendCloudCoverToSkyObject();
439 
440  protected:
443 
444 
445  // makArchives::DtEnvironmentListRecord* mySettings;
446 
451 
452  // This is an env record that reflects our current settings
454 
455  // This is an env list that reflects saved settings
457 
458  // This is the cloud layers currently in use, whether custom or
459  // from the sky conditions manager
461 
462  // This is an interface to allow vrvOsg to query specific
463  // vrvTriton functions without an explicit dependency
465  };
466 
470  {
471  public:
472 
474  static DtEnvironmentSignaler& instance(DtDe& de);
475 
477  virtual ~DtEnvironmentSignaler();
478 
479  //Signaled when any of the atmospheric parameters change.
480  boost::signal<void ()> signal_atmosphericParametersChanged;
481 
482  //Signaled when any of the precipitation parameters change.
483  boost::signal<void ()> signal_precipitationSettingsChanged;
484 
485  //Signaled when cloud cover changes
486  boost::signal<void (DtVrfWeatherCloudState)> signal_cloudCoverChanged;
487 
488  boost::signal<void (unsigned int layerId,
490 
491  boost::signal<void (unsigned int layerId)> signal_cloudLayerToBeDestroyed;
492 
493  boost::signal<void (unsigned int layerId, const DtCloudLayer& changedLayer)>
495 
496  boost::signal<void (float height)> signal_fogHeightChanged;
497 
498  boost::signal<void (const DtVector& color)> signal_fogColorChanged;
499 
500  //Signaled when air parameters change.
501  boost::signal<void (float speed)> signal_windSpeedChanged;
502 
503  boost::signal<void (float direction)> signal_windDirectionChanged;
504  boost::signal<void (float celsius)> signal_ambientAirTemperatureChanged;
505 
506  //Signaled when marine states change.
507  boost::signal<void (unsigned int seastate)> signal_seaStateChanged;
508  boost::signal<void (float radians)> signal_seaStateDirectionChanged;
509  boost::signal<void (bool enabled)> signal_windDrivenSeaStateChanged;
510  boost::signal<void (unsigned int swellstate)> signal_swellStateChanged;
511  boost::signal<void (float radians)> signal_swellStateDirectionChanged;
512  boost::signal<void (float distance)> signal_windFetchChanged;
513  boost::signal<void (float chop)> signal_seaChoppinessChanged;
514  boost::signal<void (bool enable)> signal_underwaterVisibilityEnabledChanged;
515  boost::signal<void (double meters)> signal_underwaterVisibilityChanged;
516  boost::signal<void (double normalizedValue)>
518  boost::signal<void (double meters)> signal_surgeDepthChanged;
519  boost::signal<void (double meters)> signal_depthOffsetChanged;
520 
521  boost::signal<void (float celsius)> signal_ambientWaterTemperatureChanged;
522  boost::signal<void (float speed)> signal_waterCurrentSpeedChanged;
523  boost::signal<void (float direction)> signal_waterCurrentDirectionChanged;
524  boost::signal<void (float meters)> signal_tidalOffsetChanged;
525  boost::signal<void (bool inOut)> signal_tidalDirectionChanged;
526  boost::signal<void (unsigned int layer, float depth)>
528  boost::signal<void (unsigned int layer, float permeability)>
530 
531  protected:
533  };
534 
539  {
540  public:
543  static DtWeatherProcessorSignaler& instance(const DtSharedSettingsManager& ssm);
544 
547  static DtWeatherProcessorSignaler& instance(DtEventQueueInterface& eqi);
548 
552  static DtWeatherProcessorSignaler* findInstance(DtEventQueueInterface* eqi);
553 
555  virtual ~DtWeatherProcessorSignaler();
556 
558 
559  protected:
561 
562  private:
565  };
566 
568 }


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