1 #ifndef __FPA__BASE__FUNCTORS__GAUSSIANCOST__H__
2 #define __FPA__BASE__FUNCTORS__GAUSSIANCOST__H__
4 #include <fpa/Config.h>
5 #include <itkFunctionBase.h>
6 #include <cpExtensions/Algorithms/IterativeGaussianModelEstimator.h>
16 template< class _TResult >
18 : public itk::FunctionBase< _TResult, _TResult >
21 typedef GaussianCost Self;
22 typedef itk::FunctionBase< _TResult, _TResult > Superclass;
23 typedef itk::SmartPointer< Self > Pointer;
24 typedef itk::SmartPointer< const Self > ConstPointer;
27 typedef _TResult TResult;
29 cpExtensions::Algorithms::IterativeGaussianModelEstimator< TResult, 1 >
34 itkTypeMacro( GaussianCost, Algorithm );
36 itkGetConstMacro( SupportSize, unsigned int );
37 itkGetConstMacro( MinimumCost, _TResult );
38 itkGetObjectMacro( Model, TModel );
39 itkGetConstObjectMacro( Model, TModel );
40 itkSetMacro( SupportSize, unsigned int );
41 itkSetMacro( MinimumCost, _TResult );
44 virtual _TResult Evaluate( const _TResult& x ) const fpa_OVERRIDE;
47 // Methods to extend itk-based architecture
49 virtual ~GaussianCost( );
52 // Purposely not implemented
53 GaussianCost( const Self& other );
54 Self& operator=( const Self& other );
57 unsigned int m_SupportSize;
58 _TResult m_MinimumCost;
59 typename TModel::Pointer m_Model;
68 #ifndef ITK_MANUAL_INSTANTIATION
69 # include <fpa/Base/Functors/GaussianCost.hxx>
70 #endif // ITK_MANUAL_INSTANTIATION
72 #endif // __FPA__BASE__FUNCTORS__GAUSSIANCOST__H__