go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
itk::LimiterFunctionBase< TInput, NDimension > Class Template Referenceabstract

#include <itkLimiterFunctionBase.h>

Detailed Description

template<class TInput, unsigned int NDimension>
class itk::LimiterFunctionBase< TInput, NDimension >

Base class for all ITK limiter function objects.

LimiterFunctionBase is the base class for ITK limiter function objects. The abstract method Evaluate() should limit a function, i.e. it should make sure that its output is below a certain value. The derivative of a function that is limited also changes.

In formula:

\[ L(y) = L(f(x)), \]

where $f(x)$ is the original function. and $L(f(x))$ the limited version. The derivative with respect to $x$ should satisfy:

\[ dL/dx = \frac{dL}{df} \cdot \frac{df}{dx} \]

Subclasses must override Evaluate(value) and Evaluate(value, derivative) .

This class is template over the input type and the dimension of $x$.

Definition at line 50 of file itkLimiterFunctionBase.h.

Inheritance diagram for itk::LimiterFunctionBase< TInput, NDimension >:
Inheritance graph
[legend]

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef CovariantVector< DerivativeValueType, itkGetStaticConstMacro(Dimension) > DerivativeType
 
typedef OutputType DerivativeValueType
 
typedef Superclass::InputType InputType
 
typedef Superclass::OutputType OutputType
 
typedef SmartPointer< SelfPointer
 
typedef LimiterFunctionBase Self
 
typedef FunctionBase< TInput, typename NumericTraits< TInput >::RealType > Superclass
 

Public Member Functions

virtual OutputType Evaluate (const InputType &input) const =0
 
virtual OutputType Evaluate (const InputType &input, DerivativeType &derivative) const =0
 
virtual const char * GetClassName () const
 
virtual OutputType GetLowerBound () const
 
virtual InputType GetLowerThreshold () const
 
virtual OutputType GetUpperBound () const
 
virtual InputType GetUpperThreshold () const
 
virtual void Initialize (void) throw ( ExceptionObject )
 
 itkStaticConstMacro (Dimension, unsigned int, NDimension)
 
virtual void SetLowerBound (OutputType _arg)
 
virtual void SetLowerThreshold (InputType _arg)
 
virtual void SetUpperBound (OutputType _arg)
 
virtual void SetUpperThreshold (InputType _arg)
 

Protected Member Functions

 LimiterFunctionBase ()
 
 ~LimiterFunctionBase ()
 

Protected Attributes

OutputType m_LowerBound
 
InputType m_LowerThreshold
 
OutputType m_UpperBound
 
InputType m_UpperThreshold
 

Private Member Functions

 LimiterFunctionBase (const Self &)
 
void operator= (const Self &)
 

Member Typedef Documentation

template<class TInput , unsigned int NDimension>
typedef SmartPointer< const Self > itk::LimiterFunctionBase< TInput, NDimension >::ConstPointer

Definition at line 59 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
typedef CovariantVector< DerivativeValueType, itkGetStaticConstMacro( Dimension ) > itk::LimiterFunctionBase< TInput, NDimension >::DerivativeType

Definition at line 73 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
typedef OutputType itk::LimiterFunctionBase< TInput, NDimension >::DerivativeValueType

Definition at line 70 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
typedef Superclass::InputType itk::LimiterFunctionBase< TInput, NDimension >::InputType

Superclass' typedefs

Definition at line 67 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
typedef Superclass::OutputType itk::LimiterFunctionBase< TInput, NDimension >::OutputType

Definition at line 68 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
typedef SmartPointer< Self > itk::LimiterFunctionBase< TInput, NDimension >::Pointer

Definition at line 58 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
typedef LimiterFunctionBase itk::LimiterFunctionBase< TInput, NDimension >::Self

Standard class typedefs.

Definition at line 56 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
typedef FunctionBase< TInput, typename NumericTraits< TInput >::RealType > itk::LimiterFunctionBase< TInput, NDimension >::Superclass

Definition at line 57 of file itkLimiterFunctionBase.h.

Constructor & Destructor Documentation

template<class TInput , unsigned int NDimension>
itk::LimiterFunctionBase< TInput, NDimension >::LimiterFunctionBase ( )
inlineprotected

