/** * * @param time - the time in seconds. * @return the freespeed at time <tt>time</tt>. */ @Override public synchronized double getFreespeed(final double time) { if (variableFreespeed.isRecalcRequired()) { recalcFreespeed(); } return variableFreespeed.getValue(time); }
public static TimeVariantLinkImpl createLinkWithFixedIntervalAttributes(final Id<Link> id, final Node from, final Node to, final Network network, final double length, final double freespeed, final double capacity, final double lanes, final int interval, final int maxTime) { return new TimeVariantLinkImpl(id, from, to, network, length, freespeed, capacity, lanes, new FixedIntervalTimeVariantAttribute(interval, maxTime), new FixedIntervalTimeVariantAttribute(interval, maxTime), new FixedIntervalTimeVariantAttribute(interval, maxTime)); }
public Link getNearest(final double x, final double y) { LinkWrapper w = this.top.getNearest(x, y, new MutableDouble(Double.POSITIVE_INFINITY)); if (w == null) { return null; } return w.link; }
private synchronized void recalcFlowCapacity() { double baseFlowCapacityPerSec = this.getCapacity() / getCapacityPeriod(); variableFlowCapacity.recalc(changeEvents, TimeVariantAttribute.FLOW_CAPACITY_GETTER, baseFlowCapacityPerSec); }
/** * @param time - the time in seconds. * @return the flow capacity at time <tt>time</tt>. */ @Override public synchronized double getFlowCapacityPerSec(final double time) { if (variableFlowCapacity.isRecalcRequired()) { recalcFlowCapacity(); } return variableFlowCapacity.getValue(time); }
private synchronized void recalcLanes() { variableLanes.recalc(changeEvents, TimeVariantAttribute.LANES_GETTER, this.getNumberOfLanes() ); } }
private synchronized void recalcFreespeed() { variableFreespeed.recalc(changeEvents, TimeVariantAttribute.FREESPEED_GETTER, this.getFreespeed() ); }
static LinkFactory[] linkFactories(int interval, int maxTime) { return new LinkFactory[] { new VariableIntervalTimeVariantLinkFactory(), new FixedIntervalTimeVariantLinkFactory(interval, maxTime) }; };
@Override public void setNumberOfLanes(double lanes) { super.setNumberOfLanes(lanes); this.recalcLanes(); }
public static TimeVariantLinkImpl createLinkWithVariableIntervalAttributes(final Id<Link> id, final Node from, final Node to, final Network network, final double length, final double freespeed, final double capacity, final double lanes) { return new TimeVariantLinkImpl(id, from, to, network, length, freespeed, capacity, lanes, new VariableIntervalTimeVariantAttribute(), new VariableIntervalTimeVariantAttribute(), new VariableIntervalTimeVariantAttribute()); }
@Override public void setFreespeed(double freespeed) { super.setFreespeed(freespeed); this.recalcFreespeed(); }
@Override public final void setCapacity(double capacityPerNetworkCapcityPeriod){ super.setCapacity(capacityPerNetworkCapcityPeriod); this.recalcFlowCapacity(); }
public void put(final Link link) { this.top.put(new LinkWrapper(link)); }
public void remove(final Link link) { this.top.remove(new LinkWrapper(link)); }
@Override public Link createLink(Id<Link> id, Node from, Node to, Network network, double length, double freespeed, double capacity, double nOfLanes) { return NetworkUtils.createLink(id, from, to, network, length, freespeed, capacity, nOfLanes); }
/* package */NodeImpl(final Id<Node> id, final Coord coord, final String type) { this(id); this.coord = coord; NetworkUtils.setType(this,type); }
@Override public void setCapacity(double capacityPerNetworkCapcityPeriod){ this.capacity = capacityPerNetworkCapcityPeriod; this.checkCapacitySemantics(); }
@Override public double getFlowCapacityPerSec() { return getFlowCapacityPerSec(Time.UNDEFINED_TIME); } @Override
@Override public void setFreespeed(double freespeed) { this.freespeed = freespeed; this.checkFreespeedSemantics(); }
@Override public Link createLink(Id<Link> id, Node from, Node to, Network network, double length, double freespeed, double capacity, double nOfLanes) { return TimeVariantLinkImpl.createLinkWithFixedIntervalAttributes(id, from, to, network, length, freespeed, capacity, nOfLanes, interval, maxTime); } }