import { Point, Rectangle } from '../../math/geometry'; import { Port } from '../../layout/core/port'; import { Direction } from '../../math/geometry/direction'; import { Shape } from '../shape'; import { VisibilityEdge } from '../visibility/VisibilityEdge'; import { VisibilityVertex } from '../visibility/VisibilityVertex'; import { Obstacle } from './obstacle'; import { ObstaclePort } from './ObstaclePort'; import { VisibilityGraphGenerator } from './VisibilityGraphGenerator'; import { FreePoint } from './FreePoint'; import { TransientGraphUtility } from './TransientGraphUtility'; import { GeomEdge } from '../..'; export declare class PortManager { private obstaclePortMap; private freePointMap; private freePointLocationsUsedByRouteEdges; TransUtil: TransientGraphUtility; private graphGenerator; RouteToCenterOfObstacles: boolean; get LimitPortVisibilitySpliceToEndpointBoundingBox(): boolean; set LimitPortVisibilitySpliceToEndpointBoundingBox(value: boolean); private obstaclePortsInGraph; private freePointsInGraph; private portSpliceLimitRectangle; private activeAncestors; private get VisGraph(); private get HScanSegments(); private get VScanSegments(); private get ObstacleTree(); private get AncestorSets(); constructor(graphGenerator: VisibilityGraphGenerator); Clear(): void; CreateObstaclePorts(obstacle: Obstacle): void; private CreateObstaclePort; FindVertices(port: Port): Array; RemoveObstaclePorts(obstacle: Obstacle): void; RemoveObstaclePort(port: Port): void; AddControlPointsToGraph(edge: GeomEdge, shapeToObstacleMap: Map): void; ConnectOobWaypointToEndpointVisibilityAtGraphBoundary(oobWaypoint: FreePoint, port: Port): void; private ConnectToGraphAtPointsCollinearWithVertices; SetAllAncestorsActive(edgeGeom: GeomEdge, shapeToObstacleMap: Map): boolean; SetAllGroupsActive(): void; FindAncestorsAndObstaclePort(port: Port, t: { oport: ObstaclePort; }): Set; private ActivateAncestors; ClearActiveAncestors(): void; RemoveControlPointsFromGraph(): void; private RemoveObstaclePortsFromGraph; private RemoveFreePointsFromGraph; private RemoveStaleFreePoints; ClearVisibility(): void; BeginRouteEdges(): void; EndRouteEdges(): void; FindObstaclePort(port: Port): ObstaclePort; private AddPortToGraph; private AddObstaclePortToGraph; private CreateObstaclePortEntrancesIfNeeded; GetPortVisibilityIntersection(edgeGeometry: GeomEdge): Point[]; private static GetPathPointsFromOverlappingCollinearVisibility; private static GetPathPointsFromIntersectingVisibility; private CreateObstaclePortEntrancesFromPoints; private GetBorderIntersections; private CreatePortEntrancesAtBorderIntersections; private static GetDerivative; private CreatePortEntrance; private CreateEntrancesForCornerPort; private AddObstaclePortEntranceToGraph; private InBoundsGraphBoxIntersect; FindorCreateNearestPerpEdgePPDN(first: Point, second: Point, dir: Direction, weight: number): VisibilityEdge; private FindorCreateNearestPerpEdgePPDNT; private FindOrCreateNearestPerpEdgeFromNearestPerpSegment; private FindOrCreateSegmentIntersectionVertexAndAssociatedEdge; private AddEdgeToClosestSegmentEnd; private GetPortSpliceLimitRectangle; GetPortRectangle(port: Port): Rectangle; AddToLimitRectangle(location: Point): void; private FindOrCreateFreePoint; private AddFreePointToGraph; private CreateOutOfBoundsFreePoint; private ConnectFreePointToLateralEdge; }