VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtEnvironmentConditionsWidget.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (c) 2020 MAK Technologies, Inc.
3  * All rights reserved.
4  ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCoreQt/vrvCoreQt.h>
14 
15 #include <QtCore/QList>
16 #include <QtCore/QString>
17 #include <QtWidgets/QWidget>
18 
19 class QButtonGroup;
20 class QCheckBox;
21 class QColor;
22 class QComboBox;
23 class QDial;
24 class QDoubleSpinBox;
25 class QHBoxLayout;
26 class QLabel;
27 class QPushButton;
28 class QRadioButton;
29 class QSignalMapper;
30 class QSlider;
31 class QTreeWidget;
32 class QTreeWidgetItem;
33 class QVBoxLayout;
34 
35 namespace makVrv
36 {
37 
38  class DtColorPushButton;
39  class DtSliderDoubleSpinboxWidget;
40  class DtSliderSpinboxWidget;
41  class DtWindDirectionWidget;
42 
43 
47  : public QWidget, public DtEnvironmentConditionsInterface
48  {
49  Q_OBJECT
50 
51  public:
57  DtDe& de, QWidget* parent = NULL, Qt::WindowFlags flags = 0);
58 
61 
65 
68  virtual void setEnvironmentConditionsNames(const std::list<DtUnicode>& names);
69 
72  virtual StringList environmentConditionNames() const;
73 
76  virtual void setDefaultConditionName(const DtUnicode& name);
77 
80  virtual void setAdvanceConditionsVisible(bool show);
81 
83 
87 
93  virtual void setWindSpeed(double speed);
94 
98  virtual void setWindSpeedDecimals(int decimals);
99 
103  virtual void setWindSpeedUnits(const DtUnicode& units);
104 
110  virtual void setWindSpeedRange(double step, double max, double min = 0.0);
111 
114  virtual void setWindDirection(double degrees);
115 
119  virtual void setPrecipitationType(unsigned int type);
120 
123  virtual void setPrecipitationIntensity(double intensity);
124 
130  virtual void setVisibleDistance(double distance);
131 
135  virtual void setVisibleDistanceDecimals(int decimals);
136 
140  virtual void setVisibleDistanceUnits(const DtUnicode& units);
141 
147  virtual void setVisibleDistanceRange(
148  double step, double max, double min = 0.0);
149 
152  virtual void setCloudCover(makArchives::DtCloudCoverType cloudCover);
153 
155  virtual void removeAllCloudCoverTypes();
156 
160  virtual void addCloudCoverType(const DtUnicode& name, makArchives::DtCloudCoverType coverType);
161 
162  virtual void removeCloudCoverType(makArchives::DtCloudCoverType coverType);
164 
169  virtual void setGroundSnowAccumulation(double depth);
170 
174  virtual void setGroundSnowAccumulationDecimals(int decimals);
175 
181  virtual void setGroundSnowAccumulationRange(double step, double max, double min = 0.0);
182 
186  virtual void setGroundSnowAccumulationUnits(const DtUnicode& units);
187 
193  virtual void setRoadSnowAccumulation(double depth);
194 
198  virtual void setRoadSnowAccumulationDecimals(int decimals);
199 
205  virtual void setRoadSnowAccumulationRange(double step, double max, double min = 0.0);
206 
210  virtual void setRoadSnowAccumulationUnits(const DtUnicode& units);
211 
216  virtual void setSnowMinimumElevation(double elevation);
217 
221  virtual void setSnowMinimumElevationDecimals(int decimals);
222 
228  virtual void setSnowMinimumElevationRange(double step, double max, double min = 0.0);
229 
233  virtual void setSnowMinimumElevationUnits(const DtUnicode& units);
234 
239  virtual void setSnowElevationTransition(double elevation);
240 
244  virtual void setSnowElevationTransitionDecimals(int decimals);
245 
251  virtual void setSnowElevationTransitionRange(double step, double max, double min = 0.0);
252 
256  virtual void setSnowElevationTransitionUnits(const DtUnicode& units);
257 
263  virtual void setGroundRainAccumulation(double depth);
264 
268  virtual void setGroundRainAccumulationDecimals(int decimals);
269 
275  virtual void setGroundRainAccumulationRange(double step, double max, double min = 0.0);
276 
280  virtual void setGroundRainAccumulationUnits(const DtUnicode& units);
281 
285 
291  virtual void setFogHeight(double height);
292 
296  virtual void setFogHeightDecimals(int decimals);
297 
301  virtual void setFogHeightUnits(const DtUnicode& units);
302 
307  virtual void setFogHeightRange(double step, double max, double min = 0.0);
308 
314  virtual void setFogColor(double red, double green, double blue);
315 
318  virtual void setAirTurbidity(double turbidity);
319 
321 
325 
328  virtual void setSwellStateNames(const StringList& names);
329 
332  virtual StringList swellStateNames() const;
333 
337  virtual void setSwellState(unsigned int index);
338 
341  virtual void setSwellState(const DtUnicode& name);
342 
345  virtual void setSwellStateDirection(double degrees);
346 
351  virtual void enableWindDrivenSeaState(bool enable);
352 
355  virtual void setSeaStateNames(const StringList& names);
356 
359  virtual StringList seaStateNames() const;
360 
364  virtual void setSeaState(unsigned int index);
365 
368  virtual void setSeaState(const DtUnicode& name);
369 
372  virtual void setSeaStateDirection(double degrees);
373 
375 
379 
382  virtual void setSurfaceTransparency(double alpha);
383 
386  virtual void setUnderwaterVisibilityEnabled(bool enabled);
387 
393  virtual void setUnderwaterVisibility(double distance);
394 
398  virtual void setUnderwaterVisibilityDecimals(int decimals);
399 
403  virtual void setUnderwaterVisibilityUnits(const DtUnicode& units);
404 
410  virtual void setUnderwaterVisibilityRange(
411  double step, double max, double min = 0.0);
412 
415  virtual void setWaterChoppiness(double chop);
416 
422  virtual void setWindFetch(double distance);
423 
427  virtual void setWindFetchDecimals(int decimals);
428 
432  virtual void setWindFetchUnits(const DtUnicode& units);
433 
439  virtual void setWindFetchRange(double step, double max, double min = 0.0);
440 
443  virtual void setSurgeDepth(double depth);
444 
448  virtual void setSurgeDepthDecimals(int decimals);
449 
453  virtual void setSurgeDepthUnits(const DtUnicode& units);
454 
460  virtual void setSurgeDepthRange(
461  double step, double max, double min = 0.0);
462 
465  virtual void setDepthOffset(double offset);
466 
470  virtual void setTidalCurrentSpeedDecimals(int decimals);
471 
475  virtual void setTidalCurrentSpeedUnits(const DtUnicode& units);
476 
482  virtual void setTidalCurrentSpeedRange(double step, double max, double min = 0.0);
483 
486  virtual void setTidalCurrentSpeed(double speed);
487 
491  virtual void setTidalCurrentDirectionDecimals(int decimals);
492 
496  virtual void setTidalCurrentDirectionUnits(const DtUnicode& units);
497 
503  virtual void setTidalCurrentDirectionRange(double step, double max,
504  double min = 0.0);
505 
508  virtual void setTidalCurrentDirection(double direction);
509 
511 
512 
515 
518  virtual void setListenToRemoteWeather(bool enable);
519 
521 
522 
523  protected slots:
524 
528 
529  virtual void on_selectEnvironmentConditions(const QString&);
530  virtual void on_environmentConditionClicked(const QString&);
531 
532  virtual void on_windSpeedValueChanged(double);
533  virtual void on_windDirectionValueChanged(double);
534 
535  virtual void on_precipitationTypeClicked(int);
536  virtual void on_precipitationIntensityValueChanged(int);
537 
538  virtual void on_visibilityValueChanged(double);
539 
540  virtual void on_cloudCoverChanged(int);
541 
542  virtual void on_groundSnowAccumulationChanged(double value);
543  virtual void on_roadSnowAccumulationChanged(double value);
544  virtual void on_snowMinimumElevationChanged(double value);
545  virtual void on_snowElevationTransitionChanged(double value);
546 
547  virtual void on_groundRainAccumulationChanged(double value);
548 
549 #if 0
550  virtual void on_cloudCoverEditorRequested();
551 #endif
552  virtual void on_fogHeightValueChanged(double);
553  virtual void on_fogColorValueChanged(const QColor&);
554  virtual void on_airTurbidityChanged(int);
555 
556  virtual void on_swellStateChanged(int);
557  virtual void on_swellStateDirectionChanged(double);
558 
559  virtual void on_windDrivenSeaStateEnabledChanged(const QString&);
560  virtual void on_seaStateChanged(int);
561  virtual void on_seaStateDirectionChanged(double);
562 
563  virtual void on_seaSurfaceTransparencyChanged(double);
564  virtual void on_underWaterVisibilityEnabledChanged(int);
565  virtual void on_underWaterVisibilityChanged(double);
566  virtual void on_seaChoppinessChanged(int);
567  virtual void on_windFetchChanged(double);
568  virtual void on_surgeDepthChanged(double);
569  virtual void on_depthOffsetChanged(double);
570  virtual void on_tidalCurrentSpeedChanged(double);
571  virtual void on_tidalCurrentDirectionChanged(double);
572 
573  virtual void on_listenToVrfStateChanged(int);
574  virtual void on_refreshVrfWeatherClicked();
575 
577 
578  protected:
581 
585  void setWidgetsEnabled(WidgetList& widgets, bool enable) const;
586 
590  void setWidgetEnabled(QWidget& widget, bool enable) const;
591 
595  void setWidgetsVisible(WidgetList& widgets, bool show) const;
596 
600  void setWidgetVisible(QWidget& widget, bool show) const;
601 
602  private:
605  void setupGui();
606 
609  void connectToSignals();
610 
615  void setStringsToComboBox(
616  QComboBox& cbox, const StringList& lst, bool srt=true) const;
617 
621  StringList getStringsFromComboBox(const QComboBox& cbox) const;
622 
627  void setQStringsToComboBox(
628  QComboBox& cbox, QStringList lst, bool srt=true) const;
629 
633  QStringList getQStringsFromComboBox(const QComboBox& cbox) const;
634 
635  protected:
636  QVBoxLayout* myMainLayout;
637  QHBoxLayout* myConditionsLayout;
638  QVBoxLayout* myWeatherLayout;
640  QVBoxLayout* myMarineLayout;
643 
644  QSignalMapper* myConditionsSignalMapper;
653 
655 
659 
662  QRadioButton* myPrecipitationNone;
663  QRadioButton* myPrecipitationRain;
664  QRadioButton* myPrecipitationSnow;
665  QRadioButton* myPrecipitationHail;
668 
673 
682 
685 
686 #if 0
687  QPushButton* myEditCloudCoversPushButton;
688 #endif
691 
693 
698 
701 
703 
706 
707  QSignalMapper* mySeaStateSignalMapper;
708  QButtonGroup* mySeaStateButtonGroup;
709  QRadioButton* mySeaStateWindDriven;
710  QRadioButton* mySeaStateManual;
713 
716 
718 
736 
739 
744 
745  };
746 
747 }
QRadioButton * myPrecipitationSnow
Definition: DtEnvironmentConditionsWidget.h:664
QSignalMapper * myPrecipitationSignalMapper
Definition: DtEnvironmentConditionsWidget.h:660
QLabel * myAdvancedMarineSectionTitle
Definition: DtEnvironmentConditionsWidget.h:717
WidgetList myEnabledOnManualEnvironment
Definition: DtEnvironmentConditionsWidget.h:740
QSignalMapper * mySeaStateSignalMapper
Definition: DtEnvironmentConditionsWidget.h:707
DtSliderDoubleSpinboxWidget * mySnowMinimumElevation
Definition: DtEnvironmentConditionsWidget.h:680
A unicode string.
Definition: DtUnicode.h:33
QLabel * myUnderWaterVisibilityLabel
Definition: DtEnvironmentConditionsWidget.h:722
QComboBox * mySeaStates
Definition: DtEnvironmentConditionsWidget.h:711
DtSliderDoubleSpinboxWidget * myGroundRainAccumulation
Definition: DtEnvironmentConditionsWidget.h:684
QPushButton * myAddEnvironmentConditions
Definition: DtEnvironmentConditionsWidget.h:647
DtWindDirectionWidget * mySeaStateDirection
Definition: DtEnvironmentConditionsWidget.h:712
QCheckBox * myUnderWaterVisibilityEnabled
Definition: DtEnvironmentConditionsWidget.h:721
DtSliderDoubleSpinboxWidget * myUnderWaterVisibility
Definition: DtEnvironmentConditionsWidget.h:723
DtSliderDoubleSpinboxWidget * myTidalCurrentDirection
Definition: DtEnvironmentConditionsWidget.h:735
QLabel * myFetchLabel
Definition: DtEnvironmentConditionsWidget.h:726
A push-button that displays a current color and pops up a color picker dialog when pressed...
Definition: DtColorPushButton.h:26
QList< QWidget * > WidgetList
Definition: DtEnvironmentConditionsWidget.h:580
DtSliderSpinboxWidget * myAirTurbidity
Definition: DtEnvironmentConditionsWidget.h:700
DtSliderDoubleSpinboxWidget * mySurgeDepth
Definition: DtEnvironmentConditionsWidget.h:729
QLabel * myFogColorLabel
Definition: DtEnvironmentConditionsWidget.h:696
QVBoxLayout * myWeatherLayout
Definition: DtEnvironmentConditionsWidget.h:638
QCheckBox * myListenToVrf
Definition: DtEnvironmentConditionsWidget.h:737
QLabel * mySurfaceTransparencyLabel
Definition: DtEnvironmentConditionsWidget.h:719
QString myLastSelectedCondition
Definition: DtEnvironmentConditionsWidget.h:651
QRadioButton * mySeaStateManual
Definition: DtEnvironmentConditionsWidget.h:710
QLabel * myConditionsLabel
Definition: DtEnvironmentConditionsWidget.h:645
A widget for pairing a horizontal slider with a spinbox.
Definition: DtSliderSpinboxWidget.h:30
Declaration for the makVrv::DtEnvironmentConditionsInterface class.
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
QRadioButton * myPrecipitationHail
Definition: DtEnvironmentConditionsWidget.h:665
QPushButton * myAdvancedWeatherButton
Definition: DtEnvironmentConditionsWidget.h:689
QLabel * mySnowElevationTransitionLabel
Definition: DtEnvironmentConditionsWidget.h:676
Contains DLL export macros.
QLabel * myGroundSnowAccumulationLabel
Definition: DtEnvironmentConditionsWidget.h:674
DtWindDirectionWidget * myWindDirection
Definition: DtEnvironmentConditionsWidget.h:658
DtSliderDoubleSpinboxWidget * mySnowElevationTransition
Definition: DtEnvironmentConditionsWidget.h:681
QLabel * myWeatherSectionTitle
Definition: DtEnvironmentConditionsWidget.h:654
DtSliderDoubleSpinboxWidget * myDepthOffset
Definition: DtEnvironmentConditionsWidget.h:731
DtSliderDoubleSpinboxWidget * myRoadSnowAccumulation
Definition: DtEnvironmentConditionsWidget.h:679
QButtonGroup * mySeaStateButtonGroup
Definition: DtEnvironmentConditionsWidget.h:708
QLabel * myAirTurbidityLabel
Definition: DtEnvironmentConditionsWidget.h:699
QVBoxLayout * myAdvancedWeatherLayout
Definition: DtEnvironmentConditionsWidget.h:639
QLabel * myGroundRainAccumulationLabel
Definition: DtEnvironmentConditionsWidget.h:683
QLabel * myCloudLayerLabel
Definition: DtEnvironmentConditionsWidget.h:672
A widget for pairing a wind direction dial with a combo box.
Definition: DtWindDirectionWidget.h:36
QPushButton * myAdvancedMarineButton
Definition: DtEnvironmentConditionsWidget.h:714
QLabel * myRoadSnowAccumulationLabel
Definition: DtEnvironmentConditionsWidget.h:677
QVBoxLayout * myMainLayout
Definition: DtEnvironmentConditionsWidget.h:636
WidgetList myEnabledOnManualStateSet
Definition: DtEnvironmentConditionsWidget.h:742
QComboBox * mySwellState
Definition: DtEnvironmentConditionsWidget.h:704
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
DtSliderSpinboxWidget * myChoppiness
Definition: DtEnvironmentConditionsWidget.h:725
QLabel * myAdvancedWeatherSectionTitle
Definition: DtEnvironmentConditionsWidget.h:692
QRadioButton * myPrecipitationRain
Definition: DtEnvironmentConditionsWidget.h:663
QVBoxLayout * myMarineLayout
Definition: DtEnvironmentConditionsWidget.h:640
WidgetList myEnabledOnPrecipitation
Definition: DtEnvironmentConditionsWidget.h:741
QRadioButton * myPrecipitationNone
Definition: DtEnvironmentConditionsWidget.h:662
A widget for pairing a horizontal slider with a double spin-box.
Definition: DtSliderDoubleSpinboxWidget.h:30
DtCloudCoverType
Definition: DtCloudCoverType.h:14
QVBoxLayout * myAdvancedMarineLayout
Definition: DtEnvironmentConditionsWidget.h:641
QLabel * myWindSpeedLabel
Definition: DtEnvironmentConditionsWidget.h:656
QLabel * myVisibilityLabel
Definition: DtEnvironmentConditionsWidget.h:669
DtSliderDoubleSpinboxWidget * myGroundSnowAccumulation
Definition: DtEnvironmentConditionsWidget.h:678
DtWindDirectionWidget * mySwellStateDirection
Definition: DtEnvironmentConditionsWidget.h:705
std::list< DtUnicode > StringList
Definition: DtEnvironmentConditionsInterface.h:34
QLabel * mySurgeDepthLabel
Definition: DtEnvironmentConditionsWidget.h:728
DtSliderDoubleSpinboxWidget * myTidalCurrentSpeed
Definition: DtEnvironmentConditionsWidget.h:733
QPushButton * mySelectDefaultCondition
Definition: DtEnvironmentConditionsWidget.h:650
QComboBox * myCloudCoversComboBox
Definition: DtEnvironmentConditionsWidget.h:671
DtSliderDoubleSpinboxWidget * mySurfaceTransparency
Definition: DtEnvironmentConditionsWidget.h:720
DtSliderDoubleSpinboxWidget * myWindSpeed
Definition: DtEnvironmentConditionsWidget.h:657
DtSliderSpinboxWidget * myPrecipitationIntensity
Definition: DtEnvironmentConditionsWidget.h:667
QPushButton * myRemoveEnvironmentConditions
Definition: DtEnvironmentConditionsWidget.h:648
DtSliderDoubleSpinboxWidget * myFogHeight
Definition: DtEnvironmentConditionsWidget.h:695
QHBoxLayout * myConditionsLayout
Definition: DtEnvironmentConditionsWidget.h:637
WidgetList myVisibleOnShowAdvanced
Definition: DtEnvironmentConditionsWidget.h:743
QString myLastDefaultCondition
Definition: DtEnvironmentConditionsWidget.h:652
An advanced weather condition settings widget.
Definition: DtEnvironmentConditionsWidget.h:46
QComboBox * myConditionNames
Definition: DtEnvironmentConditionsWidget.h:646
QRadioButton * mySeaStateWindDriven
Definition: DtEnvironmentConditionsWidget.h:709
QHBoxLayout * myRemoteListeningLayout
Definition: DtEnvironmentConditionsWidget.h:642
QPushButton * mySaveEnvironmentConditions
Definition: DtEnvironmentConditionsWidget.h:649
QLabel * myTidalCurrentSpeedLabel
Definition: DtEnvironmentConditionsWidget.h:732
An abstract interface for a weather condition settings widget.
Definition: DtEnvironmentConditionsInterface.h:29
QLabel * mySnowMinimumElevationLabel
Definition: DtEnvironmentConditionsWidget.h:675
QPushButton * myRefreshVrfWeather
Definition: DtEnvironmentConditionsWidget.h:738
QButtonGroup * myPrecipitationButtonGroup
Definition: DtEnvironmentConditionsWidget.h:661
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QLabel * myDepthOffsetLabel
Definition: DtEnvironmentConditionsWidget.h:730
QWidget * myAdvancedMarine
Definition: DtEnvironmentConditionsWidget.h:715
voidpf uLong offset
Definition: ioapi.h:42
DtSliderDoubleSpinboxWidget * myFetch
Definition: DtEnvironmentConditionsWidget.h:727
QLabel * myMarineSectionTitle
Definition: DtEnvironmentConditionsWidget.h:702
DtColorPushButton * myFogColor
Definition: DtEnvironmentConditionsWidget.h:697
QLabel * myChoppinessLabel
Definition: DtEnvironmentConditionsWidget.h:724
QLabel * myPrecipitationIntensityLabel
Definition: DtEnvironmentConditionsWidget.h:666
QSignalMapper * myConditionsSignalMapper
Definition: DtEnvironmentConditionsWidget.h:644
DtSliderDoubleSpinboxWidget * myVisibility
Definition: DtEnvironmentConditionsWidget.h:670
QLabel * myTidalCurrentDirectionLabel
Definition: DtEnvironmentConditionsWidget.h:734
QLabel * myFogHeightLabel
Definition: DtEnvironmentConditionsWidget.h:694
QWidget * myAdvancedWeather
Definition: DtEnvironmentConditionsWidget.h:690

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)