import type { MultiFn2O } from "@thi.ng/defmulti"; import { BasicTessellation, MeshTessellation } from "@thi.ng/geom-tessellate/tessellation"; import type { IShape, ITessellation, Tessellator } from "./api.js"; /** * Iteratively tessellates shape using provided * [`Tessellator`](https://docs.thi.ng/umbrella/geom-tessellate/types/Tessellator.html) * functions and optional * [`ITessellation`](https://docs.thi.ng/umbrella/geom-tessellate/interfaces/ITessellation.html) * impl. See [thi.ng/geom-tessellate](https://thi.ng/thi.ng/geom-tessellate) * package for more details. * * @remarks * Implemented for all shapes supported by {@link vertices}. For groups, every * child shape will be tessellated individually, but results combined into a * single * [`ITessellation`](https://docs.thi.ng/umbrella/geom-tessellate/interfaces/ITessellation.html) * instance. * * {@link ComplexPolygon}s will **always** be first tessellated via * {@link TESSELLATE_EARCUT_COMPLEX} as a first pass (so you don't need to * specify that one). This is currently the only tessellation method considering * holes and is also recommended as first pass for concave polygons. * * If `tess` is not given, a {@link basicTessellation} will be used as default. * * The following tessellator presets are available: * * - {@link TESSELLATE_EARCUT} * - {@link TESSELLATE_EARCUT_COMPLEX} * - {@link TESSELLATE_EDGE_SPLIT} * - {@link TESSELLATE_INSET} * - {@link TESSELLATE_QUAD_FAN} * - {@link TESSELLATE_RIM_TRIS} * - {@link TESSELLATE_TRI_FAN} * - {@link TESSELLATE_TRI_FAN_BOUNDARY} * - {@link TESSELLATE_TRI_FAN_SPLIT} * * @param shape * @param tessellators * @param tess */ export declare const tessellate: MultiFn2O, ITessellation, ITessellation>; /** * Alias for thi.ng/geom-tessellate * [`earCut`](https://docs.thi.ng/umbrella/geom-tessellate/functions/earCut.html) */ export declare const TESSELLATE_EARCUT: import("@thi.ng/geom-tessellate").Tessellator; /** * Higher-order tessellator. Alias for thi.ng/geom-tessellate * [`earCut`](https://docs.thi.ng/umbrella/geom-tessellate/functions/earCut.html) */ export declare const TESSELLATE_EARCUT_COMPLEX: (holeIDs?: number[], hashThreshold?: number) => import("@thi.ng/geom-tessellate").Tessellator; /** * Alias for thi.ng/geom-tessellate * [`edgeSplit`](https://docs.thi.ng/umbrella/geom-tessellate/functions/edgeSplit.html) */ export declare const TESSELLATE_EDGE_SPLIT: import("@thi.ng/geom-tessellate").Tessellator; /** * Alias for thi.ng/geom-tessellate * [`inset`](https://docs.thi.ng/umbrella/geom-tessellate/functions/inset.html) */ export declare const TESSELLATE_INSET: (inset?: number, keepInterior?: boolean) => import("@thi.ng/geom-tessellate").Tessellator; /** * Alias for thi.ng/geom-tessellate * [`quadFan`](https://docs.thi.ng/umbrella/geom-tessellate/functions/quadFan.html) */ export declare const TESSELLATE_QUAD_FAN: import("@thi.ng/geom-tessellate").Tessellator; /** * Alias for thi.ng/geom-tessellate * [`rimTris`](https://docs.thi.ng/umbrella/geom-tessellate/functions/rimTris.html) */ export declare const TESSELLATE_RIM_TRIS: import("@thi.ng/geom-tessellate").Tessellator; /** * Alias for thi.ng/geom-tessellate * [`triFan`](https://docs.thi.ng/umbrella/geom-tessellate/functions/triFan.html) */ export declare const TESSELLATE_TRI_FAN: import("@thi.ng/geom-tessellate").Tessellator; /** * Alias for thi.ng/geom-tessellate * [`triFanBoundary`](https://docs.thi.ng/umbrella/geom-tessellate/functions/triFanBoundary.html) */ export declare const TESSELLATE_TRI_FAN_BOUNDARY: import("@thi.ng/geom-tessellate").Tessellator; /** * Alias for thi.ng/geom-tessellate * [`triFanSplit`](https://docs.thi.ng/umbrella/geom-tessellate/functions/triFanSplit.html) */ export declare const TESSELLATE_TRI_FAN_SPLIT: import("@thi.ng/geom-tessellate").Tessellator; /** * Syntax sugar for creating a thi.ng/geom-tessellate * [`BasicTessellation`](https://docs.thi.ng/umbrella/geom-tessellate/classes/BasicTessellation.html). */ export declare const basicTessellation: () => BasicTessellation; /** * Syntax sugar for creating a new thi.ng/geom-tessellate * [`MeshTessellation`](https://docs.thi.ng/umbrella/geom-tessellate/classes/MeshTessellation.html) * for 2D or 3D geometry and vertex welding tolerance/distance `eps` * * @param dim * @param eps */ export declare const meshTessellation: (dim: 2 | 3, eps?: number) => MeshTessellation; //# sourceMappingURL=tessellate.d.ts.map