58 #ifndef vtkImageReslice_h
59 #define vtkImageReslice_h
62 #include "vtkImagingCoreModule.h"
66 #define VTK_RESLICE_NEAREST VTK_NEAREST_INTERPOLATION
67 #define VTK_RESLICE_LINEAR VTK_LINEAR_INTERPOLATION
68 #define VTK_RESLICE_CUBIC VTK_CUBIC_INTERPOLATION
112 void SetResliceAxesDirectionCosines(
double x0,
double x1,
double x2,
113 double y0,
double y1,
double y2,
114 double z0,
double z1,
double z2);
118 this->SetResliceAxesDirectionCosines(x[0], x[1], x[2],
120 z[0], z[1], z[2]); };
122 this->SetResliceAxesDirectionCosines(xyz[0], xyz[1], xyz[2],
123 xyz[3], xyz[4], xyz[5],
124 xyz[6], xyz[7], xyz[8]); };
125 void GetResliceAxesDirectionCosines(
double x[3],
double y[3],
double z[3]);
127 this->GetResliceAxesDirectionCosines(&xyz[0], &xyz[3], &xyz[6]); };
129 this->GetResliceAxesDirectionCosines(this->ResliceAxesDirectionCosines);
130 return this->ResliceAxesDirectionCosines; };
140 void SetResliceAxesOrigin(
double x,
double y,
double z);
142 this->SetResliceAxesOrigin(xyz[0], xyz[1], xyz[2]); };
143 void GetResliceAxesOrigin(
double xyz[3]);
145 this->GetResliceAxesOrigin(this->ResliceAxesOrigin);
146 return this->ResliceAxesOrigin; };
187 vtkGetMacro(TransformInputSampling,
int);
198 vtkGetMacro(AutoCropOutput,
int);
206 vtkGetMacro(Wrap,
int);
216 vtkGetMacro(Mirror,
int);
232 vtkGetMacro(Border,
int);
240 vtkSetClampMacro(InterpolationMode,
int,
242 vtkGetMacro(InterpolationMode,
int);
249 virtual const char *GetInterpolationModeAsString();
269 vtkGetMacro(SlabMode,
int);
278 virtual const char *GetSlabModeAsString();
286 vtkGetMacro(SlabNumberOfSlices,
int);
297 vtkGetMacro(SlabTrapezoidIntegration,
int);
311 vtkGetMacro(SlabSliceSpacingFraction,
double);
320 vtkGetMacro(Optimization,
int);
333 vtkGetMacro(ScalarShift,
double);
345 vtkGetMacro(ScalarScale,
double)
360 vtkGetMacro(OutputScalarType,
int);
367 vtkSetVector4Macro(BackgroundColor,
double);
368 vtkGetVector4Macro(BackgroundColor,
double);
375 void SetBackgroundLevel(
double v) { this->SetBackgroundColor(v,v,v,v); };
384 virtual void SetOutputSpacing(
double x,
double y,
double z);
386 this->SetOutputSpacing(a[0], a[1], a[2]); };
387 vtkGetVector3Macro(OutputSpacing,
double);
388 void SetOutputSpacingToDefault();
396 virtual void SetOutputOrigin(
double x,
double y,
double z);
398 this->SetOutputOrigin(a[0], a[1], a[2]); };
399 vtkGetVector3Macro(OutputOrigin,
double);
400 void SetOutputOriginToDefault();
408 virtual void SetOutputExtent(
int a,
int b,
int c,
int d,
int e,
int f);
410 this->SetOutputExtent(a[0], a[1], a[2], a[3], a[4], a[5]); };
411 vtkGetVector6Macro(OutputExtent,
int);
412 void SetOutputExtentToDefault();
427 vtkGetMacro(OutputDimensionality,
int);
450 void SetInterpolate(
int t) {
451 if (t && !this->GetInterpolate()) {
452 this->SetInterpolationModeToLinear(); }
453 else if (!t && this->GetInterpolate()) {
454 this->SetInterpolationModeToNearestNeighbor(); } };
456 this->SetInterpolate(1); };
458 this->SetInterpolate(0); };
479 vtkGetMacro(GenerateStencilOutput,
int);
498 double ResliceAxesDirectionCosines[9];
499 double ResliceAxesOrigin[3];
514 double BackgroundColor[4];
515 double OutputOrigin[3];
516 double OutputSpacing[3];
542 virtual int ConvertScalarInfo(
int &scalarType,
int &numComponents);
552 virtual void ConvertScalars(
void *inPtr,
void *outPtr,
553 int inputType,
int inputNumComponents,
554 int count,
int idX,
int idY,
int idZ,
558 int inputType,
int inputNumComponents,
559 int count,
int idX,
int idY,
int idZ,
int threadId) {
560 this->ConvertScalars(inPtr, outPtr, inputType, inputNumComponents,
561 count, idX, idY, idZ, threadId); }
563 void GetAutoCroppedOutputBounds(
vtkInformation *inInfo,
double bounds[6]);
567 vtkInformationVector *) VTK_OVERRIDE;
568 virtual
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **,
569 vtkInformationVector *) VTK_OVERRIDE;
570 virtual
int RequestData(vtkInformation *, vtkInformationVector **,
571 vtkInformationVector *) VTK_OVERRIDE;
572 virtual
void ThreadedRequestData(vtkInformation *request,
573 vtkInformationVector **inputVector,
574 vtkInformationVector *outputVector,
576 vtkImageData **outData,
int ext[6],
int id) VTK_OVERRIDE;
577 virtual
int FillInputPortInformation(
int port, vtkInformation *
info) VTK_OVERRIDE;
578 virtual
int FillOutputPortInformation(
int port, vtkInformation *
info) VTK_OVERRIDE;
581 vtkInformation *outInfo);
583 return this->OptimizedTransform; };
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
#define VTK_RESLICE_CUBIC
void SetSlabModeToMax()
Set the slab mode, for generating thick slices.
vtkMatrix4x4 * IndexMatrix
#define VTK_IMAGE_SLAB_SUM
#define VTK_IMAGE_SLAB_MEAN
int GenerateStencilOutput
void SetInterpolationModeToLinear()
Set interpolation mode (default: nearest neighbor).
void SetInterpolationModeToCubic()
Set interpolation mode (default: nearest neighbor).
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
int TransformInputSampling
vtkTypeUInt64 vtkMTimeType
Detect and break reference loops.
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 vtkMTimeType GetMTime()
Return this object's modified time.
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
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.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
int SlabTrapezoidIntegration
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.
static vtkAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
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()
Set interpolation mode (default: nearest neighbor).
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.