···273 */
274 struct
275 {
0000000000276277- /*!
278- * An observing pointer to the device providing hand
279- * tracking for the left hand (optional).
280- *
281- * Currently this is used for both optical and
282- * controller driven hand-tracking.
283- */
284- struct xrt_device *left;
000000000000285286- /*!
287- * An observing pointer to the device providing hand
288- * tracking for the right hand (optional).
289- *
290- * Currently this is used for both optical and
291- * controller driven hand-tracking.
292- */
293- struct xrt_device *right;
0294 } hand_tracking;
295 } static_roles;
296
···273 */
274 struct
275 {
276+ struct
277+ {
278+ /*!
279+ * An observing pointer to the device providing
280+ * unobstructed hand-tracking for the left hand (optional).
281+ *
282+ * can reference the same xrt_device instance as
283+ * @ref hand_tracking::conforming::left, if provides both input types.
284+ */
285+ struct xrt_device *left;
286287+ /*!
288+ * An observing pointer to the device providing
289+ * unobstructed hand-tracking for the right hand (optional).
290+ *
291+ * can reference the same xrt_device instance as
292+ * @ref hand_tracking::conforming::right, if provides both input types.
293+ */
294+ struct xrt_device *right;
295+ } unobstructed;
296+297+ struct
298+ {
299+ /*!
300+ * An observing pointer to the device providing
301+ * conforming (controller) hand-tracking for the left hand (optional).
302+ *
303+ * can reference the same xrt_device instance as
304+ * @ref hand_tracking::unobstructed::left, if provides both input types.
305+ */
306+ struct xrt_device *left;
307308+ /*!
309+ * An observing pointer to the device providing
310+ * conforming (controller) hand-tracking for the right hand (optional).
311+ *
312+ * can reference the same xrt_device instance as
313+ * @ref hand_tracking::unobstructed::right, if provides both input types.
314+ */
315+ struct xrt_device *right;
316+ } conforming;
317 } hand_tracking;
318 } static_roles;
319