![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2004 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: terrainLineConfigWidget.h,v $ $Revision: 1.12 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DTTERRAINLINECONFIGWIDGET_H 00013 #define DTTERRAINLINECONFIGWIDGET_H 00014 00015 #include "tmqt/lineConfigWidget.h" 00016 #include "symbolMapper/modelData.h" 00017 #include "symbology/symbol.h" 00018 00019 #include <QtGui/QTreeWidget> 00020 00021 class QPushButton; 00022 class DtViewDriver; 00023 00025 #include "terrainqt/terrainqtDefines.h" 00026 class DT_DLL_terrainqt DtRangeGroup : public QTreeWidgetItem 00027 { 00028 public: 00029 DtRangeGroup(QTreeWidget* parent, const QString& text); 00030 00031 virtual ~DtRangeGroup(); 00032 00034 virtual QTreeWidgetItem* lastItem(); 00035 virtual void addChild(QTreeWidgetItem* item); 00036 00038 virtual const QList<QTreeWidgetItem*>& children() const; 00039 00041 virtual bool isChild(QTreeWidgetItem* item); 00042 00043 protected: 00044 QList<QTreeWidgetItem*> myChildren; 00045 }; 00046 00050 00051 class DT_DLL_terrainqt DtTerrainLineConfigWidget : public DtLineConfigWidget 00052 { 00053 00054 Q_OBJECT 00055 00056 public: 00057 00059 DtTerrainLineConfigWidget(QWidget* parent = NULL, const Qt::WindowFlags& flags = 0); 00060 00062 virtual ~DtTerrainLineConfigWidget(); 00063 00064 static QWidget* create(QWidget* parent = NULL, const Qt::WindowFlags& flags = 0); 00065 00066 public: 00072 virtual void setPointRanges(const QVector<int>& ranges); 00073 00074 protected: 00077 virtual QTreeWidgetItem* addPoint(const DtPoint& pnt, QTreeWidgetItem* before, 00078 const QString& name, const QString& xtr, const QString& ystr, const QString& zstr); 00079 00082 virtual DtRangeGroup* rangeGroup(int iPointNum); 00083 00085 virtual QTreeWidgetItem* firstChild(); 00086 virtual QTreeWidgetItem* nextSibling(QTreeWidgetItem* item); 00087 00089 virtual bool isRangeGroup(QTreeWidgetItem* item) const; 00090 00091 virtual void clearListView(); 00092 virtual void reversePoints(); 00093 00094 virtual bool initMainDialogChanges(); 00095 00099 virtual void createRouteFromRange(int route, int iBeing, int iEnd, bool last = false); 00100 00101 virtual void updateButtons(); 00102 virtual void deletePoint(); 00103 virtual void addPointToList(const DtPoint& p, QTreeWidgetItem* before); 00104 00106 virtual int rangeIndex(QTreeWidgetItem*) const; 00107 00110 virtual DtRangeGroup* rangeGroup(QTreeWidgetItem*) const; 00111 virtual unsigned int childCount() const; 00112 00113 virtual void changePoint(); 00114 00116 virtual void reverseRangeGroup(const DtRangeGroup*); 00117 00121 virtual DtSymbol* selectedSymbol(); 00122 virtual void removeMappedSymbols(); 00123 00126 virtual void applyChangesToPointList(); 00127 00128 00129 virtual void setupEdgeSymbol(); 00130 virtual DtModelData* setupEdgeModelData(); 00131 00132 virtual DtModelData* edgeModelData() const; 00133 00134 public slots: 00138 virtual void createRoutes(); 00139 virtual void setEditPoint(QTreeWidgetItem* item); 00140 00143 virtual void moveEdgeUp(); 00144 virtual void moveEdgeDown(); 00145 virtual void moveEdge(int iFrom, bool up, bool select = true); 00146 virtual void getPointRange(int iRangeIndex, int& iFrom, int& iTo) const; 00147 virtual QVector<DtPoint> getPointList(int iRangeIndex) const; 00148 00149 private: 00150 00152 DtTerrainLineConfigWidget(const DtTerrainLineConfigWidget& orig); 00153 00155 DtTerrainLineConfigWidget& operator=(const DtTerrainLineConfigWidget& orig); 00156 00157 protected: 00158 QVector<int> myPointRanges; 00159 QHash<int, DtRangeGroup*> myRangeParents; 00160 QPushButton* myCreateRoutes; 00161 00162 QPushButton* myUpEdge; 00163 QPushButton* myDownEdge; 00164 00167 DtSymbol* myEdgeSelectionSymbol; 00168 DtModelData* myEdgeSelectionHighlightData; 00169 DtEntityMapperKey myEdgeSelectionModelKey; 00170 }; 00171 00172 #endif