19#ifndef itkLevelSetEquationTermContainer_h
20#define itkLevelSetEquationTermContainer_h
28#include <unordered_map>
41template <
typename TInputImage,
typename TLevelSetContainer>
157 : m_Iterator(it.m_Iterator)
206 return m_Iterator->first;
212 return m_Iterator->second;
228 : m_Iterator(it.m_Iterator)
281 return m_Iterator->first;
287 return m_Iterator->second;
332#ifndef ITK_MANUAL_INSTANTIATION
333# include "itkLevelSetEquationTermContainer.hxx"
Abstract class to represents a term in the level-set evolution PDE.
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
Iterator(const MapTermContainerIteratorType &it)
MapTermContainerIteratorType m_Iterator
bool operator==(const Iterator &it) const
bool operator==(const ConstIterator &it) const
Iterator(const ConstIterator &it)
Class for container holding the terms of a given level set update equation.
std::unordered_map< std::string, TermPointer > HashMapStringTermContainerType
typename InputImageType::Pointer InputImagePointer
TermType * GetTerm(const TermIdType &iId)
LevelSetEquationTermContainer()
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
typename MapTermContainerType::const_iterator MapTermContainerConstIteratorType
typename TermType::RequiredDataType RequiredDataType
LevelSetOutputRealType ComputeCFLContribution() const
typename LevelSetContainerType::LevelSetType LevelSetType
TInputImage InputImageType
typename LevelSetContainerType::GradientType LevelSetGradientType
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)
typename TermType::Pointer TermPointer
void PushTerm(TermType *iTerm)
void InitializeParameters()
std::map< TermIdType, std::atomic< LevelSetOutputRealType > > MapCFLContainerType
ConstIterator Begin() const
typename LevelSetContainerType::Pointer LevelSetContainerPointer
~LevelSetEquationTermContainer() override=default
typename MapCFLContainerType::const_iterator MapCFLContainerConstIterator
typename LevelSetContainerType::LevelSetDataType LevelSetDataType
typename LevelSetContainerType::InputIndexType LevelSetInputIndexType
void Initialize(const LevelSetInputIndexType &iP)
TLevelSetContainer LevelSetContainerType
Light weight base class for most itk classes.
Base class for most ITK classes.
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....