#include "vtkInfoTextImage.h"
#include "vtkInteractorStyleBaseView2D.h"
#include "vtkInfoTextImageInteractor.h"
+#include "vtkImageActor.h"
wxVtk2DBaseView::wxVtk2DBaseView(wxWindow *parent)
{
delete _vtkIinfoTextImage;
}
-
if (_imageViewer2XYZ!=NULL)
{
delete _imageViewer2XYZ;
// GetVtkBaseData()->GetImageData()->GetSpacing(spc);
//JCP 04/08/10 W/O Image this->_imageViewer2XYZ->GetVtkImageViewer2()->GetInput()->GetSpacing(spc);
vtkImageData* image = this->_imageViewer2XYZ->GetVtkImageViewer2()->GetInput();
- if(image){
+ if(image)
+ {
image->GetSpacing(spc);
}else{
spc[0] = 1;
spc[1] = 1;
spc[2] = 1;
}
-
-
X = X / spc[0];
Y = Y / spc[1];
Z = Z / spc[2];
-
}
//-------------------------------------------------------------------
X=X*spc[0];
Y=Y*spc[1];
Z=Z*spc[2];
-
}
//-------------------------------------------------------------------
double spx = 0,spy = 0,spz = 0;
int x1 = 1,x2 = 1,y1 = 1,y2 = 1,z1 = 1,z2 = 1;
wxVtkBaseView::Configure();
-
- wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
+ crea::wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
vtkImageData *imageData = GetVtkBaseData()->GetImageData();
- if(imageData){
+ if(imageData)
+ {
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
imageData->UpdateInformation();
imageData->SetUpdateExtent( imageData->GetWholeExtent());
imageData->Update();
_imageViewer2XYZ->GetVtkImageViewer2()->SetInput(imageData );
+#else
+ _imageViewer2XYZ->GetVtkImageViewer2()->SetInputData(imageData );
+#endif
imageData->GetSpacing (spx,spy,spz);
imageData->GetExtent (x1,x2,y1,y2,z1,z2);
}
-
-
+printf("//EED wxVtk2DBaseView::ResetView %d %d %d %d %d %d \n",x1,x2,y1,y2,z1,z2);
_imageViewer2XYZ -> SetExtentDimension(x1,x2,y1,y2,z1,z2);
_imageViewer2XYZ -> GetVtkImageViewer2()->SetupInteractor ( iren );
vtkInteractorScrollZ *_vtkInteractorScrollZ = new vtkInteractorScrollZ();
style2D->SetInteractorScrollZ(_vtkInteractorScrollZ);
+ vtkInteractorZoomCamera *_vtkInteractorZoomCamera = new vtkInteractorZoomCamera();
+ style2D->SetInteractorZoomCamera(_vtkInteractorZoomCamera);
+
+
+
SetInteractorStyleImage( style2D );
// RaC
}
-
-
//-------------------------------------------------------------------
void wxVtk2DBaseView::SetImageToVtkViewer(vtkImageData *imageData)
{
+ int ext[6];
if (_imageViewer2XYZ!=NULL)
{
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+ imageData->Update();
+ imageData->GetWholeExtent(ext);
+ _imageViewer2XYZ->SetExtentDimension( ext[0],ext[1],ext[2],ext[3],ext[4],ext[5] );
_imageViewer2XYZ->GetVtkImageViewer2()->SetInput( imageData );
+#else
+ imageData->GetExtent(ext);
+ _imageViewer2XYZ->SetExtentDimension( ext[0],ext[1],ext[2],ext[3],ext[4],ext[5] );
+ _imageViewer2XYZ->GetVtkImageViewer2()->SetInputData( imageData );
+#endif
} // if _imageViewer2XYZ
-}
+ GetRenderer()->GetActiveCamera()->SetClippingRange(0.01, 1000000);
+
+}
//-------------------------------------------------------------------
void wxVtk2DBaseView::Configure(bool okimage)
if (_imageViewer2XYZ==NULL)
{
_imageViewer2XYZ = new vtkImageViewer2_XYZ();
- wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
+ crea::wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
_imageViewer2XYZ -> GetVtkImageViewer2()->SetupInteractor ( iren );
//////////////
vtkInteractorScrollZ *_vtkInteractorScrollZ = new vtkInteractorScrollZ();
style2D->SetInteractorScrollZ(_vtkInteractorScrollZ);
+ vtkInteractorZoomCamera *_vtkInteractorZoomCamera = new vtkInteractorZoomCamera();
+ style2D->SetInteractorZoomCamera(_vtkInteractorZoomCamera);
+
SetInteractorStyleImage( style2D );
// RaC
//////////////
}
-
vtkImageData *imageData = GetVtkBaseData()->GetMarImageData()->GetImageData();
if (imageData!=NULL)
{
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
imageData->UpdateInformation();
imageData->SetUpdateExtent( imageData->GetWholeExtent());
imageData->Update();
+#else
+ //...
+#endif
+
if (okimage==true){
imageData->GetSpacing (spx,spy,spz);
imageData->GetExtent (x1,x2,y1,y2,z1,z2);
//_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();
//EED 21 mars 2012 FLIP problem ..PLOP..
// XY
- camera->SetViewUp ( spx*0 , -spy*1 , spz*0 );
+ 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 );
+
+ double cameraparallelScale=spx*(x2-x1)/3.0;
+ camera->SetParallelScale( cameraparallelScale );
+ GetVtkBaseData()->SetCameraParallelScale( cameraparallelScale );
// text information over the graphic window
if(_vtkIinfoTextImage == NULL){
//-------------------------------------------------------------------
-int wxVtk2DBaseView::GetActualSlice() // virtual
+int wxVtk2DBaseView::GetActualSlice() // virtual
{
return (int)(GetVtkBaseData()->GetZ());
}
GetVtkBaseData()->SetZ(slice);
}
-
//-------------------------------------------------------------------
void wxVtk2DBaseView::UpdateColorWindowLevel()
{
//EED 24oct2010
//EED 02nov2012
-// vtkImageViewer2 *vtkimageviewer2 = _imageViewer2XYZ->GetVtkImageViewer2();
-
-
vtkImageMapToWindowLevelColors* imagemaptowindowlevel = _imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel();
imagemaptowindowlevel->SetWindow( GetVtkBaseData()->GetColorWindow() );
imagemaptowindowlevel->SetLevel( GetVtkBaseData()->GetColorLevel() );
-
-// EED Borrame
-// vtkimageviewer2->SetColorWindow( GetVtkBaseData()->GetColorWindow() );
-// vtkimageviewer2->SetColorLevel( GetVtkBaseData()->GetColorLevel() );
_imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel()->Modified();
}
+//-------------------------------------------------------------------
+void wxVtk2DBaseView::UpdateCameraParallelScale()
+{
+ vtkCamera *camera =_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->GetActiveCamera();
+ camera->SetParallelScale( GetVtkBaseData()->GetCameraParallelScale() );
+}
+
//-------------------------------------------------------------------
void wxVtk2DBaseView::Refresh()
{
int z = (int)(GetVtkBaseData()->GetZ());
_imageViewer2XYZ->SetZSlice( z );
+//EED 2016/02/19
+ vtkImageActor *imageactor = _imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor();
+ imageactor->SetInterpolate( GetVtkBaseData()->GetInterpolate() );
//EED 01nov2012
UpdateColorWindowLevel();
+ UpdateCameraParallelScale();
wxVtkBaseView::Refresh();
}
void wxVtk2DBaseView::SetInteractorStyleImage(vtkInteractorStyleBaseView *interactorstylebaseview)
{
SetInteractorStyleBaseView(interactorstylebaseview);
-
- wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
+ crea::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 );
this->Refresh();
}
+//-------------------------------------------------------------------
+void wxVtk2DBaseView::SetInterpolate(bool iterpolate)
+{
+ GetVtkBaseData()->SetInterpolate( iterpolate );
+ this->Refresh();
+}
+
//-------------------------------------------------------------------
int wxVtk2DBaseView::GetDirection() // virtual
{