X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2FCutModule%2Finterface%2FCutModelMainPanel.cxx;h=2991814153232b6e0f4aa64d6e9c9f253a093b6d;hb=7efcf8b7c62b77ababdaf2c52c2b862597b0b129;hp=fdd26301b176256512ac50ca38ca80eba0cdc150;hpb=2d5984d688d7b149aa7706a0a0bf8c4b4556d788;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/CutModule/interface/CutModelMainPanel.cxx b/lib/maracasVisuLib/src/CutModule/interface/CutModelMainPanel.cxx index fdd2630..2991814 100644 --- a/lib/maracasVisuLib/src/CutModule/interface/CutModelMainPanel.cxx +++ b/lib/maracasVisuLib/src/CutModule/interface/CutModelMainPanel.cxx @@ -3,8 +3,8 @@ Program: wxMaracas Module: $RCSfile: CutModelMainPanel.cxx,v $ Language: C++ - Date: $Date: 2009/08/31 08:46:09 $ - Version: $Revision: 1.1 $ + Date: $Date: 2009/09/08 08:14:25 $ + Version: $Revision: 1.3 $ Copyright: (c) 2002, 2003 License: @@ -20,7 +20,8 @@ // EOF - wxMaracasMPR.cxx #include "CutModelMainPanel.h" - +#include "HistogramDialog.h" +#include "creaSystem.h" #include #include @@ -30,23 +31,26 @@ #include #include + + CutModelMainPanel* CutModelMainPanel::instance=NULL; -CutModelMainPanel::CutModelMainPanel( wxWindow* parent) +CutModelMainPanel::CutModelMainPanel( wxWindow* parent, std::string path) : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize){ cutmanager=NULL; - initialize(); + initialize(path); } CutModelMainPanel::~CutModelMainPanel( ){ - + delete cutmanager; } -void CutModelMainPanel::initialize(){ - cutmanager = new CutModelManager(); +void CutModelMainPanel::initialize(std::string path){ + + cutmanager = new CutModelManager(path); _panelid = 0; _wxauimanager = new wxAuiManager(this); @@ -57,16 +61,19 @@ void CutModelMainPanel::initialize(){ _wxauimanager->Update(); } -CutModelMainPanel* CutModelMainPanel::getInstance(wxWindow* parent){ +CutModelMainPanel* CutModelMainPanel::getInstance(wxWindow* parent, std::string path){ if(instance==NULL){ - instance = new CutModelMainPanel(parent); + if(parent == NULL){ + parent = new wxFrame(); + } + instance = new CutModelMainPanel(parent, path); } return instance; } -CutModelMainPanel* CutModelMainPanel::getInstance(){ +/*CutModelMainPanel* CutModelMainPanel::getInstance(){ return instance; -} +}*/ void CutModelMainPanel::setImageData(vtkImageData* img){ try{ @@ -147,6 +154,7 @@ void CutModelMainPanel::ShowCurrentPanel(int id){ for(int i = 0; i < viewpanels.size();i++){ if(viewpanels[i]->getId()==id){ _wxauimanager->GetPane(viewpanels[i]).Show(true); + cutmanager->RefreshActor(id); }else{ _wxauimanager->GetPane(viewpanels[i]).Show(false); } @@ -182,11 +190,26 @@ CutModelView* CutModelMainPanel::getModelView(int id)throw( CutModelException){ return current; } void CutModelMainPanel::onUndo(){ + try{ + checkInvariant(); + int result = cutmanager->Undo(); + }catch(CutModelException e){ + showErrorDialog(e.getCause()); + } + } void CutModelMainPanel::onRedo(){ + try{ + checkInvariant(); + int result = cutmanager->Redo(); + + }catch(CutModelException e){ + showErrorDialog(e.getCause()); + } + } void CutModelMainPanel::changeOpacity(int id,int opacity){ @@ -245,7 +268,8 @@ void CutModelMainPanel::updateActorDirection(int id){ void CutModelMainPanel::ExecuteCut(int id, double* range, bool isinside){ try{ - checkInvariant(); + checkInvariant(); + cutmanager->ExecuteCut(id, range, isinside); }catch(CutModelException e){ showErrorDialog(e.getCause()); @@ -267,6 +291,26 @@ vtkImageData* CutModelMainPanel::GetResultImage(){ } return NULL; } + +void CutModelMainPanel::ShowStatistics(int id){ + + checkInvariant(); + HistogramDialog *histo = new HistogramDialog(this, _T("Statistics")); + + histo->initializeHistogram(cutmanager->GetResultImage()); + + histo->ShowModal(); + + delete histo; +} + +void CutModelMainPanel::SaveCutModelData(std::string filename){ + cutmanager->SaveCutModelData(filename); +} + +void CutModelMainPanel::LoadCutModelData(std::string filename){ + cutmanager->LoadCutModelData(filename); +} /** ** **/