X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=bbtk%2Fsrc%2FbbcreaMaracasVisuManualPaint.cxx;h=db005f22c7c8f7c752b47cb8efbd8c203073e6ff;hb=12b981bff843fa03341334fe5b911a011afaadff;hp=3bde3b50196625739569c2731b969896ab721623;hpb=24937478048aca664712bb708240bff79879e0d9;p=creaMaracasVisu.git diff --git a/bbtk/src/bbcreaMaracasVisuManualPaint.cxx b/bbtk/src/bbcreaMaracasVisuManualPaint.cxx index 3bde3b5..db005f2 100644 --- a/bbtk/src/bbcreaMaracasVisuManualPaint.cxx +++ b/bbtk/src/bbcreaMaracasVisuManualPaint.cxx @@ -4,101 +4,15 @@ #include "bbcreaMaracasVisuManualPaint.h" #include "bbcreaMaracasVisuPackage.h" -#include "wxVtk2DBaseView.h" -#include "wxVTKRenderWindowInteractor.h" +#include "ManualPaintPanel.h" +#include "ManualPaintModel.h" +#include "ManualPaintControler.h" +#include "wxManualPaintPanel.h" -namespace bbcreaMaracasVisu -{ - - - -vtkInteractorManualPaint::vtkInteractorManualPaint() -{ - _state = false; - _image = NULL; - _auxZ = 0; -} - -//--------------------------------------------------------------------------- -vtkInteractorManualPaint::~vtkInteractorManualPaint() -{ -} +#include -//--------------------------------------------------------------------------- -bool vtkInteractorManualPaint::OnLeftButtonDown() -{ - vtkRenderWindowInteractor *interactor = _vtkInteractorStyleBaseView->GetInteractor(); - if ((interactor->GetControlKey()==1) || (interactor->GetShiftKey()==1) ){ - _state = true; - wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView(); - _Z = wxvtk2Dbaseview->GetActualSlice(); -// _sliceZ = ((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->GetActualSlice(); - } - return true; -} - -//--------------------------------------------------------------------------- -bool vtkInteractorManualPaint::OnLeftButtonUp() -{ - _state = false; - return true; -} - -//--------------------------------------------------------------------------- -bool vtkInteractorManualPaint::OnMouseMove () -{ - printf("EED vtkInteractorManualPaint::OnMouseMove \n"); - if (_state==true) - { - int px,py; - wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView(); - wxVTKRenderWindowInteractor *wxVTKiren = wxvtk2Dbaseview->GetWxVTKRenderWindowInteractor(); - - wxVTKiren->GetEventPosition(px,py); - - double X = (double)px; - double Y = (double)py; - double Z = _Z; - int typeView = 2; - wxvtk2Dbaseview->TransFromCoordScreenToWorld(X, Y, Z,false, typeView); - -// int px = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[0]; -// int py = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1]; - printf("EED vtkInteractorManualPaint::OnMouseMove ----------------- %f %f %f\n", X,Y,Z); - - PaintImage((int)X,(int)Y,(int)Z); - - wxvtk2Dbaseview->Refresh(); - wxvtk2Dbaseview->RefreshView(); -// wxvtk2Dbaseview->SetActualSlice(_Z+_auxZ); - _auxZ=(_auxZ+1)%2; - wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->Render(); - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); -// wxvtk2Dbaseview->SetActualSlice(Z); - }// if _state - return true; -} - -//--------------------------------------------------------------------------- -void vtkInteractorManualPaint::SetImage(vtkImageData *image) -{ - _image = image; -} - - -void vtkInteractorManualPaint::PaintImage(int px,int py, int pz) +namespace bbcreaMaracasVisu { - if (_image!=NULL) - { - float value=0; - printf("EED vtkInteractorManualPaint::PaintImage %d %d %d\n", px,py,pz); - _image->SetScalarComponentFromFloat (px,py,pz, 0, value ); - _image->Modified(); - } else { - printf("ERROR : bbcreaMaracasvisu::vtkInteractorManualPaint::PaintImage : Image not set. \n"); - } -} - //--------------------------------------------------------------------------------- @@ -106,9 +20,6 @@ void vtkInteractorManualPaint::PaintImage(int px,int py, int pz) //--------------------------------------------------------------------------------- - - - BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,ManualPaint) BBTK_BLACK_BOX_IMPLEMENTATION(ManualPaint,bbtk::WxBlackBox); //===== @@ -130,23 +41,63 @@ void ManualPaint::Process() ((wxStaticText*)bbGetOutputWidget())->SetLabel( bbtk::std2wx( msg ) ); */ - if (bbGetInputWxVtkBaseView()==NULL) + if (bbGetInputWxVtkBaseView1()==NULL) { - printf("WARNING : package creaMaracasVisu box ManualPaint : input WxVtkBaseView have to be defferent of NULL\n"); + wxMessageDialog(NULL, bbtk::std2wx("(ManualPaint) Input 'WxVtkBaseView' is not set"), bbtk::std2wx(bbGetFullName()) ).ShowModal(); } if (bbGetInputIn()==NULL) { - printf("WARNING : package creaMaracasVisu box ManualPaint : input In (vtkImageData*) have to be defferent of NULL\n"); + wxMessageDialog(NULL, bbtk::std2wx("(ManualPaint) Input 'vtkImageData' is not set"), bbtk::std2wx(bbGetFullName()) ).ShowModal(); } - if (imp==NULL) + if (firsttime==true) { - imp=new vtkInteractorManualPaint(); - imp->SetImage( bbGetInputIn() ); - vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*)(bbGetInputWxVtkBaseView()->GetInteractorStyleBaseView()); - isbv->AddInteractorStyleMaracas(imp); + firsttime=false; + + ManualPaintModel *mpModel = new ManualPaintModel(); + mpModel->SetImage( bbGetInputIn() ); + + wxManualPaintPanel *mpPanel = (wxManualPaintPanel*)bbGetOutputWidget(); + mpPanel->SetManualPaintModel(mpModel); + + if (bbGetInputWxVtkBaseView1()!=NULL) + { + ManualPaintControler *mpControler = new ManualPaintControler(); + mpControler->SetManualPaintModel(mpModel); + mpControler->SetManualPaintPanel(mpPanel); + mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView1() ); + mpControler->Config(); + } + + if (bbGetInputWxVtkBaseView2()!=NULL) + { + ManualPaintControler *mpControler = new ManualPaintControler(); + mpControler->SetManualPaintModel(mpModel); + mpControler->SetManualPaintPanel(mpPanel); + mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView2() ); + mpControler->Config(); + } + + if (bbGetInputWxVtkBaseView3()!=NULL) + { + ManualPaintControler *mpControler = new ManualPaintControler(); + mpControler->SetManualPaintModel(mpModel); + mpControler->SetManualPaintPanel(mpPanel); + mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView3() ); + mpControler->Config(); + } + + if (bbGetInputWxVtkBaseView4()!=NULL) + { + ManualPaintControler *mpControler = new ManualPaintControler(); + mpControler->SetManualPaintModel(mpModel); + mpControler->SetManualPaintPanel(mpPanel); + mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView4() ); + mpControler->Config(); + } + } } @@ -155,16 +106,15 @@ void ManualPaint::Process() //===== void ManualPaint::CreateWidget(wxWindow* parent) { - - bbSetOutputWidget( new wxStaticText ( parent , -1 , _T("UPS") ) ); - + bbSetOutputWidget( new wxManualPaintPanel(parent) ); } + //===== // Don't edit this file. This file is generated from xml description.. //===== void ManualPaint::bbUserSetDefaultValues() { - imp=NULL; + firsttime=true; bbSetInputIn(NULL); } //=====