19 #ifndef itkFastMarchingBase_h
20 #define itkFastMarchingBase_h
101 template<
typename TInput,
typename TOutput >
131 typedef typename Traits::NodePairContainerConstIterator
197 itkGetMacro( SpeedConstant,
double );
198 itkSetMacro( SpeedConstant,
double );
201 itkGetMacro( NormalizationFactor,
double );
202 itkSetMacro( NormalizationFactor,
double );
211 itkSetMacro(CollectPoints,
bool);
214 itkGetConstReferenceMacro(CollectPoints,
bool);
215 itkBooleanMacro(CollectPoints);
247 typedef std::priority_queue<
272 virtual unsigned char
316 void operator = ( const Self& );
320 #include "itkFastMarchingBase.hxx"
void GenerateData() override
std::vector< NodePairType > HeapContainerType
SuperclassType Superclass
NodePairContainerPointer m_ProcessedPoints
virtual void UpdateNeighbors(OutputDomainType *oDomain, const NodeType &iNode)=0
Update neighbors to a given node.
Traits::SuperclassType SuperclassType
double m_NormalizationFactor
Traits::NodePairContainerConstIterator NodePairContainerConstIterator
NodePairContainerPointer m_AlivePoints
OutputPixelType m_LargeValue
virtual bool CheckTopology(OutputDomainType *oDomain, const NodeType &iNode)=0
Check if the current node violate topological criterion.
TopologyCheckType m_TopologyCheck
OutputPixelType m_TopologyValue
SmartPointer< Self > Pointer
Traits::NodePairContainerPointer NodePairContainerPointer
virtual void InitializeOutput(OutputDomainType *oDomain)=0
SizeValueType IdentifierType
FastMarchingStoppingCriterionBase< TInput, TOutput > StoppingCriterionType
Abstract class to solve an Eikonal based-equation using Fast Marching Method.
virtual IdentifierType GetTotalNumberOfNodes() const =0
Get the total number of nodes in the domain.
Traits::OutputDomainPointer OutputDomainPointer
void PrintSelf(std::ostream &os, Indent indent) const override
PrintSelf method.
FastMarchingBase()
Constructor.
std::greater< NodePairType > NodeComparerType
Traits::InputDomainType InputDomainType
StoppingCriterionPointer m_StoppingCriterion
Traits::InputPixelType InputPixelType
Traits::NodePairContainerType NodePairContainerType
Traits::NodePairType NodePairType
NodePairContainerPointer m_TrialPoints
Traits::OutputPixelType OutputPixelType
NodePairContainerPointer m_ForbiddenPoints
virtual ~FastMarchingBase()
Destructor.
FastMarchingTraits< TInput, TOutput > Traits
Traits::NodeType NodeType
SmartPointer< const Self > ConstPointer
Control indentation during Print() invocation.
Abstract Stopping Criterion dedicated for Fast Marching Methods.
void Initialize(OutputDomainType *oDomain)
Base class traits to be used by the FastMarchingBase.
virtual void SetLabelValueForGivenNode(const NodeType &iNode, const LabelType &iLabel)=0
Set the Label Value for a given node.
virtual const OutputPixelType GetOutputValue(OutputDomainType *oDomain, const NodeType &iNode) const =0
Get the ouput value (front value) for a given node.
StoppingCriterionType::Pointer StoppingCriterionPointer
Traits::LabelType LabelType
std::priority_queue< NodeType, HeapContainerType, NodeComparerType > PriorityQueueType
Traits::OutputDomainType OutputDomainType
Traits::InputDomainPointer InputDomainPointer
virtual unsigned char GetLabelValueForGivenNode(const NodeType &iNode) const =0
Get the LabelType Value for a given node.
virtual void UpdateValue(OutputDomainType *oDomain, const NodeType &iNode)=0
Update value for a given node.
virtual void SetOutputValue(OutputDomainType *oDomain, const NodeType &iNode, const OutputPixelType &iValue)=0
Set the output value (front value) for a given node.
OutputPixelType m_TargetReachedValue