reckfellENGINE

OpenXRSpatialEntityExtension

Расширение OpenXR, обрабатывающее пространственные объекты.

На этой странице
class OpenXRSpatialEntityExtensionReckfellSharpНаследует OpenXRExtensionWrapper

Расширение OpenXR, обрабатывающее пространственные объекты.

Расширение OpenXR, которое обрабатывает пространственные объекты и, при включении, позволяет запрашивать информацию о них. Это расширение также будет автоматически управлять объектами XRTracker для статических объектов.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

OpenXRSpatialEntityExtensionКонструктор
# OpenXRSpatialEntityExtension
C#
public OpenXRSpatialEntityExtension();

Методы29

AddSpatialEntityRid
# AddSpatialEntity
C#
public Rid AddSpatialEntity(Rid spatialContext, ulong entityId, ulong entity);

Регистрирует объект, созданный непосредственно в среде выполнения OpenXR.

Параметры
ИмяТипПо умолчанию
spatialContextRid—
entityIdulong—
entityulong—
Возвращает Rid
CreateSpatialContext2 перегрузки
# CreateSpatialContext · 1/2
C#
public OpenXRFutureResult CreateSpatialContext(Reckfell.Collections.Array<OpenXRSpatialCapabilityConfigurationBaseHeader> capabilityConfigurations, OpenXRStructureBase next, Callable userCallback);

Создает новый пространственный контекст, в котором обрабатываются субъекты для конфигурации имеющихся возможностей. capability_configurations , представляет собой набор из OpenXRSpatialCapabilityConfigurationBaseHeader с необходимыми данными о конфигурации потенциала. next является факультативным параметром, который может содержать дополнительную информацию для создания нашего пространственного контекста. Примечание: Это асинхронный метод и возвращает OpenXRFutureResult Объект, с которым можно отследить статус, выброс этого объекта не отменяет процесс создания. Об успехе user_callback Если будет указано, будут вызваны данные о результатах этой функции: Rid для нашего пространственного контекста - аргументом будет код результата OpenXR (как целое число). В случае отказа failed_callback будет назван, если указано. Код результата OpenXR будет представлен в виде целого - аргументами будут код результата OpenXR (как целое число) и булеан, указывающий на то, не удалось ли запросить результат, или выполнение не сработало.

Параметры
ИмяТипПо умолчанию
capabilityConfigurationsReckfell.Collections.Array<OpenXRSpatialCapabilityConfigurationBaseHeader>—
nextOpenXRStructureBase—
userCallbackCallable—
Возвращает OpenXRFutureResult
# CreateSpatialContext · 2/2
C#
public OpenXRFutureResult CreateSpatialContext(Reckfell.Collections.Array<OpenXRSpatialCapabilityConfigurationBaseHeader> capabilityConfigurations, OpenXRStructureBase next = null, Callable userCallback = default, Callable failedCallback = default);

Создает новый пространственный контекст, в котором обрабатываются субъекты для конфигурации имеющихся возможностей. capability_configurations , представляет собой набор из OpenXRSpatialCapabilityConfigurationBaseHeader с необходимыми данными о конфигурации потенциала. next является факультативным параметром, который может содержать дополнительную информацию для создания нашего пространственного контекста. Примечание: Это асинхронный метод и возвращает OpenXRFutureResult Объект, с которым можно отследить статус, выброс этого объекта не отменяет процесс создания. Об успехе user_callback Если будет указано, будут вызваны данные о результатах этой функции: Rid для нашего пространственного контекста - аргументом будет код результата OpenXR (как целое число). В случае отказа failed_callback будет назван, если указано. Код результата OpenXR будет представлен в виде целого - аргументами будут код результата OpenXR (как целое число) и булеан, указывающий на то, не удалось ли запросить результат, или выполнение не сработало.

