public bool SetPoseSource(TrackedPoseDriver.DeviceType deviceType, TrackedPoseDriver.TrackedPose pose) { if (deviceType < (TrackedPoseDriver.DeviceType)TrackedPoseDriverDataDescription.DeviceData.Count) { TrackedPoseDriverDataDescription.PoseData poseData = TrackedPoseDriverDataDescription.DeviceData[(int)deviceType]; for (int i = 0; i < poseData.Poses.Count; i++) { if (poseData.Poses[i] == pose) { this.poseSource = pose; return(true); } } } return(false); }
private bool GetDataFromSource(TrackedPoseDriver.DeviceType device, TrackedPoseDriver.TrackedPose poseSource, out Pose resultPose) { bool result; switch (poseSource) { case TrackedPoseDriver.TrackedPose.LeftEye: resultPose.position = InputTracking.GetLocalPosition(XRNode.LeftEye); resultPose.rotation = InputTracking.GetLocalRotation(XRNode.LeftEye); result = true; break; case TrackedPoseDriver.TrackedPose.RightEye: resultPose.position = InputTracking.GetLocalPosition(XRNode.RightEye); resultPose.rotation = InputTracking.GetLocalRotation(XRNode.RightEye); result = true; break; case TrackedPoseDriver.TrackedPose.Center: resultPose.position = InputTracking.GetLocalPosition(XRNode.CenterEye); resultPose.rotation = InputTracking.GetLocalRotation(XRNode.CenterEye); result = true; break; case TrackedPoseDriver.TrackedPose.Head: resultPose.position = InputTracking.GetLocalPosition(XRNode.Head); resultPose.rotation = InputTracking.GetLocalRotation(XRNode.Head); result = true; break; case TrackedPoseDriver.TrackedPose.LeftPose: resultPose.position = InputTracking.GetLocalPosition(XRNode.LeftHand); resultPose.rotation = InputTracking.GetLocalRotation(XRNode.LeftHand); result = true; break; case TrackedPoseDriver.TrackedPose.RightPose: resultPose.position = InputTracking.GetLocalPosition(XRNode.RightHand); resultPose.rotation = InputTracking.GetLocalRotation(XRNode.RightHand); result = true; break; case TrackedPoseDriver.TrackedPose.ColorCamera: result = this.TryGetTangoPose(CoordinateFrame.CameraColor, out resultPose); break; case TrackedPoseDriver.TrackedPose.DepthCamera: result = this.TryGetTangoPose(CoordinateFrame.CameraDepth, out resultPose); break; case TrackedPoseDriver.TrackedPose.FisheyeCamera: result = this.TryGetTangoPose(CoordinateFrame.CameraFisheye, out resultPose); break; case TrackedPoseDriver.TrackedPose.Device: result = this.TryGetTangoPose(CoordinateFrame.Device, out resultPose); break; case TrackedPoseDriver.TrackedPose.RemotePose: resultPose.position = InputTracking.GetLocalPosition(XRNode.RightHand); resultPose.rotation = InputTracking.GetLocalRotation(XRNode.RightHand); result = true; break; default: resultPose = Pose.identity; result = false; break; } return(result); }