//     [DebuggerDisplay("({SourcePoint.x},{SourcePoint.y})->({TargetPoint.x},{TargetPoint.y})")]
export class SdBoneEdge {
    constructor(visibilityEdge, source, target) {
        this.VisibilityEdge = visibilityEdge;
        this.Source = source;
        this.Target = target;
    }
    get TargetPoint() {
        return this.Target.Point;
    }
    get SourcePoint() {
        return this.Source.Point;
    }
    get IsOccupied() {
        return this.numberOfPassedPaths > 0;
    }
    get IsPassable() {
        return (this.Target.IsTargetOfRouting ||
            this.Source.IsSourceOfRouting ||
            this.VisibilityEdge.IsPassable == null ||
            this.VisibilityEdge.IsPassable());
    }
    AddOccupiedEdge() {
        this.numberOfPassedPaths++;
    }
    RemoveOccupiedEdge() {
        this.numberOfPassedPaths--;
        /*Assert.assert(this.numberOfPassedPaths >= 0)*/
    }
}
//# sourceMappingURL=SdBoneEdge.js.map