import { Point } from '../../math/geometry/point'; import { SegmentBase } from '../visibility/SegmentBase'; import { VisibilityGraph } from '../visibility/VisibilityGraph'; import { VisibilityVertex } from '../visibility/VisibilityVertex'; import { PointAndCrossingsList } from './PointAndCrossingsList'; import { ScanDirection } from './ScanDirection'; import { ScanSegmentTree } from './ScanSegmentTree'; export declare class ScanSegment extends SegmentBase { GroupBoundaryPointAndCrossingsList: PointAndCrossingsList; private endPoint; private startPoint; static readonly NormalWeight: number; static readonly ReflectionWeight: number; static readonly OverlappedWeight: number; Weight: number; NextSegment: ScanSegment; static mk(start: Point, end: Point): ScanSegment; constructor(start: Point, end: Point, weight: number, gbcList: PointAndCrossingsList); get Start(): Point; get End(): Point; get IsVertical(): boolean; get ScanDirection(): ScanDirection; LowestVisibilityVertex: VisibilityVertex; HighestVisibilityVertex: VisibilityVertex; get IsOverlapped(): boolean; get IsReflection(): boolean; NeedStartOverlapVertex: boolean; NeedEndOverlapVertex: boolean; static IsVerticalSegment(start: Point, end: Point): boolean; MergeGroupBoundaryCrossingList(other: PointAndCrossingsList): void; TrimGroupBoundaryCrossingList(): void; Update(start: Point, end: Point): void; private SetInitialVisibilityVertex; AppendVisibilityVertex(vg: VisibilityGraph, newVertex: VisibilityVertex): void; private AddVisibilityEdge; private AppendHighestVisibilityVertex; private LoadStartOverlapVertexIfNeeded; private LoadEndOverlapVertexIfNeeded; OnSegmentIntersectorBegin(vg: VisibilityGraph): void; OnSegmentIntersectorEnd(vg: VisibilityGraph): void; static Subsume(t: { seg: ScanSegment; }, newStart: Point, newEnd: Point, weight: number, gbcList: PointAndCrossingsList, scanDir: ScanDirection, tree: ScanSegmentTree, ot: { extendStart: boolean; extendEnd: boolean; }): boolean; IntersectsSegment(seg: ScanSegment): boolean; toString(): string; ContainsPoint(test: Point): boolean; private sparsePerpendicularCoords; get HasSparsePerpendicularCoords(): boolean; private CreatePointFromPerpCoord; AddSparseVertexCoord(perpCoord: number): void; AddSparseEndpoint(coord: number): boolean; CreateSparseVerticesAndEdges(vg: VisibilityGraph): void; HasVisibility(): boolean; private AddGroupCrossingsBeforeHighestVisibilityVertex; private AppendGroupCrossingsThroughPoint; private static GetCrossingInteriorVertex; private AddCrossingEdge; private AddLowCrossings; private AddHighCrossings; }