private void UpdateTrackablesEditor() { TrackableBehaviour[] array = (TrackableBehaviour[])UnityEngine.Object.FindObjectsOfType(typeof(TrackableBehaviour)); for (int i = 0; i < array.Length; i++) { TrackableBehaviour trackableBehaviour = array[i]; if (trackableBehaviour.enabled) { if (trackableBehaviour is WordAbstractBehaviour) { WordAbstractBehaviour wordAbstractBehaviour = (WordAbstractBehaviour)trackableBehaviour; string text = wordAbstractBehaviour.IsSpecificWordMode ? wordAbstractBehaviour.SpecificWord : "AnyWord"; wordAbstractBehaviour.InitializeWord(new WordImpl(0, text, new Vector2(500f, 100f))); } trackableBehaviour.OnTrackerUpdate(TrackableBehaviour.Status.TRACKED); } } }
public void ApplyTrackingState(TrackableBehaviour trackableBehaviour, TrackableBehaviour.Status vuforiaStatus, Transform cameraTransform) { trackableBehaviour.OnTrackerUpdate(vuforiaStatus); }
public void ApplyTrackingState(TrackableBehaviour trackableBehaviour, TrackableBehaviour.Status vuforiaStatus, Transform cameraTransform) { ExtendedTrackable extendedTrackable = trackableBehaviour.Trackable as ExtendedTrackable; if (extendedTrackable == null) { return; } float expr_16 = extendedTrackable.GetLargestSizeComponent(); float maxPoseDistance = expr_16 * this.mMaxPoseRelDistance; float minPoseUpdateDistance = expr_16 * this.mMinPoseUpdateRelDistance; int iD = trackableBehaviour.Trackable.ID; VuforiaManager.TrackableIdPair trackableIdPair; if (trackableBehaviour is VuMarkAbstractBehaviour) { trackableIdPair = VuforiaManager.TrackableIdPair.FromTrackableAndResultId(iD, ((VuMarkAbstractBehaviour)trackableBehaviour).VuMarkResultId); } else { trackableIdPair = VuforiaManager.TrackableIdPair.FromTrackableId(iD); } if (vuforiaStatus == TrackableBehaviour.Status.TRACKED && this.mTrackablesExtendedTrackingEnabled.Contains(iD)) { bool flag = true; if (this.mTrackingList.ContainsKey(trackableIdPair)) { HoloLensExtendedTrackingManager.PoseAgeEntry poseAgeEntry = this.mTrackingList[trackableIdPair]; float arg_D3_0 = (poseAgeEntry.CameraPose.Position - cameraTransform.position).magnitude; float num = Quaternion.Angle(poseAgeEntry.CameraPose.Rotation, cameraTransform.rotation); if (arg_D3_0 <= this.mMaxCamPoseAbsDistance && num <= this.mMaxCamPoseAngleDiff) { if (!this.mTrackablesCurrentlyExtendedTracked.ContainsKey(trackableIdPair)) { this.CheckHandoverToHoloLens(poseAgeEntry, trackableBehaviour, trackableIdPair, maxPoseDistance, false, out flag); } else { this.CheckForHoloLensPoseUpdates(poseAgeEntry, trackableBehaviour, trackableIdPair, iD, minPoseUpdateDistance, maxPoseDistance, cameraTransform, out flag); } } } if (flag) { this.mTrackingList[trackableIdPair] = new HoloLensExtendedTrackingManager.PoseAgeEntry { Pose = new HoloLensExtendedTrackingManager.PoseInfo { Position = trackableBehaviour.transform.position, Rotation = trackableBehaviour.transform.rotation }, CameraPose = new HoloLensExtendedTrackingManager.PoseInfo { Position = cameraTransform.position, Rotation = cameraTransform.rotation }, Age = 1 }; } } if (this.mTrackablesCurrentlyExtendedTracked.ContainsKey(trackableIdPair)) { if (!this.mSetWorldAnchors || VuforiaRuntimeUtilities.IsPlayMode()) { HoloLensExtendedTrackingManager.PoseInfo poseInfo = this.mTrackablesCurrentlyExtendedTracked[trackableIdPair]; trackableBehaviour.transform.position = poseInfo.Position; trackableBehaviour.transform.rotation = poseInfo.Rotation; } vuforiaStatus = this.mExtendedTrackablesState[trackableIdPair]; } trackableBehaviour.OnTrackerUpdate(vuforiaStatus); }