C Specification

The XrTrackablePlaneANDROID structure is defined as:

// Provided by XR_ANDROID_trackables
typedef struct XrTrackablePlaneANDROID {
    XrStructureType           type;
    void*                     next;
    XrTrackingStateANDROID    trackingState;
    XrPosef                   centerPose;
    XrExtent2Df               extents;
    XrPlaneTypeANDROID        planeType;
    XrPlaneLabelANDROID       planeLabel;
    XrTrackableANDROID        subsumedByPlane;
    XrTime                    lastUpdatedTime;
    uint32_t                  vertexCapacityInput;
    uint32_t*                 vertexCountOutput;
    XrVector2f*               vertices;
} XrTrackablePlaneANDROID;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR or this extension.

  • trackingState is the XrTrackingStateANDROID of the plane.

  • centerPose is an XrPosef defining the position and orientation of the plane within the reference frame of the corresponding XrTrackableGetInfoANDROID::baseSpace. An identity orientation here represents a set of axes with +Y parallel to the plane’s normal.

  • extents is the XrExtent2Df dimension of the plane.

  • planeType is the XrPlaneTypeANDROID that the runtime has determined for this plane.

  • planeLabel is the XrPlaneLabelANDROID that the runtime has determined for this plane.

  • subsumedByPlane is the XrTrackableANDROID of the plane that subsumes this plane (XR_NULL_TRACKABLE_ANDROID if none exists).

  • lastUpdatedTime is the XrTime of the last update of the plane, meaning any of its properties may be different, e.g. planeLabel.

  • vertexCapacityInput is the capacity of the vertices array, or 0 to indicate a request to retrieve the required capacity.

  • vertexCountOutput is the count of vertices written, or the required capacity in the case that vertices is insufficient.

  • vertices is a pointer to an array of XrVector2f. It can be NULL if vertexCapacityInput is 0. The vertices are in counter-clockwise order. The polygon may be concave and must not be self-intersecting.

  • See the https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#fundamentals-buffer-size-parameters section for a detailed description of retrieving the required vertices size. However, it is important to note that unlike the "structure form" example given in that section, vertexCountOutput is a pointer instead of a value type.

Description

When the runtime has acquired enough environment information to detect that 2 tracked planes are actually the same plane, it must set the XrTrackablePlaneANDROID::subsumedByPlane of one of the planes to the handle of the other. When this happens, the plane information returned in both of the associated planes must be identical. The application should stop querying for information about planes that have been reported as subsumed.

Warning

Unlike the typical structure forms used for https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#fundamentals-buffer-size-parameters, XrTrackablePlaneANDROID::vertexCountOutput is a pointer and not a value type.

Valid Usage (Implicit)

See Also

Document Notes

For more information, see the OpenXR Specification

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2025 The Khronos Group Inc.