// Position a Trackable relative to the Camera. protected void PositionTrackable(TrackableBehaviour trackableBehaviour, Camera arCamera, QCARManager.PoseData camToTargetPose) { trackableBehaviour.transform.position = arCamera.transform.TransformPoint(camToTargetPose.position); trackableBehaviour.transform.rotation = arCamera.transform.rotation * camToTargetPose.orientation * Quaternion.AngleAxis(270, Vector3.left); }
// Position the camera relative to a Trackable. protected void PositionCamera(TrackableBehaviour trackableBehaviour, Camera arCamera, QCARManager.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); }