175 lines
6.4 KiB
C
175 lines
6.4 KiB
C
//
|
|
// Created by bytedance on 2024/3/26.
|
|
//
|
|
|
|
#ifndef PICOXRRUNTIME_PICO_SPATIAL_ANCHOR_H
|
|
#define PICOXRRUNTIME_PICO_SPATIAL_ANCHOR_H
|
|
#include "pico_spatial_sensing.h"
|
|
|
|
|
|
/**
|
|
* XrStructureType : 1200390000 ~ 1200390999
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define XR_PICO_spatial_anchor 1
|
|
#define XR_PICO_spatial_anchor_SPEC_VERSION 1
|
|
#define XR_PICO_SPATIAL_ANCHOR_EXTENSION_NAME "XR_PICO_spatial_anchor"
|
|
|
|
static const XrResult XR_ERROR_SPACE_LOCATING_PICO = (XrResult)-1200390101;
|
|
|
|
static const XrStructureType XR_TYPE_SYSTEM_SPATIAL_ANCHOR_PROPERTIES_PICO = (XrStructureType)1200390000;
|
|
typedef struct XrSystemSpatialAnchorPropertiesPICO {
|
|
XrStructureType type;
|
|
void* next;
|
|
XrBool32 supportsSpatialAnchor;
|
|
} XrSystemSpatialAnchorPropertiesPICO;
|
|
|
|
static const XrStructureType XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_ANCHOR_PICO = (XrStructureType) 1200390001;
|
|
typedef struct XrSenseDataProviderCreateInfoSpatialAnchorPICO{
|
|
XrStructureType type; //XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_ANCHOR_PICO
|
|
const void* next;
|
|
} XrSenseDataProviderCreateInfoSpatialAnchorPICO;
|
|
|
|
// Create spatial anchor
|
|
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_PICO = (XrStructureType) 1200390002;
|
|
typedef struct XrSpatialAnchorCreateInfoPICO {
|
|
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_PICO
|
|
const void* next;
|
|
XrSpace space;
|
|
XrPosef pose;
|
|
XrTime time;
|
|
} XrSpatialAnchorCreateInfoPICO;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorAsyncPICO)(
|
|
XrSenseDataProviderPICO provider,
|
|
XrSpatialAnchorCreateInfoPICO *info,
|
|
XrFutureEXT *future);
|
|
|
|
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_CREATE_COMPLETION_PICO = (XrStructureType) 1200390003;
|
|
typedef struct XrSpatialAnchorCreateCompletionPICO {
|
|
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_CREATE_COMPLETION_PICO
|
|
const void* next;
|
|
XrResult futureResult;
|
|
XrAnchorPICO anchor;
|
|
XrUuidEXT uuid;
|
|
} XrSpatialAnchorCreateCompletionPICO;
|
|
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorCompletePICO)(
|
|
XrSenseDataProviderPICO provider,
|
|
XrFutureEXT future,
|
|
XrSpatialAnchorCreateCompletionPICO* completion);
|
|
|
|
typedef enum XrPersistenceLocationPICO {
|
|
XR_PERSISTENCE_LOCATION_LOCAL_PICO = 0,
|
|
//XR_PERSISTENCE_LOCATION_REMOTE_PICO = 1,
|
|
XR_PERSISTENCE_LOCATION_MAX_ENUM_PICO = 0x7FFFFFFF
|
|
} XrPersistenceLocationPICO;
|
|
|
|
// Persist spatial anchor
|
|
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_PERSIST_INFO_PICO = (XrStructureType) 1200390004;
|
|
typedef struct XrSpatialAnchorPersistInfoPICO {
|
|
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_PERSIST_INFO_PICO
|
|
const void* next;
|
|
XrPersistenceLocationPICO location;
|
|
XrAnchorPICO anchor;
|
|
} XrSpatialAnchorPersistInfoPICO;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorAsyncPICO)(
|
|
XrSenseDataProviderPICO provider,
|
|
XrSpatialAnchorPersistInfoPICO *info,
|
|
XrFutureEXT *future);
|
|
|
|
|
|
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_PERSIST_COMPLETION_PICO = (XrStructureType) 1200390005;
|
|
typedef struct XrSpatialAnchorPersistCompletionPICO {
|
|
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_PERSIST_COMPLETION_PICO
|
|
const void* next;
|
|
XrResult futureResult;
|
|
XrAnchorPICO anchor;
|
|
XrUuidEXT uuid;
|
|
}XrSpatialAnchorPersistCompletionPICO;
|
|
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorCompletePICO)(
|
|
XrSenseDataProviderPICO provider,
|
|
XrFutureEXT future,
|
|
XrSpatialAnchorPersistCompletionPICO* completion);
|
|
|
|
|
|
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_INFO_PICO = (XrStructureType) 1200390006;
|
|
typedef struct XrSpatialAnchorUnpersistInfoPICO {
|
|
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_INFO_PICO
|
|
const void* next;
|
|
XrPersistenceLocationPICO location;
|
|
XrAnchorPICO anchor;
|
|
} XrSpatialAnchorUnpersistInfoPICO;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorAsyncPICO)(
|
|
XrSenseDataProviderPICO provider,
|
|
XrSpatialAnchorUnpersistInfoPICO *info,
|
|
XrFutureEXT *future);
|
|
|
|
|
|
static const XrStructureType XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_COMPLETION_PICO = (XrStructureType) 1200390007;
|
|
typedef struct XrSpatialAnchorUnpersistCompletionPICO {
|
|
XrStructureType type;//XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_COMPLETION_PICO
|
|
const void* next;
|
|
XrResult futureResult;
|
|
XrAnchorPICO anchor;
|
|
XrUuidEXT uuid;
|
|
}XrSpatialAnchorUnpersistCompletionPICO;
|
|
|
|
typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorCompletePICO)(
|
|
XrSenseDataProviderPICO provider,
|
|
XrFutureEXT future,
|
|
XrSpatialAnchorUnpersistCompletionPICO *completion);
|
|
|
|
|
|
#ifndef XR_NO_PROTOTYPES
|
|
#ifdef XR_EXTENSION_PROTOTYPES
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorAsyncPICO(
|
|
XrSenseDataProviderPICO provider,
|
|
XrSpatialAnchorCreateInfoPICO *info,
|
|
XrFutureEXT *future);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorCompletePICO(
|
|
XrSenseDataProviderPICO provider,
|
|
XrFutureEXT future,
|
|
XrSpatialAnchorCreateCompletionPICO* completion);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorAsyncPICO(
|
|
XrSenseDataProviderPICO provider,
|
|
XrSpatialAnchorPersistInfoPICO *info,
|
|
XrFutureEXT *future);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorCompletePICO(
|
|
XrSenseDataProviderPICO provider,
|
|
XrFutureEXT future,
|
|
XrSpatialAnchorPersistCompletionPICO* completion);
|
|
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorAsyncPICO(
|
|
XrSenseDataProviderPICO provider,
|
|
XrSpatialAnchorUnpersistInfoPICO *info,
|
|
XrFutureEXT *future);
|
|
|
|
XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorCompletePICO(
|
|
XrSenseDataProviderPICO provider,
|
|
XrFutureEXT future,
|
|
XrSpatialAnchorUnpersistCompletionPICO *completion);
|
|
|
|
|
|
|
|
#endif /* XR_EXTENSION_PROTOTYPES */
|
|
#endif /* !XR_NO_PROTOTYPES */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif //PICOXRRUNTIME_PICO_SPATIAL_ANCHOR_H
|