Files
blitzkit/packages/core/src/math/normalToEuler.ts
T

14 lines
374 B
TypeScript
Raw Normal View History

2024-02-29 13:17:41 -06:00
import { Euler, Quaternion, Vector3 } from 'three';
2024-09-06 23:17:53 -05:00
import { J_HAT } from './axis';
2024-02-29 13:17:41 -06:00
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),
),
);
}