File size: 556 Bytes
970fc3e
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
import { Vector3, Quaternion, Euler } from "three";
function uprightMonitorPose(position, quaternion, previousYaw = 0) {
  const forward = new Vector3(0, 0, -1).applyQuaternion(new Quaternion(...quaternion));
  const yaw = Math.hypot(forward.x, forward.z) > 1e-4 ? Math.atan2(-forward.x, -forward.z) : previousYaw;
  const q = new Quaternion().setFromEuler(new Euler(0, yaw, 0));
  return { position: new Vector3(...position).add(new Vector3(0, -0.2, -1.45).applyQuaternion(q)).toArray(), quaternion: q.toArray(), yaw };
}
export {
  uprightMonitorPose
};