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

Компонент, предоставляющий трёхмерные границы для пространственного объекта. Соответствующая структура списка: XrSpatialComponentBounded2DListEXT; соответствующая структура данных: XrBoxf.

ComponentType COMPONENT_TYPE_PARENT = 3

Компонент, предоставляющий XrSpatialEntityIdEXT родительского элемента для пространственной сущности. Соответствующая структура списка: XrSpatialComponentParentListEXT; соответствующая структура данных: XrSpatialEntityIdEXT.

ComponentType COMPONENT_TYPE_MESH_3D = 4

Компонент, предоставляющий трёхмерную-сетку для пространственного объекта. Соответствующая структура списка: 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

Компонент, предоставляющий двумерный полигон границы для пространственного объекта. Соответствующая структура списка — 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()) 🔗

Вспомогательный метод, когда у вызывающей стороны есть только массив 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) 🔗

Создаёт снимок состояния ограниченного числа объектов. Это НЕ асинхронный метод, и снимок будет возвращён немедленно.