52 #ifndef vtkImageReslice_h
53 #define vtkImageReslice_h
56 #include "vtkImagingCoreModule.h"
60 #define VTK_RESLICE_NEAREST VTK_NEAREST_INTERPOLATION
61 #define VTK_RESLICE_LINEAR VTK_LINEAR_INTERPOLATION
62 #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; };
134 void SetResliceAxesOrigin(
double x,
double y,
double z);
136 this->SetResliceAxesOrigin(xyz[0], xyz[1], xyz[2]); };
137 void GetResliceAxesOrigin(
double xyz[3]);
139 this->GetResliceAxesOrigin(this->ResliceAxesOrigin);
140 return this->ResliceAxesOrigin; };
180 vtkBooleanMacro(TransformInputSampling,
vtkTypeBool);
236 vtkSetMacro(BorderThickness,
double);
237 vtkGetMacro(BorderThickness,
double);
243 vtkSetClampMacro(InterpolationMode,
int,
245 vtkGetMacro(InterpolationMode,
int);
252 virtual const char *GetInterpolationModeAsString();
272 vtkGetMacro(SlabMode,
int);
281 virtual const char *GetSlabModeAsString();
288 vtkSetMacro(SlabNumberOfSlices,
int);
289 vtkGetMacro(SlabNumberOfSlices,
int);
298 vtkSetMacro(SlabTrapezoidIntegration,
vtkTypeBool);
299 vtkBooleanMacro(SlabTrapezoidIntegration,
vtkTypeBool);
300 vtkGetMacro(SlabTrapezoidIntegration,
vtkTypeBool);
313 vtkSetMacro(SlabSliceSpacingFraction,
double);
314 vtkGetMacro(SlabSliceSpacingFraction,
double);
335 vtkSetMacro(ScalarShift,
double);
336 vtkGetMacro(ScalarShift,
double);
347 vtkSetMacro(ScalarScale,
double);
348 vtkGetMacro(ScalarScale,
double)
362 vtkSetMacro(OutputScalarType,
int);
363 vtkGetMacro(OutputScalarType,
int);
370 vtkSetVector4Macro(BackgroundColor,
double);
371 vtkGetVector4Macro(BackgroundColor,
double);
387 virtual void SetOutputSpacing(
double x,
double y,
double z);
389 this->SetOutputSpacing(a[0], a[1], a[2]); };
390 vtkGetVector3Macro(OutputSpacing,
double);
391 void SetOutputSpacingToDefault();
399 virtual void SetOutputOrigin(
double x,
double y,
double z);
401 this->SetOutputOrigin(a[0], a[1], a[2]); };
402 vtkGetVector3Macro(OutputOrigin,
double);
403 void SetOutputOriginToDefault();
411 virtual void SetOutputExtent(
int a,
int b,
int c,
int d,
int e,
int f);
413 this->SetOutputExtent(a[0], a[1], a[2], a[3], a[4], a[5]); };
414 vtkGetVector6Macro(OutputExtent,
int);
415 void SetOutputExtentToDefault();
429 vtkSetMacro(OutputDimensionality,
int);
430 vtkGetMacro(OutputDimensionality,
int);
454 if (t && !this->GetInterpolate()) {
455 this->SetInterpolationModeToLinear(); }
456 else if (!t && this->GetInterpolate()) {
457 this->SetInterpolationModeToNearestNeighbor(); } };
459 this->SetInterpolate(1); };
461 this->SetInterpolate(0); };
483 vtkBooleanMacro(GenerateStencilOutput,
vtkTypeBool);
501 double ResliceAxesDirectionCosines[9];
502 double ResliceAxesOrigin[3];
518 double BackgroundColor[4];
519 double OutputOrigin[3];
520 double OutputSpacing[3];
546 virtual int ConvertScalarInfo(
int &scalarType,
int &numComponents);
556 virtual void ConvertScalars(
void *inPtr,
void *outPtr,
557 int inputType,
int inputNumComponents,
558 int count,
int idX,
int idY,
int idZ,
562 int inputType,
int inputNumComponents,
563 int count,
int idX,
int idY,
int idZ,
int threadId) {
564 this->ConvertScalars(inPtr, outPtr, inputType, inputNumComponents,
565 count, idX, idY, idZ, threadId); }
567 void GetAutoCroppedOutputBounds(
vtkInformation *inInfo,
double bounds[6]);
587 return this->OptimizedTransform; };