OpenXRSpatialEntityExtension
Расширение OpenXR, обрабатывающее пространственные объекты.
Расширение OpenXR, обрабатывающее пространственные объекты.
Расширение OpenXR, которое обрабатывает пространственные объекты и, при включении, позволяет запрашивать информацию о них. Это расширение также будет автоматически управлять объектами XRTracker для статических объектов.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
OpenXRSpatialEntityExtensionКонструктор
public OpenXRSpatialEntityExtension();Методы29
AddSpatialEntityRid
public Rid AddSpatialEntity(Rid spatialContext, ulong entityId, ulong entity);Регистрирует объект, созданный непосредственно в среде выполнения OpenXR.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
entityId | ulong | — |
entity | ulong | — |
RidCreateSpatialContext2 перегрузки
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 (как целое число) и булеан, указывающий на то, не удалось ли запросить результат, или выполнение не сработало.
| Имя | Тип | По умолчанию |
|---|---|---|
capabilityConfigurations | Reckfell.Collections.Array<OpenXRSpatialCapabilityConfigurationBaseHeader> | — |
next | OpenXRStructureBase | — |
userCallback | Callable | — |
OpenXRFutureResultpublic 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 (как целое число) и булеан, указывающий на то, не удалось ли запросить результат, или выполнение не сработало.
| Имя | Тип | По умолчанию |
|---|---|---|
capabilityConfigurations | Reckfell.Collections.Array<OpenXRSpatialCapabilityConfigurationBaseHeader> | — |
next | OpenXRStructureBase | null |
userCallback | Callable | default |
failedCallback | Callable | default |
OpenXRFutureResultDiscoverSpatialEntities2 перегрузки
public OpenXRFutureResult DiscoverSpatialEntities(Rid spatialContext, long[] componentTypes, OpenXRStructureBase next = null, Callable userCallback = default);Запускает новый запрос обнаружения, который соберёт все объекты, отслеживаемые параметром spatial_context, имеющие хотя бы один из типов компонентов, указанных в component_types.next — необязательный параметр, который может содержать дополнительную информацию для выполнения запроса обнаружения.Примечание: Это асинхронный метод, возвращающий объект OpenXRFutureResult, с помощью которого отслеживается статус; удаление этого объекта не отменит процесс обнаружения. В случае успеха будет вызван user_callback, если он указан. Результатом этой функции является Rid для нашего снимка.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
componentTypes | long[] | — |
next | OpenXRStructureBase | null |
userCallback | Callable | default |
OpenXRFutureResultpublic OpenXRFutureResult DiscoverSpatialEntities(Rid spatialContext, ReadOnlySpan<long> componentTypes, OpenXRStructureBase next, Callable userCallback);Запускает новый запрос обнаружения, который соберёт все объекты, отслеживаемые параметром spatial_context, имеющие хотя бы один из типов компонентов, указанных в component_types.next — необязательный параметр, который может содержать дополнительную информацию для выполнения запроса обнаружения.Примечание: Это асинхронный метод, возвращающий объект OpenXRFutureResult, с помощью которого отслеживается статус; удаление этого объекта не отменит процесс обнаружения. В случае успеха будет вызван user_callback, если он указан. Результатом этой функции является Rid для нашего снимка.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
componentTypes | ReadOnlySpan<long> | — |
next | OpenXRStructureBase | — |
userCallback | Callable | — |
OpenXRFutureResultDiscoverSpatialEntitiesWithComponentDataOpenXRFutureResult
public OpenXRFutureResult DiscoverSpatialEntitiesWithComponentData(Rid spatialContext, Reckfell.Collections.Array<OpenXRSpatialComponentData> componentData, OpenXRStructureBase next = null, Callable userCallback = default);Метод удобства, когда лицо, обращающееся за помощью, имеет только Reckfell.Collections.Array Количество OpenXRSpatialComponentData и нужно найти пространственные объекты.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
componentData | Reckfell.Collections.Array<OpenXRSpatialComponentData> | — |
next | OpenXRStructureBase | null |
userCallback | Callable | default |
OpenXRFutureResultFindSpatialEntityRid
public Rid FindSpatialEntity(ulong entityId);Возвращает Rid для указанного идентификатора пространственного объекта.
| Имя | Тип | По умолчанию |
|---|---|---|
entityId | ulong | — |
RidFreeSpatialContextvoid
public void FreeSpatialContext(Rid spatialContext);Освобождает пространственный контекст, созданный ранее при вызове OpenXRSpatialEntityExtension.CreateSpatialContext. Если создание пространственного контекста продолжается, асинхронный процесс отменяется.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
FreeSpatialEntityvoid
public void FreeSpatialEntity(Rid entity);Освобождает объект, созданный ранее, при вызове метода OpenXRSpatialEntityExtension.AddSpatialEntity или OpenXRSpatialEntityExtension.MakeSpatialEntity.
| Имя | Тип | По умолчанию |
|---|---|---|
entity | Rid | — |
FreeSpatialSnapshotvoid
public void FreeSpatialSnapshot(Rid spatialSnapshot);Освобождает пространственный снимок, созданный ранее при вызове OpenXRSpatialEntityExtension.DiscoverSpatialEntities. Если создание пространственного снимка продолжается, асинхронный процесс отменяется.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialSnapshot | Rid | — |
GetFloatBufferfloat[]
public float[] GetFloatBuffer(Rid spatialSnapshot, ulong bufferId);Возвращает буфер с числами с плавающей запятой из буфера, полученного при создании снимка.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialSnapshot | Rid | — |
bufferId | ulong | — |
float[]GetSpatialContextHandleulong
public ulong GetSpatialContextHandle(Rid spatialContext);Возвращает к этому снимку пространственное устройство OpenXR. Примечание: Этот метод предназначен для использования на основе данных " ReckfellExtensions " , в которых используются операторы пространственных объектов.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
ulongGetSpatialContextReadybool
public bool GetSpatialContextReady(Rid spatialContext);Возвращает true, если создание пространственного контекста закончено, и он готов к использованию.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
boolGetSpatialEntityContextRid
public Rid GetSpatialEntityContext(Rid entity);Возвращает пространственный контекст для этого объекта.
| Имя | Тип | По умолчанию |
|---|---|---|
entity | Rid | — |
RidGetSpatialEntityIdulong
public ulong GetSpatialEntityId(Rid entity);Возвращает внутренний XrSpatialEntityIdEXT, связанный с этим объектом.
| Имя | Тип | По умолчанию |
|---|---|---|
entity | Rid | — |
ulongGetSpatialSnapshotContextRid
public Rid GetSpatialSnapshotContext(Rid spatialSnapshot);Возвращает пространственный контекст, связанный с этим пространственным снимком.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialSnapshot | Rid | — |
RidGetSpatialSnapshotHandleulong
public ulong GetSpatialSnapshotHandle(Rid spatialSnapshot);Возвращает ручку снимка OpenXR для этого снимка. Примечание: Этот метод предназначен для использования на основе данных " ReckfellExtensions " , в которых используются операторы пространственных объектов.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialSnapshot | Rid | — |
ulongGetStringstring
public string GetString(Rid spatialSnapshot, ulong bufferId);Возвращает строку из буфера, полученную при создании снимка.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialSnapshot | Rid | — |
bufferId | ulong | — |
stringGetUint16Bufferint[]
public int[] GetUint16Buffer(Rid spatialSnapshot, ulong bufferId);Возвращает буфер с 16-битными целыми числами из буфера, полученного при создании снимка.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialSnapshot | Rid | — |
bufferId | ulong | — |
int[]GetUint32Bufferint[]
public int[] GetUint32Buffer(Rid spatialSnapshot, ulong bufferId);Возвращает буфер с 32-битными целыми числами из буфера, полученного при создании снимка.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialSnapshot | Rid | — |
bufferId | ulong | — |
int[]GetUint8Bufferbyte[]
public byte[] GetUint8Buffer(Rid spatialSnapshot, ulong bufferId);Возвращает буфер с 8-битными целыми числами из буфера, полученного при создании снимка.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialSnapshot | Rid | — |
bufferId | ulong | — |
byte[]GetVector2BufferVector2[]
public Vector2[] GetVector2Buffer(Rid spatialSnapshot, ulong bufferId);Возвращает буфер с записями Vector2 из буфера, полученного при создании снимка.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialSnapshot | Rid | — |
bufferId | ulong | — |
Vector2[]GetVector3BufferVector3[]
public Vector3[] GetVector3Buffer(Rid spatialSnapshot, ulong bufferId);Возвращает буфер с записями Vector3 из буфера, полученного при создании снимка.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialSnapshot | Rid | — |
bufferId | ulong | — |
Vector3[]MakeSpatialEntityRid
public Rid MakeSpatialEntity(Rid spatialContext, ulong entityId);Создаёт новый объект для entity_id. spatial_context должен соответствовать контексту, в котором объект был обнаружен.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
entityId | ulong | — |
RidQuerySnapshotbool
public bool QuerySnapshot(Rid spatialSnapshot, Reckfell.Collections.Array<OpenXRSpatialComponentData> componentData, OpenXRStructureBase next = null);Выполняет запрос к данным снимка. Это позволит найти все сущности в снимке, содержащие все запрошенные компоненты в component_data. Затем объекты, хранящиеся в component_data, будут заполнены запрошенными данными. component_data всегда должен содержать объект OpenXRSpatialQueryResultData в качестве первой записи.
next — необязательный параметр, который может содержать дополнительную информацию, передаваемую при установке условий запроса.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialSnapshot | Rid | — |
componentData | Reckfell.Collections.Array<OpenXRSpatialComponentData> | — |
next | OpenXRStructureBase | null |
boolSupportsCapabilitybool
public bool SupportsCapability(OpenXRSpatialEntityExtension.Capability capability);Возвращает true, если пространственный объект capability поддерживается используемым оборудованием.
| Имя | Тип | По умолчанию |
|---|---|---|
capability | OpenXRSpatialEntityExtension.Capability | — |
boolSupportsComponentTypebool
public bool SupportsComponentType(OpenXRSpatialEntityExtension.Capability capability, OpenXRSpatialEntityExtension.ComponentType componentType);Возвращает true, если capability поддерживает component_type.
| Имя | Тип | По умолчанию |
|---|---|---|
capability | OpenXRSpatialEntityExtension.Capability | — |
componentType | OpenXRSpatialEntityExtension.ComponentType | — |
boolUpdateSpatialEntities2 перегрузки
public Rid UpdateSpatialEntities(Rid spatialContext, Reckfell.Collections.Array<Rid> entities, long[] componentTypes, OpenXRStructureBase next = null);Создаёт снимок состояния ограниченного числа объектов. Это НЕ асинхронный метод, и снимок будет возвращён немедленно.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
entities | Reckfell.Collections.Array<Rid> | — |
componentTypes | long[] | — |
next | OpenXRStructureBase | null |
Ridpublic Rid UpdateSpatialEntities(Rid spatialContext, Reckfell.Collections.Array<Rid> entities, ReadOnlySpan<long> componentTypes, OpenXRStructureBase next);Создаёт снимок состояния ограниченного числа объектов. Это НЕ асинхронный метод, и снимок будет возвращён немедленно.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
entities | Reckfell.Collections.Array<Rid> | — |
componentTypes | ReadOnlySpan<long> | — |
next | OpenXRStructureBase | — |
RidСигналы и события1
SpatialDiscoveryRecommendedСобытие
public event OpenXRSpatialEntityExtension.SpatialDiscoveryRecommendedEventHandler SpatialDiscoveryRecommended;Появляется, когда OpenXR рекомендует выполнить запрос на обнаружение, поскольку объекты, управляемые этим пространственным контекстом (вероятно), изменились.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
OpenXRSpatialEntityExtension.Capability
| Значение | Описание |
|---|---|
Anchor = 1000762000 | Возможность привязки. |
MarkerTrackingAprilTag = 1000743003 | Возможность отслеживания местоположения с помощью апрельских тегов. |
MarkerTrackingArucoMarker = 1000743002 | Возможности отслеживания маркеров на основе маркеров ArUco. |
MarkerTrackingMicroQrCode = 1000743001 | Возможность отслеживания местоположения с помощью микро-QR-кодов. |
MarkerTrackingQrCode = 1000743000 | Возможность отслеживания маркеров на основе QR-кода. |
PlaneTracking = 1000741000 | Plane :: способность отслеживать. |
OpenXRSpatialEntityExtension.ComponentType
| Значение | Описание |
|---|---|
Anchor = 1000762000 | Компонент, предоставляющий местоположение для привязки. Соответствующая структура списка — |
Bounded2D = 1 | Компонент, предоставляющий двумерные границы для пространственного объекта. Соответствующая структура списка: |
Bounded3D = 2 | Компонент, обеспечивающий 3D границы пространственного образования. |
Marker = 1000743000 | Компонент, описывающий тип маркера, его идентификатор и местоположение. Соответствующая структура списка — |
Mesh2D = 1000741001 | Компонент, предоставляющий двумерную сетку для пространственного объекта. Соответствующая структура списка: |
Mesh3D = 4 | Компонент, предоставляющий трёхмерную-сетку для пространственного объекта. Соответствующая структура списка: |
Parent = 3 | Компонент, предоставляющий XrSpatialEntityIdEXT родительского элемента для пространственной сущности. Соответствующая структура списка: |
Persistence = 1000763000 | Компонент, обеспечивающий непрерывное использование НУИР для пространственного образования. |
PlaneAlignment = 1000741000 | Компонент, предоставляющий перечисление выравнивания плоскости для пространственного объекта. Соответствующая структура списка — |
PlaneSemanticLabel = 1000741003 | Компонент, предоставляющий семантическую метку для плоскости. Соответствующая структура списка: |
Polygon2D = 1000741002 | Компонент, предоставляющий двумерный полигон границы для пространственного объекта. Соответствующая структура списка — |
OpenXRSpatialEntityExtension.TrackingState
| Значение | Описание |
|---|---|
Enabled = 2 | Отслеживание включено и работает. |
NoPermission = -2 | Разрешение, требуемое логикой отслеживания, отсутствует. |
NotActive = 0 | Отслеживание в настоящее время не осуществляется. |
SettingUp = 1 | Ведется отслеживание. |
SetupFailed = -1 | Не удалось настроить логику отслеживания, посоветуйтесь с журналами для получения более подробной информации. |
UnsupportedCapability = -3 | Потенциал, обеспечиваемый при создании пространственного контекста для отслеживания, не поддерживается. |