PoseDataFlags GetPoseData(DeviceType device, TrackedPose poseSource, out Pose resultPose) { if (m_PoseProviderComponent != null) { return(m_PoseProviderComponent.GetPoseFromProvider(out resultPose)); } return(PoseDataSource.GetDataFromSource(poseSource, out resultPose)); }
protected void UpdateTrackingInput() { Vector3 devicePosition = new Vector3(); Quaternion deviceRotation = new Quaternion(); #if LIH_PRESENT_V1API if (m_PoseProvider != null) { Pose poseProviderPose = new Pose(); if (m_PoseProvider.TryGetPoseFromProvider(out poseProviderPose)) { transform.localPosition = poseProviderPose.position; transform.localRotation = poseProviderPose.rotation; } } else #elif LIH_PRESENT_V2API if (m_PoseProvider != null) { Pose poseProviderPose = new Pose(); var retFlags = m_PoseProvider.GetPoseFromProvider(out poseProviderPose); if ((retFlags & SpatialTracking.PoseDataFlags.Position) > 0) { transform.localPosition = poseProviderPose.position; } if ((retFlags & SpatialTracking.PoseDataFlags.Rotation) > 0) { transform.localRotation = poseProviderPose.rotation; } } else #endif { if (inputDevice.TryGetFeatureValue(CommonUsages.devicePosition, out devicePosition)) { transform.localPosition = devicePosition; } if (inputDevice.TryGetFeatureValue(CommonUsages.deviceRotation, out deviceRotation)) { transform.localRotation = deviceRotation; } } }