52 #ifndef vtkImageReslice_h 53 #define vtkImageReslice_h 55 #include "vtkImagingCoreModule.h" 59 #define VTK_RESLICE_NEAREST VTK_NEAREST_INTERPOLATION 60 #define VTK_RESLICE_LINEAR VTK_LINEAR_INTERPOLATION 61 #define VTK_RESLICE_CUBIC VTK_CUBIC_INTERPOLATION 105 void SetResliceAxesDirectionCosines(
double x0,
double x1,
double x2,
double y0,
double y1,
106 double y2,
double z0,
double z1,
double z2);
109 this->SetResliceAxesDirectionCosines(x[0], x[1], x[2], y[0], y[1], y[2], z[0], z[1], z[2]);
113 this->SetResliceAxesDirectionCosines(
114 xyz[0], xyz[1], xyz[2], xyz[3], xyz[4], xyz[5], xyz[6], xyz[7], xyz[8]);
116 void GetResliceAxesDirectionCosines(
double x[3],
double y[3],
double z[3]);
119 this->GetResliceAxesDirectionCosines(&xyz[0], &xyz[3], &xyz[6]);
123 this->GetResliceAxesDirectionCosines(this->ResliceAxesDirectionCosines);
124 return this->ResliceAxesDirectionCosines;
135 void SetResliceAxesOrigin(
double x,
double y,
double z);
138 this->SetResliceAxesOrigin(xyz[0], xyz[1], xyz[2]);
140 void GetResliceAxesOrigin(
double xyz[3]);
143 this->GetResliceAxesOrigin(this->ResliceAxesOrigin);
144 return this->ResliceAxesOrigin;
185 vtkBooleanMacro(TransformInputSampling,
vtkTypeBool);
241 vtkSetMacro(BorderThickness,
double);
242 vtkGetMacro(BorderThickness,
double);
249 vtkGetMacro(InterpolationMode,
int);
253 virtual const char* GetInterpolationModeAsString();
273 vtkGetMacro(SlabMode,
int);
278 virtual const char* GetSlabModeAsString();
285 vtkSetMacro(SlabNumberOfSlices,
int);
286 vtkGetMacro(SlabNumberOfSlices,
int);
295 vtkSetMacro(SlabTrapezoidIntegration,
vtkTypeBool);
296 vtkBooleanMacro(SlabTrapezoidIntegration,
vtkTypeBool);
297 vtkGetMacro(SlabTrapezoidIntegration,
vtkTypeBool);
310 vtkSetMacro(SlabSliceSpacingFraction,
double);
311 vtkGetMacro(SlabSliceSpacingFraction,
double);
332 vtkSetMacro(ScalarShift,
double);
333 vtkGetMacro(ScalarShift,
double);
344 vtkSetMacro(ScalarScale,
double);
345 vtkGetMacro(ScalarScale,
double);
359 vtkSetMacro(OutputScalarType,
int);
360 vtkGetMacro(OutputScalarType,
int);
367 vtkSetVector4Macro(BackgroundColor,
double);
368 vtkGetVector4Macro(BackgroundColor,
double);
384 virtual void SetOutputSpacing(
double x,
double y,
double z);
386 vtkGetVector3Macro(OutputSpacing,
double);
387 void SetOutputSpacingToDefault();
395 virtual void SetOutputOrigin(
double x,
double y,
double z);
397 vtkGetVector3Macro(OutputOrigin,
double);
398 void SetOutputOriginToDefault();
406 virtual void SetOutputExtent(
int a,
int b,
int c,
int d,
int e,
int f);
409 this->SetOutputExtent(a[0], a[1], a[2], a[3], a[4], a[5]);
411 vtkGetVector6Macro(OutputExtent,
int);
412 void SetOutputExtentToDefault();
426 vtkSetMacro(OutputDimensionality,
int);
427 vtkGetMacro(OutputDimensionality,
int);
452 if (t && !this->GetInterpolate())
454 this->SetInterpolationModeToLinear();
456 else if (!t && this->GetInterpolate())
458 this->SetInterpolationModeToNearestNeighbor();
483 vtkBooleanMacro(GenerateStencilOutput,
vtkTypeBool);
500 double ResliceAxesDirectionCosines[9];
501 double ResliceAxesOrigin[3];
517 double BackgroundColor[4];
518 double OutputOrigin[3];
519 double OutputSpacing[3];
545 virtual int ConvertScalarInfo(
int& scalarType,
int& numComponents);
555 virtual void ConvertScalars(
void* inPtr,
void* outPtr,
int inputType,
int inputNumComponents,
556 int count,
int idX,
int idY,
int idZ,
int threadId);
559 int count,
int idX,
int idY,
int idZ,
int threadId)
561 this->ConvertScalars(
562 inPtr, outPtr, inputType, inputNumComponents, count, idX, idY, idZ, threadId);
565 void GetAutoCroppedOutputBounds(
vtkInformation* inInfo,
double bounds[6]);
vtkTypeBool AutoCropOutput
double * GetResliceAxesDirectionCosines()
Specify the direction cosines for the ResliceAxes (i.e.
interpolate data values from images
#define VTK_IMAGE_SLAB_MAX
#define VTK_RESLICE_NEAREST
vtkAlgorithmOutput * GetOutputPort()
represent and manipulate 4x4 transformation matrices
#define VTK_IMAGE_SLAB_MIN
vtkAbstractTransform * GetOptimizedTransform()
#define VTK_RESLICE_CUBIC
vtkTypeUInt32 vtkMTimeType
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
void SetSlabModeToMax()
Set the slab mode, for generating thick slices.
vtkMatrix4x4 * IndexMatrix
#define VTK_IMAGE_SLAB_SUM
#define VTK_IMAGE_SLAB_MEAN
vtkTypeBool GenerateStencilOutput
void ReportReferences(vtkGarbageCollector *) override
void SetInterpolationModeToLinear()
void SetInterpolationModeToCubic()
void InterpolateOn()
Convenient methods for switching between nearest-neighbor and linear interpolation.
vtkAlgorithmOutput * GetStencilOutputPort()
Get the output stencil.
double * GetResliceAxesOrigin()
Specify the origin for the ResliceAxes (i.e.
void SetSlabModeToMean()
Set the slab mode, for generating thick slices.
#define VTK_RESLICE_LINEAR
Detect and break reference loops.
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Subclasses can reimplement this method to translate the update extent requests from each output port ...
Proxy object to connect input/output ports.
void SetSlabModeToSum()
Set the slab mode, for generating thick slices.
virtual void AllocateOutputData(vtkImageData *out, vtkInformation *outInfo, int *uExtent)
Allocate the output data.
Superclass for mapping scalar values to colors.
Generic filter that has one input.
a simple class to control print indentation
efficient description of an image stencil
void ConvertScalarsBase(void *inPtr, void *outPtr, int inputType, int inputNumComponents, int count, int idX, int idY, int idZ, int threadId)
vtkAbstractTransform * OptimizedTransform
topologically and geometrically regular array of data
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Subclasses can reimplement this method to collect information from their inputs and set information f...
virtual vtkMTimeType GetMTime()
Return this object's modified time.
vtkTypeBool SlabTrapezoidIntegration
virtual void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int extent[6], int threadId)
If the subclass does not define an Execute method, then the task will be broken up,...
double GetBackgroundLevel()
Set background grey level (for single-component images).
virtual void SetOutputExtent(const int a[6])
Set the extent for the output data.
vtkImageData * InformationInput
#define VTK_SIZEHINT(...)
Reslices a volume along a new set of axes.
void SetResliceAxesDirectionCosines(const double x[3], const double y[3], const double z[3])
Specify the direction cosines for the ResliceAxes (i.e.
vtkTypeBool TransformInputSampling
void SetBackgroundLevel(double v)
Set background grey level (for single-component images).
void SetInterpolate(int t)
Convenient methods for switching between nearest-neighbor and linear interpolation.
vtkMatrix4x4 * ResliceAxes
void InterpolateOff()
Convenient methods for switching between nearest-neighbor and linear interpolation.
void GetResliceAxesDirectionCosines(double xyz[9])
Specify the direction cosines for the ResliceAxes (i.e.
void SetResliceAxesDirectionCosines(const double xyz[9])
Specify the direction cosines for the ResliceAxes (i.e.
virtual void SetOutputSpacing(const double a[3])
Set the voxel spacing for the output data.
int FillInputPortInformation(int port, vtkInformation *info) override
These method should be reimplemented by subclasses that have more than a single input or single outpu...
int FillOutputPortInformation(int port, vtkInformation *info) override
These method should be reimplemented by subclasses that have more than a single input or single outpu...
static vtkAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int GetInterpolate()
Convenient methods for switching between nearest-neighbor and linear interpolation.
int HasConvertScalars
This should be set to 1 by derived classes that override the ConvertScalars method.
general representation of visualization data
void SetInterpolationModeToNearestNeighbor()
vtkAbstractImageInterpolator * Interpolator
virtual void SetOutputOrigin(const double a[3])
Set the origin for the output data.
vtkAbstractTransform * ResliceTransform
void SetSlabModeToMin()
Set the slab mode, for generating thick slices.
double SlabSliceSpacingFraction
void SetResliceAxesOrigin(const double xyz[3])
Specify the origin for the ResliceAxes (i.e.