VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfEnvironmentConditionsWeatherWidget.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 #if !defined(Q_MOC_RUN)
13 #include <vrvUtil/signalslib.h>
18 
20 
22 #include <matrix/vlVector.h>
23 
24 #include <QtWidgets/QWidget>
25 #endif
26 
27 class QLabel;
28 
29 namespace makVrv
30 {
31  class DtDe;
32  class DtUnicode;
33 }
34 
35 namespace makArchives
36 {
37  class DtEnvironmentRecord;
38 }
39 
40 namespace makVrf
41 {
42  class DtVrfSceneSettingsEnvironmentLogic;
43  class DtVrfEnvironmentConditionsWeatherLogic;
44 
51  {
52  Q_OBJECT
53 
54  public:
56  {
57  Normal = 0,
59  LocalWeatherCreation
60  };
61 
63  enum class VrfWidgetGroupId
64  {
65  VrfWidgetGroupIdAirPressureWidgets = static_cast<int>(WidgetGroupId::WidgetGroupIdExtraWidgets),
66  VrfWidgetGroupIdAirTemperatureWidgets,
67  VrfWidgetGroupIdSeaLevelWaterConcentrationWidgets,
68 
69  VrfWidgetGroupId_ExtraWidgets
70  };
71 
73  DtVrfEnvironmentConditionsWeatherWidget(makVrv::DtDe& de, QWidget* parent = 0);
74 
77 
79  virtual void setupGui(DisplayMode = Normal);
80 
83  virtual void initWidgets();
84 
86  virtual void setAmbientAirTemperature(double);
87  virtual void setAmbientAirTemperatureRange(double, double);
88  virtual void setAmbientAirTemperatureDecimals(int);
89 
90  //units Pa
91  virtual void setAmbientAirPressure(double);
92  virtual void setAmbientAirPressureRange(double, double);
93  virtual void setAmbientAirPressureDecimals(int);
94 
95  //units meters
96  virtual void setAirPressureAltitude(double);
97  virtual void setAirPressureAltitudeRange(double, double);
98  virtual void setAirPressureAltitudeDecimals(int);
99 
100  //units meters
101  virtual void setAirTemperatureAltitude(double);
102  virtual void setAirTemperatureAltitudeRange(double, double);
103  virtual void setAirTemperatureAltitudeDecimals(int);
104 
105  virtual void setAirPressureAltitudeIsSeaLevel(bool);
106  virtual void setAirTemperatureAltitudeIsSeaLevel(bool);
107 
109  virtual void setSeaLevelWaterConcentration(double);
110  virtual void setSeaLevelWaterConcentrationRange(double, double);
111  virtual void setSeaLevelWaterConcentrationDecimals(int);
112 
116  virtual bool precipitationEnabled();
117  virtual double precipitationIntensity();
118 
120  virtual double ambientAirTemperature();
121  virtual double ambientAirPressure();
122  virtual double airTemperatureAltitude();
123  virtual double airPressureAltitude();
124  virtual bool airTemperatureAltitudeIsSeaLevel();
125  virtual bool airPressureAltitudeIsSeaLevel();
126  virtual double seaLevelWaterConcentration();
127  virtual unsigned int precipitationType();
128  virtual double visibilityDistance(double atAltitude);
129 
131  virtual double windDirection(double altMSL);
132  double windDirection() { return windDirection(0.0); };
133  virtual double windSpeed(double altMSL);
134  double visibileDistance() { return visibleDistance(0.); };
135  virtual double visibleDistance(double altMSL);
136  virtual unsigned int visibleObscurant(double altMSL);
137  virtual int cloudType(double altMSL);
138  virtual double cloudDensity(double altMSL);
139  virtual double skyCoverage(double altMSL);
140  double windSpeed() { return windSpeed(0.0); };
141  virtual double underwaterVisibility();
142  virtual double fogHeight();
143  virtual DtVector fogColor();
144  virtual double surfaceTransparency();
145  virtual unsigned int swellState();
146  virtual void on_selectEnvironmentConditions(const QString& name);
147  virtual double swellStateDirection();
148  virtual unsigned int seaState();
149  virtual double seaStateDirection();
150  virtual bool windDrivenSeaStateEnabled();
151  virtual double choppiness();
152  virtual double surgeDepth();
153  virtual double tidalCurrentSpeed();
154  virtual double tidalCurrentDirection();
155  virtual double snowAccumulation();
156  virtual double snowMinimumAltitude();
157  virtual double snowRoadAccumulation();
158  virtual double rainAccumulation();
159  virtual std::map<double, DtVrfEnvironmentConditionsWeatherInterface::ElevantionalConfiguration> windLevelsMap() const;
160  virtual bool lightningPresent();
161 
162  virtual void clearEnvironmentalConfigurationLayers();
163 
165  virtual void setPrecipitationType(unsigned int type);
166  virtual void enableWindDrivenSeaState(bool enable);
167  virtual void setLightningPresent(bool isPresent);
168 
171  virtual void setDefaultConditionName(const makVrv::DtUnicode& name);
172 
173  virtual makVrv::DtUnicode currentCondition() const;
174 
175  virtual void updateWeatherConditions(const makArchives::DtEnvironmentRecord& rec);
176 
177  virtual void commandFromDialogData(DtChangeWeatherCommand& plan);
178 
181  virtual void setManageWeatherIcon(bool);
182  virtual bool manageWeatherIcon() const;
183 
184  virtual void updateWeatherConditionsIcon();
185  virtual void postUpdateWeatherConditionsIcon();
186  virtual void on_underWaterVisibilityEnabledChanged(int);
187 
189  virtual void setEnvironmentConditionsNames(const std::list<makVrv::DtUnicode>& names);
190  virtual void setListenToRemoteWeather(bool enable);
191 
192  boost::signals2::signal<void (double)> signal_changeAmbientAirTemperature;
193  boost::signals2::signal<void (double)> signal_changeAmbientAirPressure;
194  boost::signals2::signal<void (double)> signal_changeAirTemperatureAltitude;
195  boost::signals2::signal<void (double)> signal_changeAirPressureAltitude;
196  boost::signals2::signal<void (bool)> signal_changeAirTemperatureAltitudeIsSeaLevel;
197  boost::signals2::signal<void (bool)> signal_changeAirPressureAltitudeIsSeaLevel;
198  boost::signals2::signal<void(double)> signal_changeSeaLevelWaterConcentration;
199  boost::signals2::signal<void (const makArchives::DtEnvironmentRecord&)> signal_updateWeatherConditions;
200 
201  virtual bool compareEnvironmentRecords(const makArchives::DtEnvironmentRecord& rhs, const makArchives::DtEnvironmentRecord& lhs) const;
202  static bool compareEnvironmentRecords(makVrv::DtDe&, const makArchives::DtEnvironmentRecord& rhs, const makArchives::DtEnvironmentRecord& lhs);
203  static bool compareElevationConfigurations(makVrv::DtDe& de, const std::vector<makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord>& lhs, const std::vector<makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord>& rhs);
205 
206  virtual void setWindLevelRemovable(int row, bool b);
207 
208  virtual DisplayMode displayMode() const;
209  protected:
210  virtual void slot_temperatureUnitChanged(const makVrv::DtUnicode& type, int to, int from);
211  virtual void slot_pressureUnitChanged(const makVrv::DtUnicode& type, int to, int from);
212  virtual void slot_altitudeUnitChanged(const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int to, int from);
213 
214  virtual void slot_displayUnitDecimalsChanged(
215  const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int);
216 
217  virtual void on_advancedWeatherConditionsVisibilityChanged(bool show);
218 
221  virtual void hideAirPressureAndTemperatureSliders();
222 
224  virtual void showEvent(QShowEvent* evt);
225 
233 
235  void initAirPressureWidgets();
236  void initAirTemperatureWidgets();
237  void initSeaLevelWaterConcentrationWidgets();
238 
239  protected slots:
240  virtual void on_ambientAirTemperatureChanged(double);
241  virtual void on_ambientAirPressureChanged(double);
242  virtual void on_airTemperatureAltitudeChanged(double);
243  virtual void on_airPressureAltitudeChanged(double);
244  virtual void on_airTemperatureAltitudeIsSeaLevelChanged();
245  virtual void on_airPressureAltitudeIsSeaLevelChanged();
246  virtual void on_seaLevelWaterConcentrationChanged(double);
247 
248  public:
250 
251  protected:
256 
271 
273  };
274 
277  {
278  public:
281 
283  static void registerInstance(makVrv::DtDe&, DtVrfEnvironmentConditionsWeatherWidgetCreator*);
284 
285  virtual DtVrfEnvironmentConditionsWeatherWidget* create(QWidget* parent);
286 
287  protected:
289  };
290 }
makVrv::DtSliderDoubleSpinboxWidget * myAirPressureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:265
boost::signals2::signal< void(double)> signal_changeAirTemperatureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:194
QLabel * myAmbientAirTemperatureLabel
Definition: vrfEnvironmentConditionsWeatherWidget.h:259
double windSpeed()
Definition: vrfEnvironmentConditionsWeatherWidget.h:140
boost::signals2::signal< void(bool)> signal_changeAirTemperatureAltitudeIsSeaLevel
Definition: vrfEnvironmentConditionsWeatherWidget.h:196
Virtual base class.
Definition: DtVirtualBaseClass.h:19
A unicode string.
Definition: DtUnicode.h:33
VrfWidgetGroupId
enumuration for VRF widget groups.
Definition: vrfEnvironmentConditionsWeatherWidget.h:63
makVrv::DtSliderDoubleSpinboxWidget * mySeaLevelWaterConcentration
Definition: vrfEnvironmentConditionsWeatherWidget.h:270
makVrv::DtSliderDoubleSpinboxWidget * myAmbientAirTemperature
Definition: vrfEnvironmentConditionsWeatherWidget.h:261
makVrv::DtSignalConnectionManager myUpdateConditions
Definition: vrfEnvironmentConditionsWeatherWidget.h:254
boost::signals2::signal< void(double)> signal_changeAmbientAirTemperature
Definition: vrfEnvironmentConditionsWeatherWidget.h:192
QLabel * mySeaLevelWaterConcentrationLabel
Definition: vrfEnvironmentConditionsWeatherWidget.h:269
double windDirection()
Definition: vrfEnvironmentConditionsWeatherWidget.h:132
makVrv::DtSliderDoubleSpinboxWidget * myAmbientAirPressure
Definition: vrfEnvironmentConditionsWeatherWidget.h:262
QWidget * myAmbientAirTemperatureWidget
Definition: vrfEnvironmentConditionsWeatherWidget.h:258
QRadioButton * myAirTemperatureAltitudeButton
Definition: vrfEnvironmentConditionsWeatherWidget.h:267
QRadioButton * myAirPressureSeaLevelButton
Definition: vrfEnvironmentConditionsWeatherWidget.h:263
A GUI widget for configuring the environmental conditions.
Definition: vrfEnvironmentConditionsWeatherWidget.h:48
QRadioButton * myAirTemperatureSeaLevelButton
Definition: vrfEnvironmentConditionsWeatherWidget.h:266
double visibileDistance()
Definition: vrfEnvironmentConditionsWeatherWidget.h:134
Record for an elevational configuration A record of this type consists of 1) a base MSL altitude...
Definition: DtEnvironmentRecord.h:236
boost::signals2::signal< void(double)> signal_changeAmbientAirPressure
Definition: vrfEnvironmentConditionsWeatherWidget.h:193
makVrv::DtSignalConnectionManager myConnections
Definition: vrfEnvironmentConditionsWeatherWidget.h:255
DisplayMode myDisplayMode
Definition: vrfEnvironmentConditionsWeatherWidget.h:272
QWidget * myAmbientAirPressureWidget
Definition: vrfEnvironmentConditionsWeatherWidget.h:257
makVrv::DtSliderDoubleSpinboxWidget * myAirTemperatureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:268
A widget for pairing a horizontal slider with a double spin-box.
Definition: DtSliderDoubleSpinboxWidget.h:30
QRadioButton * myAirPressureAltitudeButton
Definition: vrfEnvironmentConditionsWeatherWidget.h:264
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QLabel * myWeatherConditions
Definition: vrfEnvironmentConditionsWeatherWidget.h:249
Declaration for the makVrv::DtEnvironmentConditionsWidget class.
Record of environment/weather settings Includes precipitation, air, and clouds.
Definition: DtEnvironmentRecord.h:36
A DtSimCommand subclass which specifies a change to the weather settings for the specified weather ar...
Definition: changeWeatherCommand.h:29
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:22
QLabel * myAmbientAirPressureLabel
Definition: vrfEnvironmentConditionsWeatherWidget.h:260
bool myManageWeatherIcon
Definition: vrfEnvironmentConditionsWeatherWidget.h:252
boost::signals2::signal< void(bool)> signal_changeAirPressureAltitudeIsSeaLevel
Definition: vrfEnvironmentConditionsWeatherWidget.h:197
boost::signals2::signal< void(double)> signal_changeAirPressureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:195
Base class to provide boost signal/slot management.
Creator class. Register a subclass of this to return your own version of the DtVrfEnvironmentConditio...
Definition: vrfEnvironmentConditionsWeatherWidget.h:276
boost::signals2::signal< void(const makArchives::DtEnvironmentRecord &)> signal_updateWeatherConditions
Definition: vrfEnvironmentConditionsWeatherWidget.h:199
An advanced weather condition settings widget.
Definition: DtEnvironmentConditionsWidget.h:53
makVrv::DtDe & myDe
Definition: vrfEnvironmentConditionsWeatherWidget.h:288
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
bool myUpdatePosted
Definition: vrfEnvironmentConditionsWeatherWidget.h:253
boost::signals2::signal< void(double)> signal_changeSeaLevelWaterConcentration
Definition: vrfEnvironmentConditionsWeatherWidget.h:198
TODO: COMMENT THIS CLASS.
Definition: vrfEnvironmentConditionsWeatherInterface.h:32
DisplayMode
Definition: vrfEnvironmentConditionsWeatherWidget.h:55
Definition: vrfEnvironmentConditionsWeatherWidget.h:58

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)