@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
88 lines • 2.38 kB
TypeScript
/**
* Quadric Error Metric
* Triangular 4x4 matrix, see https://en.wikipedia.org/wiki/Triangular_matrix
*/
export class Quadratic3 {
a2: number;
ab: number;
ac: number;
ad: number;
b2: number;
bc: number;
bd: number;
c2: number;
cd: number;
d2: number;
/**
*
* @param {ArrayLike<number>|number[]|Float32Array} result
*/
toVector3(result: ArrayLike<number> | number[] | Float32Array): void;
/**
*
* @param {ArrayLike<number>|number[]|Float32Array} m3
*/
toTensorM3(m3: ArrayLike<number> | number[] | Float32Array): void;
/**
* Equivalent to taking a tensor followed by matrix inversion
* @param {ArrayLike<number>|number[]|Float32Array} m3
* @param {number} epsilon
* @returns {boolean} whether operation was successful or not
*/
toTensorM3Inverse(m3: ArrayLike<number> | number[] | Float32Array, epsilon: number): boolean;
/**
* Set from plane expressed as a 4 component vector
* @param {number} x plane normal
* @param {number} y plane normal
* @param {number} z plane normal
* @param {number} w plane offset
*/
setFromVector4(x: number, y: number, z: number, w: number): void;
/**
*
* @param {TopoTriangle} face
*/
setFromFace(face: TopoTriangle): void;
/**
* Squared distance from the given point to plane encoded by the quadratic
* @param {number} x
* @param {number} y
* @param {number} z
* @returns {number}
*/
evaluate(x: number, y: number, z: number): number;
/**
* Find optimal vertex position based on the quadratic
*
* Based on Blender's implementation: https://github.com/blender/blender/blob/594f47ecd2d5367ca936cf6fc6ec8168c2b360d0/source/blender/blenlib/intern/quadric.c
*
* @param {number[]} out
* @returns {boolean}
*/
optimize(out: number[]): boolean;
/**
*
* @param {Quadratic3} Q
*/
add(Q: Quadratic3): void;
/**
*
* @param {number} v
*/
multiplyScalar(v: number): void;
/**
*
* @returns {Quadratic3}
*/
clone(): Quadratic3;
/**
*
* @param {Quadratic3} other
*/
copy(other: Quadratic3): void;
/**
* Set all matrix values to 0
*/
clear(): void;
}
//# sourceMappingURL=Quadratic3.d.ts.map