/** * Manifold Transformation Operations * * Geometric transformations for manifold objects. * These replace the Rust WASM transform implementations. */ import type { ManifoldObject } from './types'; /** * Translate (move) a manifold * @param manifold - Manifold to translate * @param offset - [x, y, z] translation vector */ export declare function translate(manifold: ManifoldObject, offset: [number, number, number]): ManifoldObject; /** * Rotate a manifold * @param manifold - Manifold to rotate * @param angles - [x, y, z] rotation angles in degrees * * Note: Manifold uses degrees, OpenSCAD uses degrees * Rotation order: Z, then Y, then X (standard OpenSCAD order) */ export declare function rotate(manifold: ManifoldObject, angles: [number, number, number]): ManifoldObject; /** * Rotate around a single axis */ export declare function rotateX(manifold: ManifoldObject, angle: number): ManifoldObject; export declare function rotateY(manifold: ManifoldObject, angle: number): ManifoldObject; export declare function rotateZ(manifold: ManifoldObject, angle: number): ManifoldObject; /** * Scale a manifold * @param manifold - Manifold to scale * @param factors - [x, y, z] scale factors */ export declare function scale(manifold: ManifoldObject, factors: [number, number, number]): ManifoldObject; /** * Uniform scale (same factor in all directions) */ export declare function scaleUniform(manifold: ManifoldObject, factor: number): ManifoldObject; /** * Mirror a manifold across a plane * @param manifold - Manifold to mirror * @param normal - Normal vector of the mirror plane * * Common mirrors: * - X-axis: [1, 0, 0] * - Y-axis: [0, 1, 0] * - Z-axis: [0, 0, 1] */ export declare function mirror(manifold: ManifoldObject, normal: [number, number, number]): ManifoldObject; /** * Mirror across X-axis */ export declare function mirrorX(manifold: ManifoldObject): ManifoldObject; /** * Mirror across Y-axis */ export declare function mirrorY(manifold: ManifoldObject): ManifoldObject; /** * Mirror across Z-axis */ export declare function mirrorZ(manifold: ManifoldObject): ManifoldObject; /** * Apply a 4x4 transformation matrix * @param manifold - Manifold to transform * @param matrix - 16-element array representing 4x4 matrix in row-major order * * Matrix format (row-major): * [m00, m01, m02, m03, * m10, m11, m12, m13, * m20, m21, m22, m23, * m30, m31, m32, m33] */ export declare function multmatrix(manifold: ManifoldObject, matrix: number[]): ManifoldObject; /** * Create a 4x4 identity matrix */ export declare function identityMatrix(): number[]; /** * Create a translation matrix */ export declare function translationMatrix(x: number, y: number, z: number): number[]; /** * Create a scale matrix */ export declare function scaleMatrix(sx: number, sy: number, sz: number): number[]; /** * Create a rotation matrix around X-axis (degrees) */ export declare function rotationMatrixX(angle: number): number[]; /** * Create a rotation matrix around Y-axis (degrees) */ export declare function rotationMatrixY(angle: number): number[]; /** * Create a rotation matrix around Z-axis (degrees) */ export declare function rotationMatrixZ(angle: number): number[]; /** * Multiply two 4x4 matrices * Used for combining transformations */ export declare function multiplyMatrices(a: number[], b: number[]): number[]; /** * Resize - Scale to specific dimensions * @param manifold - Manifold to resize * @param newSize - [width, height, depth] target dimensions * @param auto - If true, maintain aspect ratio */ export declare function resize(manifold: ManifoldObject, newSize: [number, number, number], auto?: boolean): ManifoldObject; //# sourceMappingURL=transforms.d.ts.map