Параметры
ИмяТипПо умолчанию
capabilityConfigurationsReckfell.Collections.Array<OpenXRSpatialCapabilityConfigurationBaseHeader>—
nextOpenXRStructureBasenull
userCallbackCallabledefault
failedCallbackCallabledefault
Возвращает OpenXRFutureResult
DiscoverSpatialEntities2 перегрузки
# DiscoverSpatialEntities · 1/2
C#
public OpenXRFutureResult DiscoverSpatialEntities(Rid spatialContext, long[] componentTypes, OpenXRStructureBase next = null, Callable userCallback = default);

Запускает новый запрос обнаружения, который соберёт все объекты, отслеживаемые параметром spatial_context, имеющие хотя бы один из типов компонентов, указанных в component_types.next — необязательный параметр, который может содержать дополнительную информацию для выполнения запроса обнаружения.Примечание: Это асинхронный метод, возвращающий объект OpenXRFutureResult, с помощью которого отслеживается статус; удаление этого объекта не отменит процесс обнаружения. В случае успеха будет вызван user_callback, если он указан. Результатом этой функции является Rid для нашего снимка.

Параметры
ИмяТипПо умолчанию
spatialContextRid—
componentTypeslong[]—
nextOpenXRStructureBasenull
userCallbackCallabledefault
Возвращает OpenXRFutureResult
# DiscoverSpatialEntities · 2/2
C#
public OpenXRFutureResult DiscoverSpatialEntities(Rid spatialContext, ReadOnlySpan<long> componentTypes, OpenXRStructureBase next, Callable userCallback);

Запускает новый запрос обнаружения, который соберёт все объекты, отслеживаемые параметром spatial_context, имеющие хотя бы один из типов компонентов, указанных в component_types.next — необязательный параметр, который может содержать дополнительную информацию для выполнения запроса обнаружения.Примечание: Это асинхронный метод, возвращающий объект OpenXRFutureResult, с помощью которого отслеживается статус; удаление этого объекта не отменит процесс обнаружения. В случае успеха будет вызван user_callback, если он указан. Результатом этой функции является Rid для нашего снимка.

Параметры
ИмяТипПо умолчанию
spatialContextRid—
componentTypesReadOnlySpan<long>—
nextOpenXRStructureBase—
userCallbackCallable—
Возвращает OpenXRFutureResult
DiscoverSpatialEntitiesWithComponentDataOpenXRFutureResult
# DiscoverSpatialEntitiesWithComponentData
C#
public OpenXRFutureResult DiscoverSpatialEntitiesWithComponentData(Rid spatialContext, Reckfell.Collections.Array<OpenXRSpatialComponentData> componentData, OpenXRStructureBase next = null, Callable userCallback = default);

Метод удобства, когда лицо, обращающееся за помощью, имеет только Reckfell.Collections.Array Количество OpenXRSpatialComponentData и нужно найти пространственные объекты.

Параметры
ИмяТипПо умолчанию
spatialContextRid—
componentDataReckfell.Collections.Array<OpenXRSpatialComponentData>—
nextOpenXRStructureBasenull
userCallbackCallabledefault
Возвращает OpenXRFutureResult
FindSpatialEntityRid
# FindSpatialEntity
C#
public Rid FindSpatialEntity(ulong entityId);

Возвращает Rid для указанного идентификатора пространственного объекта.

Параметры
ИмяТипПо умолчанию
entityIdulong—
Возвращает Rid
FreeSpatialContextvoid
# FreeSpatialContext
C#
public void FreeSpatialContext(Rid spatialContext);

Освобождает пространственный контекст, созданный ранее при вызове OpenXRSpatialEntityExtension.CreateSpatialContext. Если создание пространственного контекста продолжается, асинхронный процесс отменяется.

Параметры
ИмяТипПо умолчанию
spatialContextRid—
FreeSpatialEntityvoid
# FreeSpatialEntity
C#
public void FreeSpatialEntity(Rid entity);

Освобождает объект, созданный ранее, при вызове метода OpenXRSpatialEntityExtension.AddSpatialEntity или OpenXRSpatialEntityExtension.MakeSpatialEntity.

Параметры
ИмяТипПо умолчанию
entityRid—
FreeSpatialSnapshotvoid
# FreeSpatialSnapshot
C#
public void FreeSpatialSnapshot(Rid spatialSnapshot);

