#include "imageplanewidget.h" ImagePlaneWidget::ImagePlaneWidget() { _img = 0; _xwidget = 0; _ywidget = 0; _zwidget = 0; } void ImagePlaneWidget::initialize(vtkRenderWindowInteractor* interactor){ // Plane widget _xwidget = vtkImagePlaneWidget::New( ); _ywidget = vtkImagePlaneWidget::New( ); _zwidget = vtkImagePlaneWidget::New( ); _xwidget->SetInteractor( interactor ); _ywidget->SetInteractor( interactor ); _zwidget->SetInteractor( interactor ); } void ImagePlaneWidget::setImage(vtkImageData* img){ _img = img; this->invariant(); int *dims = _img->GetDimensions( ); unsigned int sliceX = dims[0]/2; unsigned int sliceY = dims[1]/2; unsigned int sliceZ = dims[2]/2; // Set input X,Y and Z plane _xwidget->Off( ); _xwidget->SetInput( _img ); _xwidget->SetPlaneOrientationToXAxes( ); _xwidget->SetSliceIndex( sliceX ); //_xwidget->TextureInterpolateOff(); _xwidget->SetResliceInterpolateToLinear(); _xwidget->On( ); _xwidget->DisplayTextOn(); _ywidget->Off( ); _ywidget->SetInput( _img ); _ywidget->SetPlaneOrientationToYAxes( ); _ywidget->SetSliceIndex( sliceY ); //_ywidget->TextureInterpolateOff(); _ywidget->SetResliceInterpolateToLinear(); _ywidget->DisplayTextOn(); _ywidget->On( ); _zwidget->Off( ); _zwidget->SetInput( _img ); _zwidget->SetPlaneOrientationToZAxes( ); _zwidget->SetSliceIndex( sliceZ ); //_zwidget->TextureInterpolateOff(); _zwidget->SetResliceInterpolateToLinear(); _zwidget->DisplayTextOn(); _zwidget->On( ); } void ImagePlaneWidget::SetLookupTable(vtkLookupTable *lookuptable){ this->invariant(); _xwidget->SetLookupTable(lookuptable); _ywidget->SetLookupTable(lookuptable); _zwidget->SetLookupTable(lookuptable); } void ImagePlaneWidget::SetColorTable(vtkColorTransferFunction *colortransfer){ SetLookupTable((vtkLookupTable*)colortransfer); } void ImagePlaneWidget::showPlanes(bool show){ this->invariant(); if(show){ _xwidget->On(); _ywidget->On(); _zwidget->On(); }else{ _xwidget->Off(); _ywidget->Off(); _zwidget->Off(); } } void ImagePlaneWidget::invariant(){ if(_img == NULL){ throw "Image data is not initialized"; } if(!_xwidget ||!_ywidget || !_zwidget){ throw "The widgets are not initialized"; } }