private void ResetExtendedTrackingForTrackable(int trackableID) { IHoloLensApiAbstraction holoLensApiAbstraction = VuforiaUnity.GetHoloLensApiAbstraction(); VuforiaManager.TrackableIdPair[] array = this.mTrackablesCurrentlyExtendedTracked.Keys.ToArray <VuforiaManager.TrackableIdPair>(); for (int i = 0; i < array.Length; i++) { VuforiaManager.TrackableIdPair trackableIdPair = array[i]; if (trackableIdPair.TrackableId == trackableID) { this.mTrackablesCurrentlyExtendedTracked.Remove(trackableIdPair); holoLensApiAbstraction.DeleteWorldAnchor(trackableIdPair); if (this.mExtendedTrackablesState.ContainsKey(trackableIdPair)) { this.mExtendedTrackablesState.Remove(trackableIdPair); } } } array = this.mTrackingList.Keys.ToArray <VuforiaManager.TrackableIdPair>(); for (int i = 0; i < array.Length; i++) { VuforiaManager.TrackableIdPair trackableIdPair2 = array[i]; if (trackableIdPair2.TrackableId == trackableID) { this.mTrackingList.Remove(trackableIdPair2); } } }
public bool ResetExtendedTracking(bool trackerActive) { this.mTrackingList.Clear(); IHoloLensApiAbstraction holoLensApiAbstraction = VuforiaUnity.GetHoloLensApiAbstraction(); foreach (VuforiaManager.TrackableIdPair current in this.mTrackablesCurrentlyExtendedTracked.Keys) { holoLensApiAbstraction.DeleteWorldAnchor(current); } this.mTrackablesCurrentlyExtendedTracked.Clear(); this.mExtendedTrackablesState.Clear(); return(true); }
private void CheckHandoverToHoloLens(HoloLensExtendedTrackingManager.PoseAgeEntry poseEntry, TrackableBehaviour trackableBehaviour, VuforiaManager.TrackableIdPair trackableResultID, float maxPoseDistance, bool isPoseUpdate, out bool resetPoseInfo) { IHoloLensApiAbstraction holoLensApiAbstraction = VuforiaUnity.GetHoloLensApiAbstraction(); resetPoseInfo = true; float arg_4B_0 = (poseEntry.Pose.Position - trackableBehaviour.transform.position).magnitude; float num = Quaternion.Angle(poseEntry.Pose.Rotation, trackableBehaviour.transform.rotation); if (arg_4B_0 <= maxPoseDistance && num <= this.mMaxPoseAngleDiff) { poseEntry.Age++; this.mTrackingList[trackableResultID] = poseEntry; resetPoseInfo = false; if (poseEntry.Age > this.mNumFramesStablePose) { HoloLensExtendedTrackingManager.PoseInfo poseInfo = new HoloLensExtendedTrackingManager.PoseInfo { Position = trackableBehaviour.transform.position, Rotation = trackableBehaviour.transform.rotation, NumFramesPoseWasOff = 0 }; this.mTrackablesCurrentlyExtendedTracked[trackableResultID] = poseInfo; if (isPoseUpdate) { holoLensApiAbstraction.DeleteWorldAnchor(trackableResultID); trackableBehaviour.transform.position = poseInfo.Position; trackableBehaviour.transform.rotation = poseInfo.Rotation; } if (this.mSetWorldAnchors) { holoLensApiAbstraction.SetWorldAnchor(trackableBehaviour, trackableResultID); } this.mExtendedTrackablesState[trackableResultID] = TrackableBehaviour.Status.EXTENDED_TRACKED; } } }
public static void SetHoloLensApiAbstraction(IHoloLensApiAbstraction holoLensApiAbstraction) { VuforiaUnity.mHoloLensApiAbstraction = holoLensApiAbstraction; }