Освобождает пространственный снимок, созданный ранее при вызове OpenXRSpatialEntityExtension.DiscoverSpatialEntities. Если создание пространственного снимка продолжается, асинхронный процесс отменяется.

Параметры
ИмяТипПо умолчанию
spatialSnapshotRid—
GetFloatBufferfloat[]
# GetFloatBuffer
C#
public float[] GetFloatBuffer(Rid spatialSnapshot, ulong bufferId);

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

Параметры
ИмяТипПо умолчанию
spatialSnapshotRid—
bufferIdulong—
Возвращает float[]
GetSpatialContextHandleulong
# GetSpatialContextHandle
C#
public ulong GetSpatialContextHandle(Rid spatialContext);

Возвращает к этому снимку пространственное устройство OpenXR. Примечание: Этот метод предназначен для использования на основе данных " ReckfellExtensions " , в которых используются операторы пространственных объектов.

Параметры
ИмяТипПо умолчанию
spatialContextRid—
Возвращает ulong
GetSpatialContextReadybool
# GetSpatialContextReady
C#
public bool GetSpatialContextReady(Rid spatialContext);

Возвращает true, если создание пространственного контекста закончено, и он готов к использованию.

Параметры
ИмяТипПо умолчанию
spatialContextRid—
Возвращает bool
GetSpatialEntityContextRid
# GetSpatialEntityContext
C#
public Rid GetSpatialEntityContext(Rid entity);

Возвращает пространственный контекст для этого объекта.

Параметры
ИмяТипПо умолчанию
entityRid—
Возвращает Rid
GetSpatialEntityIdulong
# GetSpatialEntityId
C#
public ulong GetSpatialEntityId(Rid entity);

Возвращает внутренний XrSpatialEntityIdEXT, связанный с этим объектом.

Параметры
ИмяТипПо умолчанию
entityRid—
Возвращает ulong
GetSpatialSnapshotContextRid
# GetSpatialSnapshotContext
C#
public Rid GetSpatialSnapshotContext(Rid spatialSnapshot);

Возвращает пространственный контекст, связанный с этим пространственным снимком.

Параметры
ИмяТипПо умолчанию
spatialSnapshotRid—
Возвращает Rid
GetSpatialSnapshotHandleulong
# GetSpatialSnapshotHandle
C#
public ulong GetSpatialSnapshotHandle(Rid spatialSnapshot);

Возвращает ручку снимка OpenXR для этого снимка. Примечание: Этот метод предназначен для использования на основе данных " ReckfellExtensions " , в которых используются операторы пространственных объектов.

Параметры
ИмяТипПо умолчанию
spatialSnapshotRid—
Возвращает ulong
GetStringstring
# GetString
C#
public string GetString(Rid spatialSnapshot, ulong bufferId);

Возвращает строку из буфера, полученную при создании снимка.

Параметры
ИмяТипПо умолчанию
spatialSnapshotRid—
bufferIdulong—
Возвращает string
GetUint16Bufferint[]
# GetUint16Buffer
C#
public int[] GetUint16Buffer(Rid spatialSnapshot, ulong bufferId);

Возвращает буфер с 16-битными целыми числами из буфера, полученного при создании снимка.

Параметры
ИмяТипПо умолчанию
spatialSnapshotRid—
bufferIdulong—
Возвращает int[]
GetUint32Bufferint[]
# GetUint32Buffer
C#
public int[] GetUint32Buffer(Rid spatialSnapshot, ulong bufferId);

Возвращает буфер с 32-битными целыми числами из буфера, полученного при создании снимка.

Параметры
ИмяТипПо умолчанию
spatialSnapshotRid—
bufferIdulong—
Возвращает int[]
GetUint8Bufferbyte[]
# GetUint8Buffer
C#
public byte[] GetUint8Buffer(Rid spatialSnapshot, ulong bufferId);

Возвращает буфер с 8-битными целыми числами из буфера, полученного при создании снимка.

