19#ifndef itkLevelSetEquationTermContainer_h
20#define itkLevelSetEquationTermContainer_h
28#include <unordered_map>
41template <
typename TInputImage,
typename TLevelSetContainer>
348#ifndef ITK_MANUAL_INSTANTIATION
349# include "itkLevelSetEquationTermContainer.hxx"
Abstract class to represents a term in the level-set evolution PDE.
SmartPointer< Self > Pointer
std::unordered_set< std::string > RequiredDataType
TermType * GetTerm() const
bool operator==(const ConstIterator &it) const
bool operator==(const Iterator &it) const
ConstIterator(const Iterator &it)
ConstIterator & operator++()
ConstIterator & operator--()
ConstIterator * operator->()
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(ConstIterator)
ConstIterator operator++(int)
ConstIterator(const MapTermContainerConstIteratorType &it)
ConstIterator operator--(int)
MapTermContainerConstIteratorType m_Iterator
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(Iterator)
ConstIterator & operator*()
TermIdType GetIdentifier() const
TermIdType GetIdentifier() const
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(ConstIterator)
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(Iterator)
TermType * GetTerm() const
friend class ConstIterator
Iterator(const MapTermContainerIteratorType &it)
MapTermContainerIteratorType m_Iterator
bool operator==(const Iterator &it) const
bool operator==(const ConstIterator &it) const
Iterator(const ConstIterator &it)
std::unordered_map< std::string, TermPointer > HashMapStringTermContainerType
typename InputImageType::Pointer InputImagePointer
TermType * GetTerm(const TermIdType &iId)
LevelSetEquationTermContainer()
LevelSetIdentifierType m_CurrentLevelSetId
typename LevelSetContainerType::LevelSetIdentifierType LevelSetIdentifierType
void ComputeRequiredData(const LevelSetInputIndexType &iP, LevelSetDataType &ioData)
TermType * GetTerm(const std::string &iName)
typename LevelSetContainerType::OutputRealType LevelSetOutputRealType
typename LevelSetContainerType::OutputType LevelSetOutputPixelType
typename LevelSetContainerType::LevelSetPointer LevelSetPointer
InputImagePointer m_Input
typename MapTermContainerType::const_iterator MapTermContainerConstIteratorType
typename TermType::RequiredDataType RequiredDataType
LevelSetOutputRealType ComputeCFLContribution() const
typename LevelSetContainerType::LevelSetType LevelSetType
TInputImage InputImageType
typename LevelSetContainerType::GradientType LevelSetGradientType
RequiredDataType m_RequiredData
typename MapCFLContainerType::iterator MapCFLContainerIterator
LevelSetOutputRealType Evaluate(const LevelSetInputIndexType &iP)
LevelSetOutputRealType Evaluate(const LevelSetInputIndexType &iP, const LevelSetDataType &iData)
typename MapTermContainerType::iterator MapTermContainerIteratorType
ConstIterator End() const
void AddTerm(const TermIdType &iId, TermType *iTerm)
std::map< TermIdType, TermPointer > MapTermContainerType
typename LevelSetContainerType::HessianType LevelSetHessianType
void UpdatePixel(const LevelSetInputIndexType &iP, const LevelSetOutputRealType &oldValue, const LevelSetOutputRealType &newValue)
LevelSetEquationTermContainer Self
typename TermType::Pointer TermPointer
void PushTerm(TermType *iTerm)
void InitializeParameters()
MapCFLContainerType m_TermContribution
HashMapStringTermContainerType m_NameContainer
LevelSetContainerPointer m_LevelSetContainer
SmartPointer< Self > Pointer
ConstIterator Begin() const
typename LevelSetContainerType::Pointer LevelSetContainerPointer
~LevelSetEquationTermContainer() override=default
typename MapCFLContainerType::const_iterator MapCFLContainerConstIterator
typename LevelSetContainerType::LevelSetDataType LevelSetDataType
MapTermContainerType m_Container
typename LevelSetContainerType::InputIndexType LevelSetInputIndexType
std::map< TermIdType, std::atomic< LevelSetOutputRealType > > MapCFLContainerType
LevelSetEquationTermBase< InputImageType, LevelSetContainerType > TermType
void Initialize(const LevelSetInputIndexType &iP)
SmartPointer< const Self > ConstPointer
TLevelSetContainer LevelSetContainerType
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....