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