UNPKG

@turbox3d/math

Version:

Large-scale graphics application math library

49 lines (48 loc) 1.91 kB
import { Euler } from './Euler'; import { Matrix4 } from './Matrix4'; import { Vector3 } from './Vector3'; declare class Quaternion { static slerp(qa: Quaternion, qb: Quaternion, qm: Quaternion, t: number): Quaternion; static slerpFlat(dst: number[], dstOffset: number, src0: number[], srcOffset0: number, src1: number[], srcOffset1: number, t: number): void; static multiplyQuaternionsFlat(dst: number[], dstOffset: number, src0: number[], srcOffset0: number, src1: number[], srcOffset1: number): number[]; readonly isQuaternion: boolean; _x: number; _y: number; _z: number; _w: number; constructor(x?: number, y?: number, z?: number, w?: number); get x(): number; set x(value: number); get y(): number; set y(value: number); get z(): number; set z(value: number); get w(): number; set w(value: number); set(x: number, y: number, z: number, w: number): this; clone(): Quaternion; copy(quaternion: Quaternion): this; setFromEuler(euler: Euler): this; setFromAxisAngle(axis: Vector3, angle: number): this; setFromRotationMatrix(m: Matrix4): this; setFromUnitVectors(vFrom: Vector3, vTo: Vector3): this; angleTo(q: Quaternion): number; rotateTowards(q: Quaternion, step: number): this; identity(): this; invert(): this; conjugate(): this; dot(v: Quaternion): number; lengthSq(): number; length(): number; normalize(): this; multiply(q: Quaternion): this; premultiply(q: Quaternion): this; multiplyQuaternions(a: Quaternion, b: Quaternion): this; slerp(qb: Quaternion, t: number): this; equals(quaternion: Quaternion): boolean; fromArray(array: number[] | ArrayLike<number>, offset?: number): this; toArray(array?: number[], offset?: number): number[]; _onChange(callback: Function): this; _onChangeCallback: Function; } export { Quaternion };