openxr-0.1: Bindings to the OpenXR API
Safe HaskellNone
LanguageHaskell2010

OpenXR.Core10.Enums.ReferenceSpaceType

Synopsis

Documentation

newtype ReferenceSpaceType Source #

XrReferenceSpaceType - Reference space types

Description

Available reference space types are indicated by enumerateReferenceSpaces. Note that other spaces can be created as well, such as pose action spaces created by createActionSpace, which are not enumerated by that API.

Enumerant Descriptions

See Also

EventDataReferenceSpaceChangePending, ReferenceSpaceCreateInfo, enumerateReferenceSpaces, getReferenceSpaceBoundsRect

Bundled Patterns

pattern REFERENCE_SPACE_TYPE_VIEW :: ReferenceSpaceType

REFERENCE_SPACE_TYPE_VIEW. The VIEW space tracks the view origin used to generate view transforms for the primary viewer (or centroid of view origins if stereo), with +Y up, +X to the right, and -Z forward. This space points in the forward direction for the viewer without incorporating the user’s eye orientation, and is not gravity-aligned.

VIEW space is primarily useful when projecting from the user’s perspective into another space to obtain a targeting ray, or when rendering small head-locked content such as a reticle. Content rendered in VIEW space will stay at a fixed point on head-mounted displays and may be uncomfortable to view if too large. To obtain the ideal view and projection transforms to use each frame for rendering world content, applications should call locateViews instead of using this space.

Runtimes must support this reference space.

pattern REFERENCE_SPACE_TYPE_LOCAL :: ReferenceSpaceType

REFERENCE_SPACE_TYPE_LOCAL. The LOCAL reference space establishes a world-locked origin, gravity-aligned to exclude pitch and roll, with +Y up, +X to the right, and -Z forward. This space locks in both its initial position and orientation, which the runtime may define to be either the initial position at application launch or some other calibrated zero position.

LOCAL space is useful when an application needs to render seated-scale content that is not positioned relative to the physical floor.

When a user needs to recenter LOCAL space, a runtime may offer some system-level recentering interaction that is transparent to the application, but which causes the current leveled head space to become the new LOCAL space. When such a recentering occurs, the runtime must queue the EventDataReferenceSpaceChangePending event, with the recentered LOCAL space origin only taking effect for locateSpace or locateViews calls whose https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrTime parameter is greater than or equal to the changeTime provided in that event.

When views, controllers or other spaces experience tracking loss relative to the LOCAL space, runtimes should continue to provide inferred or last-known position and orientation values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set XR_SPACE_LOCATION_POSITION_VALID_BIT and XR_VIEW_STATE_POSITION_VALID_BIT but it can clear XR_SPACE_LOCATION_POSITION_TRACKED_BIT and XR_VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way.

When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the LOCAL space’s original origin.

Runtimes must support this reference space.

pattern REFERENCE_SPACE_TYPE_STAGE :: ReferenceSpaceType

REFERENCE_SPACE_TYPE_STAGE. The STAGE reference space is a runtime-defined flat, rectangular space that is empty and can be walked around on. The origin is on the floor at the center of the rectangle, with +Y up, and the X and Z axes aligned with the rectangle edges. The runtime may not be able to locate spaces relative to the STAGE reference space if the user has not yet defined one within the runtime-specific UI. Applications can use getReferenceSpaceBoundsRect to determine the extents of the STAGE reference space’s XZ bounds rectangle, if defined.

STAGE space is useful when an application needs to render standing-scale content (no bounds) or room-scale content (with bounds) that is relative to the physical floor.

When the user redefines the origin or bounds of the current STAGE space, or the runtime otherwise switches to a new STAGE definition, the runtime must queue the EventDataReferenceSpaceChangePending event, with the new STAGE space origin only taking effect for locateSpace or locateViews calls whose https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrTime parameter is greater than or equal to the changeTime provided in that event.

When views, controllers or other spaces experience tracking loss relative to the STAGE space, runtimes should continue to provide inferred or last-known position and orientation values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set XR_SPACE_LOCATION_POSITION_VALID_BIT and XR_VIEW_STATE_POSITION_VALID_BIT but it can clear XR_SPACE_LOCATION_POSITION_TRACKED_BIT and XR_VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way.

When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the STAGE space’s original origin.

pattern REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT :: ReferenceSpaceType 

Instances

Instances details
Eq ReferenceSpaceType Source # 
Instance details

Defined in OpenXR.Core10.Enums.ReferenceSpaceType

Ord ReferenceSpaceType Source # 
Instance details

Defined in OpenXR.Core10.Enums.ReferenceSpaceType

Read ReferenceSpaceType Source # 
Instance details

Defined in OpenXR.Core10.Enums.ReferenceSpaceType

Show ReferenceSpaceType Source # 
Instance details

Defined in OpenXR.Core10.Enums.ReferenceSpaceType

Storable ReferenceSpaceType Source # 
Instance details

Defined in OpenXR.Core10.Enums.ReferenceSpaceType

Zero ReferenceSpaceType Source # 
Instance details

Defined in OpenXR.Core10.Enums.ReferenceSpaceType