X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FmanualPaint%2FManualPaintControler.cpp;h=4e841bec6fdef474304c4eb38600004f0553f95a;hb=15112ae15da4222831b0e8e7c9be87daf9e99a1c;hp=b79b32df9ad3ee571e94c49dcfd9f6ec2551b122;hpb=e4ef2b5df5aac431ff3b806f83b7dd5e55e89d86;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp index b79b32d..4e841be 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp @@ -23,52 +23,79 @@ # knowledge of the CeCILL-B license and that you accept its terms. # ------------------------------------------------------------------------ */ +#include + #include "ManualPaintControler.h" #include "vtkInteractorManualPaint.h" #include "vtkImageActor.h" //--------------------------------------------------------------------------- -ManualPaintControler::ManualPaintControler() { - auxZ = 0; - _wxvtk2Dbaseview = NULL; +ManualPaintControler::ManualPaintControler() +{ + auxZ = 0; +// _wxvtk2Dbaseview = NULL; + _wxvtk2Dbaseview1 = NULL; + _wxvtk2Dbaseview2 = NULL; + _wxvtk2Dbaseview3 = NULL; + _wxvtk2Dbaseview4 = NULL; } //--------------------------------------------------------------------------- -ManualPaintControler::~ManualPaintControler() { +ManualPaintControler::~ManualPaintControler() +{ } //--------------------------------------------------------------------------- -void ManualPaintControler::SetManualPaintModel( - ManualPaintModel* manualPaintModel) { - _manualPaintModel = manualPaintModel; +void ManualPaintControler::SetManualPaintModel( ManualPaintModel* manualPaintModel ) +{ + _manualPaintModel = manualPaintModel; } //--------------------------------------------------------------------------- -void ManualPaintControler::SetManualPaintPanel( - ManualPaintPanel* manualPaintPanel) { - _manualPaintPanel = manualPaintPanel; +ManualPaintModel* ManualPaintControler::GetManualPaintModel( ) +{ + return _manualPaintModel; } //--------------------------------------------------------------------------- -void ManualPaintControler::SetWxVtk2DBaseView( - wxVtk2DBaseView *wxvtk2Dbaseview) { - _wxvtk2Dbaseview = wxvtk2Dbaseview; +void ManualPaintControler::SetWxVtk2DBaseView( int id, wxVtk2DBaseView *wxvtk2Dbaseview ) +{ + if (id==1) { _wxvtk2Dbaseview1 = wxvtk2Dbaseview; } + if (id==2) { _wxvtk2Dbaseview2 = wxvtk2Dbaseview; } + if (id==3) { _wxvtk2Dbaseview3 = wxvtk2Dbaseview; } + if (id==4) { _wxvtk2Dbaseview4 = wxvtk2Dbaseview; } } //--------------------------------------------------------------------------- -void ManualPaintControler::Config() { - if (_wxvtk2Dbaseview != NULL) { - vtkInteractorStyleBaseView *isbv = - (vtkInteractorStyleBaseView*) (_wxvtk2Dbaseview->GetInteractorStyleBaseView()); +void ManualPaintControler::Config() +{ + if (_wxvtk2Dbaseview1 != NULL) + { + vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*) (_wxvtk2Dbaseview1->GetInteractorStyleBaseView()); + isbv->AddInteractorStyleMaracas(new vtkInteractorManualPaint(this)); + } // if _wxvtk2Dbaseview + if (_wxvtk2Dbaseview2 != NULL) + { + vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*) (_wxvtk2Dbaseview2->GetInteractorStyleBaseView()); + isbv->AddInteractorStyleMaracas(new vtkInteractorManualPaint(this)); + } // if _wxvtk2Dbaseview + if (_wxvtk2Dbaseview3 != NULL) + { + vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*) (_wxvtk2Dbaseview3->GetInteractorStyleBaseView()); isbv->AddInteractorStyleMaracas(new vtkInteractorManualPaint(this)); - } + } // if _wxvtk2Dbaseview + if (_wxvtk2Dbaseview4 != NULL) + { + vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*) (_wxvtk2Dbaseview4->GetInteractorStyleBaseView()); + isbv->AddInteractorStyleMaracas(new vtkInteractorManualPaint(this)); + } // if _wxvtk2Dbaseview } //--------------------------------------------------------------------------- -void ManualPaintControler::PaintImage(int px, int py, int pz) { - _manualPaintModel->SetDirection(_wxvtk2Dbaseview->GetDirection()); +void ManualPaintControler::PaintImage(int px, int py, int pz,int direction) +{ + _manualPaintModel->SetDirection( direction ); _manualPaintModel->PaintImage(px, py, pz); - // The refresh mechanisme is made in the vtkInteractorManualPaint // RefreshView(); } @@ -78,3 +105,41 @@ void ManualPaintControler::SetImageUndo() { _manualPaintModel->SetUndoImage(); } + +//--------------------------------------------------------------------------- +void ManualPaintControler::Undo() +{ + _manualPaintModel->Undo(); + Refresh_UndoRedo(); +} + +void ManualPaintControler::Redo() +{ + _manualPaintModel->Redo(); + Refresh_UndoRedo(); +} + +void ManualPaintControler::Refresh_UndoRedo() +{ + wxVtk2DBaseView *wxvtk2Dbaseview = NULL; + if (_wxvtk2Dbaseview1!=NULL){ wxvtk2Dbaseview=_wxvtk2Dbaseview1; } + if (_wxvtk2Dbaseview2!=NULL){ wxvtk2Dbaseview=_wxvtk2Dbaseview2; } + if (_wxvtk2Dbaseview3!=NULL){ wxvtk2Dbaseview=_wxvtk2Dbaseview3; } + if (_wxvtk2Dbaseview4!=NULL){ wxvtk2Dbaseview=_wxvtk2Dbaseview4; } + if (wxvtk2Dbaseview!=NULL) + { + vtkMPRBaseData* vtkmprbasedata = (vtkMPRBaseData*) (wxvtk2Dbaseview->GetVtkBaseData()); + vtkmprbasedata->SetX( _manualPaintModel->GetRestorBaseInitialPointX() ); + vtkmprbasedata->SetY( _manualPaintModel->GetRestorBaseInitialPointY() ); + vtkmprbasedata->SetZ( _manualPaintModel->GetRestorBaseInitialPointZ() ); + wxCommandEvent newevent(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 + wxvtk2Dbaseview->GetWxVTKRenderWindowInteractor ()->GetParent()->ProcessEvent( newevent ); +#else + wxvtk2Dbaseview->GetWxVTKRenderWindowInteractor ()->GetParent()->ProcessWindowEvent( newevent ); +#endif + } // _wxvtk2Dbaseview +} + +