/** * skin-math — minimal column-major 4x4 matrix helpers for the native character * render path. Pure math, zero GPU, zero foreign-engine deps — headless-testable. * * Column-major convention matches the rest of the native render path * (`native-render/draw-spec.ts` composeTRS, `native-render/scene-render.ts` mul4): * element (row r, col c) is stored at index c*4 + r; translation lives in m[12..14]. * * @module character-render */ export type Mat4 = Float32Array; export type Vec3 = { x: number; y: number; z: number; }; export type Quat = { x: number; y: number; z: number; w: number; }; export declare const IDENTITY4: () => Mat4; /** Column-major multiply: out = a * b. */ export declare function multiply(a: Mat4, b: Mat4): Mat4; /** Chain-multiply left→right: out = m0 * m1 * … * mn. */ export declare function multiplyAll(...mats: Mat4[]): Mat4; export declare function fromTranslation(x: number, y: number, z: number): Mat4; /** Rotation matrix from a unit quaternion (column-major). */ export declare function fromQuat(q: Quat): Mat4; /** Compose translation · rotation (T * R). */ export declare function fromRotationTranslation(q: Quat, t: Vec3): Mat4; /** Unit quaternion from axis (need not be normalized) + angle (radians). */ export declare function quatFromAxisAngle(ax: number, ay: number, az: number, rad: number): Quat; export declare const IDENTITY_QUAT: Quat; /** Hamilton product a·b (apply b, then a — same convention as matrix multiply). */ export declare function quatMultiply(a: Quat, b: Quat): Quat; /** Transform a point (w=1) by a column-major matrix. */ export declare function transformPoint(m: Mat4, x: number, y: number, z: number): Vec3; /** Translation component of a column-major matrix. */ export declare function getTranslation(m: Mat4): Vec3; /** Full 4x4 inverse (gl-matrix adjugate method). Returns identity if singular. */ export declare function invert(a: Mat4): Mat4; //# sourceMappingURL=skin-math.d.ts.map