![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vertexEditorHandler.h,v $ $Revision: 1.16 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef VERTEXEDITORHANDLER_H_ 00013 #define VERTEXEDITORHANDLER_H_ 00014 00015 #include "tmqt/eventHandler.h" 00016 00017 class DtTMMapArea; 00018 class DtLineSymbol; 00019 class DtPoint; 00020 class DtModelData; 00021 class DtSymbolSelector; 00022 class DtSymbol; 00023 00029 #include "tmEventHandler/tmEventHandlerDefines.h" 00030 class DT_DLL_tmEventHandler DtVertexEditorHandler : public DtEventHandler 00031 { 00032 Q_OBJECT 00033 00034 public: 00036 DtVertexEditorHandler(); 00037 00039 virtual ~DtVertexEditorHandler(); 00040 00041 virtual bool canAddPointTo(DtTMMapArea* area, DtSymbol* symbol); 00042 00045 virtual bool canDeletePoint(DtTMMapArea* area, DtSymbol* symbol); 00046 00048 virtual bool canMovePoint(DtTMMapArea* area, DtSymbol* line); 00049 00050 public: 00052 static DtEventHandler* create(DtEventController* owner, void* usr); 00053 00054 public slots: 00056 virtual void done(); 00057 00060 virtual void processAddPoint(); 00061 virtual void processAddPoint(DtTMMapArea* area, DtLineSymbol* line, const DtPoint& pnt); 00062 00064 virtual void processDeletePoint(); 00065 00066 virtual bool mouseEvent(DtTMMapArea* area, QMouseEvent* evnt, const DtPoint& pnt); 00067 virtual bool keyboardEvent(DtTMMapArea* area, QKeyEvent* evnt); 00068 00070 virtual bool deleteSelectedPoint(DtTMMapArea* area); 00071 00074 virtual void moveSelectedPointBy(DtTMMapArea* area, DtModelData* data, const DtPoint& delta); 00075 00076 protected: 00077 00079 virtual void moveSelectedPointTo(DtTMMapArea* area, const QPoint& pnt, const DtPoint& dbPoint); 00080 00082 virtual void cancelMove(); 00083 00085 virtual void acceptMove(const QPoint& pnt, const DtPoint& dbPoint); 00086 00089 virtual bool completeMove(const QPoint& pnt, const DtPoint& dbPoint); 00090 00094 virtual DtSymbol* getWorkingSymbol(DtTMMapArea* area, const DtPoint* atLocation = NULL) const; 00095 virtual DtSymbol* getWorkingSymbol(DtSymbol* symbol) const; 00096 virtual DtModelData* getModelData(DtTMMapArea* area) const; 00097 00100 virtual DtSymbol* getEditingSymbol(DtTMMapArea* area, const DtPoint* atLocation = NULL) const; 00101 00103 virtual void createTempSymbol(DtTMMapArea* area); 00104 00107 virtual void removeTempSymbol(DtTMMapArea* area); 00108 00111 virtual DtSymbol* createSymbol(DtTMMapArea* area); 00112 00114 virtual bool initializeEdit(DtTMMapArea* area); 00115 00117 virtual void addPointTo(DtLineSymbol* symbol, const QPoint& pos); 00118 00121 virtual int timeout() const; 00122 00124 virtual void modifyPoint(const DtModelData& data, DtPoint& pnt); 00125 00126 virtual void clearTimer(); 00127 00128 protected: 00129 DtSymbol* myTempSymbol; 00130 DtTMMapArea* myActiveMap; 00131 DtSymbol* myWorkingSymbol; 00132 DtModelData* myModelData; 00133 bool myAddingPoint; 00134 QTimer* myAcceptTimer; 00135 }; 00136 00137 #endif //VERTEXEDITORHANDLER_H_ 00138