File |
Line |
org\opentrafficsim\road\gtu\lane\AbstractTrafficLight.java |
289 |
org\opentrafficsim\road\gtu\lane\LaneBlock.java |
245 |
}
/** {@inheritDoc} */
@Override
public final Length.Abs getOdometer()
{
return LENGTH_ABS_0;
}
/** {@inheritDoc} */
@Override
public final Speed.Abs getLongitudinalVelocity()
{
return SPEED_ABS_0;
}
/** {@inheritDoc} */
@Override
public final Speed.Abs getLongitudinalVelocity(final Time.Abs when)
{
return SPEED_ABS_0;
}
/** {@inheritDoc} */
@Override
public final Acceleration.Abs getAcceleration(final Time.Abs when)
{
return ACCELERATION_ABS_0;
}
/** {@inheritDoc} */
@Override
public final Speed.Abs getLateralVelocity()
{
return SPEED_ABS_0;
}
/** {@inheritDoc} */
@Override
public final Time.Abs getLastEvaluationTime()
{
return TIME_ABS_0;
}
/** {@inheritDoc} */
@Override
public final Time.Abs getNextEvaluationTime()
{
return TIME_ABS_0;
}
/** {@inheritDoc} */
@Override
public final void enterLane(final Lane lane, final Length.Rel position) throws NetworkException
{
// do nothing
}
/** {@inheritDoc} */
@Override
public final void leaveLane(final Lane lane)
{
// do nothing
}
/** {@inheritDoc} */
@Override
public final Map<Lane, Length.Rel> positions(final RelativePosition relativePosition) throws NetworkException
{
Map<Lane, Length.Rel> map = new HashMap<Lane, Length.Rel>();
map.put(this.lane, this.position);
return map;
}
/** {@inheritDoc} */
@Override
public final Map<Lane, Length.Rel> positions(final RelativePosition relativePosition, final Time.Abs when)
throws NetworkException
{
return positions(relativePosition);
}
/** {@inheritDoc} */
@Override
public final Length.Rel position(final Lane lane, final RelativePosition relativePosition) throws NetworkException
{
if (this.lane.equals(lane))
{
return this.position;
}
throw new NetworkException("BLOCK GTU not on lane " + lane);
}
/** {@inheritDoc} */
@Override
public final Length.Rel position(final Lane lane, final RelativePosition relativePosition, final Time.Abs when)
throws NetworkException
{
return position(lane, relativePosition);
}
/** {@inheritDoc} */
@Override
public final Map<Lane, Double> fractionalPositions(final RelativePosition relativePosition) throws NetworkException
{
Map<Lane, Double> map = new HashMap<Lane, Double>();
map.put(this.lane, this.position.getSI() / this.lane.getLength().getSI());
return map;
}
/** {@inheritDoc} */
@Override
public Map<Lane, Double> fractionalPositions(RelativePosition relativePosition, Time.Abs when)
throws NetworkException
{
Map<Lane, Double> result = new HashMap<Lane, Double>();
result.put(this.lane, this.position.getSI() / this.lane.getLength().getSI());
return result;
}
/** {@inheritDoc} */
@Override
public double fractionalPosition(Lane lane, RelativePosition relativePosition, Time.Abs when)
throws NetworkException
{
return this.position.getSI() / lane.getLength().getSI();
}
/** {@inheritDoc} */
@Override
public double fractionalPosition(Lane lane, RelativePosition relativePosition) throws NetworkException
{
return this.position.getSI() / lane.getLength().getSI();
}
/** {@inheritDoc} */
@Override
public Length.Rel projectedPosition(Lane projectionLane, RelativePosition relativePosition, Time.Abs when)
throws NetworkException
{
return null;
}
/** {@inheritDoc} */
@Override
public HeadwayGTU headway(Length.Rel maxDistance) throws NetworkException
{
return null;
}
/** {@inheritDoc} */
@Override
public HeadwayGTU headway(Lane lane, Length.Rel maxDistance) throws NetworkException
{
return null;
}
/** {@inheritDoc} */
@Override
public Set<LaneBasedGTU> parallel(Lane lane, Time.Abs when) throws NetworkException
{
return null;
}
/** {@inheritDoc} */
@Override
public Set<LaneBasedGTU> parallel(LateralDirectionality lateralDirection, Time.Abs when) throws NetworkException
{
return null;
}
/** {@inheritDoc} */
@Override
public Lane bestAccessibleAdjacentLane(Lane currentLane, LateralDirectionality lateralDirection,
Length.Rel longitudinalPosition)
{
return null;
}
/** {@inheritDoc} */
@Override
public Time.Abs timeAtDistance(Length.Rel distance)
{
return null;
}
/** {@inheritDoc} */
@Override
public Time.Rel deltaTimeForDistance(Length.Rel distance)
{
return null;
}
/** {@inheritDoc} */
@Override
public GTUFollowingModel getGTUFollowingModel()
{
return null;
}
/** {@inheritDoc} */
@Override
public LaneChangeDistanceAndDirection getLaneChangeDistanceAndDirection()
{
return null;
}
/** {@inheritDoc} */
@Override
public String toString()
{
return "AbstractTrafficLight [lane=" + this.lane + ", position=" + this.position + "]"; |
File |
Line |
org\opentrafficsim\graphs\FundamentalDiagram.java |
278 |
org\opentrafficsim\graphs\FundamentalDiagramLane.java |
275 |
sample.addData(gtu.getLongitudinalVelocity(detectionTime));
}
/**
* Set up a JFreeChart axis.
* @param valueAxis ValueAxis; the axis to set up
* @param axis Axis; the Axis that provides the data to setup the ValueAxis
*/
private static void configureAxis(final ValueAxis valueAxis, final Axis axis)
{
valueAxis.setLabel("\u2192 " + axis.getName());
valueAxis.setRange(axis.getMinimumValue().getInUnit(), axis.getMaximumValue().getInUnit());
}
/**
* Redraw this TrajectoryGraph (after the underlying data has been changed, or to change axes).
*/
public final void reGraph()
{
NumberAxis numberAxis = new NumberAxis();
configureAxis(numberAxis, this.xAxis);
this.chartPanel.getXYPlot().setDomainAxis(numberAxis);
this.chartPanel.getPlot().axisChanged(new AxisChangeEvent(numberAxis));
numberAxis = new NumberAxis();
configureAxis(numberAxis, this.yAxis);
this.chartPanel.getXYPlot().setRangeAxis(numberAxis);
this.chartPanel.getPlot().axisChanged(new AxisChangeEvent(numberAxis));
notifyListeners(new DatasetChangeEvent(this, null)); // This guess work actually works!
}
/**
* Notify interested parties of an event affecting this TrajectoryPlot.
* @param event DatasetChangedEvent
*/
private void notifyListeners(final DatasetChangeEvent event)
{
for (DatasetChangeListener dcl : this.listenerList.getListeners(DatasetChangeListener.class))
{
dcl.datasetChanged(event);
}
}
/** {@inheritDoc} */
@Override
public final int getSeriesCount()
{
return 1;
}
/** {@inheritDoc} */
@Override
public final Comparable<Integer> getSeriesKey(final int series)
{
return series;
}
/** {@inheritDoc} */
@SuppressWarnings("rawtypes")
@Override
public final int indexOf(final Comparable seriesKey)
{
if (seriesKey instanceof Integer)
{
return (Integer) seriesKey;
}
return -1;
}
/** {@inheritDoc} */
@Override
public final void addChangeListener(final DatasetChangeListener listener)
{
this.listenerList.add(DatasetChangeListener.class, listener);
}
/** {@inheritDoc} */
@Override
public final void removeChangeListener(final DatasetChangeListener listener)
{
this.listenerList.remove(DatasetChangeListener.class, listener);
}
/** {@inheritDoc} */
@Override
public final DatasetGroup getGroup()
{
return this.datasetGroup;
}
/** {@inheritDoc} */
@Override
public final void setGroup(final DatasetGroup group)
{
this.datasetGroup = group;
}
/** {@inheritDoc} */
@Override
public final DomainOrder getDomainOrder()
{
return DomainOrder.ASCENDING;
}
/** {@inheritDoc} */
@Override
public final int getItemCount(final int series)
{
return this.samples.size();
}
/**
* Retrieve a value from the recorded samples.
* @param item Integer; the rank number of the sample
* @param axis Axis; the axis that determines which quantity to retrieve
* @return Double; the requested value, or Double.NaN if the sample does not (yet) exist
*/
private Double getSample(final int item, final Axis axis)
{
if (item >= this.samples.size())
{
return Double.NaN;
}
double result = this.samples.get(item).getValue(axis);
/*-
System.out.println(String.format("getSample(item=%d, axis=%s) returns %f", item, axis.name,
result));
*/
return result;
}
/** {@inheritDoc} */
@Override
public final Number getX(final int series, final int item)
{
return getXValue(series, item);
}
/** {@inheritDoc} */
@Override
public final double getXValue(final int series, final int item)
{
return getSample(item, this.xAxis);
}
/** {@inheritDoc} */
@Override
public final Number getY(final int series, final int item)
{
return getYValue(series, item);
}
/** {@inheritDoc} */
@Override
public final double getYValue(final int series, final int item)
{
return getSample(item, this.yAxis);
} |
File |
Line |
org\opentrafficsim\graphs\FundamentalDiagram.java |
186 |
org\opentrafficsim\graphs\FundamentalDiagramLane.java |
177 |
renderer.setBaseItemLabelsVisible(true);
final ChartPanel cp = new ChartPanel(this.chartPanel);
PointerHandler ph = new PointerHandler()
{
/** {@inheritDoc} */
@Override
void updateHint(final double domainValue, final double rangeValue)
{
if (Double.isNaN(domainValue))
{
setStatusText(" ");
return;
}
String s1 = String.format(getXAxisFormat(), domainValue);
String s2 = String.format(getYAxisFormat(), rangeValue);
setStatusText(s1 + ", " + s2);
}
};
cp.addMouseMotionListener(ph);
cp.addMouseListener(ph);
cp.setMouseWheelEnabled(true);
final JMenu subMenu = new JMenu("Set layout");
final ButtonGroup group = new ButtonGroup();
final JRadioButtonMenuItem defaultItem = addMenuItem(subMenu, group, getDensityAxis(), this.flowAxis, true);
addMenuItem(subMenu, group, this.flowAxis, this.speedAxis, false);
addMenuItem(subMenu, group, this.densityAxis, this.speedAxis, false);
actionPerformed(new ActionEvent(this, 0, defaultItem.getActionCommand()));
final JPopupMenu popupMenu = cp.getPopupMenu();
popupMenu.insert(subMenu, 0);
this.add(cp, BorderLayout.CENTER);
this.statusLabel = new JLabel(" ", SwingConstants.CENTER);
this.add(this.statusLabel, BorderLayout.SOUTH); |
File |
Line |
org\opentrafficsim\graphs\FundamentalDiagram.java |
512 |
org\opentrafficsim\graphs\FundamentalDiagramLane.java |
427 |
}
/** {@inheritDoc} */
@Override
public final void actionPerformed(final ActionEvent actionEvent)
{
final String command = actionEvent.getActionCommand();
// System.out.println("command is \"" + command + "\"");
final String[] fields = command.split("[/]");
if (fields.length == 2)
{
for (String field : fields)
{
if (field.equalsIgnoreCase(this.densityAxis.getShortName()))
{
if (field == fields[0])
{
this.yAxis = this.densityAxis;
}
else
{
this.xAxis = this.densityAxis;
}
}
else if (field.equalsIgnoreCase(this.flowAxis.getShortName()))
{
if (field == fields[0])
{
this.yAxis = this.flowAxis;
}
else
{
this.xAxis = this.flowAxis;
}
}
else if (field.equalsIgnoreCase(this.speedAxis.getShortName()))
{
if (field == fields[0])
{
this.yAxis = this.speedAxis;
}
else
{
this.xAxis = this.speedAxis;
}
}
else
{
throw new Error("Cannot find axis name: " + field);
}
}
reGraph();
}
else
{
throw new Error("Unknown ActionEvent");
}
}
/**
* Internal Sensor class.
* <p>
* Copyright (c) 2013-2015 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
* BSD-style license. See <a href="http://opentrafficsim.org/docs/license.html">OpenTrafficSim License</a>.
* <p>
* $LastChangedDate: 2015-09-14 01:33:02 +0200 (Mon, 14 Sep 2015) $, @version $Revision: 1401 $, by $Author: averbraeck $,
* initial version feb. 2015 <br>
* @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a>
*/
class FundamentalDiagramSensor extends AbstractSensor |
File |
Line |
org\opentrafficsim\road\gtu\lane\AbstractTrafficLight.java |
149 |
org\opentrafficsim\road\gtu\lane\LaneBlock.java |
134 |
}
/**
* @return lane
*/
public final Lane getLane()
{
return this.lane;
}
/** {@inheritDoc} */
@Override
public final Length.Rel getLength()
{
return LENGTH_REL_0;
}
/** {@inheritDoc} */
@Override
public final Length.Rel getWidth()
{
return LENGTH_REL_0;
}
/** {@inheritDoc} */
@Override
public final Speed.Abs getMaximumVelocity()
{
return SPEED_ABS_0;
}
/** {@inheritDoc} */
@Override
public final OTSDEVSSimulatorInterface getSimulator()
{
return this.simulator;
}
/** {@inheritDoc} */
@Override
public final RelativePosition getFront()
{
return RELATIVE_POSITIONS.get(RelativePosition.FRONT);
}
/** {@inheritDoc} */
@Override
public final RelativePosition getRear()
{
return RELATIVE_POSITIONS.get(RelativePosition.FRONT);
}
/** {@inheritDoc} */
@Override
public final Speed.Abs getVelocity()
{
return SPEED_ABS_0;
}
/** {@inheritDoc} */
@Override
public final Map<TYPE, RelativePosition> getRelativePositions()
{
return RELATIVE_POSITIONS;
}
/** {@inheritDoc} */
@Override
public final void destroy()
{
// nothing to do.
}
/** {@inheritDoc} */
@Override
public final Acceleration.Abs getAcceleration()
{
return ACCELERATION_ABS_0;
}
/** {@inheritDoc} */
@Override
public final DirectedPoint getLocation()
{ |
File |
Line |
org\opentrafficsim\graphs\FundamentalDiagram.java |
325 |
org\opentrafficsim\graphs\FundamentalDiagramLane.java |
322 |
org\opentrafficsim\graphs\TrajectoryPlot.java |
554 |
}
/** {@inheritDoc} */
@Override
public final Comparable<Integer> getSeriesKey(final int series)
{
return series;
}
/** {@inheritDoc} */
@SuppressWarnings("rawtypes")
@Override
public final int indexOf(final Comparable seriesKey)
{
if (seriesKey instanceof Integer)
{
return (Integer) seriesKey;
}
return -1;
}
/** {@inheritDoc} */
@Override
public final void addChangeListener(final DatasetChangeListener listener)
{
this.listenerList.add(DatasetChangeListener.class, listener);
}
/** {@inheritDoc} */
@Override
public final void removeChangeListener(final DatasetChangeListener listener)
{
this.listenerList.remove(DatasetChangeListener.class, listener);
}
/** {@inheritDoc} */
@Override
public final DatasetGroup getGroup()
{
return this.datasetGroup;
}
/** {@inheritDoc} */
@Override
public final void setGroup(final DatasetGroup group)
{
this.datasetGroup = group;
}
/** {@inheritDoc} */
@Override
public final DomainOrder getDomainOrder()
{
return DomainOrder.ASCENDING;
}
/** {@inheritDoc} */
@Override
public final int getItemCount(final int series)
{
return this.samples.size(); |
File |
Line |
org\opentrafficsim\road\gtu\lane\AbstractLaneBasedGTU.java |
592 |
org\opentrafficsim\road\gtu\lane\AbstractLaneBasedGTU.java |
664 |
private Length.Rel laneDrop(final LateralDirectionality direction) throws NetworkException
{
Lane lane = null;
Length.Rel longitudinalPosition = null;
Map<Lane, Length.Rel> positions = positions(RelativePosition.REFERENCE_POSITION);
if (null == direction)
{
for (Lane l : getLanes())
{
if (l.getLaneType().isCompatible(getGTUType()))
{
lane = l;
}
}
if (null == lane)
{
throw new NetworkException("GTU " + this + " is not on any compatible lane");
}
longitudinalPosition = positions.get(lane);
}
else
{
lane = positions.keySet().iterator().next();
longitudinalPosition = positions.get(lane);
lane = bestAccessibleAdjacentLane(lane, direction, longitudinalPosition); // XXX correct??
}
if (null == lane)
{
return AbstractLaneBasedRouteNavigator.GETOFFTHISLANENOW;
} |
File |
Line |
org\opentrafficsim\road\network\factory\xml\units\LaneAttributes.java |
100 |
org\opentrafficsim\road\network\factory\xml\units\LaneAttributes.java |
126 |
else if (ocStr.startsWith("LEFTSET"))
{
int lset1 = ocStr.indexOf('[') + 1;
int rset1 = ocStr.indexOf(']', lset1);
int lset2 = ocStr.indexOf('[', ocStr.indexOf("OVERTAKE")) + 1;
int rset2 = ocStr.indexOf(']', lset2);
if (lset1 == -1 || rset1 == -1 || rset1 - lset1 < 3 || lset2 == -1 || rset2 == -1 || rset2 - lset2 < 3)
{
throw new NetworkException("Sets in overtaking conditions string: '" + ocStr + "' not coded right");
}
Set<GTUType> overtakingGTUs = parseGTUTypeSet(ocStr.substring(lset1, rset1), parser);
Set<GTUType> overtakenGTUs = parseGTUTypeSet(ocStr.substring(lset2, rset2), parser);
if (ocStr.contains("RIGHTSPEED")) |
File |
Line |
org\opentrafficsim\road\gtu\following\IDM.java |
64 |
org\opentrafficsim\road\gtu\following\IDMPlus.java |
67 |
public IDM(final Acceleration.Abs a, final Acceleration.Abs b, final Length.Rel s0, final Time.Rel tSafe, final double delta)
{
this.a = a;
this.b = b;
this.s0 = s0;
this.tSafe = tSafe;
this.delta = delta;
}
/**
* Desired speed (taking into account the urge to drive a little faster or slower than the posted speed limit).
* @param speedLimit DoubleScalarAbs<SpeedUnit>; the speed limit
* @param followerMaximumSpeed DoubleScalar.Abs<SpeedUnit>; the maximum speed that the follower can drive
* @return DoubleScalarRel<SpeedUnit>; the desired speed
*/
private Speed.Rel vDes(final Speed.Abs speedLimit, final Speed.Abs followerMaximumSpeed)
{
return new Speed.Rel(Math.min(this.delta * speedLimit.getSI(), followerMaximumSpeed.getSI()), METER_PER_SECOND);
}
/** {@inheritDoc} */
public final Acceleration.Abs computeAcceleration(final Speed.Abs followerSpeed, final Speed.Abs followerMaximumSpeed,
final Speed.Abs leaderSpeed, final Length.Rel headway, final Speed.Abs speedLimit)
{ |
File |
Line |
org\opentrafficsim\graphs\ContourPlot.java |
122 |
org\opentrafficsim\graphs\TrajectoryPlot.java |
130 |
this.path = new ArrayList<Lane>(path); // make a copy
double[] endLengths = new double[path.size()];
double cumulativeLength = 0;
DoubleVector.Rel.Dense<LengthUnit> lengths = null;
for (int i = 0; i < path.size(); i++)
{
Lane lane = path.get(i);
lane.addSampler(this);
cumulativeLength += lane.getLength().getSI();
endLengths[i] = cumulativeLength;
}
try
{
lengths = new DoubleVector.Rel.Dense<LengthUnit>(endLengths, LengthUnit.SI);
}
catch (ValueException exception)
{
exception.printStackTrace();
}
this.cumulativeLengths = lengths;
this.xAxis = xAxis; |
File |
Line |
org\opentrafficsim\road\car\LaneBasedIndividualCar.java |
143 |
org\opentrafficsim\road\car\LaneBasedTemplateCar.java |
110 |
}
catch (InstantiationException | IllegalAccessException | NoSuchMethodException | SecurityException
| IllegalArgumentException | InvocationTargetException exception)
{
throw new NetworkException("Could not instantiate car animation of type " + animationClass.getName(),
exception);
}
}
}
/*
* REMOVE START PrintWriter pwsimloc; PrintWriter pwthreadloc; OTSDEVSSimulatorInterface simulator; protected void simloc()
* { try { Map<Lane, Length.Rel> posmap = positions(getFront()); Lane lane = posmap.keySet().iterator().next();
* pwsimloc.write(getSimulator().getSimulatorTime().getTime().getSI() + "\t" + lane.toString() + "\t" +
* posmap.get(lane).getSI() + "\n"); pwsimloc.flush(); simulator.scheduleEventRel(new Time.Rel(0.1, SECOND), this, this,
* "simloc", null); } catch (RemoteException | NetworkException | SimRuntimeException e) { e.printStackTrace(); } }
* protected class ClockLocThread extends Thread {
* @Override public void run() { while (true) { try { Thread.sleep(100); Map<Lane, Length.Rel> posmap =
* positions(getFront()); Lane lane = posmap.keySet().iterator().next();
* pwthreadloc.write(getSimulator().getSimulatorTime().getTime().getSI() + "\t" + lane.toString() + "\t" +
* posmap.get(lane).getSI() + "\n"); pwthreadloc.flush(); } catch (RemoteException | NetworkException | InterruptedException
* e) { e.printStackTrace(); } } } } /* REMOVE END
*/
/** {@inheritDoc} */
@Override
@SuppressWarnings("checkstyle:designforextension")
public RelativePosition getFront()
{
return this.relativePositions.get(RelativePosition.FRONT);
}
/** {@inheritDoc} */
@Override
@SuppressWarnings("checkstyle:designforextension")
public RelativePosition getRear()
{
return this.relativePositions.get(RelativePosition.REAR);
}
/** {@inheritDoc} */
@Override
public final Map<TYPE, RelativePosition> getRelativePositions()
{
return this.relativePositions;
}
/** {@inheritDoc} */
@Override
public final void destroy()
{
if (this.animation != null)
{
try
{
this.animation.destroy(); |
File |
Line |
org\opentrafficsim\road\gtu\lane\LaneBlock.java |
222 |
org\opentrafficsim\road\network\lane\AbstractSensor.java |
104 |
this.location = this.lane.getCenterLine().getLocation(this.position);
this.location.z = this.lane.getLocation().z + 0.01;
}
catch (NetworkException exception)
{
exception.printStackTrace();
return null;
}
}
return this.location;
}
/** {@inheritDoc} */
@Override
public final Bounds getBounds()
{
if (this.bounds == null)
{
this.bounds =
new BoundingBox(new Point3d(-0.4, -this.lane.getWidth(0.0).getSI() * 0.4, 0.0), new Point3d(0.4,
this.lane.getWidth(0.0).getSI() * 0.4, this.lane.getLocation().z + 0.01));
}
return this.bounds;
} |
File |
Line |
org\opentrafficsim\road\network\factory\osm\output\Convert.java |
288 |
org\opentrafficsim\road\network\factory\osm\output\Convert.java |
393 |
if (osmLink.getLanes() == 1 && !osmLink.isOneway())
{
laneAttributes = new LaneAttributes(laneType, Color.GREEN, LongitudinalDirectionality.BOTH);
structure.put(0, laneAttributes);
}
else
{
for (int i = 0 - backwards; i < forwards; i++)
{
if (i < 0)
{
laneAttributes =
new LaneAttributes(laneType, Color.GREEN, LongitudinalDirectionality.BACKWARD);
structure.put(i, laneAttributes);
}
if (i >= 0)
{
laneAttributes =
new LaneAttributes(laneType, Color.GREEN, LongitudinalDirectionality.FORWARD);
structure.put(i, laneAttributes);
}
}
}
} |
File |
Line |
org\opentrafficsim\road\gtu\lane\AbstractTrafficLight.java |
76 |
org\opentrafficsim\road\gtu\lane\LaneBlock.java |
82 |
private static Time.Abs TIME_ABS_0 = new Time.Abs(0.0, SECOND);
/** null acceleration. */
private static final Acceleration.Abs ACCELERATION_ABS_0 = new Acceleration.Abs(0.0, METER_PER_SECOND_2);
/** the front, back, and reference positions; all at the same place. */
private static final Map<RelativePosition.TYPE, RelativePosition> RELATIVE_POSITIONS = new LinkedHashMap<>();
static
{
BLOCK_GTU = GTUType.makeGTUType("BLOCK");
RELATIVE_POSITIONS.put(RelativePosition.FRONT, new RelativePosition(LENGTH_REL_0, LENGTH_REL_0, LENGTH_REL_0,
RelativePosition.FRONT));
RELATIVE_POSITIONS.put(RelativePosition.REAR, new RelativePosition(LENGTH_REL_0, LENGTH_REL_0, LENGTH_REL_0,
RelativePosition.REAR));
RELATIVE_POSITIONS.put(RelativePosition.REFERENCE, RelativePosition.REFERENCE_POSITION);
}
/**
* @param name the name or id of the traffic light
* @param lane The lane where the block has to be put
* @param position the position on the lane as a length
* @param simulator the simulator to avoid NullPointerExceptions
* @throws GTUException when GTU cannot be created.
* @throws NamingException if an error occurs when adding the animation handler
* @throws NetworkException when the GTU cannot be placed on the given lane
*/
public AbstractTrafficLight(final String name, final Lane lane, final Length.Rel position, |
File |
Line |
org\opentrafficsim\road\network\factory\xml\CrossSectionElementTag.java |
122 |
org\opentrafficsim\road\network\factory\xml\CrossSectionElementTag.java |
197 |
org\opentrafficsim\road\network\factory\xml\CrossSectionElementTag.java |
248 |
if (attributes.getNamedItem("OFFSET") != null)
cseTag.offset = LengthUnits.parseLengthRel(attributes.getNamedItem("OFFSET").getNodeValue());
else
throw new SAXException("ROADTYPE.LANE: missing attribute OFFSET for lane " + roadTypeTag.name + "." + name);
if (attributes.getNamedItem("WIDTH") != null)
cseTag.width = LengthUnits.parseLengthRel(attributes.getNamedItem("WIDTH").getNodeValue());
else if (roadTypeTag.width != null)
cseTag.width = roadTypeTag.width;
else if (parser.globalTag.defaultLaneWidth != null)
cseTag.width = parser.globalTag.defaultLaneWidth;
else
throw new SAXException("ROADTYPE.LANE: cannot determine WIDTH for lane: " + roadTypeTag.name + "." + name); |
File |
Line |
org\opentrafficsim\graphs\FlowContourPlot.java |
64 |
org\opentrafficsim\graphs\SpeedContourPlot.java |
71 |
this.cumulativeLengths.add(new MutableDoubleVector.Abs.Sparse<LengthUnit>(new double[this.getYAxis()
.getBinCount()], METER));
}
catch (ValueException exception)
{
exception.printStackTrace();
}
}
}
/** {@inheritDoc} */
@Override
public final void incrementBinData(final int timeBin, final int distanceBin, final double duration,
final double distanceCovered, final double acceleration)
{
if (timeBin < 0 || distanceBin < 0 || 0 == duration || distanceBin >= this.getYAxis().getBinCount())
{
return;
} |
File |
Line |
org\opentrafficsim\road\network\lane\changing\OvertakingConditions.java |
239 |
org\opentrafficsim\road\network\lane\changing\OvertakingConditions.java |
292 |
public LeftSet(final Collection<GTUType> overtakingGTUs, final Collection<GTUType> overtakenGTUs)
{
this.overtakingGTUs = overtakingGTUs;
this.overtakenGTUs = overtakenGTUs;
}
/** {@inheritDoc} */
@Override
public final OvertakingDirection checkOvertaking(final Lane lane, final LaneBasedGTU gtu,
final LaneBasedGTU predecessorGTU)
{
if ((this.overtakingGTUs.contains(GTUType.ALL) || this.overtakingGTUs.contains(gtu.getGTUType())
&& (this.overtakenGTUs.contains(GTUType.ALL) || this.overtakenGTUs
.contains(predecessorGTU.getGTUType()))))
{
return OvertakingDirection.LEFT; |
File |
Line |
org\opentrafficsim\road\gtu\following\IDM.java |
125 |
org\opentrafficsim\road\gtu\following\IDMPlus.java |
130 |
Acceleration.Abs newAcceleration = aFree.plus(aInteraction);
if (newAcceleration.getSI() * this.stepSize.getSI() + followerSpeed.getSI() < 0)
{
// System.out.println("Limiting deceleration to prevent moving backwards");
newAcceleration = new Acceleration.Abs(-followerSpeed.getSI() / this.stepSize.getSI(), METER_PER_SECOND_2);
}
// System.out.println("newAcceleration is " + newAcceleration);
return newAcceleration;
}
/** {@inheritDoc} */
@Override
public final Time.Rel getStepSize()
{
return new Time.Rel(this.stepSize);
}
/** {@inheritDoc} */
@Override
public final Acceleration.Abs maximumSafeDeceleration()
{
return this.b;
}
/** {@inheritDoc} */
@Override
public final String getName()
{
return "IDM"; |