import { Point, Polyline } from '../../math/geometry'; import { Cdt } from '../ConstrainedDelaunayTriangulation/Cdt'; import { CdtEdge as Ed } from '../ConstrainedDelaunayTriangulation/CdtEdge'; import { CdtTriangle as Tr } from '../ConstrainedDelaunayTriangulation/CdtTriangle'; export declare class PathOptimizer { private cdt; poly: Polyline; private sourcePoly; private targetPoly; private d; setCdt(cdt: Cdt): void; triangles: Set; private outsideOfObstacles; /** following "https://page.mi.fu-berlin.de/mulzer/notes/alggeo/polySP.pdf" */ run(poly: Polyline): void; /**A function that returns an array of all crossed triangles * by a line segment from start to end * assuming the initial triangle contains the start point*/ private getAllCrossedTriangles; findChannelTriangles(): void; findPoly(p: Point): Polyline; /** Because of the floating point operations we might miss some triangles and get a polygon collapsing to a point somewhere inside of the polyline. * This point will correspond to a site adjacent to more than two edges from 'perimeter'. * We add to the polygon all the 'legal' triangles adjacent to this cite. */ fillTheCollapedSites(perimeter: Set): Set; private findSourceTriangle; private refineFunnel; private initDiagonals; private getSleeve; private recoverPath; private getPerimeterEdges; }