public abstract class AbstractGTUGenerator extends Object
Copyright (c) 2013-2015 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
Modifier and Type | Field and Description |
---|---|
protected long |
numberGTUs
Number of generated GTUs.
|
Constructor and Description |
---|
AbstractGTUGenerator(String name,
org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface simulator,
org.opentrafficsim.core.gtu.GTUType gtuType,
Class<?> gtuClass,
org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Speed,org.djunits.unit.SpeedUnit> initialSpeedDist,
org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Time.Rel,org.djunits.unit.TimeUnit> interarrivelTimeDist,
long maxGTUs,
org.djunits.value.vdouble.scalar.Time.Abs startTime,
org.djunits.value.vdouble.scalar.Time.Abs endTime,
Lane lane,
org.djunits.value.vdouble.scalar.Length.Rel position,
org.opentrafficsim.core.gtu.GTUDirectionality direction,
org.opentrafficsim.core.gtu.animation.GTUColorer gtuColorer,
LaneBasedStrategicalPlanner strategicalPlanner,
Class<LanePerceptionFull> perceptionClass,
org.opentrafficsim.core.network.OTSNetwork network) |
Modifier and Type | Method and Description |
---|---|
protected void |
checkCarBuilderList()
Check if car can be generated.
|
protected boolean |
enoughSpace(LaneBasedIndividualGTU.LaneBasedIndividualCarBuilder carBuilder)
Check if the car to be built is not overlapping with another GTU on the same lane, and if it has enough headway to be
generated safely.
|
protected void |
generate()
Generate a GTU.
|
org.djunits.value.vdouble.scalar.Time.Abs |
getEndTime() |
Class<?> |
getGtuClass() |
org.opentrafficsim.core.gtu.animation.GTUColorer |
getGtuColorer() |
org.opentrafficsim.core.gtu.GTUType |
getGtuType() |
org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Speed,org.djunits.unit.SpeedUnit> |
getInitialSpeedDist() |
org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Time.Rel,org.djunits.unit.TimeUnit> |
getInterarrivelTimeDist() |
abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.unit.LengthUnit> |
getLengthDist() |
long |
getMaxGTUs() |
abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Speed,org.djunits.unit.SpeedUnit> |
getMaximumSpeedDist() |
String |
getName() |
Class<LanePerceptionFull> |
getPerceptionClass() |
abstract org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface |
getSimulator() |
org.djunits.value.vdouble.scalar.Time.Abs |
getStartTime() |
LaneBasedStrategicalPlanner |
getStrategicalPlanner() |
abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.unit.LengthUnit> |
getWidthDist() |
HeadwayGTU |
headway(org.djunits.value.vdouble.scalar.Length.Rel maxDistance,
Lane generatorLane)
Check the available headway for GTU that is about to be constructed.
|
public AbstractGTUGenerator(String name, org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface simulator, org.opentrafficsim.core.gtu.GTUType gtuType, Class<?> gtuClass, org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Speed,org.djunits.unit.SpeedUnit> initialSpeedDist, org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Time.Rel,org.djunits.unit.TimeUnit> interarrivelTimeDist, long maxGTUs, org.djunits.value.vdouble.scalar.Time.Abs startTime, org.djunits.value.vdouble.scalar.Time.Abs endTime, Lane lane, org.djunits.value.vdouble.scalar.Length.Rel position, org.opentrafficsim.core.gtu.GTUDirectionality direction, org.opentrafficsim.core.gtu.animation.GTUColorer gtuColorer, LaneBasedStrategicalPlanner strategicalPlanner, Class<LanePerceptionFull> perceptionClass, org.opentrafficsim.core.network.OTSNetwork network) throws nl.tudelft.simulation.dsol.SimRuntimeException
name
- the name of the generatorsimulator
- the simulator to schedule the start of the generationgtuType
- the type of GTU to generategtuClass
- the GTU class to instantiateinitialSpeedDist
- distribution of the initial speed of the GTUinterarrivelTimeDist
- distribution of the interarrival timemaxGTUs
- maximum number of GTUs to generatestartTime
- start time of generation (delayed start)endTime
- end time of generationlane
- the lane to generate the GTU onposition
- position on the lane, relative to the design line of the linkdirection
- the direction on the lane in which the GTU has to be generated (DIR_PLUS, or DIR_MINUS)gtuColorer
- the GTUColorer to usestrategicalPlanner
- the lane-based strategical planner to use (pretty much stateless, so can be shared)perceptionClass
- the LanePerception class to use (stateful, so has to be class-based)network
- the network to register the generated GTUs intonl.tudelft.simulation.dsol.SimRuntimeException
- when simulation scheduling failsprotected final void generate() throws Exception
Exception
- when something in the generation fails.protected final boolean enoughSpace(LaneBasedIndividualGTU.LaneBasedIndividualCarBuilder carBuilder) throws org.opentrafficsim.core.network.NetworkException, org.opentrafficsim.core.gtu.GTUException
carBuilder
- the car to be generatedorg.opentrafficsim.core.network.NetworkException
- when the speed limit of the lane is not knownorg.opentrafficsim.core.gtu.GTUException
- if GTU does not have a position on the lane where it is registeredpublic final HeadwayGTU headway(org.djunits.value.vdouble.scalar.Length.Rel maxDistance, Lane generatorLane) throws org.opentrafficsim.core.gtu.GTUException
maxDistance
- Length.Rel; the maximum distance to look for a leadergeneratorLane
- Lane; the lane on which the GTU is generatedorg.opentrafficsim.core.gtu.GTUException
- on network inconsistencyprotected final void checkCarBuilderList() throws Exception
Exception
- on any problempublic abstract org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface getSimulator()
public abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.unit.LengthUnit> getLengthDist()
public abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.unit.LengthUnit> getWidthDist()
public abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Speed,org.djunits.unit.SpeedUnit> getMaximumSpeedDist()
public final String getName()
public final org.opentrafficsim.core.gtu.GTUType getGtuType()
public final Class<?> getGtuClass()
public final org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Speed,org.djunits.unit.SpeedUnit> getInitialSpeedDist()
public final org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Time.Rel,org.djunits.unit.TimeUnit> getInterarrivelTimeDist()
public final long getMaxGTUs()
public final org.djunits.value.vdouble.scalar.Time.Abs getStartTime()
public final org.djunits.value.vdouble.scalar.Time.Abs getEndTime()
public final org.opentrafficsim.core.gtu.animation.GTUColorer getGtuColorer()
public final LaneBasedStrategicalPlanner getStrategicalPlanner()
public final Class<LanePerceptionFull> getPerceptionClass()
Copyright © 2014–2016 Delft University of Technology. All rights reserved.