Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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);
        }
 internal void SetFocusPoint()
 {
     if (this.mSetFocusPlaneAutomatically)
     {
         StateManager arg_23_0 = TrackerManager.Instance.GetStateManager();
         Vector3      point    = Vector3.zero;
         Vector3      vector   = Vector3.zero;
         bool         flag     = false;
         using (IEnumerator <TrackableBehaviour> enumerator = arg_23_0.GetActiveTrackableBehaviours().GetEnumerator())
         {
             while (enumerator.MoveNext())
             {
                 Vector3 position = enumerator.Current.transform.position;
                 Vector3 vector2  = this.mCentralAnchorPoint.transform.InverseTransformPoint(position);
                 if (vector2.z > 0.5f)
                 {
                     if (!flag)
                     {
                         point  = position;
                         vector = vector2;
                         flag   = true;
                     }
                     else
                     {
                         Vector2 vector3 = new Vector2(vector.x, vector.y);
                         Vector2 vector4 = new Vector2(vector2.x, vector2.y);
                         if (vector3.magnitude > vector4.magnitude)
                         {
                             point  = position;
                             vector = vector2;
                         }
                     }
                 }
             }
         }
         if (flag)
         {
             Vector3 normal = -this.mCentralAnchorPoint.transform.forward;
             VuforiaUnity.GetHoloLensApiAbstraction().SetFocusPoint(point, normal);
         }
     }
 }
Ejemplo n.º 4
0
        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;
                }
            }
        }
Ejemplo n.º 5
0
 internal static void CleanTrackableFromUnwantedComponents(TrackableBehaviour trackableBehaviour)
 {
     VuforiaUnity.GetHoloLensApiAbstraction().DeleteWorldAnchor(trackableBehaviour);
 }
Ejemplo n.º 6
0
 public bool StartExtendedTracking(IntPtr datasetPtr, int trackableID)
 {
     VuforiaUnity.GetHoloLensApiAbstraction().SetSpatialAnchorTrackingCallback(new Action <VuforiaManager.TrackableIdPair, bool>(this.OnSpatialAnchorTrackingCallback));
     this.mTrackablesExtendedTrackingEnabled.Add(trackableID);
     return(true);
 }