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 addPosition(
Transform3D pos,
double timestamp);
60 std::map<double, Transform3D> mHistory;
61 std::map<double, Transform3D> mResampled;
62 std::map<double, Transform3D> mFiltered;
63 void clearIfTimestampIsOlderThanHead(
Transform3D pos,
double timestamp);
64 void clearIfJumpInTimestamps(
Transform3D pos,
double timestamp);
65 void interpolateAndFilterPositions(
Transform3D pos,
double timestamp);
66 float mCutOffFrequency;
67 float mResampleFrequency;
68 static const int mFilterOrder = 2;
69 Iir::Butterworth::LowPass<mFilterOrder> fx;
70 Iir::Butterworth::LowPass<mFilterOrder> fy;
71 Iir::Butterworth::LowPass<mFilterOrder> fz;
78 #endif // CXTRACKINGPOSITIONFILTER_H
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
boost::shared_ptr< class TrackingPositionFilter > TrackingPositionFilterPtr