/// <summary> /// Sets a new coordinate frame. This is different from simply setting /// the <see cref="coordinateFrame"/>. This method causes the reference point /// to be computed relative to a different coordinate frame entirely. /// </summary> /// <param name="cfuid">The UID of the new coordinate frame</param> /// <param name="coordinateFrame">The pose of the new coordinate frame</param> public void SetCoordinateFrame(MLCoordinateFrameUID cfuid, Pose coordinateFrame) { // Compute the current reference point pose var pose = referencePointPose; // Set new coordinate frame this.cfuid = cfuid; this.coordinateFrame = coordinateFrame; // Recompute the delta transform based on the new coordinate frame ComputeDelta(pose); }
public static extern MLResult.Code MLPersistentCoordinateFrameGetClosest(ulong trackerHandle, ref MLVec3f target, ref MLCoordinateFrameUID cfuId);
public static extern bool TryGetPose(MLCoordinateFrameUID id, out Pose out_pose);
public static unsafe extern MLApiResult GetClosest(ulong tracker_handle, ref Vector3 target, out MLCoordinateFrameUID out_cfuid);