import type { MultiFn2 } from "@thi.ng/defmulti"; import type { IShape, IShape2, IShape3, TransformVertexFn } from "./api.js"; import type { Arc } from "./api/arc.js"; import type { Circle } from "./api/circle.js"; import type { Ellipse } from "./api/ellipse.js"; import { Polygon } from "./api/polygon.js"; import { Polyline } from "./api/polyline.js"; import type { Rect } from "./api/rect.js"; /** * Function overrides for {@link transformVertices}. */ export type TransformVerticesFn = { (shape: Arc, fn: TransformVertexFn): Polyline; (shape: Circle, fn: TransformVertexFn): Polygon; (shape: Ellipse, fn: TransformVertexFn): Polygon; (shape: Rect, fn: TransformVertexFn): Polygon; (shape: T, fn: TransformVertexFn): T; (shape: T, fn: TransformVertexFn): T; } & MultiFn2; /** * Similar to {@link transform}. Transforms vertices of given shape with * provided function, which is being called for each vertex individually and * should produce a transformation matrix. * * @remarks * Some shape types will be automatically converted to other types prior to * transformation because they cannot be reliably represented in their original * type anymore, this includes: * * - {@link Arc} => {@link Path} (cubics) * - {@link Circle} => {@link Path} (cubics) * - {@link Ellipse} => {@link Path} (cubics) * - {@link Rect} => {@link Polygon} * * Currently implemented for: * * - {@link Arc} * - {@link BPatch} * - {@link Circle} * - {@link ComplexPolygon} * - {@link Cubic} * - {@link Cubic3} * - {@link Ellipse} * - {@link Extra} * - {@link Group} * - {@link Group3} * - {@link Line} * - {@link Line3} * - {@link Path} * - {@link Path3} * - {@link Points} * - {@link Points3} * - {@link Polygon} * - {@link Polygon3} * - {@link Polyline} * - {@link Polyline3} * - {@link Quad} * - {@link Quad3} * - {@link Quadratic} * - {@link Quadratic3} * - {@link Rect} * - {@link Text} * - {@link Triangle} * - {@link Triangle3} * * @param shape * @param fn */ export declare const transformVertices: TransformVerticesFn; //# sourceMappingURL=transform-vertices.d.ts.map