import { Point } from "@devexpress/utils/lib/geometry/point";
import { Segment } from "@devexpress/utils/lib/geometry/segment";

export class ConnectorProhibitedSegments<TPoint extends Point> {
    readonly segments: Segment<TPoint>[] = [];
    readonly exludedPoints: { [key: string]: boolean } = {};

    addSegment(segment: Segment<TPoint>): 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;
    }
}
