Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

OpenXRSpatialEntityExtension

Experimental: This class may be changed or removed in future versions.

Hereda: OpenXRExtensionWrapper < Object

Extensión de OpenXR que maneja entidades espaciales.

Descripción

Extensión de OpenXR que maneja entidades espaciales y, cuando está habilitada, permite consultar esas entidades espaciales. Esta extensión también gestionará automáticamente objetos XRTracker para entidades estáticas.

Métodos

RID

add_spatial_entity(spatial_context: RID, entity_id: int, entity: int)

OpenXRFutureResult

create_spatial_context(capability_configurations: Array[OpenXRSpatialCapabilityConfigurationBaseHeader], next: OpenXRStructureBase = null, user_callback: Callable = Callable())

OpenXRFutureResult

discover_spatial_entities(spatial_context: RID, component_types: PackedInt64Array, next: OpenXRStructureBase = null, user_callback: Callable = Callable())

OpenXRFutureResult

discover_spatial_entities_with_component_data(spatial_context: RID, component_data: Array[OpenXRSpatialComponentData], next: OpenXRStructureBase = null, user_callback: Callable = Callable())

RID

find_spatial_entity(entity_id: int)

void

free_spatial_context(spatial_context: RID)

void

free_spatial_entity(entity: RID)

void

free_spatial_snapshot(spatial_snapshot: RID)

PackedFloat32Array

get_float_buffer(spatial_snapshot: RID, buffer_id: int) const

int

get_spatial_context_handle(spatial_context: RID) const

bool

get_spatial_context_ready(spatial_context: RID) const

RID

get_spatial_entity_context(entity: RID) const

int

get_spatial_entity_id(entity: RID) const

RID

get_spatial_snapshot_context(spatial_snapshot: RID) const

int

get_spatial_snapshot_handle(spatial_snapshot: RID) const

String

get_string(spatial_snapshot: RID, buffer_id: int) const

PackedByteArray

get_uint8_buffer(spatial_snapshot: RID, buffer_id: int) const

PackedInt32Array

get_uint16_buffer(spatial_snapshot: RID, buffer_id: int) const

PackedInt32Array

get_uint32_buffer(spatial_snapshot: RID, buffer_id: int) const

PackedVector2Array

get_vector2_buffer(spatial_snapshot: RID, buffer_id: int) const

PackedVector3Array

get_vector3_buffer(spatial_snapshot: RID, buffer_id: int) const

RID

make_spatial_entity(spatial_context: RID, entity_id: int)

bool

query_snapshot(spatial_snapshot: RID, component_data: Array[OpenXRSpatialComponentData], next: OpenXRStructureBase = null)

bool

supports_capability(capability: Capability)

bool

supports_component_type(capability: Capability, component_type: ComponentType)

RID

update_spatial_entities(spatial_context: RID, entities: Array[RID], component_types: PackedInt64Array, next: OpenXRStructureBase = null)


Señales

Emitido cuando OpenXR recomienda ejecutar una consulta de descubrimiento porque las entidades gestionadas por este contexto espacial han (probablemente) cambiado.


Enumeraciones

enum Capability: 🔗

Capability CAPABILITY_PLANE_TRACKING = 1000741000

Capacidad de seguimiento de planos.

Capability CAPABILITY_MARKER_TRACKING_QR_CODE = 1000743000

Capacidad de seguimiento de marcadores basada en códigos QR.

Capability CAPABILITY_MARKER_TRACKING_MICRO_QR_CODE = 1000743001

Capacidad de seguimiento de marcadores basada en códigos Micro QR.

Capability CAPABILITY_MARKER_TRACKING_ARUCO_MARKER = 1000743002

Capacidad de seguimiento de marcadores basada en marcadores Aruco.

Capability CAPABILITY_MARKER_TRACKING_APRIL_TAG = 1000743003

Capacidad de seguimiento de marcadores basada en etiquetas AprilTag.

Capability CAPABILITY_ANCHOR = 1000762000

Capacidad de anclaje.


enum ComponentType: 🔗

ComponentType COMPONENT_TYPE_BOUNDED_2D = 1

Componente que proporciona los límites 2D para una entidad espacial. La estructura de lista correspondiente es XrSpatialComponentBounded2DListEXT; la estructura de datos correspondiente es XrSpatialBounded2DDataEXT.

ComponentType COMPONENT_TYPE_BOUNDED_3D = 2

Componente que proporciona los límites 3D para una entidad espacial. La estructura de lista correspondiente es XrSpatialComponentBounded3DListEXT; la estructura de datos correspondiente es XrBoxf.

ComponentType COMPONENT_TYPE_PARENT = 3

Componente que proporciona el XrSpatialEntityIdEXT del padre para una entidad espacial. La estructura de lista correspondiente es XrSpatialComponentParentListEXT; la estructura de datos correspondiente es XrSpatialEntityIdEXT.

ComponentType COMPONENT_TYPE_MESH_3D = 4

Componente que proporciona una malla 3D para una entidad espacial. La estructura de lista correspondiente es XrSpatialComponentMesh3DListEXT; la estructura de datos correspondiente es XrSpatialMeshDataEXT.

ComponentType COMPONENT_TYPE_PLANE_ALIGNMENT = 1000741000

Componente que proporciona la enumeración de alineación del plano para una entidad espacial. La estructura de lista correspondiente es XrSpatialComponentPlaneAlignmentListEXT; la estructura de datos correspondiente es XrPlaneAlignmentEXT (añadido por la extensión XR_EXT_spatial_plane_tracking.

ComponentType COMPONENT_TYPE_MESH_2D = 1000741001

Component that provides a 2D mesh for a spatial entity. The corresponding list structure is XrSpatialComponentMesh2DListEXT; the corresponding data structure is XrSpatialMeshDataEXT (Added by the XR_EXT_spatial_plane_tracking extension).

ComponentType COMPONENT_TYPE_POLYGON_2D = 1000741002

Componente que proporciona un polígono de límite 2D para una entidad espacial. La estructura de lista correspondiente es XrSpatialComponentPolygon2DListEXT; la estructura de datos correspondiente es XrSpatialPolygon2DDataEXT (añadido por la extensión XR_EXT_spatial_plane_tracking).

ComponentType COMPONENT_TYPE_PLANE_SEMANTIC_LABEL = 1000741003

Componente que proporciona una etiqueta semántica para un plano. La estructura de lista correspondiente es XrSpatialComponentPlaneSemanticLabelListEXT; la estructura de datos correspondiente es XrSpatialPlaneSemanticLabelEXT (añadido por la extensión XR_EXT_spatial_plane_tracking).

ComponentType COMPONENT_TYPE_MARKER = 1000743000

Un componente que describe el tipo de marcador, ID y ubicación. La estructura de lista correspondiente es XrSpatialComponentMarkerListEXT; la estructura de datos correspondiente es XrSpatialMarkerDataEXT (añadido por la extensión XR_EXT_spatial_marker_tracking).

ComponentType COMPONENT_TYPE_ANCHOR = 1000762000

Componente que proporciona la ubicación para un ancla. La estructura de lista correspondiente es XrSpatialComponentAnchorListEXT; la estructura de datos correspondiente es XrPosef (añadido por la extensión XR_EXT_spatial_anchor).

ComponentType COMPONENT_TYPE_PERSISTENCE = 1000763000

Componente que proporciona el UUID persistido para una entidad espacial. La estructura de lista correspondiente es XrSpatialComponentPersistenceListEXT; la estructura de datos correspondiente es [code]XrSpatialPersistenceDataEXT (añadido por la extensión XR_EXT_spatial_persistence).


Descripciones de Métodos

RID add_spatial_entity(spatial_context: RID, entity_id: int, entity: int) 🔗

Registra una entidad que fue creada directamente en el tiempo de ejecución de OpenXR.


OpenXRFutureResult create_spatial_context(capability_configurations: Array[OpenXRSpatialCapabilityConfigurationBaseHeader], next: OpenXRStructureBase = null, user_callback: Callable = Callable()) 🔗

Crea un nuevo contexto espacial que maneja entidades para las configuraciones de capacidad proporcionadas. capability_configurations es un array de OpenXRSpatialCapabilityConfigurationBaseHeader con los datos de configuración de capacidad necesarios.

next es un parámetro opcional que puede contener información adicional para crear nuestro contexto espacial.

Nota: Este es un método asíncrono y devuelve un objeto OpenXRFutureResult con el que rastrear el estado; descartar este objeto no cancelará el proceso de creación. Si tiene éxito, se llamará a user_callback si se especifica. Los datos de resultado para esta función son el RID de nuestro contexto espacial.


OpenXRFutureResult discover_spatial_entities(spatial_context: RID, component_types: PackedInt64Array, next: OpenXRStructureBase = null, user_callback: Callable = Callable()) 🔗

Starts a new discovery query, this will gather all objects tracked by the spatial_context that have at least one of the component types specified in component_types.

next is an optional parameter that can contain additional information for executing the discovery query.

Note: This is an asynchronous method and returns an OpenXRFutureResult object with which to track the status, discarding this object will not cancel the discovery process. On success user_callback will be called if specified. The result data for this function is the RID for our snapshot.


OpenXRFutureResult discover_spatial_entities_with_component_data(spatial_context: RID, component_data: Array[OpenXRSpatialComponentData], next: OpenXRStructureBase = null, user_callback: Callable = Callable()) 🔗

Convenience method when the caller only has an Array of OpenXRSpatialComponentData and needs to discover spatial entities.


RID find_spatial_entity(entity_id: int) 🔗

Devuelve el RID para el ID de entidad espacial especificado.


void free_spatial_context(spatial_context: RID) 🔗

Libera un contexto espacial creado previamente al llamar a create_spatial_context(). Si la creación del contexto espacial aún está en curso, el proceso asíncrono se cancela.


void free_spatial_entity(entity: RID) 🔗

Libera una entidad creada previamente al llamar a add_spatial_entity() o make_spatial_entity().


void free_spatial_snapshot(spatial_snapshot: RID) 🔗

Frees a spatial snapshot previously created when calling discover_spatial_entities(). If the spatial snapshot creation is still ongoing, the asynchronous process is cancelled.


PackedFloat32Array get_float_buffer(spatial_snapshot: RID, buffer_id: int) const 🔗

Returns a buffer with floats from a buffer that was retrieved when taking a snapshot.


int get_spatial_context_handle(spatial_context: RID) const 🔗

Returns the OpenXR spatial context handle for this snapshot.

Note: This method is intended to be used from GDExtensions that implement spatial entity capability handlers.


bool get_spatial_context_ready(spatial_context: RID) const 🔗

Devuelve true si el contexto espacial terminó su creación y está listo para ser usado.


RID get_spatial_entity_context(entity: RID) const 🔗

Devuelve el contexto espacial para esta entidad.


int get_spatial_entity_id(entity: RID) const 🔗

Devuelve el nodo XrSpatialEntityIdEXT asociado con la entidad.


RID get_spatial_snapshot_context(spatial_snapshot: RID) const 🔗

Returns the spatial context related to this spatial snapshot.


int get_spatial_snapshot_handle(spatial_snapshot: RID) const 🔗

Devuelve el manejador de instantánea espacial de OpenXR para esta instantánea.

Nota: Este método está destinado a ser usado desde GDExtensions que implementan manejadores de capacidad de entidad espacial.


String get_string(spatial_snapshot: RID, buffer_id: int) const 🔗

Devuelve una cadena de un búfer que fue recuperado al tomar una instantánea.


PackedByteArray get_uint8_buffer(spatial_snapshot: RID, buffer_id: int) const 🔗

Devuelve un búfer con enteros de 8 bits de un búfer que fue recuperado al tomar una instantánea.


PackedInt32Array get_uint16_buffer(spatial_snapshot: RID, buffer_id: int) const 🔗

Devuelve un búfer con enteros de 16 bits de un búfer que fue recuperado al tomar una instantánea.


PackedInt32Array get_uint32_buffer(spatial_snapshot: RID, buffer_id: int) const 🔗

Devuelve un búfer con enteros de 32 bits de un búfer que fue recuperado al tomar una instantánea.


PackedVector2Array get_vector2_buffer(spatial_snapshot: RID, buffer_id: int) const 🔗

Devuelve un búfer con entradas Vector2 de un búfer que fue recuperado al tomar una instantánea.


PackedVector3Array get_vector3_buffer(spatial_snapshot: RID, buffer_id: int) const 🔗

Devuelve un búfer con entradas Vector3 de un búfer que fue recuperado al tomar una instantánea.


RID make_spatial_entity(spatial_context: RID, entity_id: int) 🔗

Crea una nueva entidad para este entity_id. El spatial_context debe coincidir con el contexto que descubrió la entidad.


bool query_snapshot(spatial_snapshot: RID, component_data: Array[OpenXRSpatialComponentData], next: OpenXRStructureBase = null) 🔗

Véanse los datos de la instantánea. Esto encontrará todas las entidades en la instantánea que contienen todos los componentes solicitados en component_data. Los objetos contenidos en component_data se poblarán con los datos consultados. component_data siempre debe tener un objeto de OpenXRSpatialQueryResultData como primera entrada.

next es un parámetro opcional que puede contener información adicional pasada al establecer nuestras condiciones de consulta.


bool supports_capability(capability: Capability) 🔗

Devuelve true si esta capability de entidad espacial es soportada por el hardware utilizado.


bool supports_component_type(capability: Capability, component_type: ComponentType) 🔗

Devuelve true si esta capability soporta el component_type.


RID update_spatial_entities(spatial_context: RID, entities: Array[RID], component_types: PackedInt64Array, next: OpenXRStructureBase = null) 🔗

Realiza una instantánea para un número limitado de entidades. Este NO es un método asíncrono y devolverá la instantánea inmediatamente.