![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2003 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: terrainLocationEntryWidget.h,v $ $Revision: 1.18 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef TERRAINLOCATIONENTRYWIDGET_H_ 00013 #define TERRAINLOCATIONENTRYWIDGET_H_ 00014 00015 #include "tmqt/locationEntryWidget.h" 00016 00017 class DtTerrainDatabase; 00018 class DtVector; 00019 class Coordinate_System; 00020 class DtAltitudeSelectionWidget; 00021 00025 00026 #include "terrainqt/terrainqtDefines.h" 00027 class DT_DLL_terrainqt DtTerrainLocationEntryWidget : public DtLocationEntryWidget 00028 { 00029 00030 Q_OBJECT 00031 00032 public: 00033 00035 DtTerrainLocationEntryWidget(QWidget* parent = NULL, const Qt::WindowFlags& flags = 0); 00036 00038 virtual ~DtTerrainLocationEntryWidget(); 00039 00040 static DtLocationEntryWidget* create(QWidget* parent = NULL, const Qt::WindowFlags& flags = 0); 00041 00045 virtual void convertFromSource(const DtPoint& pnt, const DtCoordSys& newSys, DtStringLocation& out); 00046 00049 virtual void convertToSource(const DtStringLocation& in, double& x, double& y, double& z); 00050 00053 virtual void setFromGeocentric(const DtVector& vector); 00054 00056 virtual DtVector geocentric(); 00057 00059 virtual DtPoint localCoordinate(bool* res = NULL); 00060 00061 virtual void initConnections(); 00062 00063 void setTerrainDatabase(const DtTerrainDatabase*); 00064 virtual const DtTerrainDatabase* terrainDatabase() const; 00065 00067 virtual bool init(const DtCoordinateSystemCollection* c, const DtUnitDisplayManager* units, 00068 const DtCoordSys& system); 00069 virtual void setUseAltitudeSelection(bool, bool update = true); 00070 virtual void setShowHeightAboveTerrain(bool, double t = -1); 00071 00072 virtual QString zText() const; 00073 virtual QString localZText() const; 00074 virtual void setZText(QString z); 00075 virtual void setReadOnly(bool b); 00076 virtual void setValues(const DtStringLocation& loc); 00077 virtual bool zIsVisible() const; 00078 virtual void hideZ(); 00079 virtual void showZ(); 00080 00081 virtual double heightAboveTerrain() const; 00082 virtual bool useHeightAboveTerrain() const; 00083 virtual bool useAltitude() const; 00084 00086 virtual double altitude() const; 00087 00088 virtual void updateLabels(); 00089 virtual void clearPointEdit(); 00090 00091 public slots: 00092 virtual void updateCoordinateSystem(const DtCoordSys& system); 00093 00096 virtual void pointChanged(); 00097 00098 signals: 00099 void coordinateSystemUpdated(); 00100 00101 protected: 00102 virtual void setupAltitudeWidget(); 00103 00104 protected: 00105 DtAltitudeSelectionWidget* myAltitudeSelectionWidget; 00106 const DtTerrainDatabase* myTerrainDatabase; 00107 Coordinate_System* myDefaultCoordinateSystem; 00108 bool myIsInitialized; 00109 }; 00110 00111 inline void DtTerrainLocationEntryWidget::setTerrainDatabase(const DtTerrainDatabase* db) 00112 { 00113 myTerrainDatabase = db; 00114 updateCoordinateSystem(myCoordinateSystem); 00115 } 00116 00117 #endif