@thi.ng/matrices
Version:
Matrix & quaternion operations for 2D/3D geometry processing
69 lines • 1.84 kB
TypeScript
import type { ReadonlyVec, Vec, VecOpVV } from "@thi.ng/vectors";
import type { MatOpMV, MultiMatOpMV, ReadonlyMat } from "./api.js";
/**
* Matrix-vector multiplication. Supports in-place modification, i.e. if
* `out === v`.
*
* @param out -
* @param m -
* @param v -
*/
export declare const mulV: MultiMatOpMV;
/**
* Multiplies 2x2 matrix `m` with 2D vector `v`. Supports in-place
* modification, i.e. if `out === v`.
*
* @param out -
* @param m -
* @param v -
*/
export declare const mulV22: MatOpMV;
/**
* Multiplies 2x3 matrix `m` with 2D vector `v`. Supports in-place
* modification, i.e. if `out === v`.
*
* @param out -
* @param m -
* @param v -
*/
export declare const mulV23: MatOpMV;
/**
* Multiplies 3x3 matrix `m` with 3D vector `v`. Supports in-place
* modification, i.e. if `out === v`.
*
* @param out -
* @param m -
* @param v -
*/
export declare const mulV33: MatOpMV;
/**
* Multiplies 4x4 matrix `m` with 4D vector `v`. Supports in-place
* modification, i.e. if `out === v`.
*
* @param out -
* @param m -
* @param v -
*/
export declare const mulV44: MatOpMV;
/**
* Multiplies 4x4 matrix `m` with 3D vector `v` and assumes initial
* `w=1`, i.e. the vector is interpreted as `[x,y,z,1]`. After
* transformation applies perspective divide of the resulting XYZ
* components. Returns `undefined` if the computed perspective divisor
* is zero (and would cause `NaN` results).
*
* @param out -
* @param m -
* @param v -
*/
export declare const mulV344: (out: Vec | null, m: ReadonlyMat, v: ReadonlyVec) => Vec<number> | undefined;
/**
* Multiplies quaternion `q` with 3D vector `v`. Returns transformed
* vector or modifies in-place if `out` is null or `v`.
*
* @param out -
* @param q -
* @param v -
*/
export declare const mulVQ: VecOpVV;
//# sourceMappingURL=mulv.d.ts.map