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.
Checking the stable version of the documentation...
OpenXRSpatialEntityExtension
Экспериментальное: This class may be changed or removed in future versions.
Наследует: OpenXRExtensionWrapper < Object
Расширение OpenXR, обрабатывающее пространственные объекты.
Описание
Расширение OpenXR, которое обрабатывает пространственные объекты и, при включении, позволяет запрашивать информацию о них. Это расширение также будет автоматически управлять объектами XRTracker для статических объектов.
Методы
add_spatial_entity(spatial_context: RID, entity_id: int, entity: int) |
|
create_spatial_context(capability_configurations: Array[OpenXRSpatialCapabilityConfigurationBaseHeader], next: OpenXRStructureBase = null, user_callback: Callable = Callable()) |
|
discover_spatial_entities(spatial_context: RID, component_types: PackedInt64Array, next: OpenXRStructureBase = null, user_callback: Callable = Callable()) |
|
discover_spatial_entities_with_component_data(spatial_context: RID, component_data: Array[OpenXRSpatialComponentData], next: OpenXRStructureBase = null, user_callback: Callable = Callable()) |
|
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) |
get_float_buffer(spatial_snapshot: RID, buffer_id: int) const |
|
get_spatial_context_handle(spatial_context: RID) const |
|
get_spatial_context_ready(spatial_context: RID) const |
|
get_spatial_entity_context(entity: RID) const |
|
get_spatial_entity_id(entity: RID) const |
|
get_spatial_snapshot_context(spatial_snapshot: RID) const |
|
get_spatial_snapshot_handle(spatial_snapshot: RID) const |
|
get_string(spatial_snapshot: RID, buffer_id: int) const |
|
get_uint8_buffer(spatial_snapshot: RID, buffer_id: int) const |
|
get_uint16_buffer(spatial_snapshot: RID, buffer_id: int) const |
|
get_uint32_buffer(spatial_snapshot: RID, buffer_id: int) const |
|
get_vector2_buffer(spatial_snapshot: RID, buffer_id: int) const |
|
get_vector3_buffer(spatial_snapshot: RID, buffer_id: int) const |
|
make_spatial_entity(spatial_context: RID, entity_id: int) |
|
query_snapshot(spatial_snapshot: RID, component_data: Array[OpenXRSpatialComponentData], next: OpenXRStructureBase = null) |
|
supports_capability(capability: Capability) |
|
supports_component_type(capability: Capability, component_type: ComponentType) |
|
update_spatial_entities(spatial_context: RID, entities: Array[RID], component_types: PackedInt64Array, next: OpenXRStructureBase = null) |
Сигналы
spatial_discovery_recommended(spatial_context: RID) 🔗
Появляется, когда 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) 🔗
Создаёт снимок состояния ограниченного числа объектов. Это НЕ асинхронный метод, и снимок будет возвращён немедленно.