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; };
186 vtkBooleanMacro(TransformInputSampling,
vtkTypeBool);
242 vtkSetMacro(BorderThickness,
double);
243 vtkGetMacro(BorderThickness,
double);
249 vtkSetClampMacro(InterpolationMode,
int,
251 vtkGetMacro(InterpolationMode,
int);
258 virtual const char *GetInterpolationModeAsString();
278 vtkGetMacro(SlabMode,
int);
287 virtual const char *GetSlabModeAsString();
294 vtkSetMacro(SlabNumberOfSlices,
int);
295 vtkGetMacro(SlabNumberOfSlices,
int);
304 vtkSetMacro(SlabTrapezoidIntegration,
vtkTypeBool);
305 vtkBooleanMacro(SlabTrapezoidIntegration,
vtkTypeBool);
306 vtkGetMacro(SlabTrapezoidIntegration,
vtkTypeBool);
319 vtkSetMacro(SlabSliceSpacingFraction,
double);
320 vtkGetMacro(SlabSliceSpacingFraction,
double);
341 vtkSetMacro(ScalarShift,
double);
342 vtkGetMacro(ScalarShift,
double);
353 vtkSetMacro(ScalarScale,
double);
354 vtkGetMacro(ScalarScale,
double)
368 vtkSetMacro(OutputScalarType,
int);
369 vtkGetMacro(OutputScalarType,
int);
376 vtkSetVector4Macro(BackgroundColor,
double);
377 vtkGetVector4Macro(BackgroundColor,
double);
393 virtual void SetOutputSpacing(
double x,
double y,
double z);
395 this->SetOutputSpacing(a[0], a[1], a[2]); };
396 vtkGetVector3Macro(OutputSpacing,
double);
397 void SetOutputSpacingToDefault();
405 virtual void SetOutputOrigin(
double x,
double y,
double z);
407 this->SetOutputOrigin(a[0], a[1], a[2]); };
408 vtkGetVector3Macro(OutputOrigin,
double);
409 void SetOutputOriginToDefault();
417 virtual void SetOutputExtent(
int a,
int b,
int c,
int d,
int e,
int f);
419 this->SetOutputExtent(a[0], a[1], a[2], a[3], a[4], a[5]); };
420 vtkGetVector6Macro(OutputExtent,
int);
421 void SetOutputExtentToDefault();
435 vtkSetMacro(OutputDimensionality,
int);
436 vtkGetMacro(OutputDimensionality,
int);
460 if (t && !this->GetInterpolate()) {
461 this->SetInterpolationModeToLinear(); }
462 else if (!t && this->GetInterpolate()) {
463 this->SetInterpolationModeToNearestNeighbor(); } };
465 this->SetInterpolate(1); };
467 this->SetInterpolate(0); };
489 vtkBooleanMacro(GenerateStencilOutput,
vtkTypeBool);
507 double ResliceAxesDirectionCosines[9];
508 double ResliceAxesOrigin[3];
524 double BackgroundColor[4];
525 double OutputOrigin[3];
526 double OutputSpacing[3];
552 virtual int ConvertScalarInfo(
int &scalarType,
int &numComponents);
562 virtual void ConvertScalars(
void *inPtr,
void *outPtr,
563 int inputType,
int inputNumComponents,
564 int count,
int idX,
int idY,
int idZ,
568 int inputType,
int inputNumComponents,
569 int count,
int idX,
int idY,
int idZ,
int threadId) {
570 this->ConvertScalars(inPtr, outPtr, inputType, inputNumComponents,
571 count, idX, idY, idZ, threadId); }
573 void GetAutoCroppedOutputBounds(
vtkInformation *inInfo,
double bounds[6]);
593 return this->OptimizedTransform; };
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, 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.
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.