Параметры
ИмяТипПо умолчанию
spatialSnapshotRid—
bufferIdulong—
Возвращает byte[]
GetVector2BufferVector2[]
# GetVector2Buffer
C#
public Vector2[] GetVector2Buffer(Rid spatialSnapshot, ulong bufferId);

Возвращает буфер с записями Vector2 из буфера, полученного при создании снимка.

Параметры
ИмяТипПо умолчанию
spatialSnapshotRid—
bufferIdulong—
Возвращает Vector2[]
GetVector3BufferVector3[]
# GetVector3Buffer
C#
public Vector3[] GetVector3Buffer(Rid spatialSnapshot, ulong bufferId);

Возвращает буфер с записями Vector3 из буфера, полученного при создании снимка.

Параметры
ИмяТипПо умолчанию
spatialSnapshotRid—
bufferIdulong—
Возвращает Vector3[]
MakeSpatialEntityRid
# MakeSpatialEntity
C#
public Rid MakeSpatialEntity(Rid spatialContext, ulong entityId);

Создаёт новый объект для entity_id. spatial_context должен соответствовать контексту, в котором объект был обнаружен.

Параметры
ИмяТипПо умолчанию
spatialContextRid—
entityIdulong—
Возвращает Rid
QuerySnapshotbool
# QuerySnapshot
C#
public bool QuerySnapshot(Rid spatialSnapshot, Reckfell.Collections.Array<OpenXRSpatialComponentData> componentData, OpenXRStructureBase next = null);

Выполняет запрос к данным снимка. Это позволит найти все сущности в снимке, содержащие все запрошенные компоненты в component_data. Затем объекты, хранящиеся в component_data, будут заполнены запрошенными данными. component_data всегда должен содержать объект OpenXRSpatialQueryResultData в качестве первой записи. next — необязательный параметр, который может содержать дополнительную информацию, передаваемую при установке условий запроса.

Параметры
ИмяТипПо умолчанию
spatialSnapshotRid—
componentDataReckfell.Collections.Array<OpenXRSpatialComponentData>—
nextOpenXRStructureBasenull
Возвращает bool
SupportsCapabilitybool
# SupportsCapability
C#
public bool SupportsCapability(OpenXRSpatialEntityExtension.Capability capability);

Возвращает true, если пространственный объект capability поддерживается используемым оборудованием.

Параметры
ИмяТипПо умолчанию
capabilityOpenXRSpatialEntityExtension.Capability—
Возвращает bool
SupportsComponentTypebool
# SupportsComponentType
C#
public bool SupportsComponentType(OpenXRSpatialEntityExtension.Capability capability, OpenXRSpatialEntityExtension.ComponentType componentType);

Возвращает true, если capability поддерживает component_type.

Параметры
ИмяТипПо умолчанию
capabilityOpenXRSpatialEntityExtension.Capability—
componentTypeOpenXRSpatialEntityExtension.ComponentType—
Возвращает bool
UpdateSpatialEntities2 перегрузки
# UpdateSpatialEntities · 1/2
C#
public Rid UpdateSpatialEntities(Rid spatialContext, Reckfell.Collections.Array<Rid> entities, long[] componentTypes, OpenXRStructureBase next = null);

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

Параметры
ИмяТипПо умолчанию
spatialContextRid—
entitiesReckfell.Collections.Array<Rid>—
componentTypeslong[]—
nextOpenXRStructureBasenull
Возвращает Rid
# UpdateSpatialEntities · 2/2
C#
public Rid UpdateSpatialEntities(Rid spatialContext, Reckfell.Collections.Array<Rid> entities, ReadOnlySpan<long> componentTypes, OpenXRStructureBase next);

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

Параметры
ИмяТипПо умолчанию
spatialContextRid—
entitiesReckfell.Collections.Array<Rid>—
componentTypesReadOnlySpan<long>—
nextOpenXRStructureBase—
Возвращает Rid

Сигналы и события1

SpatialDiscoveryRecommendedСобытие
# SpatialDiscoveryRecommended
C#
public event OpenXRSpatialEntityExtension.SpatialDiscoveryRecommendedEventHandler SpatialDiscoveryRecommended;

