import { ICloneable } from '@chemistry/common'; import { Quaternion } from './quaternion.js'; import { Vec3 } from './vec3.js'; /** * Class to work with Matrix4x4 (When normalized have proberty A^-1 = A^t) * (used for transformation in 3D) * | 0 4 8 12 | | RS R R T | * | 1 5 9 13 | | R RS R T | * | 2 6 10 14 | = | R R RS T | * | 3 7 11 15 | | 0 0 0 1 | */ export declare class Transform3D implements ICloneable { static equals(matrix1: Transform3D, matrix2: Transform3D): boolean; /** * Return Transformation from Scale */ static fromScale(scale: number): Transform3D; /** * Return Transformation from Quaternion */ static fromQuaternion(quaternion: Quaternion): Transform3D; static fromMultiplication(transform1: Transform3D, transform2: Transform3D): Transform3D; /** * Return Transformation by Translation */ static fromTranslation(translation: Vec3): Transform3D; /** * Return Transformation from rootation about an axis */ static fromRotation(axis: Vec3, angle: number): Transform3D; protected elements: number[]; constructor(elements?: number[]); toString(): string; /** * Set value to specified element of the matrix */ set(row: number, col: number, value: number): void; /** * Return specified element of the matrix */ get(row: number, col: number): number; /** * Multipy vector to the Matrix */ project(position: Vec3): Vec3; rotate(axis: Vec3, angle: number): Transform3D; /** * Add translational component to current transformation */ translate(vec: Vec3): Transform3D; /** * Extract translational component of the transformation */ extractTranslation(): Vec3; extractScale(): number; /** * Return Inverse to current transformation (by inverting matrix) * (allow to unproject vectors) */ inverse(): Transform3D; /** * Return determinant of transformation matrix */ determinant(): number; /** * Clone current transformation */ clone(): Transform3D; equals(transform: Transform3D): boolean; } //# sourceMappingURL=transform3d.d.ts.map