57 #ifndef vtkImageReslice_h
58 #define vtkImageReslice_h
65 #define VTK_RESLICE_NEAREST VTK_NEAREST_INTERPOLATION
66 #define VTK_RESLICE_LINEAR VTK_LINEAR_INTERPOLATION
67 #define VTK_RESLICE_CUBIC VTK_CUBIC_INTERPOLATION
106 void SetResliceAxesDirectionCosines(
double x0,
double x1,
double x2,
107 double y0,
double y1,
double y2,
108 double z0,
double z1,
double z2);
112 this->SetResliceAxesDirectionCosines(x[0], x[1], x[2],
114 z[0], z[1], z[2]); };
116 this->SetResliceAxesDirectionCosines(xyz[0], xyz[1], xyz[2],
117 xyz[3], xyz[4], xyz[5],
118 xyz[6], xyz[7], xyz[8]); };
119 void GetResliceAxesDirectionCosines(
double x[3],
double y[3],
double z[3]);
121 this->GetResliceAxesDirectionCosines(&xyz[0], &xyz[3], &xyz[6]); };
123 this->GetResliceAxesDirectionCosines(this->ResliceAxesDirectionCosines);
124 return this->ResliceAxesDirectionCosines; };
131 void SetResliceAxesOrigin(
double x,
double y,
double z);
133 this->SetResliceAxesOrigin(xyz[0], xyz[1], xyz[2]); };
134 void GetResliceAxesOrigin(
double xyz[3]);
136 this->GetResliceAxesOrigin(this->ResliceAxesOrigin);
137 return this->ResliceAxesOrigin; };
168 vtkSetMacro(TransformInputSampling,
int);
169 vtkBooleanMacro(TransformInputSampling,
int);
170 vtkGetMacro(TransformInputSampling,
int);
177 vtkSetMacro(AutoCropOutput,
int);
178 vtkBooleanMacro(AutoCropOutput,
int);
179 vtkGetMacro(AutoCropOutput,
int);
184 vtkSetMacro(Wrap,
int);
185 vtkGetMacro(Wrap,
int);
186 vtkBooleanMacro(Wrap,
int);
192 vtkSetMacro(Mirror,
int);
193 vtkGetMacro(Mirror,
int);
194 vtkBooleanMacro(Mirror,
int);
205 vtkSetMacro(Border,
int);
206 vtkGetMacro(Border,
int);
207 vtkBooleanMacro(Border,
int);
212 vtkSetClampMacro(InterpolationMode,
int,
214 vtkGetMacro(InterpolationMode,
int);
221 virtual const char *GetInterpolationModeAsString();
237 vtkGetMacro(SlabMode,
int);
246 virtual const char *GetSlabModeAsString();
251 vtkSetMacro(SlabNumberOfSlices,
int);
252 vtkGetMacro(SlabNumberOfSlices,
int);
259 vtkSetMacro(SlabTrapezoidIntegration,
int);
260 vtkBooleanMacro(SlabTrapezoidIntegration,
int);
261 vtkGetMacro(SlabTrapezoidIntegration,
int);
272 vtkSetMacro(SlabSliceSpacingFraction,
double);
273 vtkGetMacro(SlabSliceSpacingFraction,
double);
279 vtkSetMacro(Optimization,
int);
280 vtkGetMacro(Optimization,
int);
281 vtkBooleanMacro(Optimization,
int);
290 vtkSetMacro(ScalarShift,
double);
291 vtkGetMacro(ScalarShift,
double);
300 vtkSetMacro(ScalarScale,
double);
301 vtkGetMacro(ScalarScale,
double)
313 vtkSetMacro(OutputScalarType,
int);
314 vtkGetMacro(OutputScalarType,
int);
319 vtkSetVector4Macro(BackgroundColor,
double);
320 vtkGetVector4Macro(BackgroundColor,
double);
325 void SetBackgroundLevel(
double v) { this->SetBackgroundColor(v,v,v,v); };
332 virtual void SetOutputSpacing(
double x,
double y,
double z);
334 this->SetOutputSpacing(a[0], a[1], a[2]); };
335 vtkGetVector3Macro(OutputSpacing,
double);
336 void SetOutputSpacingToDefault();
342 virtual void SetOutputOrigin(
double x,
double y,
double z);
344 this->SetOutputOrigin(a[0], a[1], a[2]); };
345 vtkGetVector3Macro(OutputOrigin,
double);
346 void SetOutputOriginToDefault();
352 virtual void SetOutputExtent(
int a,
int b,
int c,
int d,
int e,
int f);
354 this->SetOutputExtent(a[0], a[1], a[2], a[3], a[4], a[5]); };
355 vtkGetVector6Macro(OutputExtent,
int);
356 void SetOutputExtentToDefault();
366 vtkSetMacro(OutputDimensionality,
int);
367 vtkGetMacro(OutputDimensionality,
int);
384 if (t && !this->GetInterpolate()) {
385 this->SetInterpolationModeToLinear(); }
386 else if (!t && this->GetInterpolate()) {
387 this->SetInterpolationModeToNearestNeighbor(); } };
389 this->SetInterpolate(1); };
391 this->SetInterpolate(0); };
407 vtkSetMacro(GenerateStencilOutput,
int);
408 vtkGetMacro(GenerateStencilOutput,
int);
409 vtkBooleanMacro(GenerateStencilOutput,
int);
425 double ResliceAxesDirectionCosines[9];
426 double ResliceAxesOrigin[3];
441 double BackgroundColor[4];
442 double OutputOrigin[3];
443 double OutputSpacing[3];
465 virtual int ConvertScalarInfo(
int &scalarType,
int &numComponents);
474 virtual void ConvertScalars(
void *inPtr,
void *outPtr,
475 int inputType,
int inputNumComponents,
476 int count,
int idX,
int idY,
int idZ,
481 int inputType,
int inputNumComponents,
482 int count,
int idX,
int idY,
int idZ,
int threadId) {
483 this->ConvertScalars(inPtr, outPtr, inputType, inputNumComponents,
484 count, idX, idY, idZ, threadId); }
486 void GetAutoCroppedOutputBounds(
vtkInformation *inInfo,
double bounds[6]);
506 return this->OptimizedTransform; };
double * GetResliceAxesDirectionCosines()
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
vtkMatrix4x4 * IndexMatrix
#define VTK_IMAGE_SLAB_SUM
#define VTK_IMAGE_SLAB_MEAN
int GenerateStencilOutput
void SetInterpolationModeToLinear()
void SetInterpolationModeToCubic()
vtkAlgorithmOutput * GetStencilOutputPort()
double * GetResliceAxesOrigin()
#define VTK_RESLICE_LINEAR
int TransformInputSampling
Detect and break reference loops.
void PrintSelf(ostream &os, vtkIndent indent)
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Proxy object to connect input/output ports.
virtual void AllocateOutputData(vtkImageData *out, vtkInformation *outInfo, int *uExtent)
Superclass for mapping scalar values to colors.
virtual void ReportReferences(vtkGarbageCollector *)
Generic filter that has one input..
virtual unsigned long GetMTime()
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)
virtual int FillOutputPortInformation(int port, vtkInformation *info)
#define VTKIMAGINGCORE_EXPORT
virtual int FillInputPortInformation(int port, vtkInformation *info)
virtual void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int extent[6], int threadId)
double GetBackgroundLevel()
virtual void SetOutputExtent(const int a[6])
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])
int SlabTrapezoidIntegration
void SetInterpolate(int t)
vtkMatrix4x4 * ResliceAxes
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
void GetResliceAxesDirectionCosines(double xyz[9])
void SetResliceAxesDirectionCosines(const double xyz[9])
virtual void SetOutputSpacing(const double a[3])
static vtkAlgorithm * New()
general representation of visualization data
void SetInterpolationModeToNearestNeighbor()
vtkAbstractImageInterpolator * Interpolator
virtual void SetOutputOrigin(const double a[3])
vtkAbstractTransform * ResliceTransform
double SlabSliceSpacingFraction
void SetResliceAxesOrigin(const double xyz[3])