44#ifndef vtkImageReslice_h 
   45#define vtkImageReslice_h 
   47#include "vtkImagingCoreModule.h"  
   51#define VTK_RESLICE_NEAREST VTK_NEAREST_INTERPOLATION 
   52#define VTK_RESLICE_LINEAR VTK_LINEAR_INTERPOLATION 
   53#define VTK_RESLICE_CUBIC VTK_CUBIC_INTERPOLATION 
   55VTK_ABI_NAMESPACE_BEGIN
 
   99    double y2, 
double z0, 
double z1, 
double z2);
 
  102    this->SetResliceAxesDirectionCosines(x[0], x[1], x[2], y[0], y[1], y[2], z[0], z[1], z[2]);
 
  106    this->SetResliceAxesDirectionCosines(
 
  107      xyz[0], xyz[1], xyz[2], xyz[3], xyz[4], xyz[5], xyz[6], xyz[7], xyz[8]);
 
  112    this->GetResliceAxesDirectionCosines(&xyz[0], &xyz[3], &xyz[6]);
 
  116    this->GetResliceAxesDirectionCosines(this->ResliceAxesDirectionCosines);
 
  117    return this->ResliceAxesDirectionCosines;
 
  131    this->SetResliceAxesOrigin(xyz[0], xyz[1], xyz[2]);
 
  136    this->GetResliceAxesOrigin(this->ResliceAxesOrigin);
 
  137    return this->ResliceAxesOrigin;
 
  234  vtkSetMacro(BorderThickness, 
double);
 
  235  vtkGetMacro(BorderThickness, 
double);
 
  242  vtkGetMacro(InterpolationMode, 
int);
 
  266  vtkGetMacro(SlabMode, 
int);
 
  278  vtkSetMacro(SlabNumberOfSlices, 
int);
 
  279  vtkGetMacro(SlabNumberOfSlices, 
int);
 
  303  vtkSetMacro(SlabSliceSpacingFraction, 
double);
 
  304  vtkGetMacro(SlabSliceSpacingFraction, 
double);
 
  325  vtkSetMacro(ScalarShift, 
double);
 
  326  vtkGetMacro(ScalarShift, 
double);
 
  337  vtkSetMacro(ScalarScale, 
double);
 
  338  vtkGetMacro(ScalarScale, 
double);
 
  352  vtkSetMacro(OutputScalarType, 
int);
 
  353  vtkGetMacro(OutputScalarType, 
int);
 
  360  vtkSetVector4Macro(BackgroundColor, 
double);
 
  361  vtkGetVector4Macro(BackgroundColor, 
double);
 
  379  vtkGetVector3Macro(OutputSpacing, 
double);
 
  394    double zx, 
double zy, 
double zz);
 
  397    this->SetOutputDirection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);
 
  399  vtkGetVector3Macro(OutputDirection, 
double);
 
  410  vtkGetVector3Macro(OutputOrigin, 
double);
 
  422    this->SetOutputExtent(a[0], a[1], a[2], a[3], a[4], a[5]);
 
  424  vtkGetVector6Macro(OutputExtent, 
int);
 
  439  vtkSetMacro(OutputDimensionality, 
int);
 
  440  vtkGetMacro(OutputDimensionality, 
int);
 
  465    if (t && !this->GetInterpolate())
 
  467      this->SetInterpolationModeToLinear();
 
  469    else if (!t && this->GetInterpolate())
 
  471      this->SetInterpolationModeToNearestNeighbor();
 
  513  double ResliceAxesDirectionCosines[9];
 
  514  double ResliceAxesOrigin[3];
 
  530  double BackgroundColor[4];
 
  531  double OutputDirection[9];
 
  532  double OutputOrigin[3];
 
  533  double OutputSpacing[3];
 
  570  virtual void ConvertScalars(
void* inPtr, 
void* outPtr, 
int inputType, 
int inputNumComponents,
 
  571    int count, 
int idX, 
int idY, 
int idZ, 
int threadId);
 
  574    int count, 
int idX, 
int idY, 
int idZ, 
int threadId)
 
  576    this->ConvertScalars(
 
  577      inPtr, outPtr, inputType, inputNumComponents, count, idX, idY, idZ, threadId);
 
  588    vtkInformation* inInfo, 
const double outDirection[9], 
double bounds[6]);
 
