go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkLimiterFunctionBase.h
Go to the documentation of this file.
1 /*======================================================================
2 
3  This file is part of the elastix software.
4 
5  Copyright (c) University Medical Center Utrecht. All rights reserved.
6  See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
7  details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notices for more information.
12 
13 ======================================================================*/
14 
15 #ifndef __itkLimiterFunctionBase_h
16 #define __itkLimiterFunctionBase_h
17 
18 #include "itkFunctionBase.h"
19 #include "itkExceptionObject.h"
20 
21 
22 namespace itk
23 {
24 
47 template < class TInput, unsigned int NDimension >
49  public FunctionBase<TInput, typename NumericTraits<TInput>::RealType>
50 {
51 public:
54  typedef FunctionBase< TInput,
55  typename NumericTraits< TInput >::RealType > Superclass;
56  typedef SmartPointer<Self> Pointer;
57  typedef SmartPointer<const Self> ConstPointer;
58 
60  itkTypeMacro( LimiterFunctionBase, FunctionBase );
61 
62  itkStaticConstMacro( Dimension, unsigned int, NDimension );
63 
65  typedef typename Superclass::InputType InputType;
66  typedef typename Superclass::OutputType OutputType;
67 
69  typedef CovariantVector<
71  itkGetStaticConstMacro(Dimension)> DerivativeType;
72 
74  virtual OutputType Evaluate( const InputType & input ) const = 0;
75 
77  virtual OutputType Evaluate( const InputType & input, DerivativeType & derivative) const = 0;
78 
81  itkSetMacro( UpperBound, OutputType );
82  itkGetConstMacro( UpperBound, OutputType );
83 
86  itkSetMacro( LowerBound, OutputType );
87  itkGetConstMacro( LowerBound, OutputType );
88 
91  itkSetMacro( UpperThreshold, InputType );
92  itkGetConstMacro( UpperThreshold, InputType );
93 
96  itkSetMacro( LowerThreshold, InputType );
97  itkGetConstMacro( LowerThreshold, InputType );
98 
100  virtual void Initialize( void ) throw (ExceptionObject) {};
101 
102 protected:
104  {
105  this->m_UpperBound =
106  itk::NumericTraits<OutputType>::One +
107  itk::NumericTraits<OutputType>::One;
108  this->m_LowerBound = itk::NumericTraits<OutputType>::Zero;
109  this->m_UpperThreshold = itk::NumericTraits<InputType>::One;
110  this->m_LowerThreshold = itk::NumericTraits<InputType>::One;
111  };
113 
118 
119 private:
120  LimiterFunctionBase(const Self& ); //purposely not implemented
121  void operator=(const Self& ); //purposely not implemented
122 
123 };
124 
125 } // end namespace itk
126 
127 #endif
itkStaticConstMacro(Dimension, unsigned int, NDimension)
SmartPointer< const Self > ConstPointer
virtual OutputType Evaluate(const InputType &input) const =0
FunctionBase< TInput, typename NumericTraits< TInput >::RealType > Superclass
Base class for all ITK limiter function objects.
Superclass::InputType InputType
CovariantVector< DerivativeValueType, itkGetStaticConstMacro(Dimension)> DerivativeType
SmartPointer< Self > Pointer
Superclass::OutputType OutputType
void operator=(const Self &)


Generated on 05-01-2014 for elastix by doxygen 1.8.5 elastix logo