Files
blitzkit/packages/core/src/math/normalToEuler.ts
T
2024-09-06 23:17:53 -05:00

15 lines
374 B
TypeScript

import { Euler, Quaternion, Vector3 } from 'three';
import { J_HAT } from './axis';
const quaternion = new Quaternion();
const axis = new Vector3();
export function normalToEuler(normal: Vector3, up = J_HAT) {
return new Euler().setFromQuaternion(
quaternion.setFromAxisAngle(
axis.crossVectors(up, normal).normalize(),
up.angleTo(normal),
),
);
}