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 
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 setLightningPresentVisible(bool);
87  virtual bool lightningPresentVisible() const;
88 
90  virtual void setAmbientAirTemperature(double);
91  virtual void setAmbientAirTemperatureRange(double, double);
92  virtual void setAmbientAirTemperatureDecimals(int);
93 
94  //units Pa
95  virtual void setAmbientAirPressure(double);
96  virtual void setAmbientAirPressureRange(double, double);
97  virtual void setAmbientAirPressureDecimals(int);
98 
99  //units meters
100  virtual void setAirPressureAltitude(double);
101  virtual void setAirPressureAltitudeRange(double, double);
102  virtual void setAirPressureAltitudeDecimals(int);
103 
104  //units meters
105  virtual void setAirTemperatureAltitude(double);
106  virtual void setAirTemperatureAltitudeRange(double, double);
107  virtual void setAirTemperatureAltitudeDecimals(int);
108 
109  virtual void setAirPressureAltitudeIsSeaLevel(bool);
110  virtual void setAirTemperatureAltitudeIsSeaLevel(bool);
111 
113  virtual void setSeaLevelWaterConcentration(double);
114  virtual void setSeaLevelWaterConcentrationRange(double, double);
115  virtual void setSeaLevelWaterConcentrationDecimals(int);
116 
117  virtual void setWindSpeedInTableOnly(double altMSL, double value);
118  virtual void setWindDirectionInTableOnly(double altMSL, double value);
119  virtual void setWindSpeed(float baseMSLAltitude, float speed) override;
120 
124  virtual bool precipitationEnabled();
125  virtual double precipitationIntensity();
126 
128  virtual double ambientAirTemperature();
129  virtual double ambientAirPressure();
130  virtual double airTemperatureAltitude();
131  virtual double airPressureAltitude();
132  virtual bool airTemperatureAltitudeIsSeaLevel();
133  virtual bool airPressureAltitudeIsSeaLevel();
134  virtual double seaLevelWaterConcentration();
135  virtual unsigned int precipitationType();
136  virtual double visibilityDistance(double atAltitude);
137 
139  virtual double windDirection(double altMSL);
140  double windDirection() { return windDirection(0.0); };
141  virtual double windSpeed(double altMSL);
142  double visibileDistance() { return visibleDistance(0.); };
143  virtual double visibleDistance(double altMSL);
144  virtual unsigned int visibleObscurant(double altMSL);
145  virtual int cloudType(double altMSL);
146  virtual double cloudDensity(double altMSL);
147  virtual double skyCoverage(double altMSL);
148  double windSpeed() { return windSpeed(0.0); };
149  virtual double underwaterVisibility();
150  virtual double fogHeight();
151  virtual DtVector fogColor();
152  virtual double surfaceTransparency();
153  virtual unsigned int swellState();
154  virtual void on_selectEnvironmentConditions(const QString& name);
155  virtual double swellStateDirection();
156  virtual unsigned int seaState();
157  virtual double seaStateDirection();
158  virtual bool windDrivenSeaStateEnabled();
159  virtual double choppiness();
160  virtual double surgeDepth();
161  virtual double tidalCurrentSpeed();
162  virtual double tidalCurrentDirection();
163  virtual double snowAccumulation();
164  virtual double snowMinimumAltitude();
165  virtual double snowRoadAccumulation();
166  virtual double rainAccumulation();
167  virtual std::map<double, DtVrfEnvironmentConditionsWeatherInterface::ElevantionalConfiguration> windLevelsMap() const;
168  virtual bool lightningPresent();
169 
170  virtual void clearEnvironmentalConfigurationLayers();
171 
173  virtual void setPrecipitationType(unsigned int type);
174  virtual void enableWindDrivenSeaState(bool enable);
175  virtual void setLightningPresent(bool isPresent);
176 
179  virtual void setDefaultConditionName(const makVrv::DtUnicode& name);
180 
181  virtual makVrv::DtUnicode currentCondition() const;
182 
183  virtual void updateWeatherConditions(const makArchives::DtEnvironmentRecord& rec);
184 
185  virtual void commandFromDialogData(DtChangeWeatherCommand& plan);
186 
189  virtual void setManageWeatherIcon(bool);
190  virtual bool manageWeatherIcon() const;
191 
192  virtual void updateWeatherConditionsIcon();
193  virtual void postUpdateWeatherConditionsIcon();
194 
195  virtual void on_underWaterVisibilityEnabledChanged(int);
196 
198  virtual void setEnvironmentConditionsNames(const std::list<makVrv::DtUnicode>& names);
199  virtual void setListenToRemoteWeather(bool enable);
200 
201  boost::signals2::signal<void (double)> signal_changeAmbientAirTemperature;
202  boost::signals2::signal<void (double)> signal_changeAmbientAirPressure;
203  boost::signals2::signal<void (double)> signal_changeAirTemperatureAltitude;
204  boost::signals2::signal<void (double)> signal_changeAirPressureAltitude;
205  boost::signals2::signal<void (bool)> signal_changeAirTemperatureAltitudeIsSeaLevel;
206  boost::signals2::signal<void (bool)> signal_changeAirPressureAltitudeIsSeaLevel;
207  boost::signals2::signal<void(double)> signal_changeSeaLevelWaterConcentration;
208  boost::signals2::signal<void (const makArchives::DtEnvironmentRecord&)> signal_updateWeatherConditions;
209 
210  virtual bool compareEnvironmentRecords(const makArchives::DtEnvironmentRecord& rhs, const makArchives::DtEnvironmentRecord& lhs) const;
211  static bool compareEnvironmentRecords(makVrv::DtDe&, const makArchives::DtEnvironmentRecord& rhs, const makArchives::DtEnvironmentRecord& lhs);
212  static bool compareElevationConfigurations(makVrv::DtDe& de, const std::vector<makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord>& lhs, const std::vector<makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord>& rhs);
214 
215  virtual void setWindLevelRemovable(int row, bool b);
216 
217  virtual DisplayMode displayMode() const;
218  virtual bool advancedWeatherChecked() const;
219  virtual void setLightningPresentAvailable(bool);
220 
221  protected:
222  virtual void slot_temperatureUnitChanged(const makVrv::DtUnicode& type, int to, int from);
223  virtual void slot_pressureUnitChanged(const makVrv::DtUnicode& type, int to, int from);
224  virtual void slot_altitudeUnitChanged(const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int to, int from);
225 
226  virtual void slot_displayUnitDecimalsChanged(
227  const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int);
228 
229  virtual void on_advancedWeatherConditionsVisibilityChanged(bool show);
230 
233  virtual void hideAirPressureAndTemperatureSliders();
234 
236  virtual void showEvent(QShowEvent* evt);
237 
245 
247  void initAirPressureWidgets();
248  void initAirTemperatureWidgets();
249  void initSeaLevelWaterConcentrationWidgets();
250 
251  protected slots:
252  virtual void on_ambientAirTemperatureChanged(double);
253  virtual void on_ambientAirPressureChanged(double);
254  virtual void on_airTemperatureAltitudeChanged(double);
255  virtual void on_airPressureAltitudeChanged(double);
256  virtual void on_airTemperatureAltitudeIsSeaLevelChanged();
257  virtual void on_airPressureAltitudeIsSeaLevelChanged();
258  virtual void on_seaLevelWaterConcentrationChanged(double);
259 
260  public:
262 
263  protected:
268 
283 
285  };
286 
289  {
290  public:
293 
295  static void registerInstance(makVrv::DtDe&, DtVrfEnvironmentConditionsWeatherWidgetCreator*);
296 
297  virtual DtVrfEnvironmentConditionsWeatherWidget* create(QWidget* parent);
298 
299  protected:
301  };
302 }
makVrv::DtSliderDoubleSpinboxWidget * myAirPressureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:277
boost::signals2::signal< void(double)> signal_changeAirTemperatureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:203
QLabel * myAmbientAirTemperatureLabel
Definition: vrfEnvironmentConditionsWeatherWidget.h:271
double windSpeed()
Definition: vrfEnvironmentConditionsWeatherWidget.h:148
boost::signals2::signal< void(bool)> signal_changeAirTemperatureAltitudeIsSeaLevel
Definition: vrfEnvironmentConditionsWeatherWidget.h:205
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
VrfWidgetGroupId
enumuration for VRF widget groups.
Definition: vrfEnvironmentConditionsWeatherWidget.h:63
makVrv::DtSliderDoubleSpinboxWidget * mySeaLevelWaterConcentration
Definition: vrfEnvironmentConditionsWeatherWidget.h:282
makVrv::DtSliderDoubleSpinboxWidget * myAmbientAirTemperature
Definition: vrfEnvironmentConditionsWeatherWidget.h:273
makVrv::DtSignalConnectionManager myUpdateConditions
Definition: vrfEnvironmentConditionsWeatherWidget.h:266
boost::signals2::signal< void(double)> signal_changeAmbientAirTemperature
Definition: vrfEnvironmentConditionsWeatherWidget.h:201
QLabel * mySeaLevelWaterConcentrationLabel
Definition: vrfEnvironmentConditionsWeatherWidget.h:281
double windDirection()
Definition: vrfEnvironmentConditionsWeatherWidget.h:140
makVrv::DtSliderDoubleSpinboxWidget * myAmbientAirPressure
Definition: vrfEnvironmentConditionsWeatherWidget.h:274
QWidget * myAmbientAirTemperatureWidget
Definition: vrfEnvironmentConditionsWeatherWidget.h:270
QRadioButton * myAirTemperatureAltitudeButton
Definition: vrfEnvironmentConditionsWeatherWidget.h:279
QRadioButton * myAirPressureSeaLevelButton
Definition: vrfEnvironmentConditionsWeatherWidget.h:275
A GUI widget for configuring the environmental conditions.
Definition: vrfEnvironmentConditionsWeatherWidget.h:48
QRadioButton * myAirTemperatureSeaLevelButton
Definition: vrfEnvironmentConditionsWeatherWidget.h:278
double visibileDistance()
Definition: vrfEnvironmentConditionsWeatherWidget.h:142
Record for an elevational configuration A record of this type consists of 1) a base MSL altitude...
Definition: DtEnvironmentRecord.h:242
boost::signals2::signal< void(double)> signal_changeAmbientAirPressure
Definition: vrfEnvironmentConditionsWeatherWidget.h:202
makVrv::DtSignalConnectionManager myConnections
Definition: vrfEnvironmentConditionsWeatherWidget.h:267
DisplayMode myDisplayMode
Definition: vrfEnvironmentConditionsWeatherWidget.h:284
QWidget * myAmbientAirPressureWidget
Definition: vrfEnvironmentConditionsWeatherWidget.h:269
makVrv::DtSliderDoubleSpinboxWidget * myAirTemperatureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:280
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:276
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QLabel * myWeatherConditions
Definition: vrfEnvironmentConditionsWeatherWidget.h:261
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:20
QLabel * myAmbientAirPressureLabel
Definition: vrfEnvironmentConditionsWeatherWidget.h:272
bool myManageWeatherIcon
Definition: vrfEnvironmentConditionsWeatherWidget.h:264
boost::signals2::signal< void(bool)> signal_changeAirPressureAltitudeIsSeaLevel
Definition: vrfEnvironmentConditionsWeatherWidget.h:206
boost::signals2::signal< void(double)> signal_changeAirPressureAltitude
Definition: vrfEnvironmentConditionsWeatherWidget.h:204
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:288
boost::signals2::signal< void(const makArchives::DtEnvironmentRecord &)> signal_updateWeatherConditions
Definition: vrfEnvironmentConditionsWeatherWidget.h:208
An advanced weather condition settings widget.
Definition: DtEnvironmentConditionsWidget.h:54
makVrv::DtDe & myDe
Definition: vrfEnvironmentConditionsWeatherWidget.h:300
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:72
bool myUpdatePosted
Definition: vrfEnvironmentConditionsWeatherWidget.h:265
boost::signals2::signal< void(double)> signal_changeSeaLevelWaterConcentration
Definition: vrfEnvironmentConditionsWeatherWidget.h:207
TODO: COMMENT THIS CLASS.
Definition: vrfEnvironmentConditionsWeatherInterface.h:32
DisplayMode
Definition: vrfEnvironmentConditionsWeatherWidget.h:55
Definition: vrfEnvironmentConditionsWeatherWidget.h:58

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)