19 #ifndef itkLevelSetEquationTermBase_h 20 #define itkLevelSetEquationTermBase_h 24 #include "itksys/hash_set.hxx" 47 template<
typename TInputImage,
48 typename TLevelSetContainer >
68 typedef typename LevelSetContainerType::LevelSetIdentifierType
78 typedef typename LevelSetContainerType::LevelSetDataType
85 LevelSetOutputRealType >
91 itkSetObjectMacro( Input, InputImageType );
92 itkGetModifiableObjectMacro(Input, InputImageType );
95 itkSetMacro( Coefficient, LevelSetOutputRealType );
96 itkGetMacro( Coefficient, LevelSetOutputRealType );
101 itkGetModifiableObjectMacro(CurrentLevelSetPointer, LevelSetType );
109 virtual LevelSetOutputRealType
Evaluate(
const LevelSetInputIndexType& iP );
111 virtual LevelSetOutputRealType
Evaluate(
const LevelSetInputIndexType& iP,
115 virtual void Initialize(
const LevelSetInputIndexType& iP ) = 0;
121 virtual void UpdatePixel(
const LevelSetInputIndexType& iP,
122 const LevelSetOutputRealType & oldValue,
123 const LevelSetOutputRealType & newValue ) = 0;
126 itkGetConstMacro( CFLContribution, LevelSetOutputRealType );
129 itkSetStringMacro( TermName );
130 itkGetStringMacro( TermName );
134 virtual void Update() = 0;
153 virtual LevelSetOutputRealType
Value(
const LevelSetInputIndexType& iP ) = 0;
155 virtual LevelSetOutputRealType
Value(
const LevelSetInputIndexType& iP,
191 void operator = ( const Self& ) ITK_DELETE_FUNCTION;
195 #ifndef ITK_MANUAL_INSTANTIATION 196 #include "itkLevelSetEquationTermBase.hxx" SmartPointer< Self > Pointer
TLevelSetContainer LevelSetContainerType
LevelSetContainerType::CacheImageType CacheImageType
virtual LevelSetOutputRealType Value(const LevelSetInputIndexType &iP)=0
LevelSetContainerType::LevelSetDataType LevelSetDataType
virtual void InitializeParameters()=0
HeavisideType::ConstPointer HeavisideConstPointer
LevelSetContainerType::DomainMapImageFilterType DomainMapImageFilterType
virtual void SetLevelSetContainer(LevelSetContainerType *ptr)
virtual void UpdatePixel(const LevelSetInputIndexType &iP, const LevelSetOutputRealType &oldValue, const LevelSetOutputRealType &newValue)=0
LevelSetContainerType::HessianType LevelSetHessianType
HeavisideConstPointer m_Heaviside
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
LevelSetContainerType::OutputType LevelSetOutputPixelType
LevelSetContainerPointer m_LevelSetContainer
itksys::hash_set< std::string > RequiredDataType
HeavisideStepFunctionBase< LevelSetOutputRealType, LevelSetOutputRealType > HeavisideType
virtual void Initialize(const LevelSetInputIndexType &iP)=0
LevelSetIdentifierType m_CurrentLevelSetId
InputImagePointer m_Input
NumericTraits< InputPixelType >::RealType InputPixelRealType
Abstract class to represents a term in the level-set evolution PDE.
LevelSetContainerType::InputIndexType LevelSetInputIndexType
LevelSetOutputRealType m_Coefficient
LevelSetOutputRealType m_CFLContribution
RequiredDataType m_RequiredData
virtual ~LevelSetEquationTermBase()
InputImageType::PixelType InputPixelType
virtual LevelSetOutputRealType Evaluate(const LevelSetInputIndexType &iP)
LevelSetContainerType::LevelSetPointer LevelSetPointer
const RequiredDataType & GetRequiredData() const
LevelSetEquationTermBase Self
InputImageType::Pointer InputImagePointer
LevelSetContainerType::OutputRealType LevelSetOutputRealType
LevelSetContainerType::LevelSetIdentifierType LevelSetIdentifierType
LevelSetPointer m_CurrentLevelSetPointer
LevelSetContainerType::LevelSetType LevelSetType
SmartPointer< const Self > ConstPointer
LevelSetEquationTermBase()
LevelSetContainerType::Pointer LevelSetContainerPointer
LevelSetContainerType::GradientType LevelSetGradientType
Define additional traits for native types such as int or float.
Base class for most ITK classes.
TInputImage InputImageType
Base class of the Heaviside function.