xtorcga
Version:
Xtor Compute Geometry Algorithm Libary 计算几何算法库
86 lines (85 loc) • 3.2 kB
TypeScript
import { Vec3 } from './Vec3';
import { Euler } from './Euler';
import { Quat } from './Quat';
export declare class Mat4 {
elements: number[];
isMat4: boolean;
constructor();
set(n11: number, n12: number, n13: number, n14: number, n21: number, n22: number, n23: number, n24: number, n31: number, n32: number, n33: number, n34: number, n41: number, n42: number, n43: number, n44: number): this;
static get Identity(): Mat4;
identity(): this;
clone(): Mat4;
copy(m: Mat4): this;
copyPosition(m: {
elements: any;
}): this;
extractBasis(xAxis: Vec3, yAxis: Vec3, zAxis: Vec3): this;
makeBasis(xAxis: Vec3, yAxis: Vec3, zAxis: Vec3): this;
extractRotation(m: Mat4): this;
makeRotationFromEuler(euler: Euler): this;
makeRotationFromQuat(q: any): this;
lookAt(eye: Vec3, target: Vec3, up: Vec3): this;
multiply(m: Mat4, n?: Mat4): this;
premultiply(m: Mat4): this;
multiplyMats(a: Mat4, b: Mat4): this;
multiplyScalar(s: number): this;
applyToBufferAttribute(attribute: {
count: any;
getX: (arg0: number) => number;
getY: (arg0: number) => number;
getZ: (arg0: number) => number;
setXYZ: (arg0: number, arg1: number, arg2: number, arg3: number) => void;
}): {
count: any;
getX: (arg0: number) => number;
getY: (arg0: number) => number;
getZ: (arg0: number) => number;
setXYZ: (arg0: number, arg1: number, arg2: number, arg3: number) => void;
};
determinant(): number;
transpose(): this;
setPosition(x: number | Vec3 | any, y?: number, z?: number): this;
/**
* 矩阵求逆
* @returns 自己
*/
invert(): Mat4;
getInverse(m: Mat4, throwOnDegenerate?: boolean): this;
scale(v: {
x: any;
y: any;
z: any;
}): this;
getMaxScaleOnAxis(): number;
makeTranslation(x: number, y: number, z: number): this;
makeRotationX(theta: number): this;
makeRotationY(theta: number): this;
makeRotationZ(theta: number): this;
makeRotationAxis(axis: {
x: any;
y: any;
z: any;
}, angle: number): this;
makeScale(x: number, y: number, z: number): this;
/**
* 6个参数 都是由两个值来影响 [v1][v2] v1表示v2轴在v1轴产生效果
* @param xy
* @param xz
* @param yx
* @param yz
* @param zx
* @param zy
* @returns
*/
makeShear(xy: number, xz: number, yx: number, yz: number, zx: number, zy: number): this;
compose(position: Vec3, quat: Quat, scale: Euler | Vec3): this;
decompose(position: Vec3, quat: Quat, scale: Vec3): this;
makePerspective(left: number, right: number, top: number, bottom: number, near: number, far: number): this;
makeOrthographic(left: number, right: number, top: number, bottom: number, near: number, far: number): this;
equals(matrix: {
elements: any;
}): boolean;
fromArray(array: number[], offset?: number): this;
toArray(array?: number[], offset?: number): number[];
}
export declare function m4(): Mat4;