@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
69 lines • 1.78 kB
TypeScript
import { TgdQuat } from "./quat";
import { TgdVec3 } from "./vec3";
import { TgdVec4 } from "./vec4";
/**
* Column-first 3x3 matrix.
*
* - `m12` means row 2 and column 3 (__A__).
* - `m20` means row 3 and column 1 (__B__).
*
* ```
* +-+-+-+
* | | | |
* +-+-+-+
* | | |A|
* +-+-+-+
* |B| | |
* +-+-+-+
* ```
*
* This is how mathematicians use matrices.
*
* But, internally, for WebGL compliance, we store the data like this:
*
* ```
* +-+-+-+
* |0|3|6|
* +-+-+-+
* |1|4|7|
* +-+-+-+
* |2|5|8|
* +-+-+-+
* ```
*
* That's why is better to access members through the accessor `m00`, `m01`, etc.
*/
export declare class TgdMat3 extends Float32Array {
constructor();
constructor(mat: TgdMat3);
constructor(column1: TgdVec3 | TgdVec4, column2: TgdVec3 | TgdVec4, column3: TgdVec3 | TgdVec4);
constructor(m00: number, m10: number, m20: number, m01: number, m11: number, m21: number, m02: number, m12: number, m22: number);
multiply(mat: TgdMat3): this;
transpose(): TgdMat3;
fromQuat({ x, y, z, w }: Readonly<TgdQuat>): TgdMat3;
toAxes(axisX: TgdVec3, axisY: TgdVec3, axisZ: TgdVec3): this;
toAxisX(axisX: TgdVec3): this;
toAxisY(axisY: TgdVec3): this;
toAxisZ(axisZ: TgdVec3): this;
scale(factor: number): this;
get m00(): number;
set m00(v: number);
get m10(): number;
set m10(v: number);
get m20(): number;
set m20(v: number);
get m01(): number;
set m01(v: number);
get m11(): number;
set m11(v: number);
get m21(): number;
set m21(v: number);
get m02(): number;
set m02(v: number);
get m12(): number;
set m12(v: number);
get m22(): number;
set m22(v: number);
debug(caption?: string): void;
}
//# sourceMappingURL=mat3.d.ts.map