UNPKG

@drew-y/transformation-matrix

Version:
50 lines (49 loc) 2.41 kB
import { EulerOrder } from "./definitions"; /** * Transformation Matrix helper class. * * Adapted from mrdoob/three.js at * https://github.com/mrdoob/three.js/blob/d4aa9e00ea29808534a3e082f602c544e5f2419c/src/math/Matrix3.js * */ export declare class Matrix { private elements; getElements(): number[]; /** XYZ Position */ getPosition(): [number, number, number]; /** * @param order - Euler angle order. * returns [X, Y, Z, RX, RY, RZ] */ getPose(order?: EulerOrder): [number, number, number, number, number, number]; /** Set from a flat 4x4 column major transformation matrix */ setFromMatrixArray(matrix: number[]): this; setPose(x: number, y: number, z: number, rx: number, ry: number, rz: number, order?: EulerOrder): this; setPosition(x: number, y: number, z: number): this; /** Set from euler angles in degrees. */ setRotation(x: number, y: number, z: number, order?: EulerOrder): this; setRotationFromQuaternion(x: number, y: number, z: number, w: number): this; /** Creates a new Matrix that is the product of this matrix and the passed one. */ multiplied(m: Matrix): Matrix; /** Multiply this matrix by the passed one */ multiply(matrix: Matrix): this; /** Alias for multiply */ transform(matrix: Matrix): this; /** Rotates this matrix by the supplied quaternion */ applyQuaternion(x: number, y: number, z: number, w: number): Matrix; /** Create a new matrix that represents this one rotated by the passed angles */ rotated(x: number, y: number, z: number, order?: EulerOrder): Matrix; /** Rotate this matrix by the passed angles */ rotate(x: number, y: number, z: number, order?: EulerOrder): this; /** Returns a three length array representing angles in degrees */ getEuler(order?: EulerOrder): [number, number, number]; /** Returns a quaternion representing this rotation as XYZW */ toQuaternion(): [number, number, number, number]; /** Extract the rotational portion of this matrix to a 3x3 column-major flat array */ toMatrix3Array(): number[]; toJSON(): number[]; toArray(): number[]; clone(): Matrix; static fromPose(x: number, y: number, z: number, rx: number, ry: number, rz: number, order?: EulerOrder): Matrix; /** Create a new matrix from a flat 4x4 column-major array */ static fromArray(matrix: number[]): Matrix; }