UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

69 lines 1.78 kB
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