32 #ifndef CXTRACKINGPOSITIONFILTER_H
33 #define CXTRACKINGPOSITIONFILTER_H
35 #include "cxResourceExport.h"
39 #include <boost/shared_ptr.hpp>
40 #include "iir/Butterworth.h"
56 void setCutOffFrequency(
double freq);
57 void addPosition(
Transform3D pos,
double timestamp);
61 std::map<double, Transform3D> mHistory;
62 std::map<double, Transform3D> mResampled;
63 std::map<double, Transform3D> mFiltered;
64 void clearIfTimestampIsOlderThanHead(
Transform3D pos,
double timestamp);
65 void clearIfJumpInTimestamps(
Transform3D pos,
double timestamp);
66 void interpolateAndFilterPositions(
Transform3D pos,
double timestamp);
68 float mCutOffFrequency;
69 float mResampleFrequency;
70 static const int mFilterOrder = 2;
71 Iir::Butterworth::LowPass<mFilterOrder> fx;
72 Iir::Butterworth::LowPass<mFilterOrder> fy;
73 Iir::Butterworth::LowPass<mFilterOrder> fz;
80 #endif // CXTRACKINGPOSITIONFILTER_H
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
boost::shared_ptr< class TrackingPositionFilter > TrackingPositionFilterPtr