using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using Intel.RealSense; using UnityEngine; public class RsPoseStreamTransformer : MonoBehaviour { [StructLayout(LayoutKind.Sequential)] public class RsPose { public Vector3 translation; public Vector3 velocity; public Vector3 acceleration; public Quaternion rotation; public Vector3 angular_velocity; public Vector3 angular_acceleration; public int tracker_confidence; public int mapper_confidence; } RsPose pose = new RsPose(); public RsFrameProvider Source; FrameQueue q; void Start() { Source.OnStart += OnStartStreaming; Source.OnStop += OnStopStreaming; } private void OnStartStreaming(PipelineProfile profile) { q = new FrameQueue(1); Source.OnNewSample += OnNewSample; } private void OnStopStreaming() { Source.OnNewSample -= OnNewSample; if (q != null) { q.Dispose(); q = null; } } private void OnNewSample(Frame f) { if (f.IsComposite) { using (var fs = f.As