@awayjs/core
Version:
AwayJS core classes
156 lines • 6.32 kB
TypeScript
import { Box } from './Box';
import { Plane3D } from './Plane3D';
import { Quaternion } from './Quaternion';
import { Sphere } from './Sphere';
import { Vector3D } from './Vector3D';
export declare class Matrix3D {
private static _identityData;
private static _tempMatrix;
/**
* A reference to a Matrix3D to be used as a temporary data container, preventing object creation.
*/
static CALCULATION_MATRIX: Matrix3D;
static getAxisRotationMatrix(x: number, y: number, z: number, degrees: number, target?: Matrix3D): Matrix3D;
static getPointAtMatrix(pos: Vector3D, dir: Vector3D, up: Vector3D, target?: Matrix3D): Matrix3D;
/**
* Fills the 3d matrix with values representing the transformation made by the given quaternion.
*
* @param quarternion The quarterion object to convert.
*/
static getQuaternionMatrix(quarternion: Quaternion, target?: Matrix3D): Matrix3D;
/**
* Returns a boolean value representing whether there is any difference between the two given 3d matrices.
*/
static compare(m1: Matrix3D, m2: Matrix3D): boolean;
/**
* A Vector of 16 Numbers, where every four elements is a column of a 4x4 matrix.
*
* <p>An exception is thrown if the _rawData property is set to a matrix that is not invertible. The Matrix3D
* object must be invertible. If a non-invertible matrix is needed,
* create a subexport class of the Matrix3D object.</p>
*/
_rawData: Float32Array;
private _position;
private _components;
/**
* [read-only] A number that determines whether a matrix is invertible.
*/
get determinant(): number;
/**
* A Vector3D object that holds the position, the 3D coordinate (x,y,z) of a display object within the
* transformation's frame of reference.
*/
get position(): Vector3D;
/**
* Creates a Matrix3D object.
*/
constructor(rawData?: Float32Array);
/**
* Appends the matrix by multiplying another Matrix3D object by the current Matrix3D object.
*/
append(lhs: Matrix3D): void;
/**
* Appends an incremental rotation to a Matrix3D object.
*/
appendRotation(degrees: number, axis: Vector3D): void;
/**
* Appends an incremental skew change along the x, y, and z axes to a Matrix3D object.
*/
appendSkew(xSkew: number, ySkew: number, zSkew: number): void;
/**
* Appends an incremental scale change along the x, y, and z axes to a Matrix3D object.
*/
appendScale(xScale: number, yScale: number, zScale: number): void;
/**
*Appends an incremental translation, a repositioning along the x, y, and z axes, to a Matrix3D object.
*/
appendTranslation(x: number, y: number, z: number): void;
/**
* Returns a new Matrix3D object that is an exact copy of the current Matrix3D object.
*/
clone(): Matrix3D;
/**
* Copies a Vector3D object into specific column of the calling Matrix3D object.
*/
copyColumnFrom(column: number, vector3D: Vector3D): void;
/**
* Copies specific column of the calling Matrix3D object into the Vector3D object.
*/
copyColumnTo(column: number, vector3D: Vector3D, negate?: boolean): void;
/**
* Copies all of the matrix data from the source Matrix3D object into the calling Matrix3D object.
*/
copyFrom(source: Matrix3D, transpose?: boolean): void;
/**
* Copies this Matrix3D object into a destination Matrix3D object.
*/
copyTo(target: Matrix3D, transpose?: boolean): void;
copyRawDataFrom(sourceData: Float32Array, offset?: number, transpose?: boolean): void;
copyRawDataTo(targetData: Float32Array, offset?: number, transpose?: boolean): void;
/**
* Copies a Vector3D object into specific row of the calling Matrix3D object.
*/
copyRowFrom(row: number, vector3D: Vector3D): void;
/**
* Copies specific row of the calling Matrix3D object into the Vector3D object.
*/
copyRowTo(row: number, vector3D: Vector3D, negate?: boolean): void;
private static COL_X;
private static COL_Y;
private static COL_Z;
/**
* Returns the transformation matrix's translation, rotation, and scale
* settings as a Vector of three Vector3D objects.
*/
decompose(orientationStyle?: string): Vector3D[];
/**
* Uses the transformation matrix without its translation elements to transform a Vector3D object from one space
* coordinate to another.
*/
deltaTransformVector(v: Vector3D, t?: Vector3D): Vector3D;
deltaTransformVectors(vin: Array<number>, vout: Array<number>): void;
/**
* Converts the current matrix to an identity or unit matrix.
*/
identity(): void;
/**
* Inverts the current matrix.
*/
invert(): boolean;
isIdentity(): boolean;
/**
* Prepends a matrix by multiplying the current Matrix3D object by another Matrix3D object.
*/
prepend(rhs: Matrix3D): void;
/**
* Prepends an incremental rotation to a Matrix3D object.
*/
prependRotation(degrees: number, axis: Vector3D): void;
/**
* Prepends an incremental scale change along the x, y, and z axes to a Matrix3D object.
*/
prependScale(xScale: number, yScale: number, zScale: number): void;
/**
* Prepends an incremental translation, a repositioning along the x, y, and z axes, to a Matrix3D object.
*/
prependTranslation(x: number, y: number, z: number): void;
/**
* Sets the transformation matrix's translation, rotation, and scale settings.
*/
recompose(components: Vector3D[]): void;
reflect(plane: Plane3D): void;
transformBox(box: Box, target?: Box): Box;
transformSphere(sphere: Sphere, target?: Sphere): Sphere;
transformVector(vector: Vector3D, target?: Vector3D, ignoreW?: boolean): Vector3D;
/**
* Uses the transformation matrix to transform a Vector of Numbers from one coordinate space to another.
*/
transformVectors(vin: number[], vout: number[]): void;
/**
* Converts the current Matrix3D object to a matrix where the rows and columns are swapped.
*/
transpose(): void;
toFixed(decimalPlace: number): string;
toString(): string;
}
//# sourceMappingURL=Matrix3D.d.ts.map