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;
42 using Superclass = StoppingCriterionBase;
43 using Pointer = SmartPointer<Self>;
44 using ConstPointer = SmartPointer<const 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 itkTypeMacro(FastMarchingStoppingCriterionBase, StoppingCriterionBase);
68 SetCurrentNodePair(
const NodePairType & iNodePair)
70 this->SetCurrentNode(iNodePair.GetNode());
71 this->SetCurrentValue(iNodePair.GetValue());
74 itkSetObjectMacro(Domain, OutputDomainType);
75 itkGetModifiableObjectMacro(Domain, OutputDomainType);
79 FastMarchingStoppingCriterionBase()
89 ~FastMarchingStoppingCriterionBase()
override =
default;
91 OutputDomainPointer m_Domain;
93 OutputPixelType m_PreviousValue;
94 OutputPixelType m_CurrentValue;
103 SetCurrentNode(
const NodeType & iNode) = 0;