![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
00001 /*====================================================================== 00002 00003 This file is part of the elastix software. 00004 00005 Copyright (c) University Medical Center Utrecht. All rights reserved. 00006 See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for 00007 details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notices for more information. 00012 00013 ======================================================================*/ 00014 00015 #ifndef __itkExponentialLimiterFunction_h 00016 #define __itkExponentialLimiterFunction_h 00017 00018 #include "itkLimiterFunctionBase.h" 00019 00020 00021 namespace itk 00022 { 00023 00039 template < class TInput, unsigned int NDimension > 00040 class ExponentialLimiterFunction : 00041 public LimiterFunctionBase<TInput, NDimension> 00042 { 00043 public: 00045 typedef ExponentialLimiterFunction Self; 00046 typedef LimiterFunctionBase<TInput, NDimension> Superclass; 00047 typedef SmartPointer<Self> Pointer; 00048 typedef SmartPointer<const Self> ConstPointer; 00049 00051 itkTypeMacro(ExponentialLimiterFunction, LimiterFunctionBase); 00052 00054 itkNewMacro(Self); 00055 00057 itkStaticConstMacro( Dimension, unsigned int, Superclass::Dimension ); 00058 00059 00061 typedef typename Superclass::InputType InputType; 00062 typedef typename Superclass::OutputType OutputType; 00063 typedef typename Superclass::DerivativeValueType DerivativeValueType; 00064 typedef typename Superclass::DerivativeType DerivativeType; 00065 00067 virtual OutputType Evaluate( const InputType & input ) const; 00068 00070 virtual OutputType Evaluate( const InputType & input, DerivativeType & derivative) const; 00071 00073 virtual void Initialize(void) throw (ExceptionObject); 00074 00075 protected: 00076 ExponentialLimiterFunction(); 00077 ~ExponentialLimiterFunction(){}; 00078 00079 virtual void ComputeLimiterSettings(void); 00080 00081 double m_UTminUB; 00082 double m_UTminUBinv; 00083 double m_LTminLB; 00084 double m_LTminLBinv; 00085 00086 00087 private: 00088 ExponentialLimiterFunction(const Self& ); //purposely not implemented 00089 void operator=(const Self& ); //purposely not implemented 00090 00091 }; 00092 00093 } // end namespace itk 00094 00095 #ifndef ITK_MANUAL_INSTANTIATION 00096 #include "itkExponentialLimiterFunction.hxx" 00097 #endif 00098 00099 #endif
Generated on 24-10-2011 for elastix by ![]() |
![]() |