Появляется, когда OpenXR рекомендует выполнить запрос на обнаружение, поскольку объекты, управляемые этим пространственным контекстом (вероятно), изменились.

Параметры обработчика
ИмяТипПо умолчанию
spatialContextRid—

OpenXRSpatialEntityExtension.Capability

ЗначениеОписание
Anchor = 1000762000

Возможность привязки.

MarkerTrackingAprilTag = 1000743003

Возможность отслеживания местоположения с помощью апрельских тегов.

MarkerTrackingArucoMarker = 1000743002

Возможности отслеживания маркеров на основе маркеров ArUco.

MarkerTrackingMicroQrCode = 1000743001

Возможность отслеживания местоположения с помощью микро-QR-кодов.

MarkerTrackingQrCode = 1000743000

Возможность отслеживания маркеров на основе QR-кода.

PlaneTracking = 1000741000

Plane :: способность отслеживать.

OpenXRSpatialEntityExtension.ComponentType

ЗначениеОписание
Anchor = 1000762000

Компонент, предоставляющий местоположение для привязки. Соответствующая структура списка — XrSpatialComponentAnchorListEXT; соответствующая структура данных — XrPosef (добавлена расширением XR_EXT_spatial_anchor).

Bounded2D = 1

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

Bounded3D = 2

Компонент, обеспечивающий 3D границы пространственного образования. XrSpatialComponentBounded3DListEXT; соответствующая структура данных: XrBoxf.

Marker = 1000743000

Компонент, описывающий тип маркера, его идентификатор и местоположение. Соответствующая структура списка — XrSpatialComponentMarkerListEXT; соответствующая структура данных — XrSpatialMarkerDataEXT (добавлена расширением XR_EXT_spatial_marker_tracking).

Mesh2D = 1000741001

Компонент, предоставляющий двумерную сетку для пространственного объекта. Соответствующая структура списка: XrSpatialComponentMesh2DListEXT; соответствующая структура данных: XrSpatialMeshDataEXT (добавлена расширением XR_EXT_spatial_plane_tracking).

Mesh3D = 4

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

Parent = 3

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

Persistence = 1000763000

Компонент, обеспечивающий непрерывное использование НУИР для пространственного образования. XrSpatialComponentPersistenceListEXT; the corresponding data structure is XrSpatialPersistenceDataEXT(Added by theXR_EXT_sustrial_perstistence' расширение).

PlaneAlignment = 1000741000

Компонент, предоставляющий перечисление выравнивания плоскости для пространственного объекта. Соответствующая структура списка — XrSpatialComponentPlaneAlignmentListEXT; соответствующая структура данных — XrSpatialPlaneAlignmentEXT (добавлена расширением XR_EXT_spatial_plane_tracking).

PlaneSemanticLabel = 1000741003

Компонент, предоставляющий семантическую метку для плоскости. Соответствующая структура списка: XrSpatialComponentPlaneSemanticLabelListEXT; соответствующая структура данных: XrSpatialPlaneSemanticLabelEXT (добавлена расширением XR_EXT_spatial_plane_tracking).

Polygon2D = 1000741002

Компонент, предоставляющий двумерный полигон границы для пространственного объекта. Соответствующая структура списка — XrSpatialComponentPolygon2DListEXT; соответствующая структура данных — XrSpatialPolygon2DDataEXT (добавлена расширением XR_EXT_spatial_plane_tracking).

OpenXRSpatialEntityExtension.TrackingState

ЗначениеОписание
Enabled = 2

Отслеживание включено и работает.

NoPermission = -2

Разрешение, требуемое логикой отслеживания, отсутствует.

NotActive = 0

Отслеживание в настоящее время не осуществляется.

SettingUp = 1

Ведется отслеживание.

SetupFailed = -1

Не удалось настроить логику отслеживания, посоветуйтесь с журналами для получения более подробной информации.

UnsupportedCapability = -3

Потенциал, обеспечиваемый при создании пространственного контекста для отслеживания, не поддерживается.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.