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; };