![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #pragma once 00007 00008 #include "bhave3DGui/bhave3DGuiDefines.h" 00009 #include <bhave3DGui/bhavePdgThread.h> 00010 #include <bhave3DGui/boxDrawEventProcessor.h> 00011 #include <vrvUtil/signalslib.h> 00012 #include <vrvCore/DtDe.h> 00013 #include <vrvCore/DtIntersector.h> 00014 #include <vrvCoreQt/DtMenuItem.h> 00015 00016 #include <bhavePathDataGen/extentBoxStruct.h> 00017 00018 #include "bhave3DGui/ui_generatePathDataWidgetUi.h" 00019 00020 00021 #include "vrfGuiCoreQt/autoHideDock.h" 00022 #include <QtGui/QDialog> 00023 #include "vrfGuiCoreQt/autoHidePanel.h" 00024 00025 namespace BHAVE 00026 { 00027 namespace BHAVE3DGui 00028 { 00029 enum PDGWidgetState 00030 { 00031 INITIALIZE, 00032 START, 00033 SELECT_ALL, 00034 SELECT_BOX, 00035 GENERATING 00036 }; 00037 00038 class DT_DLL_bhave3DGui DtGeneratePathDataWidget : public makVrf::DtAutoHideDock 00039 { 00040 Q_OBJECT 00041 00042 public: 00043 DtGeneratePathDataWidget(QWidget *parent, makVrv::DtDe& de, DtBhavePdgThread* pdgThread, QAction* action = 0); 00044 virtual ~DtGeneratePathDataWidget(); 00045 virtual void init(std::string initialTerrain); 00046 00049 virtual void removeFromPanel(); 00050 00053 virtual void addToPanel(); 00054 00056 virtual bool isDockInPanel(); 00057 00058 00059 protected slots: 00061 virtual void pathdataFinished(int result); 00062 00064 virtual void performGeneration(); 00065 00067 virtual void cancelAndReset(); 00068 00072 virtual void setUiToUseAllState(); 00073 virtual void setUiToSelectBoxState(); 00074 virtual void setUiToStartState(); 00075 virtual void setUiToGeneratingState(); 00076 00077 protected: 00078 00080 virtual void slot_onTerrainLoaded(const std::string&); 00081 virtual void slot_onTerrainGeometryLoaded(); 00082 virtual void slot_onExtentBoxChanged(const makVrv::DtIntersectorResult&, const makVrv::DtIntersectorResult&, 00083 const makVrv::DtIntersectorResult&,const makVrv::DtIntersectorResult&); 00084 00086 virtual void slot_onExtentBoxCreated(); 00087 00089 virtual void slot_onExtentBoxStarted(); 00090 00092 virtual void showDrawCursor(bool show); 00093 00095 virtual void enableGenerateBtnIfAble(bool enable); 00096 00098 virtual void enableCoordBoxes(bool enable); 00099 00101 virtual void clearCoordBoxes(); 00102 00104 virtual void clearDrawnBox(); 00105 00107 virtual void setExtentBox(); 00108 00110 virtual void closeEvent(QCloseEvent* event); 00111 virtual void leaveEvent(QEvent* event); 00112 virtual void enterEvent(QEvent* event); 00113 00114 protected: 00115 Ui_DtGeneratePathDataWidgetUi* myUi; 00116 QWidget* myWidget; 00117 makVrv::DtDe* myDe; 00118 QAction* myAction; 00119 DtBhavePdgThread* myPdgThread; 00120 DtBoxDrawEventProcessor *myBoxProcessor; 00121 bool myFirstTrigger; 00122 bool myIsGeocentric; 00123 bool myIsMTF; 00124 DtExtentBoxStruct myExtents; 00125 makVrf::DtAutoHidePanel* myPanelParent; 00126 bool myIsDockInPanel; 00127 PDGWidgetState myState; 00128 }; 00129 } 00130 } 00131