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 Reference

#include <itkLimiterFunctionBase.h>

Inheritance diagram for itk::LimiterFunctionBase< TInput, NDimension >:
Inheritance graph
[legend]
Collaboration diagram for itk::LimiterFunctionBase< TInput, NDimension >:
Collaboration 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 &)

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 48 of file itkLimiterFunctionBase.h.


Member Typedef Documentation

template<class TInput , unsigned int NDimension>
typedef SmartPointer<const Self> itk::LimiterFunctionBase< TInput, NDimension >::ConstPointer
template<class TInput , unsigned int NDimension>
typedef CovariantVector< DerivativeValueType, itkGetStaticConstMacro(Dimension)> itk::LimiterFunctionBase< TInput, NDimension >::DerivativeType
template<class TInput , unsigned int NDimension>
typedef OutputType itk::LimiterFunctionBase< TInput, NDimension >::DerivativeValueType
template<class TInput , unsigned int NDimension>
typedef Superclass::InputType itk::LimiterFunctionBase< TInput, NDimension >::InputType
template<class TInput , unsigned int NDimension>
typedef Superclass::OutputType itk::LimiterFunctionBase< TInput, NDimension >::OutputType
template<class TInput , unsigned int NDimension>
typedef SmartPointer<Self> itk::LimiterFunctionBase< TInput, NDimension >::Pointer
template<class TInput , unsigned int NDimension>
typedef LimiterFunctionBase itk::LimiterFunctionBase< TInput, NDimension >::Self
template<class TInput , unsigned int NDimension>
typedef FunctionBase< TInput, typename NumericTraits< TInput >::RealType > itk::LimiterFunctionBase< TInput, NDimension >::Superclass

Constructor & Destructor Documentation

template<class TInput , unsigned int NDimension>
itk::LimiterFunctionBase< TInput, NDimension >::LimiterFunctionBase ( ) [inline, protected]

Definition at line 103 of file itkLimiterFunctionBase.h.

template<class TInput , unsigned int NDimension>
itk::LimiterFunctionBase< TInput, NDimension >::~LimiterFunctionBase ( ) [inline, protected]

Definition at line 112 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) [inline, virtual]

Initialize the limiter

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

Definition at line 100 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 115 of file itkLimiterFunctionBase.h.

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

Definition at line 117 of file itkLimiterFunctionBase.h.

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

Definition at line 112 of file itkLimiterFunctionBase.h.

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

Definition at line 116 of file itkLimiterFunctionBase.h.



Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo