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

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

Eredita: OpenXRExtensionWrapper < Object

Estensione di OpenXR che gestisce entità spaziali.

Descrizione

Estensione di OpenXR che gestisce entità spaziali e, se abilitata, consente di interrogarle. Questa estensione gestirà automaticamente anche gli oggetti XRTracker per le entità statiche.

Metodi

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)


Segnali

Emesso quando OpenXR consiglia di effettuare una richiesta di individuazione perché le entità gestite da questo contesto spaziale sono (probabilmente) cambiate.


Enumerazioni

enum Capability: 🔗

Capability CAPABILITY_PLANE_TRACKING = 1000741000

Capacità di tracciamento dei piani.

Capability CAPABILITY_MARKER_TRACKING_QR_CODE = 1000743000

Capacità di tracciamento dei marcatori basata su codici QR.

Capability CAPABILITY_MARKER_TRACKING_MICRO_QR_CODE = 1000743001

Capacità di tracciamento dei marcatori basata su codici micro QR.

Capability CAPABILITY_MARKER_TRACKING_ARUCO_MARKER = 1000743002

Capacità di tracciamento dei marcatori basata su marcatori Aruco.

Capability CAPABILITY_MARKER_TRACKING_APRIL_TAG = 1000743003

Capacità di tracciamento dei marcatori basata su April tag.

Capability CAPABILITY_ANCHOR = 1000762000

Capacità di ancoraggio.


enum ComponentType: 🔗

ComponentType COMPONENT_TYPE_BOUNDED_2D = 1

Componente che fornisce i limiti 2D per un'entità spaziale. La struttura di lista corrispondente è XrSpatialComponentBounded2DListEXT; la struttura dati corrispondente è XrSpatialBounded2DDataEXT.

ComponentType COMPONENT_TYPE_BOUNDED_3D = 2

Componente che fornisce i limiti 3D per un'entità spaziale. La struttura di lista corrispondente è XrSpatialComponentBounded3DListEXT; la struttura dati corrispondente è XrBoxf.

ComponentType COMPONENT_TYPE_PARENT = 3

Componente che fornisce l'XrSpatialEntityIdEXT del padre per un'entità spaziale. La struttura di lista corrispondente è XrSpatialComponentParentListEXT; la struttura dati corrispondente è XrSpatialEntityIdEXT.

ComponentType COMPONENT_TYPE_MESH_3D = 4

Componente che fornisce una mesh 3D per un'entità spaziale. La struttura di lista corrispondente è XrSpatialComponentMesh3DListEXT; la struttura dati corrispondente è XrSpatialMeshDataEXT.

ComponentType COMPONENT_TYPE_PLANE_ALIGNMENT = 1000741000

Componente che fornisce l'enumerazione dell'allineamento di un piano per un'entità spaziale. La struttura di lista corrispondente è XrSpatialComponentPlaneAlignmentListEXT; la struttura dati corrispondente è XrSpatialPlaneAlignmentEXT (aggiunta dall'estensione XR_EXT_spatial_plane_tracking).

ComponentType COMPONENT_TYPE_MESH_2D = 1000741001

Componente che fornisce una mesh 2D per un'entità spaziale. La struttura di lista corrispondente è XrSpatialComponentMesh2DListEXT; la struttura dati corrispondente è XrSpatialMeshDataEXT (aggiunta dall'estensione XR_EXT_spatial_plane_tracking).

ComponentType COMPONENT_TYPE_POLYGON_2D = 1000741002

Componente che fornisce una poligono di confine 2D per un'entità spaziale. La struttura di lista corrispondente è XrSpatialComponentPolygon2DListEXT; la struttura dati corrispondente è XrSpatialPolygon2DDataEXT (aggiunta dall'estensione XR_EXT_spatial_plane_tracking).

ComponentType COMPONENT_TYPE_PLANE_SEMANTIC_LABEL = 1000741003

Componente che fornisce un'etichetta semantica per un piano. La struttura di lista corrispondente è XrSpatialComponentPlaneSemanticLabelListEXT; la struttura dati corrispondente è XrSpatialPlaneSemanticLabelEXT (aggiunta dall'estensione XR_EXT_spatial_plane_tracking).

ComponentType COMPONENT_TYPE_MARKER = 1000743000

Componente che describe il tipo di marcatore, l'ID e posizione. La struttura di lista corrispondente è XrSpatialComponentMarkerListEXT; la struttura dati corrispondente è XrSpatialMarkerDataEXT (aggiunta dall'estensione XR_EXT_spatial_marker_tracking).

ComponentType COMPONENT_TYPE_ANCHOR = 1000762000

