import { Point } from '../../math/geometry/point'; import { RBNode } from '../../math/RBTree/rbNode'; import { SweepEvent } from '../spline/coneSpanner/SweepEvent'; import { BasicObstacleSide } from './BasicObstacleSide'; import { BasicReflectionEvent } from './basicReflectionEvent'; import { BasicVertexEvent } from './BasicVertexEvent'; import { Obstacle } from './obstacle'; import { ScanDirection } from './ScanDirection'; import { VisibilityGraphGenerator } from './VisibilityGraphGenerator'; export declare class SparseVisibilityGraphGenerator extends VisibilityGraphGenerator { private horizontalVertexPoints; private verticalVertexPoints; private boundingBoxSteinerPoints; private xCoordAccumulator; private yCoordAccumulator; private horizontalScanSegmentVector; private verticalScanSegmentVector; private horizontalCoordMap; private verticalCoordMap; private perpendicularCoordMap; private parallelSegmentVector; private perpendicularSegmentVector; currentAxisPointComparer: (a: Point, b: Point) => number; constructor(); Clear(): void; private Cleanup; GenerateVisibilityGraph(): void; AccumulateVertexCoords(): void; private CreateSegmentVectorsAndPopulateCoordinateMaps; private RunScanLineToCreateSegmentsAndBoundingBoxSteinerPoints; InitializeEventQueue(scanDir: ScanDirection): void; private AddAxisCoordinateEvents; ProcessCustomEvent(evt: SweepEvent): void; private ProcessAxisCoordinate; InsertPerpendicularReflectionSegment(start: Point, end: Point): boolean; InsertParallelReflectionSegment(start: Point, end: Point, eventObstacle: Obstacle, lowNborSide: BasicObstacleSide, highNborSide: BasicObstacleSide, action: BasicReflectionEvent): boolean; protected ProcessVertexEvent(lowSideNode: RBNode, highSideNode: RBNode, vertexEvent: BasicVertexEvent): void; private static GetBoundingCorners; private CreateScanSegmentsOnAxisCoordinate; private HandleGroupCrossing; private AddPerpendicularCoordForGroupCrossing; private SkipSide; private CreateScanSegment; private GenerateSparseIntersectionsFromVertexPoints; private GenerateSparseIntersectionsAlongHorizontalAxis; private GenerateSparseIntersectionsAlongVerticalAxis; private SetVectorsAndCoordMaps; private ConnectAdjoiningScanSegments; private GenerateSparseIntersections; private AddSteinerPointsToInterveningSegments; private AddPointsToCurrentSegmentIntersections; private GenerateIntersectionsFromVertexPointForCurrentSegment; private FindPerpendicularSlot; private static FindIntersectingSlot; private AddSlotToSegmentIntersections; private AddBinaryDivisionSlotsToSegmentIntersections; private CreateScanSegmentTrees; private static CreateScanSegmentTree; }