19 #ifndef itkFastMarchingStoppingCriterionBase_h
20 #define itkFastMarchingStoppingCriterionBase_h
34 template<
typename TInput,
typename TOutput >
35 class FastMarchingStoppingCriterionBase :
public StoppingCriterionBase
38 ITK_DISALLOW_COPY_AND_ASSIGN(FastMarchingStoppingCriterionBase);
40 using Self = FastMarchingStoppingCriterionBase;
41 using Superclass = StoppingCriterionBase;
44 using Traits = FastMarchingTraits< TInput, TOutput >;
46 using NodeType =
typename Traits::NodeType;
47 using OutputPixelType =
typename Traits::OutputPixelType;
48 using NodePairType =
typename Traits::NodePairType;
49 using OutputDomainType =
typename Traits::OutputDomainType;
50 using OutputDomainPointer =
typename Traits::OutputDomainPointer;
53 itkTypeMacro(FastMarchingStoppingCriterionBase, StoppingCriterionBase);
65 void SetCurrentNodePair(
const NodePairType& iNodePair )
67 this->SetCurrentNode( iNodePair.GetNode() );
68 this->SetCurrentValue( iNodePair.GetValue() );
71 itkSetObjectMacro( Domain, OutputDomainType );
72 itkGetModifiableObjectMacro(Domain, OutputDomainType );
76 FastMarchingStoppingCriterionBase() : Superclass(), m_Domain( nullptr )
84 ~FastMarchingStoppingCriterionBase()
override =
default;
86 OutputDomainPointer m_Domain;
88 OutputPixelType m_PreviousValue;
89 OutputPixelType m_CurrentValue;
93 virtual void Reset() = 0;
96 virtual void SetCurrentNode(
const NodeType& iNode ) = 0;
Define numeric traits for std::vector.