Definition at line 106 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
itk::LimiterFunctionBase< TInput, NDimension >::~LimiterFunctionBase ( )
inlineprotected

Definition at line 117 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
itk::LimiterFunctionBase< TInput, NDimension >::LimiterFunctionBase ( const Self )
private

Member Function Documentation

template<class TInput , unsigned int NDimension>
virtual OutputType itk::LimiterFunctionBase< TInput, NDimension >::Evaluate ( const InputType input) const
pure virtual
template<class TInput , unsigned int NDimension>
virtual OutputType itk::LimiterFunctionBase< TInput, NDimension >::Evaluate ( const InputType input,
DerivativeType derivative 
) const
pure virtual

Limit the input value and change the input function derivative accordingly

Implemented in itk::ExponentialLimiterFunction< TInput, NDimension >, and itk::HardLimiterFunction< TInput, NDimension >.

template<class TInput , unsigned int NDimension>
virtual const char* itk::LimiterFunctionBase< TInput, NDimension >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

Reimplemented in itk::ExponentialLimiterFunction< TInput, NDimension >, and itk::HardLimiterFunction< TInput, NDimension >.

template<class TInput , unsigned int NDimension>
virtual OutputType itk::LimiterFunctionBase< TInput, NDimension >::GetLowerBound ( ) const
virtual
template<class TInput , unsigned int NDimension>
virtual InputType itk::LimiterFunctionBase< TInput, NDimension >::GetLowerThreshold ( ) const
virtual
template<class TInput , unsigned int NDimension>
virtual OutputType itk::LimiterFunctionBase< TInput, NDimension >::GetUpperBound ( ) const
virtual
template<class TInput , unsigned int NDimension>
virtual InputType itk::LimiterFunctionBase< TInput, NDimension >::GetUpperThreshold ( ) const
virtual
template<class TInput , unsigned int NDimension>
virtual void itk::LimiterFunctionBase< TInput, NDimension >::Initialize ( void  )
throw (ExceptionObject
)
inlinevirtual

Initialize the limiter

Reimplemented in itk::ExponentialLimiterFunction< TInput, NDimension >.

Definition at line 102 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
itk::LimiterFunctionBase< TInput, NDimension >::itkStaticConstMacro ( Dimension  ,
unsigned  int,
NDimension   
)
template<class TInput , unsigned int NDimension>
void itk::LimiterFunctionBase< TInput, NDimension >::operator= ( const Self )
private
template<class TInput , unsigned int NDimension>
virtual void itk::LimiterFunctionBase< TInput, NDimension >::SetLowerBound ( OutputType  _arg)
virtual

Set/Get the lower bound that the output should respect. Make sure it is lower than the higher bound.

template<class TInput , unsigned int NDimension>
virtual void itk::LimiterFunctionBase< TInput, NDimension >::SetLowerThreshold ( InputType  _arg)
virtual

Set the point where the limiter starts to work. Only input values below this number will possibly be affected. Make sure it is >= than the LowerBound.

template<class TInput , unsigned int NDimension>
virtual void itk::LimiterFunctionBase< TInput, NDimension >::SetUpperBound ( OutputType  _arg)
virtual

Set/Get the upper bound that the output should respect. Make sure it is higher than the lower bound.

template<class TInput , unsigned int NDimension>
virtual void itk::LimiterFunctionBase< TInput, NDimension >::SetUpperThreshold ( InputType  _arg)
virtual

Set the point where the limiter starts to work. Only input values above this number will possibly be affected. Make sure it is <= than the UpperBound.

Field Documentation

template<class TInput , unsigned int NDimension>
OutputType itk::LimiterFunctionBase< TInput, NDimension >::m_LowerBound
protected

Definition at line 120 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
InputType itk::LimiterFunctionBase< TInput, NDimension >::m_LowerThreshold
protected

Definition at line 122 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
OutputType itk::LimiterFunctionBase< TInput, NDimension >::m_UpperBound
protected

Definition at line 119 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
InputType itk::LimiterFunctionBase< TInput, NDimension >::m_UpperThreshold
protected

Definition at line 121 of file itkLimiterFunctionBase.h.



Generated on 04-09-2015 for elastix by doxygen 1.8.9.1 elastix logo