19 #ifndef itkWhitakerSparseLevelSetImage_h
20 #define itkWhitakerSparseLevelSetImage_h
40 template <
typename TOutput,
unsigned int VDimension>
57 static constexpr
unsigned int Dimension = VDimension;
59 using typename Superclass::InputType;
60 using typename Superclass::OutputType;
61 using typename Superclass::OutputRealType;
62 using typename Superclass::GradientType;
63 using typename Superclass::HessianType;
64 using typename Superclass::LevelSetDataType;
66 using typename Superclass::LayerIdType;
67 using typename Superclass::LabelObjectType;
68 using typename Superclass::LabelObjectPointer;
69 using typename Superclass::LabelObjectLengthType;
70 using typename Superclass::LabelObjectLineType;
72 using typename Superclass::LabelMapType;
73 using typename Superclass::LabelMapPointer;
74 using typename Superclass::LabelMapConstPointer;
77 using typename Superclass::LayerType;
78 using typename Superclass::LayerIterator;
79 using typename Superclass::LayerConstIterator;
81 using typename Superclass::LayerMapType;
82 using typename Superclass::LayerMapIterator;
83 using typename Superclass::LayerMapConstIterator;
86 using Superclass::Evaluate;
88 Evaluate(
const InputType & inputIndex)
const override;
90 #ifdef ITK_USE_CONCEPT_CHECKING
96 #endif // ITK_USE_CONCEPT_CHECKING
103 static inline LayerIdType
108 static inline LayerIdType
113 static inline LayerIdType
118 static inline LayerIdType
123 static inline LayerIdType
128 static inline LayerIdType
135 template <
typename TLabel>
143 for (
LayerIdType status = this->MinusThreeLayer(); status < this->PlusOneLayer(); ++status)
147 for (
SizeValueType i = 0; i < labelObject->GetNumberOfLines(); ++i)
149 object->AddLine(labelObject->GetLine(i));
163 InitializeLayers()
override;
166 InitializeInternalLabelList()
override;
170 #ifndef ITK_MANUAL_INSTANTIATION
171 # include "itkWhitakerSparseLevelSetImage.hxx"
174 #endif // itkWhitakerSparseLevelSetImage_h