Monado OpenXR Runtime
Loading...
Searching...
No Matches
t_constellation_tracker.h
Go to the documentation of this file.
1// Copyright 2026, Beyley Cardellio
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief Header defining the constellation tracker parameters and functions.
6 * @author Beyley Cardellio <ep1cm1n10n123@gmail.com>
7 * @ingroup xrt_iface
8 */
9
10#pragma once
11
13
14#include "tracking/t_tracking.h"
15
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21#define XRT_CONSTELLATION_MAX_TRACKING_MOSAICS (1)
22
23struct t_constellation_tracker;
24
25/*!
26 * @public @memberof t_constellation_tracker
27
28 * A constellation tracker camera is a single camera that the constellation tracker will use to track devices. The
29 * constellation tracker will provide the blob sink for this camera.
30 */
32{
33 //! The calibration for this camera
35
36 //! The position of this camera, in the mosaic's tracking origin.
38 /*
39 * Whether this camera has a concrete pose in the tracking origin, or if we don't know the current position and
40 * need to compute it.
41 */
42 bool has_concrete_pose;
43
44 /*!
45 * The blob sink for this camera, this is an out parameter filled in by the constellation tracker, and you are
46 * expected to pass this to your blobwatch implementation.
47 */
49};
50
51/*!
52 * @public @memberof t_constellation_tracker
53 *
54 * A constellation tracker camera mosaic is a set of cameras that may or may not be physically attached, but
55 * importantly, they all fire at the same time and are synchronized with each other.
56 */
58{
59 /*
60 * The constellation tracking source for this mosaic, if any. This is used as the origin of any cameras in the
61 * mosaic.
62 */
63 struct t_constellation_tracker_tracking_source *tracking_origin;
64
65 //! The cameras in this mosaic, with their blob sinks filled in by the constellation tracker.
66 struct t_constellation_tracker_camera cameras[XRT_TRACKING_MAX_CAMS];
67 //! The number of cameras in this mosaic.
69};
70
71/*!
72 * @public @memberof t_constellation_tracker
73 *
74 * Parameters for adding a device to the constellation tracker.
75 */
77{
78 //! The constellation pattern for this device.
80
81 /*
82 * An optional tracking source to give the constellation tracker extra information to better throw out bad
83 * guesses when finding the device.
84 */
85 struct t_constellation_tracker_tracking_source *tracking_source;
86};
87
88/*!
89 * @public @memberof t_constellation_tracker
90 */
92{
93 struct t_constellation_tracker_camera_mosaic mosaics[XRT_CONSTELLATION_MAX_TRACKING_MOSAICS];
94 size_t num_mosaics;
95};
96
97/*!
98 * @public @memberof t_constellation_tracker
99 */
100int
101t_constellation_tracker_create(struct xrt_frame_context *xfctx,
102 struct t_constellation_tracker_params *params,
103 struct t_constellation_tracker **out_tracker);
104
105int
106t_constellation_tracker_add_device(struct t_constellation_tracker *tracker,
108 struct t_constellation_tracker_device *device,
109 t_constellation_device_id_t *out_device_id);
110
111int
112t_constellation_tracker_remove_device(struct t_constellation_tracker *tracker, t_constellation_device_id_t device);
113
114#ifdef __cplusplus
115}
116#endif
A generic interface to allow a tracking system to receive "snapshots" of seen t_blob in a frame.
Definition t_constellation.h:94
Essential calibration data for a single camera, or single lens/sensor of a stereo camera.
Definition t_tracking.h:236
A constellation tracker camera mosaic is a set of cameras that may or may not be physically attached,...
Definition t_constellation_tracker.h:58
struct t_constellation_tracker_camera cameras[XRT_TRACKING_MAX_CAMS]
The cameras in this mosaic, with their blob sinks filled in by the constellation tracker.
Definition t_constellation_tracker.h:66
size_t num_cameras
The number of cameras in this mosaic.
Definition t_constellation_tracker.h:68
A constellation tracker camera is a single camera that the constellation tracker will use to track de...
Definition t_constellation_tracker.h:32
struct t_blob_sink * blob_sink
The blob sink for this camera, this is an out parameter filled in by the constellation tracker,...
Definition t_constellation_tracker.h:48
struct xrt_pose pose_in_origin
The position of this camera, in the mosaic's tracking origin.
Definition t_constellation_tracker.h:37
struct t_camera_calibration calibration
The calibration for this camera.
Definition t_constellation_tracker.h:34
Parameters for adding a device to the constellation tracker.
Definition t_constellation_tracker.h:77
struct t_constellation_tracker_led_model led_model
The constellation pattern for this device.
Definition t_constellation_tracker.h:79
A constellation tracker device is a device that the constellation tracker will attempt to track in 6d...
Definition t_constellation.h:314
The LED model is a series of points which define the real-world positions of all LEDs.
Definition t_constellation.h:259
Definition t_constellation_tracker.h:92
A constellation tracker tracking source is an arbitrary source of tracking data for the constellation...
Definition t_constellation.h:214
Object used to track all sinks and frame producers in a graph.
Definition xrt_frame.h:108
A pose composed of a position and orientation.
Definition xrt_defines.h:492
Header defining the tracking system integration in Monado.
Tracking API interface.