/** * 2D Operations using Manifold CrossSection * * Implements 2D operations like offset, polygon creation, and conversion * between 2D CrossSection and 3D Manifold objects. */ import type { ManifoldObject } from "./types"; export type CrossSectionObject = any; /** * Create a 2D square/rectangle */ export declare function createSquare2D(size: number | [number, number], center?: boolean): CrossSectionObject; /** * Create a 2D circle */ export declare function createCircle2D(radius: number, segments?: number): CrossSectionObject; /** * Create a 2D polygon from points */ export declare function createPolygon2D(points: [number, number][]): CrossSectionObject; /** * Apply offset to a 2D shape * Positive delta expands, negative delta contracts */ export declare function offset2D(crossSection: CrossSectionObject, delta: number, joinType?: "round" | "miter" | "square", miterLimit?: number, circularSegments?: number): CrossSectionObject; /** * Union of multiple 2D shapes */ export declare function union2D(crossSections: CrossSectionObject[]): CrossSectionObject; /** * Difference of 2D shapes (first minus rest) */ export declare function difference2D(crossSections: CrossSectionObject[]): CrossSectionObject; /** * Intersection of 2D shapes */ export declare function intersection2D(crossSections: CrossSectionObject[]): CrossSectionObject; /** * Convex hull of 2D shapes */ export declare function hull2D(crossSections: CrossSectionObject[]): CrossSectionObject; /** * Translate a 2D shape */ export declare function translate2D(crossSection: CrossSectionObject, offset: [number, number]): CrossSectionObject; /** * Scale a 2D shape */ export declare function scale2D(crossSection: CrossSectionObject, factors: [number, number] | number): CrossSectionObject; /** * Rotate a 2D shape (degrees) */ export declare function rotate2D(crossSection: CrossSectionObject, degrees: number): CrossSectionObject; /** * Mirror a 2D shape */ export declare function mirror2D(crossSection: CrossSectionObject, normal: [number, number]): CrossSectionObject; /** * Linear extrude a 2D shape to 3D */ export declare function linearExtrude2D(crossSection: CrossSectionObject, height: number, nDivisions?: number, twistDegrees?: number, scaleTop?: [number, number], center?: boolean): ManifoldObject; /** * Revolve a 2D shape around the Y axis to create 3D */ export declare function revolve2D(crossSection: CrossSectionObject, circularSegments?: number, revolveDegrees?: number): ManifoldObject; /** * Project a 3D manifold to 2D (along Z axis) */ export declare function project3Dto2D(manifold: ManifoldObject): CrossSectionObject; /** * Slice a 3D manifold at Z=0 to get 2D cross section */ export declare function slice3Dto2D(manifold: ManifoldObject, height?: number): CrossSectionObject; /** * Get area of a 2D shape */ export declare function area2D(crossSection: CrossSectionObject): number; /** * Check if 2D shape is empty */ export declare function isEmpty2D(crossSection: CrossSectionObject): boolean; /** * Get bounds of 2D shape */ export declare function bounds2D(crossSection: CrossSectionObject): { min: [number, number]; max: [number, number]; }; /** * Convert CrossSection to polygon points (for debugging/export) */ export declare function toPolygons2D(crossSection: CrossSectionObject): [number, number][][]; //# sourceMappingURL=2d.d.ts.map