19 #ifndef itkFastMarchingStoppingCriterionBase_h
20 #define itkFastMarchingStoppingCriterionBase_h
35 template <
typename TInput,
typename TOutput>
36 class FastMarchingStoppingCriterionBase :
public StoppingCriterionBase
39 ITK_DISALLOW_COPY_AND_MOVE(FastMarchingStoppingCriterionBase);
41 using Self = FastMarchingStoppingCriterionBase;
43 using Pointer = SmartPointer<Self>;
45 using Traits = FastMarchingTraits<TInput, TOutput>;
47 using NodeType =
typename Traits::NodeType;
48 using OutputPixelType =
typename Traits::OutputPixelType;
49 using NodePairType =
typename Traits::NodePairType;
50 using OutputDomainType =
typename Traits::OutputDomainType;
51 using OutputDomainPointer =
typename Traits::OutputDomainPointer;
54 itkOverrideGetNameOfClassMacro(FastMarchingStoppingCriterionBase);
60 m_CurrentValue = OutputPixelType{};
61 m_PreviousValue = OutputPixelType{};
67 SetCurrentNodePair(
const NodePairType & iNodePair)
69 this->SetCurrentNode(iNodePair.GetNode());
70 this->SetCurrentValue(iNodePair.GetValue());
73 itkSetObjectMacro(Domain, OutputDomainType);
74 itkGetModifiableObjectMacro(Domain, OutputDomainType);
78 FastMarchingStoppingCriterionBase()
82 m_CurrentValue = OutputPixelType{};
83 m_PreviousValue = OutputPixelType{};
88 ~FastMarchingStoppingCriterionBase()
override =
default;
90 OutputDomainPointer m_Domain{};
92 OutputPixelType m_PreviousValue{};
93 OutputPixelType m_CurrentValue{};
102 SetCurrentNode(
const NodeType & iNode) = 0;