source: flair-dev/trunk/include/FlairFilter/ButterworthLowPass.h @ 6

Last change on this file since 6 was 6, checked in by Sanahuja Guillaume, 5 years ago

filter

File size: 2.8 KB
RevLine 
[6]1/*!
2 * \file ButterworthLowPass.h
3 * \brief Class defining a Butterworth low pass filter
4 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
5 * \date 2013/12/10
6 * \version 4.0
7 */
8
9#ifndef BUTTERWORTHLOWPASS_H
10#define BUTTERWORTHLOWPASS_H
11
12#include <IODevice.h>
13
14namespace flair
15{
16    namespace core
17    {
18        class cvmatrix;
19    }
20    namespace gui
21    {
22        class LayoutPosition;
23    }
24}
25
26class ButterworthLowPass_impl;
27
28namespace flair
29{
30namespace filter
31{
32    /*! \class ButterworthLowPass
33    *
34    * \brief Class defining a Butterworth low pass filter
35    */
36    class ButterworthLowPass : public core::IODevice
37    {
38        public:
39            /*!
40            * \brief Constructor
41            *
42            * Construct a ButterworthLowPass at position. \n
43            * After calling this function, position will be deleted as it is no longer usefull. \n
44            * The filter is automatically updated when parent's
45            * IODevice::ProcessUpdate is called.
46            *
47            * \param parent parent
48            * \param position position to display settings
49            * \param name name
50            * \param order order of the filter
51            */
52            ButterworthLowPass(const IODevice* parent,const gui::LayoutPosition* position,std::string name,int order);
53
54            /*!
55            * \brief Constructor
56            *
57            * Construct a ButterworthLowPass at position. \n
58            * The ButterworthLowPass will automatically be child of position->getLayout() Layout. After calling this function,
59            * position will be deleted as it is no longer usefull. \n
60            * The filter is updated manually with UpdateFrom method. \n
61            *
62            * \param position position to display settings
63            * \param name name
64            * \param order order of the filter
65            */
66            ButterworthLowPass(const gui::LayoutPosition* position,std::string name,int order);
67
68            /*!
69            * \brief Destructor
70            *
71            */
72            ~ButterworthLowPass();
73
74            /*!
75            * \brief Output value
76            *
77            * \return filtered output
78            */
79            float Output(void) const;
80
81            /*!
82            * \brief Output matrix
83            *
84            * \return filtered output
85            */
86            core::cvmatrix* Matrix(void)const ;
87
88            /*!
89            * \brief Update using provided datas
90            *
91            * Reimplemented from IODevice.
92            *
93            * \param data data from the parent to process
94            */
95            void UpdateFrom(const core::io_data *data);
96
97        private:
98
99            class ButterworthLowPass_impl* pimpl_;
100    };
101} // end namespace filter
102} // end namespace flair
103#endif // BUTTERWORTHLOWPASS_H
Note: See TracBrowser for help on using the repository browser.