interpolate data values from images
 
Proxy object to connect input/output ports.
 
vtkAlgorithmOutput * GetOutputPort()
 
general representation of visualization data
 
Detect and break reference loops.
 
topologically and geometrically regular array of data
 
Reslices a volume along a new set of axes.
 
void InterpolateOff()
Convenient methods for switching between nearest-neighbor and linear interpolation.
 
void SetResliceAxesDirectionCosines(const double x[3], const double y[3], const double z[3])
Specify the direction cosines for the ResliceAxes (i.e.
 
vtkImageStencilData * GetStencil()
Use a stencil to limit the calculations to a specific region of the output.
 
virtual void SetOutputOrigin(const double a[3])
Set the origin for the output data.
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
void ReportReferences(vtkGarbageCollector *) override
Report object referenced by instances of this class.
 
int FillInputPortInformation(int port, vtkInformation *info) override
These method should be reimplemented by subclasses that have more than a single input or single outpu...
 
virtual void SetOutputExtent(int a, int b, int c, int d, int e, int f)
Set the extent for the output data.
 
void SetResliceAxesDirectionCosines(const double xyz[9])
Specify the direction cosines for the ResliceAxes (i.e.
 
vtkTypeBool TransformInputSampling
 
void GetAutoCroppedOutputBounds(vtkInformation *inInfo, const double outDirection[9], double bounds[6])
 
double * GetResliceAxesOrigin()
Specify the origin for the ResliceAxes (i.e.
 
virtual void SetResliceTransform(vtkAbstractTransform *)
Set a transform to be applied to the resampling grid that has been defined via the ResliceAxes and th...
 
int RequestInformationBase(vtkInformationVector **, vtkInformationVector *)
For derived classes, this should be called at the very end of RequestInformation() to ensure that var...
 
virtual const char * GetInterpolationModeAsString()
 
void SetResliceAxesDirectionCosines(double x0, double x1, double x2, double y0, double y1, double y2, double z0, double z1, double z2)
Specify the direction cosines for the ResliceAxes (i.e.
 
vtkTypeBool HasConvertScalars
This should be set to 1 by derived classes that override the ConvertScalars method.
 
void SetSlabModeToMean()
Set the slab mode, for generating thick slices.
 
void InterpolateOn()
Convenient methods for switching between nearest-neighbor and linear interpolation.
 
void SetResliceAxesOrigin(double x, double y, double z)
Specify the origin for the ResliceAxes (i.e.
 
void SetResliceAxesOrigin(const double xyz[3])
Specify the origin for the ResliceAxes (i.e.
 
virtual void ConvertScalars(void *inPtr, void *outPtr, int inputType, int inputNumComponents, int count, int idX, int idY, int idZ, int threadId)
This should be overridden by derived classes that operate on the interpolated data before it is place...
 
void GetResliceAxesDirectionCosines(double xyz[9])
Specify the direction cosines for the ResliceAxes (i.e.
 
virtual void SetOutputExtent(const int a[6])
Set the extent for the output data.
 
virtual void SetOutputOrigin(double x, double y, double z)
Set the origin for the output data.
 
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Subclasses can reimplement this method to collect information from their inputs and set information f...
 
void SetOutputSpacingToDefault()
Set the voxel spacing for the output data.
 
virtual void SetOutputDirection(const double a[9])
Set the direction for the output data.
 
void SetStencilOutput(vtkImageStencilData *stencil)
Get the output stencil.
 
void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int ext[6], int id) override
If the subclass does not define an Execute method, then the task will be broken up,...
 
vtkImageStencilData * GetStencilOutput()
Get the output stencil.
 
virtual vtkAbstractImageInterpolator * GetInterpolator()
Set the interpolator to use.
 
void SetInterpolationModeToCubic()
 
virtual void SetOutputDirection(double xx, double xy, double xz, double yx, double yy, double yz, double zx, double zy, double zz)
Set the direction for the output data.
 
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Subclasses can reimplement this method to translate the update extent requests from each output port ...
 
double SlabSliceSpacingFraction
 
vtkImageData * AllocateOutputData(vtkDataObject *, vtkInformation *) override
Allocate the output data.
 
int GetInterpolate()
Convenient methods for switching between nearest-neighbor and linear interpolation.
 
void GetResliceAxesOrigin(double xyz[3])
Specify the origin for the ResliceAxes (i.e.
 
void SetSlabModeToMin()
Set the slab mode, for generating thick slices.
 
virtual void SetOutputSpacing(const double a[3])
Set the voxel spacing for the output data.
 
double GetBackgroundLevel()
Set background grey level (for single-component images).
 
virtual int ConvertScalarInfo(int &scalarType, int &numComponents)
This should be overridden by derived classes that operate on the interpolated data before it is place...
 
~vtkImageReslice() override
 
void SetOutputDirectionToDefault()
Set the direction for the output data.
 
void AllocateOutputData(vtkImageData *output, vtkInformation *outInfo, int *uExtent) override
Allocate the output data.
 
void SetSlabModeToMax()
Set the slab mode, for generating thick slices.
 
vtkAbstractTransform * OptimizedTransform
 
vtkTypeBool SlabTrapezoidIntegration
 
vtkMatrix4x4 * IndexMatrix
 
vtkMTimeType GetMTime() override
When determining the modified time of the filter, this check the modified time of the transform and m...
 
vtkTypeBool AutoCropOutput
 
vtkTypeBool GenerateStencilOutput
 
vtkMatrix4x4 * ResliceAxes
 
virtual void SetOutputSpacing(double x, double y, double z)
Set the voxel spacing for the output data.
 
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called in response to a REQUEST_DATA request from the executive.
 
static vtkImageReslice * New()
 
void ConvertScalarsBase(void *inPtr, void *outPtr, int inputType, int inputNumComponents, int count, int idX, int idY, int idZ, int threadId)
 
double * GetResliceAxesDirectionCosines()
Specify the direction cosines for the ResliceAxes (i.e.
 
vtkAbstractTransform * ResliceTransform
 
virtual void SetInterpolator(vtkAbstractImageInterpolator *sampler)
Set the interpolator to use.
 
virtual void SetResliceAxes(vtkMatrix4x4 *)
This method is used to set up the axes for the output voxels.
 
vtkAbstractImageInterpolator * Interpolator
 
vtkAlgorithmOutput * GetStencilOutputPort()
Get the output stencil.
 
bool PassDirectionToOutput
 
void SetInterpolationModeToNearestNeighbor()
 
void SetOutputExtentToDefault()
Set the extent for the output data.
 
virtual const char * GetSlabModeAsString()
Set the slab mode, for generating thick slices.
 
void SetInterpolate(int t)
Convenient methods for switching between nearest-neighbor and linear interpolation.
 
vtkAbstractTransform * GetOptimizedTransform()
 
void GetResliceAxesDirectionCosines(double x[3], double y[3], double z[3])
Specify the direction cosines for the ResliceAxes (i.e.
 
vtkMatrix4x4 * GetIndexMatrix(vtkInformation *inInfo, vtkInformation *outInfo)
 
vtkImageData * InformationInput
 
void SetBackgroundLevel(double v)
Set background grey level (for single-component images).
 
void SetOutputOriginToDefault()
Set the origin for the output data.
 
virtual void SetInformationInput(vtkImageData *)
Set a vtkImageData from which the default Spacing, Origin, and WholeExtent of the output will be copi...
 
void SetInterpolationModeToLinear()
 
int FillOutputPortInformation(int port, vtkInformation *info) override
These method should be reimplemented by subclasses that have more than a single input or single outpu...
 
void SetStencilData(vtkImageStencilData *stencil)
Use a stencil to limit the calculations to a specific region of the output.
 
void SetSlabModeToSum()
Set the slab mode, for generating thick slices.
 
efficient description of an image stencil
 
a simple class to control print indentation
 
represent and manipulate 4x4 transformation matrices
 
Superclass for mapping scalar values to colors.
 
Generic filter that has one input.
 
#define VTK_RESLICE_CUBIC
 
#define VTK_RESLICE_NEAREST
 
#define VTK_RESLICE_LINEAR
 
#define VTK_IMAGE_SLAB_MAX
 
#define VTK_IMAGE_SLAB_MIN
 
#define VTK_IMAGE_SLAB_SUM
 
#define VTK_IMAGE_SLAB_MEAN
 
vtkTypeUInt32 vtkMTimeType
 
#define VTK_SIZEHINT(...)