+/*# ---------------------------------------------------------------------
+#
+# 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
-{
-
-
-
-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;
-}
+#include "ManualPaintPanel.h"
+#include "ManualPaintModel.h"
+#include "ManualPaintControler.h"
+#include "wxManualPaintPanel.h"
+#include <wx/msgdlg.h>
-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");
- }
-}
-
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
-
-
-
BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,ManualPaint)
BBTK_BLACK_BOX_IMPLEMENTATION(ManualPaint,bbtk::WxBlackBox);
//=====
//=====
void ManualPaint::Process()
{
-
-/*
- std::string msg;
- if (bbGetInputTitle()!="")
- {
- msg = bbGetInputTitle()+": " + bbGetInputIn();
- }
- else
- {
- msg = bbGetInputIn();
- }
- ((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();
+ ManualPaintControler *mpControler = new ManualPaintControler();
+ mpModel->SetImages( bbGetInputIn() , bbGetInputIn2() );
+ mpControler->SetManualPaintModel(mpModel);
+ mpControler->SetWxVtk2DBaseView( 1, (wxVtk2DBaseView*)bbGetInputWxVtkBaseView1() );
+ mpControler->SetWxVtk2DBaseView( 2, (wxVtk2DBaseView*)bbGetInputWxVtkBaseView2() );
+ mpControler->SetWxVtk2DBaseView( 3, (wxVtk2DBaseView*)bbGetInputWxVtkBaseView3() );
+ mpControler->SetWxVtk2DBaseView( 4, (wxVtk2DBaseView*)bbGetInputWxVtkBaseView4() );
+ mpControler->Config();
+ wxManualPaintPanel *mpPanel = (wxManualPaintPanel*)bbGetOutputWidget();
+ mpPanel->SetManualPaintControler(mpControler);
+ } // firsttime
}
+
//=====
// Don't edit this file. This file is generated from xml description..
//=====
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..