VR-Vantage API Documentation
DtEnvironment.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
16 #include <vrvCore/DtSkyObject.h>
17 
20 #include <vrvUtil/event_signal.h>
21 
23 
24 #include <boost/signal.hpp>
25 #include <boost/unordered_map.hpp>
26 
27 #include <matrix/vlVector.h>
28 
29 #include <string>
30 #include <vector>
31 
32 namespace makArchives
33 {
34  class DtCloudLayerRecord;
35  class DtEnvironmentListRecord;
36 }
37 
38 namespace makVrv
39 {
40  class DtDe;
41  class DtAgentManagerInterface;
42  class DtSkyObjectAgent;
43  class DtDynamicOceanObjectAgent;
44  class DtForestEnvControllerAgent;
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 
83  virtual void saveEnvironment(const std::string& name);
84 
87  virtual void setEnvironment(const std::string& name);
88 
91  virtual void removeEnvironment(const std::string& name);
92 
94  virtual void renameEnvironment(
95  const std::string& oldName, const std::string& newName);
96 
98  virtual void getEnvironmentNames(std::vector<std::string>& names);
99 
102  virtual void setDefaultEnvironmentName(const std::string& name);
103 
106  virtual std::string defaultEnvironmentName() const;
108 
110 
111 
112 
113 
114 
115 
116 
117 
118 
119 
120  virtual void setCloudCover(DtVrfWeatherCloudState cloudCover);
121  virtual DtVrfWeatherCloudState cloudCover() const;
123 
125 
126 
128  virtual int cloudLayerCount() const;
129 
132  virtual const DtCloudLayer& cloudLayer(unsigned int layerId) const;
133 
135  virtual void setCloudLayer(unsigned int layerId,
136  const DtCloudLayer& layer);
138 
140  virtual void addCloudLayer(const DtCloudLayer& layer);
141 
143  virtual void removeCloudLayer(unsigned int layerId);
144 
146  virtual void removeCloudLayers();
147 
151  virtual void setCloudLayerEnabled(unsigned int layerId, bool enabled);
152 
154 
155  virtual bool useCustomCloudCover() const;
156  virtual void setUseCustomCloudCover(bool enabled);
158 
160 
161  virtual void setAirTurbidity(float turbidity);
162  virtual float airTurbidity() const;
164 
166 
167  virtual void setVisibleDistance(float distance);
168  virtual float visibleDistance() const;
170 
172 
173  virtual void setPrecipitationType(PrecipitationType type);
174  virtual PrecipitationType precipitationType() const;
176 
178 
179  virtual void setPrecipitationIntensity(float intensity);
180  virtual float precipitationIntensity() const;
182 
184 
185  virtual void setWindSpeed(float speed);
186  virtual float windSpeed() const;
188 
190 
191  virtual void setWindDirection(float direction);
192  virtual float windDirection() const;
194 
196 
197  virtual void setAmbientAirTemperature(float temperature);
198  virtual float ambientAirTemperature() const;
200 
202 
203  virtual void setFogHeight(float height);
204  virtual float fogHeight() const;
206 
208 
209  virtual void setFogColor(const DtVector& color);
210  virtual DtVector fogColor() const;
212 
214 
215  virtual void setSeaState(int state);
216  virtual int seaState() const;
218 
220 
221  virtual void setSeaStateDirection(float dir);
222  virtual float seaStateDirection() const;
224 
226 
227  virtual void setWindDrivenSeaState(bool enabled);
228  virtual bool windDrivenSeaState() const;
230 
232 
233  virtual void setSwellState(int state);
234  virtual int swellState() const;
236 
238 
239  virtual void setSwellStateDirection(float dir);
240  virtual float swellStateDirection() const;
242 
244 
245  virtual void setWindFetch(float distance);
246  virtual float windFetch() const;
248 
250 
251  virtual void setSeaChoppiness(float chop);
252  virtual float seaChoppiness() const;
254 
256 
257  virtual void setUnderwaterVisibility(float distance);
258  virtual float underwaterVisibility() const;
260 
262 
263  virtual void setWaterSurfaceTransparency(float normalizedValue);
264  virtual float waterSurfaceTransparency() const;
266 
268 
269  virtual void setSurgeDepth(float meters);
270  virtual float surgeDepth() const;
272 
274 
275  virtual void setDepthOffset(float meters);
276  virtual float depthOffset() const;
278 
280 
281  virtual void setAmbientWaterTemperature(float temperature);
282  virtual float ambientWaterTemperature() const;
284 
286 
287  virtual void setWaterCurrentSpeed(float speed);
288  virtual float waterCurrentSpeed() const;
290 
292 
293 
294  virtual void setWaterCurrentDirection(float direction);
295  virtual float waterCurrentDirection() const;
297 
299 
300  virtual void setTidalOffset(float meters);
301  virtual float tidalOffset() const;
303 
305 
306  virtual void setTidalDirection(bool inOut);
307  virtual bool tidalDirection() const;
309 
311 
312  virtual void setThermoclineDepth(unsigned int layer, float depth);
313  virtual float thermoclineDepth(unsigned int layer) const;
315 
317 
318  virtual void setThermoclinePermeability(unsigned int layer, float permeability);
319  virtual float thermoclinePermeability(unsigned int layer) const;
321 
325  void loadDefaults(bool loadOnlyFactorySettings = false);
326 
328  void restore();
329 
331  void saveAsDefaults();
333 
335 
336  virtual void exportSettings(const std::string& filename);
337  virtual void importSettings(const std::string& filename);
339 
340  const DtSettingsBackup* settingsBackup() const
341  {
342  return mySettingsBackup;
343  }
344 
345  DtSettingsBackup* settingsBackup()
346  {
347  return mySettingsBackup;
348  }
349 
350  protected:
351 
352  typedef std::vector<DtCloudLayer> CloudLayersVector;
353 
355  virtual void slot_coordinateSystemChanged();
356 
358  virtual void slot_oceanLayerAdded(const DtOceanLayer& layer);
359 
361  virtual void slot_oceanLayerToBeDeleted(const DtOceanLayer& layer);
362 
364  virtual void slot_oceanLayerSeaLevelChanged(const DtOceanLayer& layer,
365  double seaLevel);
366 
369  virtual void slot_oceanLayerLodRangeChanged(const DtOceanLayer& layer,
370  int range);
371 
373  virtual void slot_surgeDepthChanged(double depth);
374 
376  virtual void slot_depthOffsetChanged(double offset);
377 
379  virtual void updateEnvironment();
380 
383  virtual void initializeOcean();
384 
385  virtual void createCloudLayers();
386 
387  virtual void processAddedCloudLayer(const DtCloudLayer& layer,
388  int cloudIndex);
389 
390  virtual void autoSave();
391 
394  virtual void sendMarineEnvironmentToOceanObject();
395 
398  virtual void sendWeatherEnvironmentToSkyObject();
399 
402  virtual void sendCloudCoverToSkyObject();
403 
404  protected:
407 
408  // makArchives::DtEnvironmentListRecord* mySettings;
409 
415 
416  // This is an env record that reflects our current settings
418 
419  // This is an env list that reflects saved settings
421 
422  // This is the cloud layers currently in use, whether custom or
423  // from the sky conditions manager
425  };
426 
430  {
431  public:
432 
434  static DtEnvironmentSignaler& instance(DtDe& de);
435 
437  virtual ~DtEnvironmentSignaler();
438 
439  //Signaled when any of the atmospheric parameters change.
440  boost::signal<void ()> signal_atmosphericParametersChanged;
441 
442  //Signaled when any of the precipitation parameters change.
443  boost::signal<void ()> signal_precipitationSettingsChanged;
444 
445  //Signaled when cloud cover changes
446  boost::signal<void (DtVrfWeatherCloudState)> signal_cloudCoverChanged;
447 
448  boost::signal<void (unsigned int layerId,
450 
451  boost::signal<void (unsigned int layerId)> signal_cloudLayerToBeDestroyed;
452 
453  boost::signal<void (unsigned int layerId, const DtCloudLayer& changedLayer)>
455 
456  boost::signal<void (float height)> signal_fogHeightChanged;
457 
458  boost::signal<void (const DtVector& color)> signal_fogColorChanged;
459 
460  //Signaled when air parameters change.
461  boost::signal<void (float speed)> signal_windSpeedChanged;
462 
463  boost::signal<void (float direction)> signal_windDirectionChanged;
464  boost::signal<void (float celsius)> signal_ambientAirTemperatureChanged;
465 
466  //Signaled when marine states change.
467  boost::signal<void (unsigned int seastate)> signal_seaStateChanged;
468  boost::signal<void (float radians)> signal_seaStateDirectionChanged;
469  boost::signal<void (bool enabled)> signal_windDrivenSeaStateChanged;
470  boost::signal<void (unsigned int swellstate)> signal_swellStateChanged;
471  boost::signal<void (float radians)> signal_swellStateDirectionChanged;
472  boost::signal<void (float distance)> signal_windFetchChanged;
473  boost::signal<void (float chop)> signal_seaChoppinessChanged;
474  boost::signal<void (double meters)> signal_underwaterVisibilityChanged;
475  boost::signal<void (double normalizedValue)>
477  boost::signal<void (double meters)> signal_surgeDepthChanged;
478  boost::signal<void (double meters)> signal_depthOffsetChanged;
479 
480  boost::signal<void (float celsius)> signal_ambientWaterTemperatureChanged;
481  boost::signal<void (float speed)> signal_waterCurrentSpeedChanged;
482  boost::signal<void (float direction)> signal_waterCurrentDirectionChanged;
483  boost::signal<void (float meters)> signal_tidalOffsetChanged;
484  boost::signal<void (bool inOut)> signal_tidalDirectionChanged;
485  boost::signal<void (unsigned int layer, float depth)>
487  boost::signal<void (unsigned int layer, float permeability)>
489 
490  protected:
492  };
493 
498  {
499  public:
502  static DtWeatherProcessorSignaler& instance(const DtSharedSettingsManager& ssm);
503 
506  static DtWeatherProcessorSignaler& instance(DtEventQueueInterface& eqi);
507 
511  static DtWeatherProcessorSignaler* findInstance(DtEventQueueInterface* eqi);
512 
514  virtual ~DtWeatherProcessorSignaler();
515 
517 
518  protected:
520 
521  private:
524  };
525 
527 }


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