00001 #include "vtkImageViewer2_XYZ.h"
00002 #include "vtkRenderer.h"
00003 #include "vtkImageActor.h"
00004
00005
00006
00007 vtkImageViewer2_XYZ::vtkImageViewer2_XYZ()
00008 {
00009 _vtkimageviewer2= vtkImageViewer2::New();
00010 _vtkimageviewer2->GetRenderer()->GradientBackgroundOn();
00011 _vtkimageviewer2->GetRenderer()->SetBackground( 0.33 , 0.33 , 0.33 );
00012 _vtkimageviewer2->GetRenderer()->SetBackground2( 0.66 , 0.66 , 0.66 );
00013 }
00014
00015 vtkImageViewer2_XYZ::~vtkImageViewer2_XYZ()
00016 {
00017
00018 }
00019
00020 void vtkImageViewer2_XYZ::SetExtentDimension(int x1,int x2,
00021 int y1,int y2,
00022 int z1,int z2)
00023 {
00024 _x1=x1;
00025 _x2=x2;
00026 _y1=y1;
00027 _y2=y2;
00028 _z1=z1;
00029 _z2=z2;
00030 }
00031
00032 void vtkImageViewer2_XYZ::SetXSlice(int slice)
00033 {
00034 vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
00035 imageActor->SetDisplayExtent(slice, slice, _y1, _y2, _z1, _z2 );
00036 }
00037
00038 void vtkImageViewer2_XYZ::SetYSlice(int slice)
00039 {
00040 vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
00041 imageActor->SetDisplayExtent(_x1, _x2, slice, slice, _z1, _z2 );
00042 }
00043
00044 void vtkImageViewer2_XYZ::SetZSlice(int slice)
00045 {
00046 #if (VTK_MAJOR_VERSION >= 5)
00047
00048 vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
00049 imageActor->SetDisplayExtent(_x1, _x2, _y1, _y2, slice, slice );
00050 #else
00051 _vtkimageviewer2->SetZSlice( slice );
00052 #endif
00053
00054
00055 }
00056
00057 int vtkImageViewer2_XYZ::GetXSlice()
00058 {
00059 vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
00060 return imageActor->GetDisplayExtent()[0];
00061 }
00062
00063 int vtkImageViewer2_XYZ::GetYSlice()
00064 {
00065 vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
00066 return imageActor->GetDisplayExtent()[2];
00067 }
00068
00069 int vtkImageViewer2_XYZ::GetZSlice()
00070 {
00071
00072 int result;
00073 #if (VTK_MAJOR_VERSION >= 5)
00074 result= _vtkimageviewer2->GetSlice( );
00075 #else
00076 result= _vtkimageviewer2->GetZSlice( );
00077 #endif
00078
00079
00080 return result;
00081 }
00082
00083 vtkImageViewer2 *vtkImageViewer2_XYZ::GetVtkImageViewer2()
00084 {
00085 return _vtkimageviewer2;
00086 }
00087
00088 void vtkImageViewer2_XYZ::setColorTransferFunction(vtkColorTransferFunction* colortable){
00089
00090 vtkImageMapToWindowLevelColors* imagemaptowindowlevel = _vtkimageviewer2->GetWindowLevel();
00091
00092 if(colortable!=NULL&&colortable->GetSize()>0){
00093 imagemaptowindowlevel->SetLookupTable(colortable);
00094 }
00095
00096 }