source: flair-src/trunk/lib/FlairFilter/src/ButterworthLowPass.h @ 10

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

lic

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