@babylonjs/core
Version:
Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.
77 lines (76 loc) • 3.47 kB
TypeScript
import type { DeepImmutable } from "../../types.js";
import type { IMatrixLike } from "../math.like.js";
/** @internal */
export declare class MatrixManagement {
/** @internal */
static _UpdateFlagSeed: number;
}
/**
* Marks the given matrix as dirty
* @param matrix defines the matrix to mark as dirty
*/
export declare function MarkAsDirty(matrix: IMatrixLike): void;
/**
* Sets the given matrix to the identity matrix
* @param result defines the target matrix
*/
export declare function IdentityMatrixToRef(result: IMatrixLike): void;
/**
* Creates a new translation matrix.
* @param x defines the x coordinate
* @param y defines the y coordinate
* @param z defines the z coordinate
* @param result defines the target matrix
*/
export declare function TranslationMatrixToRef(x: number, y: number, z: number, result: IMatrixLike): void;
/**
* Creates a new scaling matrix.
* @param x defines the scale factor on X axis
* @param y defines the scale factor on Y axis
* @param z defines the scale factor on Z axis
* @param result defines the target matrix
*/
export declare function ScalingMatrixToRef(x: number, y: number, z: number, result: IMatrixLike): void;
/**
* Multiplies two matrices and stores the result in the target array.
* @param a defines the first matrix
* @param b defines the second matrix
* @param output defines the target array
* @param offset defines the offset in the target array where to store the result (0 by default)
*/
export declare function MultiplyMatricesToArray(a: DeepImmutable<IMatrixLike>, b: DeepImmutable<IMatrixLike>, output: Float32Array | Array<number>, offset?: number): void;
/**
* Multiplies two matrices and stores the result in a third matrix.
* @param a defines the first matrix
* @param b defines the second matrix
* @param result defines the target matrix
* @param offset defines the offset in the target matrix where to store the result (0 by default)
*/
export declare function MultiplyMatricesToRef(a: DeepImmutable<IMatrixLike>, b: DeepImmutable<IMatrixLike>, result: IMatrixLike, offset?: number): void;
/**
* Populates the given matrix with the current matrix values
* @param matrix defines the source matrix
* @param target defines the target matrix
*/
export declare function CopyMatrixToRef(matrix: DeepImmutable<IMatrixLike>, target: IMatrixLike): void;
/**
* Populates the given array from the starting index with the current matrix values
* @param matrix defines the source matrix
* @param array defines the target array
* @param offset defines the offset in the target array where to start storing values
*/
export declare function CopyMatrixToArray(matrix: DeepImmutable<IMatrixLike>, array: Float32Array | Array<number>, offset?: number): void;
/**
* Inverts the given matrix and stores the result in the target matrix
* @param source defines the source matrix
* @param target defines the target matrix
* @returns true if the matrix was inverted successfully, false otherwise
*/
export declare function InvertMatrixToRef(source: DeepImmutable<IMatrixLike>, target: IMatrixLike): boolean;
/**
* Inverts the given matrix and stores the result in the target array
* @param source defines the source matrix
* @param target defines the target array
* @returns true if the matrix was inverted successfully, false otherwise
*/
export declare function InvertMatrixToArray(source: DeepImmutable<IMatrixLike>, target: Float32Array | Array<number>): boolean;