PCPSmother.hxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef PCPSmother_hxx
00023 #define PCPSmother_hxx
00024 #include <list>
00025 #include <vector>
00026 #include <cmath>
00027 #include <sstream>
00028
00029 namespace Simac
00030 {
00031
00032 class PCPSmother
00033 {
00034 public:
00035 typedef std::vector<double> PCP;
00036 public:
00037 PCPSmother(double inertia)
00038 : _inertia(inertia)
00039 {
00040 _output.resize(12);
00041 }
00042 ~PCPSmother()
00043 {
00044 }
00045 void doIt(const PCP & pcp)
00046 {
00047 for (unsigned int i=0; i<pcp.size(); i++)
00048 {
00049 _output[i]*=_inertia;
00050 _output[i]+= (1-_inertia) * pcp[i];
00051 }
00052 }
00053 void inertia(double inertia)
00054 {
00055 _inertia = inertia;
00056 }
00057 const PCP & output() const
00058 {
00059 return _output;
00060 }
00061 private:
00062 PCP _output;
00063 double _inertia;
00064 };
00065
00066 }
00067
00068 #endif// PCPSmother_hxx
00069