import { Quaternion } from "https://deno.land/x/threejs_4_deno@v121/src/Three.js";
Implementation of a quaternion. This is used for rotating things without incurring in the dreaded gimbal lock issue, amongst other advantages.
Examples
const quaternion = new THREE.Quaternion();
quaternion.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 );
const vector = new THREE.Vector3( 1, 0, 0 );
vector.applyQuaternion( quaternion );
const quaternion = new THREE.Quaternion(); quaternion.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 ); const vector = new THREE.Vector3( 1, 0, 0 ); vector.applyQuaternion( quaternion );
Methods
Clones this quaternion.
Copies values of q to this quaternion.
Sets this quaternion's x, y, z and w value from the provided array.
Sets this quaternion's x, y, z and w value from the provided array-like.
Inverts this quaternion.
Computes length of this quaternion.
Multiplies this quaternion by b.
Sets this quaternion to a x b Adapted from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm.
Normalizes this quaternion.
Sets values of this quaternion.
Sets this quaternion from rotation specified by axis and angle. Adapted from http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm. Axis have to be normalized, angle is in radians.
Sets this quaternion from rotation specified by Euler angles.
Sets this quaternion from rotation component of m. Adapted from http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm.
Returns an array [x, y, z, w], or copies x, y, z and w into the provided array.
Copies x, y, z and w into the provided array-like.