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