#include "vtkImageViewer2_XYZ.h" #include "vtkRenderer.h" #include "vtkImageActor.h" #include "vtkImageData.h" //------------------------------------------------------------------- //------------------------------------------------------------------- //------------------------------------------------------------------- vtkImageViewer2_XYZ::vtkImageViewer2_XYZ() { _vtkimageviewer2= vtkImageViewer2::New(); _vtkimageviewer2->GetRenderer()->GradientBackgroundOn(); _vtkimageviewer2->GetRenderer()->SetBackground( 0.33 , 0.33 , 0.33 ); _vtkimageviewer2->GetRenderer()->SetBackground2( 0.66 , 0.66 , 0.66 ); _colortable = NULL; } //------------------------------------------------------------------- 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; } void vtkImageViewer2_XYZ::setColorTransferFunction(vtkColorTransferFunction* colortable){ vtkImageMapToWindowLevelColors* imagemaptowindowlevel = _vtkimageviewer2->GetWindowLevel(); if(colortable!=NULL&&colortable->GetSize()>0 && _colortable != colortable){ _colortable = colortable; imagemaptowindowlevel->SetLookupTable(colortable); } }