import { Assert } from '../../../utils/assert';
//  (this needs to be public because it's used elsewhere in an interface implementation)
export class Station {
    constructor(serialNumber, isRealNode, position) {
        //  radius of the corresponding hub
        this.Radius = 0;
        //  it maps each neighbor to its hub
        this.BundleBases = new Map();
        //  MetroNodeInfos corresponding to the node
        this.MetroNodeInfos = new Array();
        this._cachedIdealRadius = 0;
        this.SerialNumber = serialNumber;
        this.IsRealNode = isRealNode;
        this.Position = position;
    }
    static less(a, b) {
        Assert.assert(a == b || a.SerialNumber != b.SerialNumber);
        return a.SerialNumber < b.SerialNumber;
    }
    static greater(a, b) {
        return a.SerialNumber > b.SerialNumber;
    }
    get cachedIdealRadius() {
        return this._cachedIdealRadius;
    }
    set cachedIdealRadius(value) {
        Assert.assert(!isNaN(value));
        this._cachedIdealRadius = value;
    }
    AddEnterableLoosePolyline(poly) {
        if (this.EnterableLoosePolylines == null) {
            this.EnterableLoosePolylines = new Set();
        }
        this.EnterableLoosePolylines.add(poly);
    }
    AddEnterableTightPolyline(poly) {
        if (this.EnterableTightPolylines == null) {
            this.EnterableTightPolylines = new Set();
        }
        this.EnterableTightPolylines.add(poly);
    }
}
//# sourceMappingURL=Station.js.map