X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk%2Fsrc%2FbbcreaMaracasVisuManualPaint.cxx;h=f29e5e103d08c2e36bad2b7aad9fb24542061e59;hb=a7017a8ade695bd14a4c7ee70b197d63b5e76765;hp=3bde3b50196625739569c2731b969896ab721623;hpb=24937478048aca664712bb708240bff79879e0d9;p=creaMaracasVisu.git diff --git a/bbtk/src/bbcreaMaracasVisuManualPaint.cxx b/bbtk/src/bbcreaMaracasVisuManualPaint.cxx index 3bde3b5..f29e5e1 100644 --- a/bbtk/src/bbcreaMaracasVisuManualPaint.cxx +++ b/bbtk/src/bbcreaMaracasVisuManualPaint.cxx @@ -1,104 +1,43 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + //===== // Don't edit this file. This file is generated from xml description.. //===== #include "bbcreaMaracasVisuManualPaint.h" #include "bbcreaMaracasVisuPackage.h" -#include "wxVtk2DBaseView.h" -#include "wxVTKRenderWindowInteractor.h" - -namespace bbcreaMaracasVisu -{ - +#include "ManualPaintPanel.h" +#include "ManualPaintModel.h" +#include "ManualPaintControler.h" +#include "wxManualPaintPanel.h" +#include -vtkInteractorManualPaint::vtkInteractorManualPaint() -{ - _state = false; - _image = NULL; - _auxZ = 0; -} - -//--------------------------------------------------------------------------- -vtkInteractorManualPaint::~vtkInteractorManualPaint() -{ -} - -//--------------------------------------------------------------------------- -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 +45,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); //===== @@ -116,6 +52,8 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ManualPaint,bbtk::WxBlackBox); //===== void ManualPaint::Process() { +printf("ManualPaint::Process start\n"); + /* std::string msg; @@ -130,24 +68,82 @@ 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(); +printf("ManualPaint::Process 1\n"); + mpPanel->SetManualPaintModel(mpModel); +printf("ManualPaint::Process 2 %p\n", mpPanel); + + if (bbGetInputWxVtkBaseView1()!=NULL) + { + ManualPaintControler *mpControler = new ManualPaintControler(); + mpControler->SetManualPaintModel(mpModel); +printf("ManualPaint::Process 3\n"); + mpControler->SetManualPaintPanel(mpPanel); +printf("ManualPaint::Process 4\n"); + mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView1() ); +printf("ManualPaint::Process 5 %p \n",bbGetInputWxVtkBaseView1() ); + mpControler->Config(); +printf("ManualPaint::Process 6\n"); + } + + if (bbGetInputWxVtkBaseView2()!=NULL) + { +printf("ManualPaint::Process 7\n"); + ManualPaintControler *mpControler = new ManualPaintControler(); +printf("ManualPaint::Process 7.1\n"); + mpControler->SetManualPaintModel(mpModel); +printf("ManualPaint::Process 7.2\n"); + mpControler->SetManualPaintPanel(mpPanel); +printf("ManualPaint::Process 7.3\n"); + mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView2() ); +printf("ManualPaint::Process 7.4 %p\n", bbGetInputWxVtkBaseView2() ); + mpControler->Config(); +printf("ManualPaint::Process 8\n"); + } + + if (bbGetInputWxVtkBaseView3()!=NULL) + { +printf("ManualPaint::Process 9\n"); + ManualPaintControler *mpControler = new ManualPaintControler(); + mpControler->SetManualPaintModel(mpModel); + mpControler->SetManualPaintPanel(mpPanel); + mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView3() ); + mpControler->Config(); +printf("ManualPaint::Process 10\n"); + } + + if (bbGetInputWxVtkBaseView4()!=NULL) + { +printf("ManualPaint::Process 11\n"); + ManualPaintControler *mpControler = new ManualPaintControler(); + mpControler->SetManualPaintModel(mpModel); + mpControler->SetManualPaintPanel(mpPanel); + mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView4() ); + mpControler->Config(); +printf("ManualPaint::Process 12\n"); + } +printf("ManualPaint::Process 13\n"); + } +printf("ManualPaint::Process end\n"); } //===== @@ -155,17 +151,20 @@ 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); + bbSetInputWxVtkBaseView1(NULL); + bbSetInputWxVtkBaseView2(NULL); + bbSetInputWxVtkBaseView3(NULL); + bbSetInputWxVtkBaseView4(NULL); } //===== // Don't edit this file. This file is generated from xml description..