Ocean
Loading...
Searching...
No Matches
AndroidHeadingTracker3DOF.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8#ifndef META_OCEAN_DEVICES_ANDROID_ANDROID_HEADING_TRACKER_3_DOF_H
9#define META_OCEAN_DEVICES_ANDROID_ANDROID_HEADING_TRACKER_3_DOF_H
10
13
15
16namespace Ocean
17{
18
19namespace Devices
20{
21
22namespace Android
23{
24
25/**
26 * This class implements a tracker providing the heading/north direction as 3-DOF orientation.
27 * The resulting transformation (3DOF orientation) is defined w.r.t. the device's coordinate system and rotates the negative z-axis so that it points towards true north (the rotated positive z-axis points towards south).
28 * @ingroup devicesandroid
29 */
30class OCEAN_DEVICES_EXPORT AndroidHeadingTracker3DOF :
31 virtual public AndroidSensor,
32 virtual public OrientationTracker3DOF
33{
34 friend class AndroidFactory;
35
36 public:
37
38 /**
39 * Returns the name of this tracker.
40 * @return The tracker's name
41 */
42 static inline std::string deviceNameAndroidHeadingTracker3DOF();
43
44 protected:
45
46 /**
47 * Creates a new 3DOF heading tracker device.
48 * @param sensor The Android sensor providing the sensor measurements, must be valid
49 */
50 explicit AndroidHeadingTracker3DOF(const ASensor* sensor);
51
52 /**
53 * Destructs a 3DOF heading tracker device.
54 */
56
57 /**
58 * The actual event function of this device.
59 * @see AndroidDevice::onEventFunction().
60 */
61 int onEventFunction() override;
62
63 protected:
64
65 /// The Android event timestamp of the first sensor event.
66 int64_t firstAndroidEventTimestamp_ = 0ll;
67
68 /// The Unix event timestamp of the first sensor event.
69 Timestamp firstUnixEventTimestamp_ = Timestamp(false);
70};
71
73{
74 return std::string("Android 3DOF Heading Tracker");
75}
76
77}
78
79}
80
81}
82
83#endif // META_OCEAN_DEVICES_ANDROID_ANDROID_ORIENTATION_TRACKER_3_DOF_H
This class implements a device factory for the Android feature based tracking system.
Definition AndroidFactory.h:31
This class implements a tracker providing the heading/north direction as 3-DOF orientation.
Definition AndroidHeadingTracker3DOF.h:33
~AndroidHeadingTracker3DOF() override
Destructs a 3DOF heading tracker device.
AndroidHeadingTracker3DOF(const ASensor *sensor)
Creates a new 3DOF heading tracker device.
int onEventFunction() override
The actual event function of this device.
static std::string deviceNameAndroidHeadingTracker3DOF()
Returns the name of this tracker.
Definition AndroidHeadingTracker3DOF.h:72
This class implements a sensor for the Android library.
Definition AndroidSensor.h:41
This class is the base class for all 3DOF orientation tracker objects.
Definition OrientationTracker3DOF.h:38
This class implements a timestamp.
Definition Timestamp.h:36
The namespace covering the entire Ocean framework.
Definition Accessor.h:15