/*========================================================================= Program: wxMaracas Module: $RCSfile: CutModel2MainPanel.h,v $ Language: C++ Date: $Date: 2009/11/23 13:00:21 $ Version: $Revision: 1.5 $ Copyright: (c) 2002, 2003 License: This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #ifndef __CutModel2MainPanelPanelH__ #define __CutModel2MainPanelPanelH__ #include #include #include #include "wx/aui/aui.h" #include #include #include "marTypes.h" #include "CutModel2Manager.h" #include "CutModelException.h" #include "CutModel2View.h" #include "vtkImageData.h" #include "vtkRenderWindowInteractor.h" class creaMaracasVisu_EXPORT CutModel2MainPanel : public wxPanel { public: ~CutModel2MainPanel( ); static CutModel2MainPanel* getInstance(wxWindow* parent=NULL, std::string path =""); //static CutModel2MainPanel* getInstance(); void setImageData(vtkImageData* img); void setInteractor(vtkRenderWindowInteractor* interactor); void setRenderer(vtkRenderer* renderer); void initialize(std::string path); void onAddCutModel2(); void onUndo(); void onRedo(); void changeOpacity(int id,int opacity); void ShowViewBox(int id,bool check); void ChangeShape(int id,int selection); void changeColor(int id,double r,double g,double b); void updateActorDirection(int id); void RemoveActor(int id); void ExecuteCut(int id, double* range, bool isinside); void ExecuteAll(); vtkImageData* GetResultImage(); void ShowCurrentPanel(int id); void ShowPopUpMenu(int id); void ShowStatistics(int id); private: CutModel2MainPanel( wxWindow* parent, std::string path); static CutModel2MainPanel* instance; CutModel2Manager* cutmanager; void checkInvariant() throw( CutModelException); void showErrorDialog(std::string str); void SaveCutModelData(std::string filename); void LoadCutModelData(std::string filename); std::vector viewpanels; wxAuiManager* _wxauimanager; int addNewViewPanel()throw( CutModelException); CutModel2View* getModelView(int id)throw( CutModelException); int _panelid; }; class ToolBarEventHandlerCutModel2 : public wxEvtHandler{ public: ToolBarEventHandlerCutModel2(); ~ToolBarEventHandlerCutModel2(); void onAdd(wxCommandEvent& event); void onUndo(wxCommandEvent& event); void onRedo(wxCommandEvent& event); void onExecuteAll(wxCommandEvent& event); private: DECLARE_EVENT_TABLE() }; class ToolBarCutModel2 : public wxToolBar{ public: ToolBarCutModel2(wxWindow * parent); ~ToolBarCutModel2(void); private: ToolBarEventHandlerCutModel2* _evthand; }; #endif