// 2026년 포트폴리오용 재구성 코드. 실제 업무 당시 소스가 아닙니다. // 2026 portfolio reconstruction. Not original production source or a sensor SDK adapter. using System; using UnityEngine; namespace PortfolioExamples { public static class PoseAlignment { // Sensor and avatar roots must both be calibrated. Scaling is intentionally unsupported. public static Pose Retarget(Pose sensorRoot, Pose sensorJoint, Pose avatarRoot) { Vector3 localPosition = Quaternion.Inverse(sensorRoot.rotation) * (sensorJoint.position - sensorRoot.position); Quaternion localRotation = Quaternion.Inverse(sensorRoot.rotation) * sensorJoint.rotation; return new Pose(avatarRoot.position + avatarRoot.rotation * localPosition, avatarRoot.rotation * localRotation); } public static Pose AlignHead(Vector3 markerWorld, Quaternion hmdRotation, Quaternion rotationOffset) => new Pose(markerWorld, rotationOffset * hmdRotation); } }