/// <summary> /// Pose (as a 4x4 matrix) wrapper callback, interfacing Managed-OSVR's signatures and more Unity-native datatypes, including coordinate system conversion. /// </summary> /// <param name="userdata">Unused</param> /// <param name="timestamp">Unused</param> /// <param name="report">Tracker pose report</param> private void PoseMatrixCb(System.IntPtr userdata, ref OSVR.ClientKit.TimeValue timestamp, ref OSVR.ClientKit.PoseReport report) { Matrix4x4 matPose = Math.ConvertPose(report.pose); if (null != poseMatrixCallbacks) { poseMatrixCallbacks(path, matPose); } }
/* END GENERATED CODE - unity-generate.lua */ #endregion /// These wrappers sadly have to be mostly hand-written, despite their similarity, since they convert data types /// and also data conventions (into Unity's left-handed coordinate system) #region Private wrapper callbacks/trampolines /// <summary> /// Pose (as position and orientation) wrapper callback, interfacing Managed-OSVR's signatures and more Unity-native datatypes, including coordinate system conversion. /// </summary> /// <param name="userdata">Unused</param> /// <param name="timestamp">Unused</param> /// <param name="report">Tracker pose report</param> private void PoseCb(System.IntPtr userdata, ref OSVR.ClientKit.TimeValue timestamp, ref OSVR.ClientKit.PoseReport report) { Vector3 position = Math.ConvertPosition(report.pose.translation); Quaternion rotation = Math.ConvertOrientation(report.pose.rotation); if (null != poseCallbacks) { poseCallbacks(path, position, rotation); } }