October3d55/M/PICOOpen7991a2a23d57V5/Source/ThirdParty/openxr/pico_auto_scene_capture.h

96 lines
3.8 KiB
C
Raw Normal View History

2025-03-10 09:43:27 +08:00
//
// 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