VR-Forces Developer's Guide
 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 
18 
20 
22 #include <matrix/vlVector.h>
23 
24 #include <QtWidgets/QWidget>
25 #endif
26 
27 class QLabel;
28 class QComboBox;
29 
30 namespace makVrv
31 {
32  class DtDe;
33  class DtUnicode;
34 }
35 
36 namespace makArchives
37 {
38  class DtEnvironmentRecord;
39 }
40 
41 namespace makVrf
42 {
43  class DtVrfSceneSettingsEnvironmentLogic;
44  class DtVrfEnvironmentConditionsWeatherLogic;
45 
52  {
53  Q_OBJECT
54 
55  public:
57  {
58  Normal = 0,
60  LocalWeatherCreation
61  };
62 
64  enum class VrfWidgetGroupId
65  {
66  VrfWidgetGroupIdAirPressureWidgets = static_cast<int>(WidgetGroupId::WidgetGroupIdExtraWidgets),
67  VrfWidgetGroupIdAirTemperatureWidgets,
68  VrfWidgetGroupIdSeaLevelWaterConcentrationWidgets,
69  VrfWidgetGroupIdBlowingParticulateMatterWidgets,
70 
71  VrfWidgetGroupId_ExtraWidgets
72  };
73 
75  DtVrfEnvironmentConditionsWeatherWidget(makVrv::DtDe& de, QWidget* parent = 0);
76 
78  virtual ~DtVrfEnvironmentConditionsWeatherWidget() override;
79 
81  virtual void setupGui(DisplayMode = Normal);
82 
85  virtual void initWidgets() override;
86 
88  virtual void setBlowingParticulateMatter(int);
89  virtual int blowingParticulateMatter() const;
90 
92  virtual void setLightningPresentVisible(bool);
93  virtual bool lightningPresentVisible() const;
94 
96  virtual void setAmbientAirTemperature(double);
97  virtual void setAmbientAirTemperatureRange(double, double);
98  virtual void setAmbientAirTemperatureDecimals(int);
99 
100  //units Pa
101  virtual void setAmbientAirPressure(double);
102  virtual void setAmbientAirPressureRange(double, double);
103  virtual void setAmbientAirPressureDecimals(int);
104 
105  //units meters
106  virtual void setAirPressureAltitude(double);
107  virtual void setAirPressureAltitudeRange(double, double);
108  virtual void setAirPressureAltitudeDecimals(int);
109 
110  //units meters
111  virtual void setAirTemperatureAltitude(double);
112  virtual void setAirTemperatureAltitudeRange(double, double);
113  virtual void setAirTemperatureAltitudeDecimals(int);
114 
115  virtual void setAirPressureAltitudeIsSeaLevel(bool);
116  virtual void setAirTemperatureAltitudeIsSeaLevel(bool);
117 
119  virtual void setSeaLevelWaterConcentration(double);
120  virtual void setSeaLevelWaterConcentrationRange(double, double);
121  virtual void setSeaLevelWaterConcentrationDecimals(int);
122 
123  virtual void setWindSpeedInTableOnly(double altMSL, double value);
124  virtual void setWindDirectionInTableOnly(double altMSL, double value);
125  virtual void setWindSpeed(float baseMSLAltitude, float speed) override;
126 
128 
131  virtual bool precipitationEnabled() override;
132  virtual double precipitationIntensity() override;
133 
135  virtual double ambientAirTemperature();
136  virtual double ambientAirPressure();
137  virtual double airTemperatureAltitude();
138  virtual double airPressureAltitude();
139  virtual bool airTemperatureAltitudeIsSeaLevel();
140  virtual bool airPressureAltitudeIsSeaLevel();
141  virtual double seaLevelWaterConcentration();
142  virtual unsigned int precipitationType() override;
143  virtual double visibilityDistance(double atAltitude) override;
144 
146  virtual double windDirection(double altMSL);
147  virtual double windDirection() override { return windDirection(0.0); };
148  virtual double windSpeed(double altMSL);
149  double visibileDistance() { return visibleDistance(0.); };
150  virtual double visibleDistance(double altMSL);
151  virtual unsigned int visibleObscurant(double altMSL);
152  virtual int cloudType(double altMSL);
153  virtual double cloudDensity(double altMSL);
154  virtual double skyCoverage(double altMSL);
155  virtual double windSpeed() override { return windSpeed(0.0); };
156  virtual double underwaterVisibility() override;
157  virtual double fogHeight();
158  virtual DtVector fogColor();
159  virtual double surfaceTransparency() override;
160  virtual unsigned int swellState() override;
161  virtual void on_selectEnvironmentConditions(const QString& name) override;
162  virtual double swellStateDirection() override;
163  virtual unsigned int seaState() override;
164  virtual double seaStateDirection() override;
165  virtual bool windDrivenSeaStateEnabled() override;
166  virtual double choppiness() override;
167  virtual double surgeDepth() override;
168  virtual double tidalCurrentSpeed();
169  virtual double tidalCurrentDirection();
170  virtual double snowAccumulation();
171  virtual double snowMinimumAltitude();
172  virtual double snowRoadAccumulation();
173  virtual double rainAccumulation();
174  virtual std::map<double, DtVrfEnvironmentConditionsWeatherInterface::ElevantionalConfiguration> windLevelsMap() const;
175  virtual bool lightningPresent();
176 
177  virtual void clearEnvironmentalConfigurationLayers();
178 
180  virtual void setPrecipitationType(unsigned int type) override;
181  virtual void enableWindDrivenSeaState(bool enable) override;
182  virtual void setLightningPresent(bool isPresent) override;
183 
186  virtual void setDefaultConditionName(const makVrv::DtUnicode& name) override;
187 
188  virtual makVrv::DtUnicode currentCondition() const;
189 
190  virtual void updateWeatherConditions(const makArchives::DtEnvironmentRecord& rec) override;
191 
192  virtual void commandFromDialogData(DtChangeWeatherCommand& plan) override;
193 
196  virtual void setManageWeatherIcon(bool);
197  virtual bool manageWeatherIcon() const;
198 
199  virtual void updateWeatherConditionsIcon();
200  virtual void postUpdateWeatherConditionsIcon();
201 
202  virtual void on_underWaterVisibilityEnabledChanged(int) override;
203 
205  virtual void setEnvironmentConditionsNames(const std::list<makVrv::DtUnicode>& names) override;
206  virtual void setListenToRemoteWeather(bool enable) override;
207 
208  boost::signals2::signal<void (double)> signal_changeAmbientAirTemperature;
209  boost::signals2::signal<void (int)> signal_changeBlowingParticulateMatter;
210  boost::signals2::signal<void (double)> signal_changeAmbientAirPressure;
211  boost::signals2::signal<void (double)> signal_changeAirTemperatureAltitude;
212  boost::signals2::signal<void (double)> signal_changeAirPressureAltitude;
213  boost::signals2::signal<void (bool)> signal_changeAirTemperatureAltitudeIsSeaLevel;
214  boost::signals2::signal<void (bool)> signal_changeAirPressureAltitudeIsSeaLevel;
215  boost::signals2::signal<void(double)> signal_changeSeaLevelWaterConcentration;
216  boost::signals2::signal<void (const makArchives::DtEnvironmentRecord&)> signal_updateWeatherConditions;
217 
218  virtual bool compareEnvironmentRecords(const makArchives::DtEnvironmentRecord& rhs, const makArchives::DtEnvironmentRecord& lhs) const;
219  static bool compareEnvironmentRecords(makVrv::DtDe&, const makArchives::DtEnvironmentRecord& rhs, const makArchives::DtEnvironmentRecord& lhs);
220  static bool compareElevationConfigurations(makVrv::DtDe& de, const std::vector<makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord>& lhs, const std::vector<makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord>& rhs);
222 
223  virtual void setWindLevelRemovable(int row, bool b);
224 
225  virtual DisplayMode displayMode() const;
226  virtual bool advancedWeatherChecked() const;
227  virtual void setLightningPresentAvailable(bool);
228 
229  protected:
230  virtual void slot_temperatureUnitChanged(const makVrv::DtUnicode& type, int to, int from);
231  virtual void slot_pressureUnitChanged(const makVrv::DtUnicode& type, int to, int from);
232  virtual void slot_altitudeUnitChanged(const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int to, int from);
233 
234  virtual void slot_displayUnitDecimalsChanged(
235  const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int);
236 
237  virtual void on_advancedWeatherConditionsVisibilityChanged(bool show) override;
238 
241  virtual void hideAirPressureAndTemperatureSliders();
242 
244  virtual void showEvent(QShowEvent* evt) override;
245 
253 
255  virtual void initAirPressureWidgets();
256  virtual void initBlowingParticulateMatterWidgets();
257  virtual void initAirTemperatureWidgets();
258  virtual void initSeaLevelWaterConcentrationWidgets();
259 
260  protected slots:
261  virtual void on_ambientAirTemperatureChanged(double);
262  virtual void on_ambientAirPressureChanged(double);
263  virtual void on_airTemperatureAltitudeChanged(double);
264  virtual void on_airPressureAltitudeChanged(double);
265  virtual void on_airTemperatureAltitudeIsSeaLevelChanged();
266  virtual void on_airPressureAltitudeIsSeaLevelChanged();
267  virtual void on_seaLevelWaterConcentrationChanged(double);
268  virtual void on_blowingParticulateMatterChanged();
269 
270  public:
272 
273  protected:
278 
295 
297  };
298 
301  {
302  public:
305 
307  static void registerInstance(makVrv::DtDe&, DtVrfEnvironmentConditionsWeatherWidgetCreator*);
308 
309  virtual DtVrfEnvironmentConditionsWeatherWidget* create(QWidget* parent);
310 
311  protected:
313  };
314 }
virtual double windSpeed() override
Definition: vrfEnvironmentConditionsWeatherWidget.h:155
makVrv::DtSliderDoubleSpinboxWidget * myAirPressureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:289
boost::signals2::signal< void(double)> signal_changeAirTemperatureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:211
QLabel * myAmbientAirTemperatureLabel
Definition: vrfEnvironmentConditionsWeatherWidget.h:281
boost::signals2::signal< void(bool)> signal_changeAirTemperatureAltitudeIsSeaLevel
Definition: vrfEnvironmentConditionsWeatherWidget.h:213
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
QComboBox * myBlowingParticulateMatter
Definition: vrfEnvironmentConditionsWeatherWidget.h:286
VrfWidgetGroupId
enumuration for VRF widget groups.
Definition: vrfEnvironmentConditionsWeatherWidget.h:64
makVrv::DtSliderDoubleSpinboxWidget * mySeaLevelWaterConcentration
Definition: vrfEnvironmentConditionsWeatherWidget.h:294
makVrv::DtSliderDoubleSpinboxWidget * myAmbientAirTemperature
Definition: vrfEnvironmentConditionsWeatherWidget.h:283
makVrv::DtSignalConnectionManager myUpdateConditions
Definition: vrfEnvironmentConditionsWeatherWidget.h:276
boost::signals2::signal< void(double)> signal_changeAmbientAirTemperature
Definition: vrfEnvironmentConditionsWeatherWidget.h:208
QLabel * mySeaLevelWaterConcentrationLabel
Definition: vrfEnvironmentConditionsWeatherWidget.h:293
virtual double windDirection() override
Definition: vrfEnvironmentConditionsWeatherWidget.h:147
makVrv::DtSliderDoubleSpinboxWidget * myAmbientAirPressure
Definition: vrfEnvironmentConditionsWeatherWidget.h:284
QWidget * myAmbientAirTemperatureWidget
Definition: vrfEnvironmentConditionsWeatherWidget.h:280
QRadioButton * myAirTemperatureAltitudeButton
Definition: vrfEnvironmentConditionsWeatherWidget.h:291
QRadioButton * myAirPressureSeaLevelButton
Definition: vrfEnvironmentConditionsWeatherWidget.h:287
A GUI widget for configuring the environmental conditions.
Definition: vrfEnvironmentConditionsWeatherWidget.h:49
QRadioButton * myAirTemperatureSeaLevelButton
Definition: vrfEnvironmentConditionsWeatherWidget.h:290
double visibileDistance()
Definition: vrfEnvironmentConditionsWeatherWidget.h:149
Record for an elevational configuration A record of this type consists of 1) a base MSL altitude...
Definition: DtEnvironmentRecord.h:251
boost::signals2::signal< void(double)> signal_changeAmbientAirPressure
Definition: vrfEnvironmentConditionsWeatherWidget.h:210
makVrv::DtSignalConnectionManager myConnections
Definition: vrfEnvironmentConditionsWeatherWidget.h:277
DisplayMode myDisplayMode
Definition: vrfEnvironmentConditionsWeatherWidget.h:296
QWidget * myAmbientAirPressureWidget
Definition: vrfEnvironmentConditionsWeatherWidget.h:279
makVrv::DtSliderDoubleSpinboxWidget * myAirTemperatureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:292
QLabel * myBlowingParticulateMatterLabel
Definition: vrfEnvironmentConditionsWeatherWidget.h:285
A widget for pairing a horizontal slider with a double spin-box. The spin box must be clamped to a mi...
Definition: DtSliderDoubleSpinboxWidget.h:30
QRadioButton * myAirPressureAltitudeButton
Definition: vrfEnvironmentConditionsWeatherWidget.h:288
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QLabel * myWeatherConditions
Definition: vrfEnvironmentConditionsWeatherWidget.h:271
Declaration for the makVrv::DtEnvironmentConditionsWidget class.
Record of environment/weather settings Includes precipitation, air, and clouds.
Definition: DtEnvironmentRecord.h:45
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:20
QLabel * myAmbientAirPressureLabel
Definition: vrfEnvironmentConditionsWeatherWidget.h:282
bool myManageWeatherIcon
Definition: vrfEnvironmentConditionsWeatherWidget.h:274
boost::signals2::signal< void(bool)> signal_changeAirPressureAltitudeIsSeaLevel
Definition: vrfEnvironmentConditionsWeatherWidget.h:214
boost::signals2::signal< void(double)> signal_changeAirPressureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:212
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:300
boost::signals2::signal< void(const makArchives::DtEnvironmentRecord &)> signal_updateWeatherConditions
Definition: vrfEnvironmentConditionsWeatherWidget.h:216
An advanced weather condition settings widget.
Definition: DtEnvironmentConditionsWidget.h:54
makVrv::DtDe & myDe
Definition: vrfEnvironmentConditionsWeatherWidget.h:312
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
bool myUpdatePosted
Definition: vrfEnvironmentConditionsWeatherWidget.h:275
boost::signals2::signal< void(double)> signal_changeSeaLevelWaterConcentration
Definition: vrfEnvironmentConditionsWeatherWidget.h:215
TODO: COMMENT THIS CLASS.
Definition: vrfEnvironmentConditionsWeatherInterface.h:32
DisplayMode
Definition: vrfEnvironmentConditionsWeatherWidget.h:56
boost::signals2::signal< void(int)> signal_changeBlowingParticulateMatter
Definition: vrfEnvironmentConditionsWeatherWidget.h:209
Definition: vrfEnvironmentConditionsWeatherWidget.h:59

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)