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

Експериментальний: This class may be changed or removed in future versions.

Успадковує: OpenXRExtensionWrapper < Object

Розширення OpenXR, яке обробляє просторові об'єкти.

Опис

Розширення OpenXR, яке обробляє просторові об'єкти та, якщо його ввімкнено, дозволяє запитувати ці просторові об'єкти. Це розширення також автоматично керуватиме об'єктами XRTracker для статичних об'єктів.

Методи

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)


Сигнали

Видається, коли OpenXR рекомендує виконати запит на виявлення, оскільки об'єкти, якими керує цей просторовий контекст, (ймовірно) змінилися.


Переліки

enum Capability: 🔗

Capability CAPABILITY_PLANE_TRACKING = 1000741000

Можливість відстеження літака.

Capability CAPABILITY_MARKER_TRACKING_QR_CODE = 1000743000

Можливість відстеження маркерів на основі QR-коду.

Capability CAPABILITY_MARKER_TRACKING_MICRO_QR_CODE = 1000743001

Можливість відстеження маркерів на основі мікро QR-коду.

Capability CAPABILITY_MARKER_TRACKING_ARUCO_MARKER = 1000743002

Можливість відстеження маркерів на основі маркерів Aruco.

Capability CAPABILITY_MARKER_TRACKING_APRIL_TAG = 1000743003

Можливість відстеження маркерів на основі квітневих тегів.

Capability CAPABILITY_ANCHOR = 1000762000

Можливість анкерування.


enum ComponentType: 🔗

ComponentType COMPONENT_TYPE_BOUNDED_2D = 1

Компонент, що забезпечує двовимірні межі для просторової сутності. Відповідна структура списку — XrSpatialComponentBounded2DListEXT; відповідна структура даних — XrSpatialBounded2DDataEXT.

ComponentType COMPONENT_TYPE_BOUNDED_3D = 2

Компонент, що забезпечує 3D-межі для просторової сутності. Відповідна структура списку — XrSpatialComponentBounded3DListEXT; відповідна структура даних — XrBoxf.

ComponentType COMPONENT_TYPE_PARENT = 3

Компонент, що надає XrSpatialEntityIdEXT батьківського об'єкта для просторової сутності. Відповідна структура списку — XrSpatialComponentParentListEXT; відповідна структура даних — XrSpatialEntityIdEXT.

ComponentType COMPONENT_TYPE_MESH_3D = 4

Компонент, що забезпечує 3D-сітку для просторової сутності. Відповідна структура списку — XrSpatialComponentMesh3DListEXT; відповідна структура даних — XrSpatialMeshDataEXT.

ComponentType COMPONENT_TYPE_PLANE_ALIGNMENT = 1000741000

Компонент, що надає перелік вирівнювання площини для просторової сутності. Відповідна структура списку — XrSpatialComponentPlaneAlignmentListEXT; відповідна структура даних — XrSpatialPlaneAlignmentEXT (додано розширенням XR_EXT_spatial_plane_tracking).

ComponentType COMPONENT_TYPE_MESH_2D = 1000741001

Компонент, що забезпечує двовимірну сітку для просторової сутності. Відповідна структура списку — XrSpatialComponentMesh2DListEXT; відповідна структура даних — XrSpatialMeshDataEXT (додано розширенням XR_EXT_spatial_plane_tracking).

ComponentType COMPONENT_TYPE_POLYGON_2D = 1000741002

Компонент, що надає 2D-полігон меж для просторової сутності. Відповідна структура списку — XrSpatialComponentPolygon2DListEXT; відповідна структура даних — XrSpatialPolygon2DDataEXT (додано розширенням XR_EXT_spatial_plane_tracking).

ComponentType COMPONENT_TYPE_PLANE_SEMANTIC_LABEL = 1000741003

Компонент, що надає семантичну мітку для площини. Відповідна структура списку — XrSpatialComponentPlaneSemanticLabelListEXT; відповідна структура даних — XrSpatialPlaneSemanticLabelEXT (додано розширенням XR_EXT_spatial_plane_tracking).

ComponentType COMPONENT_TYPE_MARKER = 1000743000

Компонент, що описує тип, ідентифікатор та розташування маркера. Відповідна структура списку — XrSpatialComponentMarkerListEXT; відповідна структура даних — XrSpatialMarkerDataEXT (додано розширенням XR_EXT_spatial_marker_tracking).

ComponentType COMPONENT_TYPE_ANCHOR = 1000762000

Компонент, що надає місце для якоря. Відповідна структура списку — XrSpatialComponentAnchorListEXT; відповідна структура даних — XrPosef (додано розширенням XR_EXT_spatial_anchor).

ComponentType COMPONENT_TYPE_PERSISTENCE = 1000763000

