27 #ifndef __vtkSlicerSegmentationGeometryLogic_h 28 #define __vtkSlicerSegmentationGeometryLogic_h 31 #include "vtkSlicerSegmentationsModuleLogicExport.h" 45 void PrintSelf(ostream& os, vtkIndent indent)
override;
49 std::string CalculateOutputGeometry();
52 bool IsSourceSegmentationWithBinaryLabelmapMaster();
55 bool InputSegmentationCanBeResampled();
59 void ComputeSourceAxisIndexForInputAxis();
63 bool ResampleLabelmapsInSegmentationNode();
69 void ResetGeometryImageData();
82 vtkGetMacro(IsotropicSpacing,
bool);
86 vtkSetMacro(IsotropicSpacing,
bool);
87 vtkBooleanMacro(IsotropicSpacing,
bool);
91 vtkGetMacro(OversamplingFactor,
double);
95 vtkSetMacro(OversamplingFactor,
double);
99 vtkGetVectorMacro(UserSpacing,
double, 3);
102 vtkSetVectorMacro(UserSpacing,
double, 3);
106 vtkGetVectorMacro(InputAxisIndexForSourceAxis,
int, 3);
109 vtkGetVectorMacro(SourceAxisIndexForInputAxis,
int, 3);
112 vtkGetMacro(PadOutputGeometry,
bool);
115 vtkSetMacro(PadOutputGeometry,
bool);
116 vtkBooleanMacro(PadOutputGeometry,
bool);
128 std::string CalculateOutputGeometryFromImage();
134 std::string CalculateOutputGeometryFromBounds(
bool keepCurrentAxisDirections);
136 void CalculatePaddedOutputGeometry();
140 bool IsotropicSpacing{
false };
141 double OversamplingFactor{ 1.0 };
142 bool PadOutputGeometry{
true };
143 double UserSpacing[3]{ 1.0, 1.0, 1.0 };
145 int InputAxisIndexForSourceAxis[3]{ 0, 1, 2 };
146 int SourceAxisIndexForInputAxis[3]{ 0, 1, 2 };
Image data containing orientation information.
MRML node containing segmentationsSegmentation node stores a set of segments (also known as contours ...