/// <summary> /// Position a Trackable relative to the Camera. /// </summary> protected void PositionTrackable(TrackableBehaviour trackableBehaviour, Camera arCamera, QCARManagerImpl.PoseData camToTargetPose) { trackableBehaviour.transform.position = arCamera.transform.TransformPoint(camToTargetPose.position); trackableBehaviour.transform.rotation = arCamera.transform.rotation * camToTargetPose.orientation * Quaternion.AngleAxis(270, Vector3.left); }
/// <summary> /// Position the camera relative to a Trackable. /// </summary> protected void PositionCamera(TrackableBehaviour trackableBehaviour, Camera arCamera, QCARManagerImpl.PoseData camToTargetPose) { arCamera.transform.localPosition = trackableBehaviour.transform.rotation * Quaternion.AngleAxis(90, Vector3.left) * Quaternion.Inverse(camToTargetPose.orientation) * (-camToTargetPose.position) + trackableBehaviour.transform.position; arCamera.transform.rotation = trackableBehaviour.transform.rotation * Quaternion.AngleAxis(90, Vector3.left) * Quaternion.Inverse(camToTargetPose.orientation); }