11 #ifndef CXTRACKINGPOSITIONFILTER_H
12 #define CXTRACKINGPOSITIONFILTER_H
14 #include "cxResourceExport.h"
18 #include <boost/shared_ptr.hpp>
19 #include "iir/Butterworth.h"
35 void setCutOffFrequency(
double freq);
36 void addPosition(
Transform3D pos,
double timestamp);
40 std::map<double, Transform3D> mHistory;
41 std::map<double, Transform3D> mResampled;
42 std::map<double, Transform3D> mFiltered;
43 void clearIfTimestampIsOlderThanHead(
Transform3D pos,
double timestamp);
44 void clearIfJumpInTimestamps(
Transform3D pos,
double timestamp);
45 void interpolateAndFilterPositions(
Transform3D pos,
double timestamp);
47 float mCutOffFrequency;
48 float mResampleFrequency;
49 static const int mFilterOrder = 2;
50 Iir::Butterworth::LowPass<mFilterOrder> fx;
51 Iir::Butterworth::LowPass<mFilterOrder> fy;
52 Iir::Butterworth::LowPass<mFilterOrder> fz;
59 #endif // CXTRACKINGPOSITIONFILTER_H