19#ifndef itkFastMarchingBase_h
20#define itkFastMarchingBase_h
25#include "ITKFastMarchingExport.h"
52extern ITKFastMarching_EXPORT std::ostream &
120template <
typename TInput,
typename TOutput>
130 using Superclass =
typename FastMarchingTraits<TInput, TOutput>::SuperclassType;
175#if !defined(ITK_LEGACY_REMOVE)
214 itkGetMacro(SpeedConstant,
double);
215 itkSetMacro(SpeedConstant,
double);
218 itkGetMacro(NormalizationFactor,
double);
219 itkSetMacro(NormalizationFactor,
double);
228 itkSetMacro(CollectPoints,
bool);
231 itkGetConstReferenceMacro(CollectPoints,
bool);
232 itkBooleanMacro(CollectPoints);
263 using PriorityQueueType = std::priority_queue<NodePairType, HeapContainerType, NodeComparerType>;
284 virtual unsigned char
332#ifndef ITK_MANUAL_INSTANTIATION
333# include "itkFastMarchingBase.hxx"
OutputPixelType m_TargetReachedValue
FastMarchingTraits< TInput, TOutput > Traits
void Initialize(OutputDomainType *oDomain)
NodePairContainerPointer m_ProcessedPoints
virtual void SetLabelValueForGivenNode(const NodeType &iNode, const LabelType &iLabel)=0
Set the Label Value for a given node.
typename StoppingCriterionType::Pointer StoppingCriterionPointer
virtual const OutputPixelType GetOutputValue(OutputDomainType *oDomain, const NodeType &iNode) const =0
Get the output value (front value) for a given node.
virtual unsigned char GetLabelValueForGivenNode(const NodeType &iNode) const =0
Get the LabelEnum Value for a given node.
TopologyCheckEnum m_TopologyCheck
typename Traits::SuperclassType SuperclassType
virtual IdentifierType GetTotalNumberOfNodes() const =0
Get the total number of nodes in the domain.
typename Traits::InputPixelType InputPixelType
typename Traits::OutputDomainPointer OutputDomainPointer
NodePairContainerPointer m_ForbiddenPoints
typename FastMarchingTraits< TInput, TOutput >::SuperclassType Superclass
typename Traits::NodePairContainerType NodePairContainerType
double m_NormalizationFactor
typename Traits::InputDomainType InputDomainType
void GenerateData() override
std::vector< NodePairType > HeapContainerType
OutputPixelType m_LargeValue
void PrintSelf(std::ostream &os, Indent indent) const override
PrintSelf method.
virtual bool CheckTopology(OutputDomainType *oDomain, const NodeType &iNode)=0
Check if the current node violate topological criterion.
typename Traits::OutputDomainType OutputDomainType
virtual void UpdateValue(OutputDomainType *oDomain, const NodeType &iNode)=0
Update value for a given node.
typename Traits::NodePairContainerPointer NodePairContainerPointer
typename Traits::NodeType NodeType
SmartPointer< const Self > ConstPointer
virtual void InitializeOutput(OutputDomainType *oDomain)=0
typename Traits::InputDomainPointer InputDomainPointer
OutputPixelType m_TopologyValue
typename Traits::NodePairType NodePairType
~FastMarchingBase() override=default
Destructor.
FastMarchingTraitsEnums::TopologyCheck TopologyCheckEnum
virtual void SetOutputValue(OutputDomainType *oDomain, const NodeType &iNode, const OutputPixelType &iValue)=0
Set the output value (front value) for a given node.
std::priority_queue< NodePairType, HeapContainerType, NodeComparerType > PriorityQueueType
std::greater< NodePairType > NodeComparerType
virtual void UpdateNeighbors(OutputDomainType *oDomain, const NodeType &iNode)=0
Update neighbors to a given node.
NodePairContainerPointer m_TrialPoints
SmartPointer< Self > Pointer
FastMarchingStoppingCriterionBase< TInput, TOutput > StoppingCriterionType
StoppingCriterionPointer m_StoppingCriterion
NodePairContainerPointer m_AlivePoints
FastMarchingBase()
Constructor.
typename Traits::OutputPixelType OutputPixelType
typename Traits::LabelType LabelType
typename Traits::NodePairContainerConstIterator NodePairContainerConstIterator
Base class traits to be used by the FastMarchingBase.
Control indentation during Print() invocation.
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType IdentifierType
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)