sensorfw
magcoordinatealignfilter.h
Go to the documentation of this file.
1
26
27
#ifndef MAGCOORDINATEALIGNFILTER_H
28
#define MAGCOORDINATEALIGNFILTER_H
29
30
#include "
datatypes/orientationdata.h
"
31
#include "filter.h"
32
36
class
TMagMatrix
37
{
38
private
:
39
static
const
int
DIM = 3;
40
41
public
:
42
TMagMatrix
() {
43
setMatrix
((
const
double
[DIM][DIM]){{1,0,0},{0,1,0},{0,0,1}});
44
}
45
TMagMatrix
(
const
TMagMatrix
& other) {
46
setMatrix
(other.
data_
);
47
}
48
TMagMatrix
(
double
m[][DIM]) {
49
setMatrix
(m);
50
}
51
TMagMatrix
&
operator=
(
const
TMagMatrix
&other) {
52
setMatrix
(other.
data_
);
53
return
*
this
;
54
}
55
56
double
get
(
int
i,
int
j)
const
{
57
if
(i >= DIM || j >= DIM || i < 0 || j < 0) {
58
qWarning(
"Index out of bounds"
);
59
return
0;
60
}
61
return
data_
[i][j];
62
};
63
64
void
setMatrix
(
const
double
m[DIM][DIM]) {
65
memcpy(
data_
, m,
sizeof
(
double
[DIM][DIM]));
66
}
67
68
double
data_
[DIM][DIM];
69
};
70
Q_DECLARE_METATYPE
(
TMagMatrix
)
71
72
80
class
MagCoordinateAlignFilter
: public QObject, public Filter<
CalibratedMagneticFieldData
,
MagCoordinateAlignFilter
,
CalibratedMagneticFieldData
>
81
{
82
Q_OBJECT
83
Q_PROPERTY(
TMagMatrix
transMatrix
READ
matrix
WRITE
setMatrix
)
84
public
:
85
90
static
FilterBase*
factoryMethod
() {
91
return
new
MagCoordinateAlignFilter
;
92
}
93
94
const
TMagMatrix
&
matrix
()
const
{
return
matrix_; }
95
96
void
setMatrix
(
const
TMagMatrix
&
matrix
) { matrix_ =
matrix
; }
97
98
protected
:
102
MagCoordinateAlignFilter
();
103
104
private
:
105
void
filter(
unsigned
,
const
CalibratedMagneticFieldData
*);
106
107
TMagMatrix
matrix_;
108
};
109
110
#endif
// MagCoordinateAlignFilter_H
CalibratedMagneticFieldData
Datatype for calibrated magnetometer measurements.
Definition
orientationdata.h:59
MagCoordinateAlignFilter::MagCoordinateAlignFilter
MagCoordinateAlignFilter()
Constructor.
MagCoordinateAlignFilter::matrix
const TMagMatrix & matrix() const
Definition
magcoordinatealignfilter.h:94
MagCoordinateAlignFilter::setMatrix
void setMatrix(const TMagMatrix &matrix)
Definition
magcoordinatealignfilter.h:96
MagCoordinateAlignFilter::transMatrix
TMagMatrix transMatrix
Definition
magcoordinatealignfilter.h:83
MagCoordinateAlignFilter::factoryMethod
static FilterBase * factoryMethod()
Factory method.
Definition
magcoordinatealignfilter.h:90
TMagMatrix
TMagMatrix holds a transformation matrix.
Definition
magcoordinatealignfilter.h:37
TMagMatrix::get
double get(int i, int j) const
Definition
magcoordinatealignfilter.h:56
TMagMatrix::TMagMatrix
TMagMatrix(const TMagMatrix &other)
Definition
magcoordinatealignfilter.h:45
TMagMatrix::operator=
TMagMatrix & operator=(const TMagMatrix &other)
Definition
magcoordinatealignfilter.h:51
TMagMatrix::data_
double data_[DIM][DIM]
Definition
magcoordinatealignfilter.h:68
TMagMatrix::setMatrix
void setMatrix(const double m[DIM][DIM])
Definition
magcoordinatealignfilter.h:64
TMagMatrix::TMagMatrix
TMagMatrix(double m[][DIM])
Definition
magcoordinatealignfilter.h:48
TMagMatrix::TMagMatrix
TMagMatrix()
Definition
magcoordinatealignfilter.h:42
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(TMatrix)
orientationdata.h
Datatypes for different filters.
filters
magcoordinatealignfilter
magcoordinatealignfilter.h
Generated by
1.13.2