![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2000 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: infoWidget.h,v $ $Revision: 1.21 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef INFOWIDGET_H 00013 #define INFOWIDGET_H 00014 00015 #include "terrainqt/ui_infoWidgetUi.h" 00016 #include "tmqt/tmDisplayOptions.h" 00017 #include "drawerNative/convUtils.h" 00018 #include "geometry/point.h" 00019 00020 #include <map> 00021 00022 class DtTMFactory; 00023 class DtVector; 00024 class DtCoordinateSystemCollection; 00025 class DtLocationEntryWidget; 00026 class DtTerrainDatabase; 00027 class Coordinate_System; 00028 00032 00033 #include "terrainqt/terrainqtDefines.h" 00034 class DT_DLL_terrainqt DtInfoWidget : public QWidget 00035 { 00036 00037 Q_OBJECT 00038 00039 public: 00040 00042 DtInfoWidget(QWidget* parent = NULL, const Qt::WindowFlags& flags = 0); 00043 00045 virtual ~DtInfoWidget(); 00046 00047 virtual bool init(const DtTMFactory* f, const DtCoordinateSystemCollection* coll); 00048 00049 virtual void setCoordinateSystem(const DtCoordSys& s); 00050 virtual DtPoint location() const; 00051 virtual void showCoordinateSystemCombo(bool b); 00052 virtual void setTitle(const QString&); 00053 00054 virtual void setTerrainDatabase(const DtTerrainDatabase*); 00055 const DtTerrainDatabase* terrainDatabase() const; 00056 00057 void setDirty(bool); 00058 00059 public: 00060 00062 static DtInfoWidget* create(QWidget* parent, const Qt::WindowFlags& flags); 00063 00064 public slots: 00065 00066 virtual void clear(); 00067 virtual void resetAllFields(); 00068 virtual void update(); 00069 virtual void updateFromDatabasePoint(); 00070 00071 virtual void updateUnits(const QString& u, const QString&, const QString&); 00072 virtual void updateCoordSys(const QString& s); 00073 virtual void updateCoordSys(const DtCoordSys&); 00074 virtual void setDatabasePoint(const DtPoint& p); 00075 00076 virtual void updateAltitude(int); 00077 virtual void layerDisplayChange(int); 00078 00079 void setSpecialType(const DtPoint& pnt, const QString& name); 00080 void clearSpecialType(); 00081 00082 virtual void setPositionFromGeoc(const DtVector& pos); 00083 00084 protected: 00085 00090 virtual void updateSoilTypeFromLocation(DtVector& localLocation); 00091 00092 virtual void addSpecialTypes(); 00093 00094 signals: 00095 void layerDisplayChanged(); 00096 00097 private: 00099 DtInfoWidget(const DtInfoWidget& orig); 00100 00102 DtInfoWidget& operator=(const DtInfoWidget& orig); 00103 00104 public: 00105 Ui::InfoWidgetUi myUiImpl; 00106 00107 protected: 00108 DtPoint myDatabasePoint; 00109 00110 bool myDirty; 00111 00112 const DtCoordinateSystemCollection* myCoordinateSystemCollection; 00113 DtLocationEntryWidget* myLocationEntryWidget; 00114 00115 std::map<int, DtPoint> myIntersectionPointMap; 00116 int myDatabaseSelection; 00117 00118 QString mySpecialType; 00119 00120 const DtTerrainDatabase* myTerrainDatabase; 00121 Coordinate_System* myDefaultCoordinateSystem; 00122 }; 00123 00124 inline void DtInfoWidget::setSpecialType(const DtPoint& pnt, const QString& name) 00125 { 00126 mySpecialType = name; 00127 clear(); 00128 myDatabasePoint = pnt; 00129 00130 myDirty = true; 00131 00132 update(); 00133 } 00134 00135 inline void DtInfoWidget::clearSpecialType() 00136 { 00137 mySpecialType = ""; 00138 } 00139 00140 inline const DtTerrainDatabase* DtInfoWidget::terrainDatabase() const 00141 { 00142 return myTerrainDatabase; 00143 } 00144 00145 inline void DtInfoWidget::setDirty(bool b) 00146 { 00147 myDirty = b; 00148 } 00149 00150 #endif