-#include <vtkRenderer.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkRenderWindow.h>
-#include <vtkObjectFactory.h>
-#include <vtkCamera.h>
-#include <vtkProperty.h>
-#include <vtkActor.h>
-#include <vtkInteractorStyleTrackballCamera.h>
-#include <vtkInteractorStyleSwitch.h>
-#include <vtkImageActor.h>
-#include <vtkTextProperty.h>
-#include <vtkImageMapToWindowLevelColors.h>
+/*# ---------------------------------------------------------------------
+#
+# 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.
+# ------------------------------------------------------------------------ */
+
+
+
+//#include "vtkInteractorStyleBaseView.h"
#include "wxVtkBaseView.h"
+#include "wxVtk2DBaseView.h"
+#include "wxVTKRenderWindowInteractorPlus.h"
-vtkStandardNewMacro(vtkInteractorStyleBaseView);
-vtkStandardNewMacro(vtkInteractorStyleBaseView2D);
-vtkStandardNewMacro(vtkInteractorStyleBaseView3D);
-
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-vtkImageViewer2_XYZ::vtkImageViewer2_XYZ()
-{
- _vtkimageviewer2= vtkImageViewer2::New();
-}
-//-------------------------------------------------------------------
-vtkImageViewer2_XYZ::~vtkImageViewer2_XYZ()
-{
- _vtkimageviewer2->Delete();
-}
-//-------------------------------------------------------------------
-void vtkImageViewer2_XYZ::SetExtentDimension(int x1,int x2,
- int y1,int y2,
- int z1,int z2)
-{
- _x1=x1;
- _x2=x2;
- _y1=y1;
- _y2=y2;
- _z1=z1;
- _z2=z2;
-}
-//-------------------------------------------------------------------
-void vtkImageViewer2_XYZ::SetXSlice(int slice)
-{
- vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
- imageActor->SetDisplayExtent(slice, slice, _y1, _y2, _z1, _z2 );
-}
-//-------------------------------------------------------------------
-void vtkImageViewer2_XYZ::SetYSlice(int slice)
-{
- vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
- imageActor->SetDisplayExtent(_x1, _x2, slice, slice, _z1, _z2 );
-}
-//-------------------------------------------------------------------
-void vtkImageViewer2_XYZ::SetZSlice(int slice)
-{
-#if (VTK_MAJOR_VERSION >= 5)
-// _vtkimageviewer2->SetSlice( slice );
- vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
- imageActor->SetDisplayExtent(_x1, _x2, _y1, _y2, slice, slice );
-#else
- _vtkimageviewer2->SetZSlice( slice );
-#endif
-
-
-}
-//-------------------------------------------------------------------
-int vtkImageViewer2_XYZ::GetXSlice()
-{
- vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
- return imageActor->GetDisplayExtent()[0];
-}
-//-------------------------------------------------------------------
-int vtkImageViewer2_XYZ::GetYSlice()
-{
- vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
- return imageActor->GetDisplayExtent()[2];
-}
-//-------------------------------------------------------------------
-int vtkImageViewer2_XYZ::GetZSlice()
-{
-
- int result;
-#if (VTK_MAJOR_VERSION >= 5)
- result= _vtkimageviewer2->GetSlice( );
-#else
- result= _vtkimageviewer2->GetZSlice( );
-#endif
-
-
- return result;
-}
-//-------------------------------------------------------------------
-vtkImageViewer2 *vtkImageViewer2_XYZ::GetVtkImageViewer2()
-{
- return _vtkimageviewer2;
-}
-
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-
-
-BEGIN_EVENT_TABLE( wxVTKRenderWindowInteractorPlus, wxVTKRenderWindowInteractor )
- EVT_LEFT_DCLICK( wxVTKRenderWindowInteractorPlus::OnLeftDClick )
- EVT_RIGHT_DCLICK( wxVTKRenderWindowInteractorPlus::OnRightDClick )
- EVT_MIDDLE_DCLICK( wxVTKRenderWindowInteractorPlus::OnMiddleDClick )
- EVT_MOUSEWHEEL( wxVTKRenderWindowInteractorPlus::OnMouseWheel )
-END_EVENT_TABLE( );
-
-//-------------------------------------------------------------------
-wxVTKRenderWindowInteractorPlus::wxVTKRenderWindowInteractorPlus()
-: wxVTKRenderWindowInteractor()
-{
-}
-
-
-//-------------------------------------------------------------------
-wxVTKRenderWindowInteractorPlus::wxVTKRenderWindowInteractorPlus(wxWindow *parent, wxVtkBaseView *wxvtkbaseview)
-: wxVTKRenderWindowInteractor(parent, -1)
-{
- _wxvtkbaseview = wxvtkbaseview;
-}
-
-//-------------------------------------------------------------------
-wxVTKRenderWindowInteractorPlus::~wxVTKRenderWindowInteractorPlus()
-{
-}
-
-//---------------------------------------------------------------------------
-wxVTKRenderWindowInteractorPlus * wxVTKRenderWindowInteractorPlus::New()
-{
- // we don't make use of the objectfactory, because we're not registered
- return new wxVTKRenderWindowInteractorPlus;
-}
-
-//-------------------------------------------------------------------
-void wxVTKRenderWindowInteractorPlus::OnLeftDClick( wxMouseEvent& event )
-{
- _wxvtkbaseview->GetInteractorStyleBaseView()->OnLeftDClick();
-}
-//-------------------------------------------------------------------
-void wxVTKRenderWindowInteractorPlus::OnRightDClick( wxMouseEvent& event )
-{
- _wxvtkbaseview->GetInteractorStyleBaseView()->OnRightDClick();
-}
-//-------------------------------------------------------------------
-void wxVTKRenderWindowInteractorPlus::OnMiddleDClick( wxMouseEvent& event )
-{
- _wxvtkbaseview->GetInteractorStyleBaseView()->OnMiddleDClick();
-}
-//-------------------------------------------------------------------
-void wxVTKRenderWindowInteractorPlus::OnMouseWheel( wxMouseEvent& event )
-{
- _wxvtkbaseview->GetInteractorStyleBaseView()->OnMouseWheel();
-}
-
-
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
wxVtkBaseView::wxVtkBaseView()
{
_parent = NULL;
wxVtkBaseView::wxVtkBaseView(wxWindow *parent)
{
_parent = parent;
- _iren = new wxVTKRenderWindowInteractorPlus(_parent,this);
+ _iren = (wxVTKRenderWindowInteractor*)new wxVTKRenderWindowInteractorPlus(_parent,this);
// _iren->UseCaptureMouseOn();
// _iren = new wxVTKRenderWindowInteractor(_parent,-1);
_interactorStyle = NULL;
-
-
}
//-------------------------------------------------------------------
wxVtkBaseView::~wxVtkBaseView()
{
- // _iren -> Delete();
+ _iren -> Delete();
+ //_iren=NULL;
}
//-------------------------------------------------------------------
-wxVTKRenderWindowInteractor* wxVtkBaseView::GetWxVTKRenderWindowInteractor()
+wxVTKRenderWindowInteractor* wxVtkBaseView::GetWxVTKRenderWindowInteractor() throw (char*)
{
+
+ if(_iren==NULL){
+ throw "wxVtkBaseView::GetWxVTKRenderWindowInteractor() _iren wxVTKRenderWindowInteractorPlus =NULL";
+ }
return _iren;
}
//-------------------------------------------------------------------
void wxVtkBaseView::Refresh() // virtual
{
// EED 10 Oct 2007
-
#if defined(WIN32)
- _iren->Refresh(false);
+ _iren->Refresh(true);
+// EED 27 sept 2016
+ vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
+ vri->vtkRenderWindowInteractor::Render();
#else
-
//EED 01Avril2009
// _iren->Render();
vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
vri->vtkRenderWindowInteractor::Render();
-
-
//_iren->Refresh();
#endif
-
}
//-------------------------------------------------------------------
void wxVtkBaseView::RefreshView() // virtual
{
+ printf("EED wxVtkBaseView::RefreshView() \n");
// EED 10 Oct 2007
#if defined(WIN32)
#else
//GetRenWin()->Render();
#endif
-
}
//---------------------------------------------------------------------------
vtkRenderer* wxVtkBaseView::GetRenderer() // virtual
//----------------------------------------------------------------------------
-void wxVtkBaseView::TransfromeCoordScreenToWorld(double &X, double &Y, double &Z, int type) // virtual
-{
+void wxVtkBaseView::TransCoordScreenToWorld(double &X, double &Y, double &Z, int type)
+{
GetRenderer()->SetDisplayPoint((int)X, (int)Y, (int)Z);
GetRenderer()->DisplayToWorld();
double fP[4];
fP[2] /= fP[3];
}
+ if (type!=0)
+ {
+ X=fP[0];
+ }
+ if (type!=1)
+ {
+ Y=fP[1];
+ }
+ if (type!=2)
+ {
+ Z=fP[2];
+ }
+}
+//----------------------------------------------------------------------------
+
+void wxVtkBaseView::TransFromCoordScreenToWorld(double &X, double &Y, double &Z, bool keepNormalDirection, int type) //virtual //keepNormalDirection=false, type=2
+{
+ double xx = X;
+ double yy = Y;
+ double zz = Z;
+
+ //RaC 03-2010
+ TransCoordScreenToWorld(xx,yy,zz,type);
+
+ X = xx;
+ Y = yy;
+ Z=zz;
+
// EEDx5
- this->GetInteractorStyleBaseView()->GetWxVtk2DBaseView()->TransformCoordinate_spacing_ViewToModel( fP[0] , fP[1] , fP[2] );
+ //JCP 13/05/2009
+ vtkInteractorStyleBaseView* interactorstyle = (vtkInteractorStyleBaseView*)this->GetInteractorStyleBaseView();
+ wxVtk2DBaseView* baseview = (wxVtk2DBaseView*)interactorstyle->GetWxVtk2DBaseView();
+
+ double fP[3];
+ fP[0] = X;
+ fP[1] = Y;
+ fP[2] = Z;
+
+ baseview->TransformCoordinate_spacing_ViewToModel( fP[0] , fP[1] , fP[2] );
+ //JCP 13/05/2009
if (type!=0)
{
}
//---------------------------------------------------------------------------
-
+/* JCP 14/05/09
vtkInteractorStyleBaseView* wxVtkBaseView::GetInteractorStyleBaseView()
{
return _interactorStyle;
}
+*/
+vtkInteractorStyleImage* wxVtkBaseView::GetInteractorStyleBaseView()
+{
+ return _interactorStyle;
+}
//---------------------------------------------------------------------------
-void wxVtkBaseView::SetInteractorStyleBaseView( vtkInteractorStyleBaseView* interactorStyle)
+void wxVtkBaseView::SetInteractorStyleBaseView( vtkInteractorStyleImage* interactorStyle)
{
_interactorStyle = interactorStyle;
}
//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
-
-InteractorStyleMaracas::InteractorStyleMaracas()
-{
- _active = true;
- _vtkInteractorStyleBaseView = NULL;
-}
-//---------------------------------------------------------------------------
-InteractorStyleMaracas::~InteractorStyleMaracas()
-{
-}
-
-// ----------------------------------------------------------------------------
-InteractorStyleMaracas * InteractorStyleMaracas :: Clone() // virtual
-{
- InteractorStyleMaracas * clone = new InteractorStyleMaracas();
- CopyAttributesTo(clone);
- return clone;
-}
-
-// ---------------------------------------------------------------------------
-
-void InteractorStyleMaracas::CopyAttributesTo( InteractorStyleMaracas * cloneObject)
-{
- // Fathers object
- //<FATHERCLASS>::CopyAttributesTo(cloneObject);
-
- cloneObject->SetActive( this->GetActive() );
-}
-
-
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnChar()
-{
- return true;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnMouseMove()
-{
- return true;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnLeftButtonDown()
-{
- return true;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnLeftButtonUp()
-{
- return true;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnLeftDClick()
-{
- return true;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnMiddleButtonDown()
-{
- return true;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnMiddleButtonUp()
-{
- return true;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnMiddleDClick()
-{
- return true;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnRightButtonDown()
-{
- return true;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnRightButtonUp()
-{
- return true;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnRightDClick()
-{
- return true;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::OnMouseWheel()
-{
- return true;
-}
-
-//---------------------------------------------------------------------------
-void InteractorStyleMaracas::SetVtkInteractorStyleBaseView(vtkInteractorStyleBaseView* vtkInteractorStyleBaseView)
-{
- _vtkInteractorStyleBaseView = vtkInteractorStyleBaseView;
-}
-
-//---------------------------------------------------------------------------
-void InteractorStyleMaracas::RemoveVtkInteractorStyleBaseView()
-{
- _vtkInteractorStyleBaseView = NULL;
-}
-//---------------------------------------------------------------------------
-void InteractorStyleMaracas::SetActive(bool active)
-{
- _active = active;
-}
-//---------------------------------------------------------------------------
-bool InteractorStyleMaracas::GetActive()
+int wxVtkBaseView::GetDirection() // virtual
{
- return _active;
+ return -1;
}
-
-
-//-------------------------------------------------------------------
//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-manualInteractorWindowLevel::manualInteractorWindowLevel()
+vtkBaseData *wxVtkBaseView::GetVtkBaseData()
{
- _stateWindowLevel = false;
- _backPx = 0;
- _backPy = 0;
- _backWindow = -1;
- _backLevel = -1;
+ return _vtkbasedata;
}
//-------------------------------------------------------------------
-
-manualInteractorWindowLevel::~manualInteractorWindowLevel()
+void wxVtkBaseView::SetVtkBaseData(vtkBaseData *vtkbasedata)
{
+ _vtkbasedata=vtkbasedata;
}
-//-------------------------------------------------------------------
-
-bool manualInteractorWindowLevel::OnMouseMove() // virtual
-{
-
- if (_stateWindowLevel==true)
- {
- int tmpPx,tmpPy;
- wxVTKRenderWindowInteractor *wxVTKiren;
- wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
- wxVTKiren->GetEventPosition( tmpPx , tmpPy );
- int colorWin=_backWindow - 2*( _backPx - tmpPx );
- int colorLev=_backLevel + 2*( _backPy - tmpPy );
-
- if (colorWin<0)
- {
- colorWin=0;
- }
- if (colorWin>100000)
- {
- colorWin=100000;
- }
- if (colorLev<0)
- {
- colorLev=0;
- }
- if (colorLev>100000)
- {
- colorLev=100000;
- }
- vtkImageViewer2 *vtkimageviewer2;
- vtkimageviewer2=_vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->_imageViewer2XYZ->GetVtkImageViewer2();
- vtkimageviewer2->SetColorWindow(colorWin);
- vtkimageviewer2->SetColorLevel(colorLev);
-// vtkimageviewer2->Render();
- }
- return true;
-}
//-------------------------------------------------------------------
-
-bool manualInteractorWindowLevel::OnMiddleButtonDown() // virtual
-{
- if ((_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==0) &&
- (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==0) ){
-
- _stateWindowLevel = true;
- wxVTKRenderWindowInteractor *wxVTKiren;
- wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
- wxVTKiren->GetEventPosition( _backPx , _backPy );
-
- _backWindow = (int)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorWindow());
- _backLevel = (int)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorLevel());
- }
- return true;
-}
-
+//-------------------------------------------------------------------
//-------------------------------------------------------------------
-bool manualInteractorWindowLevel::OnMiddleButtonUp() // virtual
-{
- if (_stateWindowLevel==true)
- {
- _stateWindowLevel=false;
- }
- return true;
-}
-
-
-
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
-
-vtkInteractorScrollZ::vtkInteractorScrollZ()
-{
- _stateFordware=false;
-}
-//---------------------------------------------------------------------------
-vtkInteractorScrollZ::~vtkInteractorScrollZ()
-{
-}
-//---------------------------------------------------------------------------
-bool vtkInteractorScrollZ::OnRightButtonDown()
-{
- vtkRenderWindowInteractor *interactor = _vtkInteractorStyleBaseView->GetInteractor();
- if ((interactor->GetControlKey()==0) && (interactor->GetShiftKey()==0) ){
- _stateFordware = true;
- _fordwareX = interactor->GetEventPosition()[0];
- _fordwareY = interactor->GetEventPosition()[1];
- _sliceZ = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetActualSlice();
- }
- return true;
-}
-//---------------------------------------------------------------------------
-bool vtkInteractorScrollZ::OnRightButtonUp()
-{
- _stateFordware=false;
- return true;
-}
-//---------------------------------------------------------------------------
-bool vtkInteractorScrollZ::OnMouseMove ()
-{
- if (_stateFordware==true){
- //int fx = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[0]; // JPRx
- int fy = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1];
- int delta = (_fordwareY - fy)/3;
- _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->SetActualSlice( _sliceZ + delta);
-
- this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
-
- // wxCommandEvent newevent(wxEVT_COMMAND_MENU_SELECTED,12121);
- // _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent);
-
- //_wxvtk2Dbaseview->Refresh();
- }
- return true;
-}
-
-
-
-
-
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
-vtkInteractorStyleBaseView::vtkInteractorStyleBaseView()
-{
- _refresh_waiting = false;
- _parent_refresh_waiting = false;
- _blockRefresh = false;
-}
-//---------------------------------------------------------------------------
-vtkInteractorStyleBaseView::~vtkInteractorStyleBaseView()
-{
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnMouseMove() // virtual
-{
- CallLstInteractorStyleMaracas(3);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnLeftButtonDown() // virtual
-{
- CallLstInteractorStyleMaracas(4);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnLeftButtonUp() // virtual
-{
- CallLstInteractorStyleMaracas(5);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnLeftDClick() // virtual
-{
- CallLstInteractorStyleMaracas( 11 );
-}
-
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnMiddleButtonDown() // virtual
-{
- CallLstInteractorStyleMaracas(6);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnMiddleButtonUp() // virtual
-{
- CallLstInteractorStyleMaracas(7);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnMiddleDClick() // virtual
-{
- CallLstInteractorStyleMaracas( 13 );
-}
-
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnRightButtonDown() // virtual
-{
- CallLstInteractorStyleMaracas(1);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnRightButtonUp() // virtual
-{
- CallLstInteractorStyleMaracas(2);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnRightDClick() // virtual
-{
- CallLstInteractorStyleMaracas( 12 );
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnMouseWheel() // virtual
-{
- CallLstInteractorStyleMaracas( 14 );
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::AddInteractorStyleMaracas(InteractorStyleMaracas* interactorStyleMaracas)
-{
- interactorStyleMaracas->SetVtkInteractorStyleBaseView(this);
- _lstInteractorStyleMaracas.push_back(interactorStyleMaracas);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::RemoveInteractorStyleMaracas(InteractorStyleMaracas* interactorStyleMaracas)
-{
- interactorStyleMaracas->RemoveVtkInteractorStyleBaseView();
- int i, size = _lstInteractorStyleMaracas.size();
- std::vector< InteractorStyleMaracas* >::iterator iter = _lstInteractorStyleMaracas.begin();
- bool removed = false;
- for (i=0; !removed && i<size; i++)
- {
- if ( _lstInteractorStyleMaracas[i] == interactorStyleMaracas )
- {
- _lstInteractorStyleMaracas.erase(iter);
- removed = true;
- }
- iter++;
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::InsertInteractorStyleMaracas(int pos, InteractorStyleMaracas* interactorStyleMaracas)
-{
- interactorStyleMaracas->SetVtkInteractorStyleBaseView(this);
- _lstInteractorStyleMaracas.insert(_lstInteractorStyleMaracas.begin()+pos,interactorStyleMaracas);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::CallLstInteractorStyleMaracas(int type)
-{
-
- InteractorStyleMaracas *intStyMar;
-
- int i,size=_lstInteractorStyleMaracas.size();
-
-//EED Borrame
-//FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
-//fprintf(ff,"EED vtkInteractorStyleBaseView::CallLstInteractorStyleMaracas \n" );
-//for (i=0;i<size;i++)
-//{
-//fprintf(ff," %p\n" , _lstInteractorStyleMaracas[i] );
-//}
-//fclose(ff);
-
-
-
- for (i=0;i<size;i++)
- {
- intStyMar = _lstInteractorStyleMaracas[i];
- if (intStyMar->GetActive()==true){
- if (type ==1)
- { // OnRightButtonDown
- if (intStyMar->OnRightButtonDown()==false)
- {
- i=size;
- }
- }
- if (type ==2)
- { // OnRightButtonUp
- if (intStyMar->OnRightButtonUp()==false)
- {
- i=size;
- }
- }
- if (type==3)
- { // OnMouseMouve
- if (intStyMar->OnMouseMove()==false)
- {
- i=size;
- }
- }
- if (type==4)
- { // OnLeftButtonDown
- if (intStyMar->OnLeftButtonDown()==false)
- {
- i=size;
- }
- }
- if (type==5)
- { // OnLeftButtonUp
- if (intStyMar->OnLeftButtonUp()==false)
- {
- i=size;
- }
- }
- if (type==6)
- { // OnMiddleButtonDown
- if (intStyMar->OnMiddleButtonDown()==false)
- {
- i=size;
- }
- }
- if (type==7)
- { // OnMiddleButtonUp
- if (intStyMar->OnMiddleButtonUp()==false)
- {
- i=size;
- }
- }
- if (type==10)
- { // OnMiddleButtonUp
- if (intStyMar->OnChar()==false)
- {
- i=size;
- }
- }
- if (type==11)
- { // OnLeftDClick
- if (intStyMar->OnLeftDClick()==false)
- {
- i=size;
- }
- }
- if (type==12)
- { // OnRightDClick
- if (intStyMar->OnRightDClick()==false)
- {
- i=size;
- }
- }
- if (type==13)
- { // OnMiddleDClick
- if (intStyMar-> OnMiddleDClick()==false)
- {
- i=size;
- }
- }
- if (type==14)
- { // OnMouseWheel
- if (intStyMar->OnMouseWheel()==false)
- {
- i=size;
- }
- }
- } // if active
- } // for
-
- EvaluateToRefresh();
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnChar() // virtual
-{
-// char a=GetInteractor()->GetKeyCode();
- CallLstInteractorStyleMaracas(10);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::TransformCoordinate(double &X, double &Y, double &Z)
-{
- vtkImageViewer2 *imageViewer = GetWxVtk2DBaseView()->_imageViewer2XYZ->GetVtkImageViewer2();
-
- imageViewer->GetRenderer()->SetDisplayPoint((int)X, (int)Y, (int)Z);
- imageViewer->GetRenderer()->DisplayToWorld();
- double fP[4];
- imageViewer->GetRenderer()->GetWorldPoint( fP );
-
- if ( fP[3] ){
- fP[0] /= fP[3];
- fP[1] /= fP[3];
- fP[2] /= fP[3];
- }
-
-// EEDx5
- GetWxVtk2DBaseView()->TransformCoordinate_spacing_ViewToModel(fP[0],fP[1],fP[2]);
-
- X=fP[0];
- Y=fP[1];
- Z=fP[2];
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::SetwxVtkBaseView(wxVtkBaseView *wxvtkbaseview)
-{
- _wxvtkbaseview = wxvtkbaseview;
-}
-//---------------------------------------------------------------------------
-wxVtk2DBaseView* vtkInteractorStyleBaseView::GetWxVtk2DBaseView()
-{
- return (wxVtk2DBaseView*)_wxvtkbaseview;
-}
-//---------------------------------------------------------------------------
-wxVtk3DBaseView* vtkInteractorStyleBaseView::GetWxVtk3DBaseView()
-{
- return (wxVtk3DBaseView*)_wxvtkbaseview;
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::SetActiveAllInteractors(bool ok)
-{
- InteractorStyleMaracas *intStyMar;
- int i,size=_lstInteractorStyleMaracas.size();
- for (i=0;i<size;i++)
- {
- intStyMar = _lstInteractorStyleMaracas[i];
- intStyMar->SetActive(ok);
- }
-
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::SetRefresh_waiting()
-{
- _refresh_waiting=true;
-}
-//---------------------------------------------------------------------------
-bool vtkInteractorStyleBaseView::GetRefresh_waiting()
-{
- return _refresh_waiting;
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::SetParent_refresh_waiting()
-{
- _parent_refresh_waiting=true;
-}
-//---------------------------------------------------------------------------
-bool vtkInteractorStyleBaseView::GetParent_refresh_waiting()
-{
- return _parent_refresh_waiting;
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::EvaluateToRefresh()
-{
-
- if ( _blockRefresh==false )
- {
- if ( (_refresh_waiting==true) && (_parent_refresh_waiting==false))
- {
- _refresh_waiting = false;
- this->_wxvtkbaseview->Refresh();
- }
- if (_parent_refresh_waiting==true)
- {
- _parent_refresh_waiting = false;
- wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
- this->_wxvtkbaseview->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
- }
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::BlockRefresh()
-{
- _blockRefresh=true;
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::UnBlockRefresh()
-{
- _blockRefresh=false;
-}
-
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
-
-
-
-//---------------------------------------------------------------------------
-vtkInteractorStyleBaseView2D::vtkInteractorStyleBaseView2D()
-{
- _manualinteractorwindowlevel= new manualInteractorWindowLevel();
- AddInteractorStyleMaracas( _manualinteractorwindowlevel );
-
- _vtkInteractorScrollZ = new vtkInteractorScrollZ();
- AddInteractorStyleMaracas(_vtkInteractorScrollZ);
-
-}
-//---------------------------------------------------------------------------
-vtkInteractorStyleBaseView2D::~vtkInteractorStyleBaseView2D()
-{
-}
-
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnRightButtonDown() // virtual
-{
- vtkInteractorStyleBaseView::OnRightButtonDown();
-
- if ((GetInteractor()->GetControlKey()==1) && (GetInteractor()->GetShiftKey()==0) ){
- this->vtkInteractorStyleImage::OnRightButtonDown();
- }
-
-}
-
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnRightButtonUp() // virtual
-{
- vtkInteractorStyleBaseView::OnRightButtonUp();
- this->vtkInteractorStyleImage::OnRightButtonUp();
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnMouseMove () // virtual
-{
- vtkInteractorStyleBaseView::OnMouseMove();
- this->vtkInteractorStyleImage::OnMouseMove();
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnLeftButtonDown() // virtual
-{
- vtkInteractorStyleBaseView::OnLeftButtonDown();
-
- if ((GetInteractor()->GetControlKey()==0) && (GetInteractor()->GetShiftKey()==1) )
- {
- this->vtkInteractorStyleImage::OnLeftButtonDown();
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnLeftButtonUp () // virtual
-{
- vtkInteractorStyleBaseView::OnLeftButtonUp();
-
- this->vtkInteractorStyleImage::OnLeftButtonUp();
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnMiddleButtonDown () // virtual
-{
- vtkInteractorStyleBaseView::OnMiddleButtonDown();
-
- if ((GetInteractor()->GetControlKey()==1) || (GetInteractor()->GetShiftKey()==1) )
- {
- this->vtkInteractorStyleImage::OnLeftButtonDown();
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnMiddleButtonUp () // virtual
-{
- vtkInteractorStyleBaseView::OnMiddleButtonUp();
-
- if ((GetInteractor()->GetControlKey()==1) || (GetInteractor()->GetShiftKey()==1) )
- {
- this->vtkInteractorStyleImage::OnLeftButtonUp();
- }
-}
-
-
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-
-//---------------------------------------------------------------------------
-vtkInteractorStyleBaseView3D::vtkInteractorStyleBaseView3D(){
-}
-//---------------------------------------------------------------------------
-vtkInteractorStyleBaseView3D::~vtkInteractorStyleBaseView3D(){
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnRightButtonDown ()
-{
- vtkInteractorStyleBaseView::OnRightButtonDown();
-
-/*
- if (GetInteractor()->GetControlKey()==1 ){
- this->vtkInteractorStyleTrackballCamera::OnRightButtonDown();
- }
-*/
- this->FindPokedRenderer(this->Interactor->GetEventPosition()[0],
- this->Interactor->GetEventPosition()[1]);
-
- if (this->CurrentRenderer == NULL)
- {
- return;
- }
-
- if (this->Interactor->GetControlKey()) {
- this->StartDolly();
- }
-
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnRightButtonUp ()
-{
- vtkInteractorStyleBaseView::OnRightButtonUp();
-
-/*
- if (GetInteractor()->GetControlKey()==1 ){
- this->vtkInteractorStyleTrackballCamera::OnRightButtonUp();
- }
-*/
-
-
- switch (this->State)
- {
- case VTKIS_DOLLY:
- this->EndDolly();
- break;
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnMouseMove ()
-{
- vtkInteractorStyleBaseView::OnMouseMove();
-
-// this->vtkInteractorStyleTrackballCamera::OnMouseMove();
-
- // int x = this->Interactor->GetEventPosition()[0]; // JPRx
- // int y = this->Interactor->GetEventPosition()[1]; // JPRx
-
-
- // vtkRenderWindowInteractor *rwi = this->Interactor;
-
- // int lx = rwi->GetLastEventPosition()[0]; // JPRx
- // int ly = rwi->GetLastEventPosition()[1]; // JPRx
- // int dx = rwi->GetEventPosition()[0] ; // JPRx
- // int dy = rwi->GetEventPosition()[1] ; // JPRx
-
-
- switch (this->State)
- {
- case VTKIS_ROTATE:
- // this->FindPokedRenderer(x, y);
- this->Rotate();
- // this->InvokeEvent(vtkCommand::InteractionEvent, NULL);
- break;
-
- case VTKIS_PAN:
- // this->FindPokedRenderer(x, y);
- this->Pan();
- // this->InvokeEvent(vtkCommand::InteractionEvent, NULL);
- break;
-
- case VTKIS_DOLLY:
- // this->FindPokedRenderer(x, y);
- this->Dolly();
- // this->InvokeEvent(vtkCommand::InteractionEvent, NULL);
- break;
-
- case VTKIS_SPIN:
- // this->FindPokedRenderer(x, y);
- this->Spin();
- // this->InvokeEvent(vtkCommand::InteractionEvent, NULL);
- break;
- }
-
-
-
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnLeftButtonDown ()
-{
- vtkInteractorStyleBaseView::OnLeftButtonDown();
-/*
- if (GetInteractor()->GetControlKey()==1 ){
- this->vtkInteractorStyleTrackballCamera::OnMiddleButtonDown();
- } else {
- this->vtkInteractorStyleTrackballCamera::OnLeftButtonDown();
- }
-*/
-
-
- this->FindPokedRenderer(this->Interactor->GetEventPosition()[0],
- this->Interactor->GetEventPosition()[1]);
- if (this->CurrentRenderer == NULL)
- {
- return;
- }
-
- if (this->Interactor->GetControlKey()) {
- this->StartPan();
- } else {
- this->StartRotate();
- }
-
- /*
- if (this->Interactor->GetShiftKey())
- {
- if (this->Interactor->GetControlKey())
- {
- this->StartDolly();
- }
- else
- {
- this->StartPan();
- }
- }
- else
- {
- if (this->Interactor->GetControlKey())
- {
- this->StartSpin();
- }
- else
- {
- this->StartRotate();
- }
- }
-*/
-
-
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnLeftButtonUp ()
-{
- vtkInteractorStyleBaseView::OnLeftButtonUp();
-
-/*
- if (GetInteractor()->GetControlKey()==1 ){
- this->vtkInteractorStyleTrackballCamera::OnMiddleButtonUp();
- } else {
- this->vtkInteractorStyleTrackballCamera::OnLeftButtonUp();
- }
-*/
- switch (this->State)
- {
-
- case VTKIS_PAN:
- this->EndPan();
- break;
-
- case VTKIS_ROTATE:
- this->EndRotate();
- break;
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnMiddleButtonDown ()
-{
- vtkInteractorStyleBaseView::OnMiddleButtonDown();
- // this->vtkInteractorStyleTrackballCamera::OnMiddleButtonDown();
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnMiddleButtonUp ()
-{
- vtkInteractorStyleBaseView::OnMiddleButtonUp();
-
- // this->vtkInteractorStyleTrackballCamera::OnMiddleButtonUp();
-}
-
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-vtkInfoTextImage::vtkInfoTextImage()
-{
- _vtkText_WindowLevel = NULL;
- _vtkText_ColorLevel = NULL;
- _vtkText_position = NULL;
- _vtkText_pixelIntensity = NULL;
- _marimagedata = NULL;
-}
-
-//-------------------------------------------------------------------
-
-vtkInfoTextImage::~vtkInfoTextImage()
-{
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::Configure()
-{
- _vtkText_WindowLevel = Create_Text_Label( 10 , 55 );
- _vtkText_ColorLevel = Create_Text_Label( 10 , 40 );
- _vtkText_position = Create_Text_Label( 10 , 25 );
- _vtkText_pixelIntensity = Create_Text_Label( 10 , 10 );
-}
-
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::SetMarImageData(marImageData *marimagedata)
-{
- _marimagedata=marimagedata;
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::SetWxVtk2DBaseView(wxVtk2DBaseView *wxvtk2Dbaseview)
-{
- _wxvtk2Dbaseview=wxvtk2Dbaseview;
-}
-
-//-------------------------------------------------------------------
-
-vtkTextActor *vtkInfoTextImage::Create_Text_Label(int px, int py )
-{
- // Text Window Level
- vtkTextActor *textActor = vtkTextActor::New();
- textActor->SetDisplayPosition(px, py);
- textActor->SetInput("0");
-
- // Set coordinates to match the old vtkScaledTextActor default value
- textActor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport();
- textActor->GetPosition2Coordinate()->SetValue( 0.2 , 0.2 );
-
- vtkTextProperty *tprop = textActor->GetTextProperty();
- tprop->SetFontSize(14);
- tprop->SetFontFamilyToArial();
- tprop->SetColor(1, 1, 0);
- _wxvtk2Dbaseview->GetRenderer()->AddActor2D(textActor);
-
- return textActor;
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::PutWindowLevel()
-{
- int value = (int)( _wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel()->GetWindow() );
- char zTzxt[20];
- char resultText[50];
-
- strcpy(resultText,"w:");
-
-
- //ltoa ( (long)value , zTzxt , 10 );
- sprintf(zTzxt,"%d",value);
-
- strcat(resultText,zTzxt);
- _vtkText_WindowLevel -> SetInput(resultText);
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::PutColorLevel()
-{
- int value = (int)(_wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel()->GetLevel());
- char zTzxt[20];
- char resultText[50];
-
- strcpy(resultText,"c:");
-
-// itoa (value,zTzxt,10);
- sprintf(zTzxt,"%d",value);
-
- strcat(resultText,zTzxt);
- _vtkText_ColorLevel -> SetInput(resultText);
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::PutPosition(int xx,int yy, int zz)
-{
-
-//EEDx7
-// double spa[3];
-// _imagedata->GetSpacing(spa);
-// xx=xx*(1/spa[0]);
-// yy=yy*(1/spa[1]);
-
-
- char zTzxt[50];
- char resultText[50];
- strcpy(resultText,"p: ");
-// itoa ((int)xx,zTzxt,10);
- sprintf(zTzxt,"%d",xx);
-
- strcat(resultText,zTzxt);
- strcat(resultText," , ");
-
-// itoa ((int)yy,zTzxt,10);
- sprintf(zTzxt,"%d",yy);
-
- strcat(resultText,zTzxt);
- strcat(resultText," , ");
-
-// itoa ((int)zz,zTzxt,10);
- sprintf(zTzxt,"%d",zz);
-
- strcat(resultText,zTzxt);
-
-
-
- int nX = _marimagedata->GetXOriginal(xx);
- int nY = _marimagedata->GetYOriginal(yy);
- int nZ = _marimagedata->GetZOriginal(zz);
-
- strcat(resultText," (");
-// ltoa ((int)nX,zTzxt,10);
- sprintf(zTzxt,"%d",nX);
-
- strcat(resultText,zTzxt);
- strcat(resultText,",");
-
-// ltoa ((int)nY,zTzxt,10);
- sprintf(zTzxt,"%d",nY);
-
- strcat(resultText,zTzxt);
- strcat(resultText,",");
-
-// ltoa ((int)nZ,zTzxt,10);
- sprintf(zTzxt,"%d",nZ);
-
- strcat(resultText,zTzxt);
- strcat(resultText,")");
-
-
-
-
- _vtkText_position -> SetInput(resultText);
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::PutPixelIntensity(int xx, int yy, int zz)
-{
-
-//EEDx2
- bool ok=true;
-
- int dim[3];
- double spa[3];
- vtkImageData *imagedata = _marimagedata->GetImageData();
- imagedata->GetDimensions(dim);
- imagedata->GetSpacing(spa);
-
-// EEDx7
-// xx=xx*(1/spa[0]);
-// yy=yy*(1/spa[1]);
-// zz=xx*spa[2];
-
- if ( (xx<0) || (xx>=dim[0]) || (yy<0) || (yy>=dim[1]) || (zz<0) || (zz>=dim[2]) )
- {
- ok=false;
- }
-
-
- char zTzxt[20];
- char resultText[50];
- strcpy(resultText,"GL: ");
- if (ok==true) {
- unsigned short *pOrg=(unsigned short*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
-// itoa (*pOrg,zTzxt,10);
- int tmp=*pOrg;
- sprintf(zTzxt,"%d",tmp);
-
- } else {
- strcpy(zTzxt,"---");
- }
- strcat(resultText,zTzxt);
- _vtkText_pixelIntensity -> SetInput(resultText);
-}
-
-
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-vtkInfoTextImageInteractor::vtkInfoTextImageInteractor()
-{
-}
-
-//-------------------------------------------------------------------
-vtkInfoTextImageInteractor::~vtkInfoTextImageInteractor()
-{
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImageInteractor::SetModelVtkInfoTextImage(vtkInfoTextImage *vtkinfotextimage)
-{
- _vtkinfotextimage = vtkinfotextimage;
-}
-
-//-------------------------------------------------------------------
-bool vtkInfoTextImageInteractor::OnMouseMove()
-{
- int X,Y;
- wxVTKRenderWindowInteractor *wxVTKiren;
- wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
- wxVTKiren->GetEventPosition(X,Y);
-
- int z = (int)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetVtkBaseData()->GetZ());
- double xx=X,yy=Y,zz=z;
- _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->TransfromeCoordScreenToWorld(xx,yy,zz);
-
- GetVtkInfoTextImage()->PutWindowLevel();
- GetVtkInfoTextImage()->PutColorLevel();
- GetVtkInfoTextImage()->PutPosition( (int)xx , (int)yy , (int)zz );
- GetVtkInfoTextImage()->PutPixelIntensity( (int)xx , (int)yy , (int)zz );
-
- this->_vtkInteractorStyleBaseView->SetRefresh_waiting();
- return true;
-}
-
-//-------------------------------------------------------------------
-vtkInfoTextImage *vtkInfoTextImageInteractor::GetVtkInfoTextImage()
-{
- return _vtkinfotextimage;
-}
-
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-
-wxVtk2DBaseView::wxVtk2DBaseView(wxWindow *parent)
-:wxVtkBaseView(parent)
-{
- _imageViewer2XYZ = NULL;
- _vtkIinfoTextImage = NULL;
-}
-
-//-------------------------------------------------------------------
-wxVtk2DBaseView::~wxVtk2DBaseView()
-{
- if (_imageViewer2XYZ!=NULL) {
- delete _imageViewer2XYZ;
- }
-
- if (_imageViewer2XYZ!=NULL) {
- delete _vtkIinfoTextImage;
- }
-
-}
-
-//-------------------------------------------------------------------
-void wxVtk2DBaseView::TransformCoordinate_spacing_ViewToModel(double &X,double &Y, double &Z) // virtual
-{
-//EEDx5
- double spc[3];
-// GetVtkBaseData()->GetImageData()->GetSpacing(spc);
- this->_imageViewer2XYZ->GetVtkImageViewer2()->GetInput()->GetSpacing(spc);
-
- X = X / spc[0];
- Y = Y / spc[1];
- Z = Z / spc[2];
-
-}
-
-//-------------------------------------------------------------------
-void wxVtk2DBaseView::TransformCoordinate_spacing_ModelToView(double &X,double &Y, double &Z) // virtual
-{
-//EEDx5
- double spc[3];
-// GetVtkBaseData()->GetImageData()->GetSpacing(spc);
- this->_imageViewer2XYZ->GetVtkImageViewer2()->GetInput()->GetSpacing(spc);
-
- X=X*spc[0];
- Y=Y*spc[1];
- Z=Z*spc[2];
-
-}
-
-//-------------------------------------------------------------------
-void wxVtk2DBaseView::ResetView()
-{
- double spx,spy,spz;
- int x1,x2,y1,y2,z1,z2;
- wxVtkBaseView::Configure();
-
- wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
- vtkImageData *imageData = GetVtkBaseData()->GetImageData();
- imageData->UpdateInformation();
- imageData->SetUpdateExtent( imageData->GetWholeExtent());
- imageData->Update();
-
- _imageViewer2XYZ->GetVtkImageViewer2()->SetInput(imageData );
- imageData->GetSpacing (spx,spy,spz);
- imageData->GetExtent (x1,x2,y1,y2,z1,z2);
- _imageViewer2XYZ -> SetExtentDimension(x1,x2,y1,y2,z1,z2);
- _imageViewer2XYZ -> GetVtkImageViewer2()->SetupInteractor ( iren );
-
-printf("EED wxVtk2DBaseView::ResetView podemos 01\n ");
- _imageViewer2XYZ->GetVtkImageViewer2()->Render();
-printf("EED wxVtk2DBaseView::ResetView podemos 02\n ");
-
- SetInteractorStyleImage( vtkInteractorStyleBaseView2D::New() );
-
-}
-
-
-//-------------------------------------------------------------------
-void wxVtk2DBaseView::Configure(bool okimage)
-{
- double spx,spy,spz;
- int x1,x2,y1,y2,z1,z2;
- wxVtkBaseView::Configure();
-
-// EED 17 Oct 2007
- if (_imageViewer2XYZ==NULL)
- {
- _imageViewer2XYZ = new vtkImageViewer2_XYZ();
- wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
- _imageViewer2XYZ -> GetVtkImageViewer2()->SetupInteractor ( iren );
- SetInteractorStyleImage( vtkInteractorStyleBaseView2D::New() );
- }
-
-
- vtkImageData *imageData = GetVtkBaseData()->GetMarImageData()->GetImageData();
- if (imageData!=NULL){
- imageData->UpdateInformation();
- imageData->SetUpdateExtent( imageData->GetWholeExtent());
- imageData->Update();
- if (okimage==true){
- imageData->GetSpacing (spx,spy,spz);
- imageData->GetExtent (x1,x2,y1,y2,z1,z2);
-
-
- _imageViewer2XYZ->GetVtkImageViewer2()->SetInput(imageData );
- _imageViewer2XYZ->SetExtentDimension(x1,x2,y1,y2,z1,z2);
- double range[2];
- imageData->GetScalarRange(range);
- if (range[1]<20000){
- _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow( (range[1]-range[0])/2 );
- _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel( (range[1]+range[0])/4 );
- } else {
- _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow( 1000 );
- _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel( 500 );
- }
-// EED 31 Janvier 2007
-//vtkImageActor *vtkimageactor = _imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor ();
-//vtkimageactor->InterpolateOff ();
-//vtkLookupTable * _collookup = vtkLookupTable::New( );
-//_collookup->SetNumberOfColors( 256 );
-//_collookup->SetTableRange( 0 , 255 );
-//_collookup->Build( );
-//_collookup->SetTableValue( 0 , 1 , 0 , 0 , 1 );
-//_collookup->SetTableValue(128 , 0 , 0 , 1 , 1 );
-//_collookup->SetTableValue(255 , 0 , 1 , 0 , 1 );
-//_imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel ()->SetLookupTable(_collookup );
-
-
-// EED 17 Oct 2007
-// SetInteractorStyleImage( vtkInteractorStyleBaseView2D::New() );
-
-
- vtkImageViewer2 *IV2=_imageViewer2XYZ->GetVtkImageViewer2();
- vtkCamera *camera = IV2->GetRenderer()->GetActiveCamera();
- camera->SetViewUp ( spx*0 , -spy*1 , spz*0 );
- camera->SetPosition ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , -spz*10000 );
- camera->SetFocalPoint ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0 );
- camera->SetClippingRange( 0.01 , 1000000 );
- camera->ComputeViewPlaneNormal();
- camera->SetParallelScale( spx*(x2-x1)/3.0 );
-
- // text information over the graphic window
- _vtkIinfoTextImage = new vtkInfoTextImage();
- _vtkIinfoTextImageInteractor = new vtkInfoTextImageInteractor();
- _vtkIinfoTextImage->SetWxVtk2DBaseView(this);
- _vtkIinfoTextImage->SetMarImageData( GetVtkBaseData()->GetMarImageData() );
- _vtkIinfoTextImageInteractor->SetModelVtkInfoTextImage(_vtkIinfoTextImage);
- _vtkIinfoTextImage->Configure();
- this->GetInteractorStyleBaseView()->AddInteractorStyleMaracas(_vtkIinfoTextImageInteractor);
- } // okimage
- } // imageData
-
-}
-
-//-------------------------------------------------------------------
-
-int wxVtk2DBaseView::GetActualSlice() // virtual
-{
- return (int)(_vtkbasedata->GetZ());
-}
-
-//-------------------------------------------------------------------
-void wxVtk2DBaseView::SetActualSlice(int slice) // Virtual
-{
- _vtkbasedata->SetZ(slice);
-}
-
-//-------------------------------------------------------------------
-
-vtkBaseData *wxVtk2DBaseView::GetVtkBaseData()
-{
- return _vtkbasedata;
-}
-
-//-------------------------------------------------------------------
-
-void wxVtk2DBaseView::SetVtkBaseData(vtkBaseData *vtkbasedata)
-{
- _vtkbasedata=vtkbasedata;
-}
-
-//-------------------------------------------------------------------
-
-void wxVtk2DBaseView::Refresh()
-{
- int z = (int)(GetVtkBaseData()->GetZ());
- _imageViewer2XYZ->SetZSlice( z );
-
- wxVtkBaseView::Refresh();
-}
-
-//-------------------------------------------------------------------
-
-void wxVtk2DBaseView::SetInteractorStyleImage(vtkInteractorStyleBaseView *interactorstylebaseview)
-{
- SetInteractorStyleBaseView(interactorstylebaseview);
-
- wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
- interactorstylebaseview->SetInteractor ( iren );
- iren->SetInteractorStyle(interactorstylebaseview);
- interactorstylebaseview->SetwxVtkBaseView(this);
-
- vtkMaracasImageViewer2Callback *cbk = vtkMaracasImageViewer2Callback::New();
- cbk->IV = _imageViewer2XYZ->GetVtkImageViewer2();
- interactorstylebaseview->AddObserver( vtkCommand::WindowLevelEvent, cbk );
- interactorstylebaseview->AddObserver( vtkCommand::StartWindowLevelEvent, cbk );
- interactorstylebaseview->AddObserver( vtkCommand::ResetWindowLevelEvent, cbk );
- cbk->Delete();
-}
-
-//---------------------------------------------------------------------------
-vtkRenderer* wxVtk2DBaseView::GetRenderer() // virtual
-{
- return _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer();
-}
-//---------------------------------------------------------------------------
-vtkRenderWindow* wxVtk2DBaseView::GetRenWin() // virtual
-{
- return _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderWindow();
-}
-
-//-------------------------------------------------------------------
-
-void wxVtk2DBaseView::GetSpacing(double spc[3]) // virtual
-{
- vtkImageData *imageData = GetVtkBaseData()->GetImageData();
- imageData->GetSpacing(spc);
-}
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-
-
-
-wxVtk3DBaseView::wxVtk3DBaseView(wxWindow *parent)
-:wxVtkBaseView( parent )
-{
- _configure = false;
- _aRenderer = NULL;
- _renWin = NULL;
- _aCamera = NULL;
-}
-//-------------------------------------------------------------------
-wxVtk3DBaseView::~wxVtk3DBaseView()
-{
- if (_aCamera!=NULL) { _aCamera -> Delete(); }
- if (_aRenderer!=NULL) { _aRenderer -> Delete(); }
- if (_renWin!=NULL) { _renWin -> Delete(); }
-}
-//-------------------------------------------------------------------
-vtkCamera* wxVtk3DBaseView::GetCamera()
-{
- return _aCamera;
-}
-//-------------------------------------------------------------------
-vtkRenderer* wxVtk3DBaseView::GetRenderer() // virtual
-{
- return _aRenderer;
-}
-//-------------------------------------------------------------------
-vtkRenderWindow* wxVtk3DBaseView::GetRenWin() // virtual
-{
- return _renWin;
-}
-//-------------------------------------------------------------------
-void wxVtk3DBaseView::Refresh()
-{
-// _renWin->Render();
- vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
- vri->vtkRenderWindowInteractor::Render();
-}
-//-------------------------------------------------------------------
-void wxVtk3DBaseView::Configure()
-{
- if (_configure==false)
- {
- _configure=true;
- wxVtkBaseView::Configure();
- _aRenderer = vtkRenderer::New();
- _renWin = vtkRenderWindow::New();
- _renWin->AddRenderer(_aRenderer);
-
-
-// _renWin->SetStereoCapableWindow(1);
-// // //renderwindow->SetStereoTypeToCrystalEyes();
-// _renWin->SetStereoTypeToRedBlue();
-// _renWin->SetStereoRender(1);
-
- GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin);
-
-
-// EED Borrame
-// vtkInteractorStyle3DMaracas *interactorStyle3DMaracas = vtkInteractorStyle3DMaracas::New();
- vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New();
-
- SetInteractorStyleBaseView( interactorStyleBaseView3D );
- interactorStyleBaseView3D->SetInteractor ( GetWxVTKRenderWindowInteractor() );
- GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
- interactorStyleBaseView3D->SetwxVtkBaseView(this);
-
-
-/* EED Borrame
- vtkInteractorStyleSwitch *iss = dynamic_cast<vtkInteractorStyleSwitch*>(_iren->GetInteractorStyle());
- iss->SetCurrentStyleToTrackballCamera();
-*/
-
- // It is convenient to create an initial view of the data. The
- // FocalPoint and Position form a vector direction. Later on
- // (ResetCamera() method) this vector is used to position the camera
- // to look at the data in this direction.
- _aCamera = vtkCamera::New();
- _aCamera->SetViewUp (0, 0, -1);
- _aCamera->SetPosition (0, 1, 0);
- _aCamera->SetFocalPoint (0, 0, 0);
- _aCamera->ComputeViewPlaneNormal();
- }
-}
-//-------------------------------------------------------------------
-//EED 27 sep 2006
-void wxVtk3DBaseView::GetSpacing(double spc[3])
-{
- spc[0]=1;
- spc[1]=1;
- spc[2]=1;
-}