![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2007 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: altitudeSelectionWidget.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef ALTITUDESELECTIONWIDGET_H_ 00013 #define ALTITUDESELECTIONWIDGET_H_ 00014 00015 #include "terrainqt/ui_altitudeSelectionWidgetUi.h" 00016 00017 #include "drawerNative/convUtils.h" 00018 #include "geometry/point.h" 00019 00020 #include <QtGui/QValidator> 00021 00022 const int DtClampPolygonSelected = 0; 00023 const int DtSetManuallySelected = 1; 00024 const int DtHeightAboveTerrainSelected = 2; 00025 00031 00032 #include "terrainqt/terrainqtDefines.h" 00033 00034 class DT_DLL_terrainqt DtAltitudeIntersectionPoint 00035 { 00036 public: 00037 DtAltitudeIntersectionPoint() {}; 00038 DtAltitudeIntersectionPoint(const QString& soil, const DtPoint& intPoint) : 00039 mySoil(soil), myIntPoint(intPoint) {}; 00040 DtAltitudeIntersectionPoint(const DtAltitudeIntersectionPoint& orig) : 00041 mySoil(orig.mySoil), myIntPoint(orig.myIntPoint) {}; 00042 00043 QString mySoil; 00044 DtPoint myIntPoint; 00045 }; 00046 00047 class DT_DLL_terrainqt DtAltitudeSelectionWidget : public QWidget 00048 { 00049 00050 Q_OBJECT 00051 00052 public: 00053 00055 DtAltitudeSelectionWidget(QWidget* parent = NULL, const Qt::WindowFlags& flags = 0); 00056 00058 virtual ~DtAltitudeSelectionWidget(); 00059 00061 virtual bool init(const DtPoint& point); 00062 00064 virtual double altitude() const; 00065 00068 virtual bool determineClamping() const; 00069 00071 virtual QString altitudeText() const; 00072 00074 virtual void setAltitude(double d); 00075 00076 virtual void setLocation(const DtPoint&, bool updateOffset); 00077 virtual void disconnectConnections(); 00078 00079 virtual void setShowHeightAboveTerrain(bool, double t = -1); 00080 bool showHeightAboveTerrain() const; 00081 virtual double heightAboveTerrain() const; 00082 virtual bool useHeightAboveTerrain() const; 00083 virtual bool useAltitude() const; 00084 00086 virtual const DtPoint& location() const; 00087 00089 virtual void clearPointEdit(); 00090 00091 virtual void setAltitudeOnlyMode(bool); 00092 virtual bool altitudeOnlyMode() const; 00093 00094 public slots: 00095 00096 virtual void updateUnits(const QString& u, const QString&, const QString&); 00097 virtual void setLabels(); 00098 00099 protected slots: 00100 virtual void selectAltitude(); 00101 virtual void clampChanged(); 00102 virtual void clampSelectionChanged(); 00103 virtual void selectionChanged(); 00104 00105 signals: 00106 void altitudeSelectionChanged(int, double); 00107 00108 protected: 00109 virtual void fillInIntersections(const DtPoint* pnt, double curAltitude); 00110 00112 virtual QString titleFor(const DtAltitudeIntersectionPoint&) const; 00113 00114 virtual void modifyHeightAboveTerrain(); 00115 00116 public: 00117 Ui::AltitudeSelectionWidgetUi myUiImpl; 00118 00119 protected: 00120 QDoubleValidator myDoubleValidator; 00121 QVector<DtAltitudeIntersectionPoint> myIntersectionPoints; 00122 bool myShowHeightAboveTerrain; 00123 bool myAltitudeOnlyMode; 00124 DtPoint myLocation; 00125 QString myDisplayingIn; 00126 }; 00127 00128 inline const DtPoint& DtAltitudeSelectionWidget::location() const 00129 { 00130 return myLocation; 00131 } 00132 00133 inline bool DtAltitudeSelectionWidget::showHeightAboveTerrain() const 00134 { 00135 return myShowHeightAboveTerrain; 00136 } 00137 00138 #endif