예제 #1
0
 /// <summary>
 /// Creates an instance of OVRDisplay. Called by OVRManager.
 /// </summary>
 public Display()
 {
     if (Plugin.GetSystemHeadsetType() == Plugin.SystemHeadset.Oculus_Quest)
     {
         previousTrackingOrigin = Manager.trackingOriginType;
         var relativeOrigin = (previousTrackingOrigin != Manager.TrackingOrigin.Stage) ? Manager.TrackingOrigin.Stage : Manager.TrackingOrigin.EyeLevel;
         previousRelativeTrackingSpacePose = Plugin.GetTrackingTransformRelativePose((Plugin.TrackingOrigin)relativeOrigin).ToOVRPose();
     }
 }
예제 #2
0
 /// <summary>
 /// Updates the internal state of the OVRDisplay. Called by OVRManager.
 /// </summary>
 public void Update()
 {
     if (recenterRequested && DateTime.Now.Ticks > recenterRequestedFrameCount)
     {
         RecenteredPose?.Invoke();
         recenterRequested           = false;
         recenterRequestedFrameCount = long.MaxValue;
     }
     if (Plugin.GetSystemHeadsetType() == Plugin.SystemHeadset.Oculus_Quest)
     {
         var relativeOrigin            = (Manager.trackingOriginType != Manager.TrackingOrigin.Stage) ? Manager.TrackingOrigin.Stage : Manager.TrackingOrigin.EyeLevel;
         var relativeTrackingSpacePose = Plugin.GetTrackingTransformRelativePose((Plugin.TrackingOrigin)relativeOrigin).ToOVRPose();
         //If the tracking origin type hasn't switched and the relative pose changes, a recenter occurred.
         if (previousTrackingOrigin == Manager.trackingOriginType && previousRelativeTrackingSpacePose != relativeTrackingSpacePose && RecenteredPose != null)
         {
             RecenteredPose();
         }
         previousRelativeTrackingSpacePose = relativeTrackingSpacePose;
         previousTrackingOrigin            = Manager.trackingOriginType;
     }
 }