sensorfw
rotationfilter.h
Go to the documentation of this file.
1
25
26#ifndef ROTATIONFILTER_H
27#define ROTATIONFILTER_H
28
29#include <QObject>
30
31#include "orientationdata.h"
32#include "filter.h"
33
40class RotationFilter : public QObject, public FilterBase
41{
42 Q_OBJECT;
43public:
48 static FilterBase* factoryMethod()
49 {
50 return new RotationFilter();
51 }
52
53private:
58
64 double vectorLength(const TimedXyzData& data);
65
66 Sink<RotationFilter, TimedXyzData> accelerometerDataSink_;
67 Sink<RotationFilter, CompassData> compassDataSink_;
68 Source<TimedXyzData> source_;
69
70 void interpret(unsigned, const TimedXyzData*);
71 void updateZvalue(unsigned, const CompassData*);
72
73 inline int dotProduct(TimedXyzData a, TimedXyzData b) const {
74 return (a.x_ * b.x_) + (a.y_ * b.y_) + (a.z_ * b.z_);
75 }
76
77 TimedXyzData rotation_;
78};
79
80#endif // ROTATIONFILTER_H
Datatype for compass measurements.
Filter for calculating device axis rotations.
static FilterBase * factoryMethod()
Factory method.
Class for vector type measurement data (timestamp, x, y, z).
Definition genericdata.h:53
float z_
Z value.
Definition genericdata.h:72
float y_
Y value.
Definition genericdata.h:71
float x_
X value.
Definition genericdata.h:70
Datatypes for different filters.