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
55 VTK_ABI_NAMESPACE_BEGIN
98 void SetResliceAxesDirectionCosines(
double x0,
double x1,
double x2,
double y0,
double y1,
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]);
109 void GetResliceAxesDirectionCosines(
double x[3],
double y[3],
double z[3]);
112 this->GetResliceAxesDirectionCosines(&xyz[0], &xyz[3], &xyz[6]);
116 this->GetResliceAxesDirectionCosines(this->ResliceAxesDirectionCosines);
117 return this->ResliceAxesDirectionCosines;
128 void SetResliceAxesOrigin(
double x,
double y,
double z);
131 this->SetResliceAxesOrigin(xyz[0], xyz[1], xyz[2]);
133 void GetResliceAxesOrigin(
double xyz[3]);
136 this->GetResliceAxesOrigin(this->ResliceAxesOrigin);
137 return this->ResliceAxesOrigin;
178 vtkBooleanMacro(TransformInputSampling,
vtkTypeBool);
233 vtkSetMacro(BorderThickness,
double);
235 vtkGetMacro(BorderThickness,
double);
242 vtkGetMacro(InterpolationMode,
int);
246 virtual const char* GetInterpolationModeAsString();
266 vtkGetMacro(SlabMode,
int);
271 virtual const char* GetSlabModeAsString();
278 vtkSetMacro(SlabNumberOfSlices,
int);
279 vtkGetMacro(SlabNumberOfSlices,
int);
288 vtkSetMacro(SlabTrapezoidIntegration,
vtkTypeBool);
289 vtkBooleanMacro(SlabTrapezoidIntegration,
vtkTypeBool);
290 vtkGetMacro(SlabTrapezoidIntegration,
vtkTypeBool);
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);
377 virtual void SetOutputSpacing(
double x,
double y,
double z);
379 vtkGetVector3Macro(OutputSpacing,
double);
380 void SetOutputSpacingToDefault();
393 virtual void SetOutputDirection(
double xx,
double xy,
double xz,
double yx,
double yy,
double yz,
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);
400 void SetOutputDirectionToDefault();
408 virtual void SetOutputOrigin(
double x,
double y,
double z);
410 vtkGetVector3Macro(OutputOrigin,
double);
411 void SetOutputOriginToDefault();
419 virtual void SetOutputExtent(
int a,
int b,
int c,
int d,
int e,
int f);
422 this->SetOutputExtent(a[0], a[1], a[2], a[3], a[4], a[5]);
424 vtkGetVector6Macro(OutputExtent,
int);
425 void SetOutputExtentToDefault();
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();
496 vtkBooleanMacro(GenerateStencilOutput,
vtkTypeBool);
513 double ResliceAxesDirectionCosines[9];
514 double ResliceAxesOrigin[3];
530 double BackgroundColor[4];
531 double OutputDirection[9];
532 double OutputOrigin[3];
533 double OutputSpacing[3];
560 virtual int ConvertScalarInfo(
int& scalarType,
int& numComponents);
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);
587 void GetAutoCroppedOutputBounds(
588 vtkInformation* inInfo,
const double outDirection[9],
double bounds[6]);
608 VTK_ABI_NAMESPACE_END
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
virtual void SetOutputDirection(const double a[9])
Set the direction for the output data.
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 HasConvertScalars
This should be set to 1 by derived classes that override the ConvertScalars method.
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, multiple threads will be spawned, and each thread will call this method.
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.
general representation of visualization data
void SetInterpolationModeToNearestNeighbor()
vtkAbstractImageInterpolator * Interpolator
virtual void SetOutputOrigin(const double a[3])
Set the origin for the output data.
bool PassDirectionToOutput
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.