Componente che fornisce la posizione per un ancoraggio. La struttura di elenco corrispondente è XrSpatialComponentAnchorListEXT; la struttura dati corrispondente è XrPosef (aggiunta dall'estensione XR_EXT_spatial_anchor).

ComponentType COMPONENT_TYPE_PERSISTENCE = 1000763000

Componente che fornisce l'UUID persistente per un'entità spaziale. La struttura di lista corrispondente è XrSpatialComponentPersistenceListEXT; la struttura dati corrispondente è [code]XrSpatialPersistenceDataEXT (aggiunta dall'estensione XR_EXT_spatial_persistence).


Descrizioni dei metodi

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

Registra un'entità che è stata creata direttamente nel runtime OpenXR.


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

Crea un nuovo contesto spaziale che gestisce le entità per le configurazioni di capacità fornite. capability_configurations è un array di OpenXRSpatialCapabilityConfigurationBaseHeader contenente i dati di configurazione delle capacità necessari.

next è un parametro facoltativo che può contenere ulteriori informazioni per creare il contesto spaziale.

Nota: Questo è un metodo asincrono e restituisce un oggetto OpenXRFutureResult con cui tenere traccia dello stato; scartare questo oggetto non annullerà il processo di creazione. In caso di successo, verrà richiamato user_callback se specificato. I dati risultanti da questa funzione sono il RID del contesto spaziale.


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

Avvia una nuova richiesta di individuazione, che raccoglierà tutti gli oggetti tracciati dal contesto spaziale spatial_context che hanno almeno uno dei tipi di componente specificati in component_types.

next è un parametro facoltativo che può contenere ulteriori informazioni per eseguire la richiesta di individuazione.

Nota: Questo è un metodo asincrono e restituisce un oggetto OpenXRFutureResult con cui tenere traccia dello stato; scartare questo oggetto non annullerà il processo di individuazione. In caso di successo, verrà richiamata la funzione user_callback se specificata. I dati risultanti per questa funzione sono il RID del nostro snapshot.


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

Metodo di convenienza quando il chiamante ha solo un Array di OpenXRSpatialComponentData e deve individuare entità spaziali.


RID find_spatial_entity(entity_id: int) 🔗

Restituisce l'RID per l'ID di entità spaziale specificato.


void free_spatial_context(spatial_context: RID) 🔗

Libera un contesto spaziale creato in precedenza tramite create_spatial_context(). Se la creazione del contesto spaziale è ancora in corso, il processo asincrono viene annullato.


void free_spatial_entity(entity: RID) 🔗

Libera un'entità creata in precedenza tramite add_spatial_entity() o make_spatial_entity().


void free_spatial_snapshot(spatial_snapshot: RID) 🔗

Libera uno snapshot spaziale creato in precedenza tramite discover_spatial_entities(). Se la creazione dello snapshot spaziale è ancora in corso, il processo asincrono viene annullato.


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

Restituisce un buffer con valori float da un buffer recuperato alla cattura di uno snapshot.


int get_spatial_context_handle(spatial_context: RID) const 🔗

Restituisce il gestore OpenXR del contesto spaziale per questo snapshot.

Nota: Questo metodo è destinato all'uso da GDExtension che implementano gestori di capacità di entità spaziali.


bool get_spatial_context_ready(spatial_context: RID) const 🔗

Restituisce true se il contesto spaziale ha terminato la sua creazione ed è pronto all'uso.


RID get_spatial_entity_context(entity: RID) const 🔗

Restituisce il contesto spaziale per questa entità.


int get_spatial_entity_id(entity: RID) const 🔗

Restituisce il XrSpatialEntityIdEXT interno associato all'entità.


RID get_spatial_snapshot_context(spatial_snapshot: RID) const 🔗

Restituisce il contesto spaziale relativo a questo snapshot spaziale.


int get_spatial_snapshot_handle(spatial_snapshot: RID) const 🔗

Restituisce il gestore OpenXR dello snapshot spaziale per questo snapshot.

Nota: Questo metodo è destinato all'uso da GDExtension che implementano gestori di capacità di entità spaziali.


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

Restituisce una stringa da un buffer recuperato alla cattura di uno snapshot.


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

Restituisce un buffer con interi a 8 bit da un buffer recuperato alla cattura di uno snapshot.


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

Restituisce un buffer con interi a 16 bit da un buffer recuperato alla cattura di uno snapshot.


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

Restituisce un buffer con interi a 32 bit da un buffer recuperato alla cattura di uno snapshot.


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

Restituisce un buffer con elementi Vector2 da un buffer recuperato alla cattura di uno snapshot.


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

Restituisce un buffer con elementi Vector3 da un buffer recuperato alla cattura di uno snapshot.


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

Crea una nuova entità per questo entity_id. Il contesto spaziale spatial_context deve corrispondere al contesto che ha individuato l'entità.


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

Interroga i dati dello snapshot. Individuerà tutte le entità presenti nello snapshot che contengono tutti i componenti richiesti specificati in component_data. Gli oggetti contenuti in component_data verranno quindi popolati con i dati interrogati. component_data deve sempre contenere un oggetto di tipo OpenXRSpatialQueryResultData come prima voce.

next è un parametro facoltativo che può contenere ulteriori informazioni passate durante l'impostazione delle condizioni da interrogare.


bool supports_capability(capability: Capability) 🔗

Restituisce true se la capacità capability di entità spaziale è supportata dall'hardware utilizzato.


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

Restituisce true se la capacità capability supporta il tipo di componente component_type.


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

Cattura uno snapshot per un numero limitato di entità. Questo metodo NON è asincrono e restituirà lo snapshot immediatamente.