// // Created by Admin on 2024/3/29. // #ifndef PICOXRRUNTIME_PICO_AUTO_SCENE_CAPTURE_H #define PICOXRRUNTIME_PICO_AUTO_SCENE_CAPTURE_H #include "pico_spatial_sensing.h" /** * XrStructureType : 1200394000 ~ 1200394999 */ #ifdef __cplusplus extern "C" { #endif #define XR_PICO_auto_scene_capture 1 #define XR_PICO_auto_scene_capture_SPEC_VERSION 1 #define XR_PICO_AUTO_SCENE_CAPTURE_EXTENSION_NAME "XR_PICO_auto_scene_capture" #define XR_PICO_AUTO_SCENE_CAPTURE_MAX_VERTICES_IN_POLYGON 50 static const XrStructureType XR_TYPE_SYSTEM_AUTO_SCENE_CAPTURE_PROPERTIES_PICO = (XrStructureType)1200394000; typedef struct XrSystemAutoSceneCapturePropertiesPICO { XrStructureType type; void* next; XrBool32 supportsAutoSceneCapture; } XrSystemAutoSceneCapturePropertiesPICO; typedef enum XrGeometryTypePICO { XR_GEOMETRY_TYPE_PLANE_PICO = 0, XR_GEOMETRY_TYPE_BOX_PICO = 1, XR_GEOMETRY_TYPE__MAX_ENUM_PICO = 0x7FFFFFFF } XrGeometryTypePICO; typedef struct XrSenseDataProviderCreateInfoAutoSceneCapturePICO{ XrStructureType type; // XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_AUTO_SCENE_CAPTURE_PICO const void* next; } XrSenseDataProviderCreateInfoAutoSceneCapturePICO; static const XrSpatialEntityComponentTypePICO XR_SPATIAL_ENTITY_COMPONENT_TYPE_AUTO_SCENE_CAPTURE_PICO = (XrSpatialEntityComponentTypePICO) 1000; static const XrStructureType XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_AUTO_SCENE_CAPTURE_PICO = (XrStructureType)1200394001; static const XrStructureType XR_TYPE_SPATIAL_ENTITY_AUTO_SCENE_CAPTURE_RESULT_INFO_PICO = (XrStructureType) 1200394002; static const XrStructureType XR_TYPE_SPATIAL_ENTITY_COMPONENT_GET_AUTO_SCENE_CAPTURE_RESULT_INFO_PICO = (XrStructureType) 1200394003; static const XrStructureType XR_TYPE_EVENT_DATA_AUTO_SCENE_CAPTURE_UPDATE_PICO = (XrStructureType) 1200394004; typedef struct XrSenseDataAutoSceneCaptureResultPICO{ XrStructureType type;//XR_SPATIAL_ENTITY_COMPONENT_TYPE_AUTO_SCENE_CAPTURE_PICO const void *XR_MAY_ALIAS next; uint32_t id; XrPosef pose; // XrSpace space;//reference space XrVector3f center; XrVector3f extent; XrSemanticLabelPICO semanticLabel; XrGeometryTypePICO geoType; char edge_completion_flags; uint32_t polygonSize; XrVector3f polygonVertices[XR_PICO_AUTO_SCENE_CAPTURE_MAX_VERTICES_IN_POLYGON]; } XrSenseDataAutoSceneCaptureResultPICO; typedef XrSenseDataAutoSceneCaptureResultPICO XrAutoSceneCaptureResultPICO; typedef struct XrSpatialEntityAutoSceneCaptureResultGetInfoPICO{ XrStructureType type; // XR_TYPE_SPATIAL_ENTITY_COMPONENT_GET_AUTO_SCENE_CAPTURE_RESULT_INFO_PICO const void* next; XrSpatialEntityIdPICO entity; XrSpatialEntityComponentTypePICO componentType; // XR_SPATIAL_ENTITY_COMPONENT_TYPE_AUTO_SCENE_CAPTURE_PICO XrSpace baseSpace; } XrSpatialEntityAutoSceneCaptureResultGetInfoPICO; typedef enum XrAutoSceneCaptureStatePICO{ XR_AUTO_SCENE_CAPTURE_STATE_NOT_DEFINED_PICO = 0, XR_AUTO_SCENE_CAPTURE_STATE_NEW_CAPTURE_RESULT_PICO = 1, XR_AUTO_SCENE_CAPTURE_STATE_OUT_OF_CAPTURE_ZONE_PICO = 2, XR_AUTO_SCENE_CAPTURE_STATE_ERROR_MESSAGE_PICO = 3, XR_AUTO_SCENE_CAPTURE_STATUS_MAX_ENUM_PICO = 0x7FFFFFFF } XrAutoSceneCaptureStatePICO; typedef struct XrEventDataAutoSceneCaptureUpdatePICO { XrStructureType type; // XR_TYPE_EVENT_DATA_AUTO_SCENE_CAPTURE_UPDATE_PICO const void* next; XrAutoSceneCaptureStatePICO state; uint32_t msg; } XrEventDataAutoSceneCaptureUpdatePICO; #ifdef __cplusplus } #endif #endif //PICOXRRUNTIME_PICO_AUTO_SCENE_CAPTURE_H