Ocean
Loading...
Searching...
No Matches
ACDepthTracker6DOF.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_ARCORE_AC_DEPTH_TRACKER_6_DOF_H
9#define META_OCEAN_DEVICES_ARCORE_AC_DEPTH_TRACKER_6_DOF_H
10
13
15
16namespace Ocean
17{
18
19namespace Devices
20{
21
22namespace ARCore
23{
24
25/*
26 * This class implements the 6DOF depth tracker.
27 * @ingroup devicescore
28 */
29class OCEAN_DEVICES_ARCORE_EXPORT ACDepthTracker6DOF final :
30 virtual public ACDevice,
31 virtual public SceneTracker6DOF
32{
33 friend class ARSessionManager;
34 friend class ACFactory;
35
36 public:
37
38 /**
39 * Returns the name of this tracker.
40 * @return The trackers's name
41 */
42 static inline std::string deviceNameACDepthTracker6DOF();
43
44 /**
45 * Returns the device type of this tracker.
46 * @return The tracker's device type
47 */
48 static inline DeviceType deviceTypeACDepthTracker6DOF();
49
50 protected:
51
52 /**
53 * Creates a new 6DOF scene tracker.
54 */
56
57 /**
58 * Destructs this 6DOF tracker.
59 */
61
62 /**
63 * Event function for new 6DOF transformations.
64 * @param world_T_camera The transformation between camera and world, invalid if unknown/lost
65 * @param depth The depth frame, must be valid
66 * @param depthCamera The depth camera defining the projection of the depth frame, must be valid
67 * @param device_T_depth The transformation between depth image and device, must be valid
68 * @param timestamp The timestamp of the new transformation
69 */
70 void onNewSample(const HomogenousMatrix4& world_T_camera, Frame&& depth, SharedAnyCamera&& depthCamera, const HomogenousMatrix4& device_T_depth, const Timestamp& timestamp);
71};
72
74{
75 return std::string("ARCore 6DOF Depth Tracker");
76}
77
82
83}
84
85}
86
87}
88
89#endif // META_OCEAN_DEVICES_ARCORE_AC_DEPTH_TRACKER_6_DOF_H
Definition ACDepthTracker6DOF.h:32
ACDepthTracker6DOF()
Creates a new 6DOF scene tracker.
static DeviceType deviceTypeACDepthTracker6DOF()
Returns the device type of this tracker.
Definition ACDepthTracker6DOF.h:78
~ACDepthTracker6DOF() override
Destructs this 6DOF tracker.
void onNewSample(const HomogenousMatrix4 &world_T_camera, Frame &&depth, SharedAnyCamera &&depthCamera, const HomogenousMatrix4 &device_T_depth, const Timestamp &timestamp)
Event function for new 6DOF transformations.
static std::string deviceNameACDepthTracker6DOF()
Returns the name of this tracker.
Definition ACDepthTracker6DOF.h:73
This class implements a device for the ARCore library.
Definition ACDevice.h:36
This class implements a device factory for the ARCore tracking library.
Definition ACFactory.h:29
This class implements a wrapper around the actual ARCore tracker which may be used by several devices...
Definition ARSessionManager.h:41
Definition of a class holding the major and minor device type.
Definition devices/Device.h:62
This class implements the base for all 6-DOF scene trackers.
Definition SceneTracker6DOF.h:42
static DeviceType deviceTypeTracker6DOF()
Definition of this device type.
Definition Tracker6DOF.h:100
@ TRACKER_VISUAL
Tracker using a visual input for their measurements.
Definition devices/Tracker.h:62
@ SCENE_TRACKER_6DOF
6DOF scene tracker.
Definition devices/Tracker.h:56
This class implements Ocean's image class.
Definition Frame.h:1808
This class implements a timestamp.
Definition Timestamp.h:36
std::shared_ptr< AnyCamera > SharedAnyCamera
Definition of a shared pointer holding an AnyCamera object with Scalar precision.
Definition AnyCamera.h:60
The namespace covering the entire Ocean framework.
Definition Accessor.h:15