import { Point } from "@devexpress/utils/lib/geometry/point"; import { Segment } from "@devexpress/utils/lib/geometry/segment"; export class ConnectorProhibitedSegments { readonly segments: Segment[] = []; readonly exludedPoints: { [key: string]: boolean } = {}; addSegment(segment: Segment): void { this.segments.push(segment); } addExludedPoint(point: TPoint): void { this.exludedPoints[point.x + "_" + point.y] = true; } allowPoint(point: TPoint): boolean { if(!((point.x + "_" + point.y) in this.exludedPoints)) for(let i = 0; i < this.segments.length; i++) if(this.segments[i].containsPoint(point)) return false; return true; } }