Компонент, що надає збережений UUID для просторової сутності. Відповідна структура списку — XrSpatialComponentPersistenceListEXT; відповідна структура даних — [code]XrSpatialPersistenceDataEXT (додано розширенням XR_EXT_spatial_persistence).


Описи методів

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

Реєструє сутність, створену безпосередньо у середовищі виконання OpenXR.


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

Створює новий просторовий контекст, який обробляє сутності для наданих конфігурацій можливостей. capability_configurations – це масив OpenXRSpatialCapabilityConfigurationBaseHeader з необхідними даними конфігурації можливостей.

next – це необов'язковий параметр, який може містити додаткову інформацію для створення нашого просторового контексту.

Примітка: Це асинхронний метод, який повертає об'єкт OpenXRFutureResult для відстеження статусу. Відкидання цього об'єкта не скасує процес створення. У разі успіху буде викликано user_callback, якщо вказано. Результуючими даними для цієї функції є RID для нашого просторового контексту.


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

Запускає новий запит на виявлення, який збере всі об'єкти, що відстежуються параметром spatial_context, що мають принаймні один із типів компонентів, зазначених у параметрі component_types.

next – це необов'язковий параметр, який може містити додаткову інформацію для виконання запиту на виявлення.

Примітка: Це асинхронний метод, який повертає об'єкт OpenXRFutureResult для відстеження статусу. Відкидання цього об'єкта не скасує процес виявлення. У разі успіху буде викликано user_callback, якщо його вказано. Результатом цієї функції є RID для нашого знімка.


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

Зручний метод, коли у виклику є лише Array у OpenXRSpatialComponentData і потрібно виявити просторові об’єкти.


RID find_spatial_entity(entity_id: int) 🔗

Повертає RID для вказаного ідентифікатора просторової сутності.


void free_spatial_context(spatial_context: RID) 🔗

Звільняє просторовий контекст, створений раніше під час виклику create_spatial_context(). Якщо створення просторового контексту все ще триває, асинхронний процес скасовується.


void free_spatial_entity(entity: RID) 🔗

Звільняє сутність, створену раніше, під час виклику методу add_spatial_entity() або make_spatial_entity().


void free_spatial_snapshot(spatial_snapshot: RID) 🔗

Звільняє просторовий знімок, створений раніше під час виклику discover_spatial_entities(). Якщо створення просторового знімка все ще триває, асинхронний процес скасовується.


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

Повертає буфер із числами з плаваючою комою з буфера, який був отриманий під час створення знімка.


int get_spatial_context_handle(spatial_context: RID) const 🔗

Повертає дескриптор просторового контексту OpenXR для цього знімка.

Примітка: Цей метод призначений для використання з GDExtensions, які реалізують обробники можливостей просторових сутностей.


bool get_spatial_context_ready(spatial_context: RID) const 🔗

Повертає true, якщо просторовий контекст завершено створення та готовий до використання.


RID get_spatial_entity_context(entity: RID) const 🔗

Повертає просторовий контекст для цієї сутності.


int get_spatial_entity_id(entity: RID) const 🔗

Повертає внутрішній XrSpatialEntityIdEXT, пов'язаний із сутністю.


RID get_spatial_snapshot_context(spatial_snapshot: RID) const 🔗

Повертає просторовий контекст, пов'язаний з цим просторовим знімком.


int get_spatial_snapshot_handle(spatial_snapshot: RID) const 🔗

Повертає дескриптор просторового знімка OpenXR для цього знімка.

Примітка: Цей метод призначений для використання з GDExtensions, які реалізують обробники можливостей просторових сутностей.


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

Повертає рядок з буфера, який було отримано під час створення знімка.


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

Повертає буфер з 8-бітовими цілими числами з буфера, отриманого під час створення знімка.


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

Повертає буфер із 16-бітовими цілими числами з буфера, отриманого під час створення знімка.


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

Повертає буфер із 32-бітними цілими числами з буфера, отриманого під час створення знімка.


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

Повертає буфер із записами Vector2 з буфера, отриманого під час створення знімка.


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

Повертає буфер із записами Vector3 з буфера, отриманого під час створення знімка.


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

Створює нову сутність для цього параметра entity_id. Параметр spatial_context має відповідати контексту, у якому було виявлено сутність.


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

Запитує дані знімка. Це знайде всі сутності на знімку, які містять усі запитувані компоненти в component_data. Об'єкти, що зберігаються в component_data, потім будуть заповнені запитуваними даними. component_data завжди повинен мати об'єкт OpenXRSpatialQueryResultData як перший запис.

next – це необов'язковий параметр, який може містити додаткову інформацію, що передається під час встановлення умов запиту.


bool supports_capability(capability: Capability) 🔗

Повертає true, якщо ця просторова сутність capability підтримується використовуваним обладнанням.


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

Повертає true, якщо ця capability підтримує component_type.


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

Виконує знімок для обмеженої кількості об'єктів. Це НЕ асинхронний метод і повертає знімок негайно.