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);
 }
Beispiel #3
0
        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);
        }