123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- using System;
- using System.Runtime.InteropServices;
- namespace Unity.XR.PICO.TOBSupport
- {
- // pico slam results
- [StructLayout(LayoutKind.Sequential)]
- public struct SixDof
- {
- public Int64 timestamp; // nanoseconds
- public double x; // position X
- public double y; // position Y
- public double z; // position Z
- public double rw; // rotation W
- public double rx; // rotation X
- public double ry; // rotation Y
- public double rz; // rotation Z
- public byte type; //1:6DOF 0:3DOF
- public byte confidence; //1:good 0:bad
- public PoseErrorType error;
- public double plane_height;
- public byte plane_status;
- public byte relocation_status;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)]
- public byte[] reserved;
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct AlgoResult
- {
- public SixDof pose;
- public SixDof relocation_pose;
- public double vx, vy, vz; // linear velocity
- public double ax, ay, az; // linear acceleration
- public double wx, wy, wz; // angular velocity
- public double w_ax, w_ay, w_az; // angular acceleration
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)]
- public byte[] reserved;
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct FrameItem
- {
- public byte camera_id;
- public UInt32 width; // width
- public UInt32 height; // height
- public UInt32 format; // format - rgb24
- public UInt32 exposure_duration; // exposure duration:ns
- public UInt64 timestamp; // start of exposure time:ns (BOOTTIME)
- public UInt64 qtimer_timestamp; // nanoseconds in qtimer
- public UInt64 framenumber; // frame number
- public UInt32 datasize; // datasize
- public IntPtr data; // image data.
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct FrameItemExt
- {
- public FrameItem frame;
- public bool is_rgb;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
- public double[] rgb_tsw_matrix;
- public bool is_anti_distortion;
- public AlgoResult six_dof_pose;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
- public byte[] reserved;
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct Frame
- {
- public UInt32 width; // width
- public UInt32 height; // height
- public UInt64 timestamp; // start of exposure time:ns (BOOTTIME)
- public UInt32 datasize; // datasize
- public IntPtr data; // image data
- public UnityEngine.Pose pose; // The head Pose at the time of image production.(Right-handed coordinate system: X right, Y up, Z in)
- public int status; // sensor status(1:good 0:bad)
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct SensorState
- {
- public UnityEngine.Pose pose; // Predict the head Pose at the screen up time.(Right-handed coordinate system: X right, Y up, Z in)
- public int status; // sensor status(1:good 0:bad)
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct RGBCameraParams
- {
- // Intrinsics
- public double fx;
- public double fy;
- public double cx;
- public double cy;
- // Extrinsics
- public double x;
- public double y;
- public double z;
- public double rw;
- public double rx;
- public double ry;
- public double rz;
- }
- }
|