import { AcDbPolyline, AcGePoint2d, AcGePoint2dLike } from '@mlightcad/data-model'; import { AcApContext } from '../../app'; import { AcEdBaseView, AcEdCommand, AcEdPreviewJig } from '../../editor'; /** * Preview jig that dynamically updates a polyline while the user is acquiring * the *next* point. * * Responsibilities: * - Keep the already-confirmed vertices visible. * - Add a transient "current" vertex that follows the cursor. * - Update the bulge of the last confirmed vertex to preview arc/line changes. * * Why this jig exists: * - Point acquisition needs *live* geometry updates as the cursor moves. * - We update the polyline incrementally (add/remove a single temp vertex) * instead of `reset()` to avoid flicker and preserve transient state. */ export declare class AcApPolylineJig extends AcEdPreviewJig { private _polyline; private _points; private _bulges; private _currentBulge?; private _bulgeProvider?; private _baseCount; private _hasTemp; private _appliedBulge?; /** * Creates a polyline jig. * * @param view - The associated view */ /** * Create a polyline preview jig for point acquisition. * * @param view - The associated view for transient rendering. * @param points - Confirmed polyline vertices. * @param bulges - Bulge values aligned with `points`. * @param currentBulge - Optional fixed bulge used for the preview segment. * @param bulgeProvider - Optional function to compute bulge based on the * current cursor point. */ constructor(view: AcEdBaseView, points: AcGePoint2d[], bulges: (number | undefined)[], currentBulge?: number, bulgeProvider?: (endPoint: AcGePoint2dLike) => number | undefined); /** * The transient polyline entity being previewed. */ get entity(): AcDbPolyline; /** * Update the preview polyline as the cursor moves. * * This updates: * - The bulge of the last confirmed vertex (if needed). * - A single temporary vertex representing the current cursor position. */ update(point: AcGePoint2dLike): void; /** * Seed the preview entity with the confirmed vertices. */ private addBaseVertices; } /** * Command to create one polyline. */ export declare class AcApPolylineCmd extends AcEdCommand { constructor(); private computeBulgeFromCenter; private computeCircleCenter; private computeBulgeFromThreePoints; private computeBulgeFromRadius; execute(context: AcApContext): Promise; } //# sourceMappingURL=AcApPolylineCmd.d.ts.map