]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Algorithms/KalmanVelocityFilter.h
...
[cpPlugins.git] / lib / cpExtensions / Algorithms / KalmanVelocityFilter.h
1 // -------------------------------------------------------------------------
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // -------------------------------------------------------------------------
4
5 #ifndef __CPEXTENSIONS__ALGORITHMS__KALMANVELOCITYFILTER__H__
6 #define __CPEXTENSIONS__ALGORITHMS__KALMANVELOCITYFILTER__H__
7
8 #include <cpExtensions/Algorithms/KalmanFilter.h>
9
10 namespace cpExtensions
11   {
12     namespace Algorithms
13     {
14       /**
15        */
16       template< typename T >
17       class cpExtensions_EXPORT KalmanVelocityFilter
18         : public KalmanFilter< T >
19       {
20       public:
21         typedef KalmanVelocityFilter            Self;
22         typedef KalmanFilter< T >               Superclass;
23         typedef itk::SmartPointer< Self >       Pointer;
24         typedef itk::SmartPointer< const Self > ConstPointer;
25
26         typedef typename Superclass::TScalar TScalar;
27         typedef typename Superclass::TMatrix TMatrix;
28         typedef typename Superclass::TVector TVector;
29
30       public:
31         itkNewMacro( Self );
32         itkTypeMacro( KalmanVelocityFilter, KalmanFilter );
33
34         kalmanGetSetMacro( TMatrix, Sigma );
35         kalmanGetSetMatrixMacro( Sigma, AccelerationNoise );
36
37       public:
38         void Configure( unsigned int m );
39
40         TScalar GetTimeOffset( ) const;
41         void SetTimeOffset( TScalar t );
42
43         /// Iteration methods
44         virtual void Initialize( );
45
46       protected:
47         KalmanVelocityFilter( );
48         virtual ~KalmanVelocityFilter( );
49
50       private:
51         // Purposely not implemented.
52         KalmanVelocityFilter( const Self& );
53         void operator=( const Self& );
54
55       protected:
56         TMatrix m_TimeOffset;
57         TMatrix m_Sigma;
58       };
59
60     } // ecapseman
61
62 } // ecapseman
63
64 #endif // __CPEXTENSIONS__ALGORITHMS__KALMANVELOCITYFILTER__H__
65
66 // eof - $RCSfile$