23 #ifndef vtkPolyDataToFractionalLabelmapFilter_h 24 #define vtkPolyDataToFractionalLabelmapFilter_h 28 #include <vtkPolyDataToImageStencil.h> 29 #include <vtkSmartPointer.h> 30 #include <vtkCellArray.h> 31 #include <vtkSetGet.h> 32 #include <vtkMatrix4x4.h> 33 #include <vtkCellLocator.h> 41 #include "vtkSegmentationCoreConfigure.h" 44 #define VTK_FRACTIONAL_DATA_TYPE VTK_CHAR 46 #if VTK_FRACTIONAL_DATA_TYPE == VTK_UNSIGNED_CHAR 47 #define FRACTIONAL_DATA_TYPE VTK_TYPE_NAME_UNSIGNED_CHAR 48 #define FRACTIONAL_MIN 0 49 #define FRACTIONAL_MAX 216 50 #define FRACTIONAL_STEP_SIZE 1 51 #elif VTK_FRACTIONAL_DATA_TYPE == VTK_CHAR 52 #define FRACTIONAL_DATA_TYPE VTK_TYPE_NAME_CHAR 53 #define FRACTIONAL_MIN -108 54 #define FRACTIONAL_MAX 108 55 #define FRACTIONAL_STEP_SIZE 1 56 #elif VTK_FRACTIONAL_DATA_TYPE == VTK_FLOAT 57 #define FRACTIONAL_DATA_TYPE VTK_TYPE_NAME_FLOAT 58 #define FRACTIONAL_MIN 0.0 59 #define FRACTIONAL_MAX 1.0 60 #define FRACTIONAL_STEP_SIZE (1.0/216.0) 64 public vtkPolyDataToImageStencil
67 std::map<double, vtkSmartPointer<vtkCellArray> > LinesCache;
68 std::map<double, vtkSmartPointer<vtkPolyData> > SliceCache;
69 std::map<double, vtkIdType*> PointIdsCache;
70 std::map<double, vtkIdType> NptsCache;
71 std::map<double, vtkSmartPointer<vtkIdTypeArray> > PointNeighborCountsCache;
73 vtkCellLocator* CellLocator;
85 void SetOutputImageToWorldMatrix(vtkMatrix4x4* imageToWorldMatrix);
86 void GetOutputImageToWorldMatrix(vtkMatrix4x4* imageToWorldMatrix);
88 using Superclass::GetOutputOrigin;
89 double* GetOutputOrigin()
override;
90 void GetOutputOrigin(
double origin[3])
override;
92 #if VTK_MAJOR_VERSION >= 9 || (VTK_MAJOR_VERSION >= 8 && VTK_MINOR_VERSION >= 90) 93 using Superclass::SetOutputOrigin;
94 void SetOutputOrigin(
const double origin[3])
override;
96 void SetOutputOrigin(
double origin[3]);
98 void SetOutputOrigin(
double x,
double y,
double z)
override;
100 using Superclass::GetOutputSpacing;
101 double* GetOutputSpacing()
override;
102 void GetOutputSpacing(
double spacing[3])
override;
104 #if VTK_MAJOR_VERSION >= 9 || (VTK_MAJOR_VERSION >= 8 && VTK_MINOR_VERSION >= 90) 105 using Superclass::SetOutputSpacing;
106 void SetOutputSpacing(
const double spacing[3])
override;
108 void SetOutputSpacing(
double spacing[3]);
110 void SetOutputSpacing(
double x,
double y,
double z)
override;
116 vtkSetMacro(NumberOfOffsets,
int);
117 vtkGetMacro(NumberOfOffsets,
int);
123 int RequestData(vtkInformation *, vtkInformationVector **,
124 vtkInformationVector *)
override;
126 int FillOutputPortInformation(
int, vtkInformation*)
override;
133 void FillImageStencilData(vtkImageStencilData *output, vtkPolyData* closedSurface,
int extent[6]);
138 void AddBinaryLabelMapToFractionalLabelMap(vtkImageData* binaryLabelMap, vtkImageData* fractionalLabelMap);
145 void PolyDataCutter(vtkPolyData *input, vtkPolyData *output,
Image data containing orientation information.