Class TrafficLight
java.lang.Object
org.djutils.event.LocalEventProducer
org.opentrafficsim.core.object.StaticObject
org.opentrafficsim.road.network.lane.object.AbstractLaneBasedObject
org.opentrafficsim.road.network.lane.object.trafficlight.TrafficLight
- All Implemented Interfaces:
Serializable
,Remote
,nl.tudelft.simulation.dsol.animation.Locatable
,org.djutils.base.Identifiable
,org.djutils.event.EventProducer
,org.opentrafficsim.base.geometry.OtsLocatable
,org.opentrafficsim.base.geometry.SpatialObject
,LocatedObject
,LaneBasedObject
Standard implementation of a traffic light.
Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final org.djunits.value.vdouble.scalar.Length
Default elevation of a traffic light (above zero; don't use this for lanes at non-zero elevation).static final org.djutils.event.EventType
The timed event type for pub/sub indicating the change of color of a traffic light.Fields inherited from interface org.djutils.event.EventProducer
FIRST_POSITION, LAST_POSITION
-
Constructor Summary
ConstructorsConstructorDescriptionTrafficLight
(String id, Lane lane, org.djunits.value.vdouble.scalar.Length longitudinalPosition) Construct an AbstractTrafficLight at default elevation (use only on roads at elevation 0).TrafficLight
(String id, Lane lane, org.djunits.value.vdouble.scalar.Length longitudinalPosition, org.djunits.value.vdouble.scalar.Length height) Construct an AbstractTrafficLight with specified elevation. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addTurnOnRed
(Node node) Add node GTUs may turn to through red.boolean
canTurnOnRed
(Route route, GtuType gtuType) Whether a GTU can turn on red.final TrafficLightColor
Get the current traffic light color.final TrafficLightColor
getTrafficLightColor
(org.djunits.value.vdouble.scalar.Time time) Get the traffic light color in the past.final void
setTrafficLightColor
(TrafficLightColor trafficLightColor) Set the new traffic light color.toString()
Methods inherited from class org.opentrafficsim.road.network.lane.object.AbstractLaneBasedObject
getFullId, getLane, getLine, getLongitudinalPosition, init
Methods inherited from class org.opentrafficsim.core.object.StaticObject
create, create, getBounds, getContour, getHeight, getId, getLocation, getShape
Methods inherited from class org.djutils.event.LocalEventProducer
addListener, addListener, addListener, addListener, fireEvent, fireEvent, fireEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, getEventListenerMap, getEventTypesWithListeners, getListenerReferences, hasListeners, numberOfListeners, removeAllListeners, removeAllListeners, removeListener
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.djutils.event.EventProducer
addListener, addListener, addListener, addListener, fireEvent, fireEvent, fireEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, getEventListenerMap, getEventTypesWithListeners, getListenerReferences, hasListeners, numberOfListeners, removeAllListeners, removeAllListeners, removeListener
Methods inherited from interface org.djutils.base.Identifiable
getId
Methods inherited from interface org.opentrafficsim.road.network.lane.object.LaneBasedObject
getLength, getLocation, getSimulator
Methods inherited from interface nl.tudelft.simulation.dsol.animation.Locatable
getDirZ, getZ
Methods inherited from interface org.opentrafficsim.core.object.LocatedObject
getHeight
Methods inherited from interface org.opentrafficsim.base.geometry.OtsLocatable
getBounds, getShape
Methods inherited from interface org.opentrafficsim.base.geometry.SpatialObject
getContour
-
Field Details
-
DEFAULT_TRAFFICLIGHT_ELEVATION
public static final org.djunits.value.vdouble.scalar.Length DEFAULT_TRAFFICLIGHT_ELEVATIONDefault elevation of a traffic light (above zero; don't use this for lanes at non-zero elevation). -
TRAFFICLIGHT_CHANGE_EVENT
public static final org.djutils.event.EventType TRAFFICLIGHT_CHANGE_EVENTThe timed event type for pub/sub indicating the change of color of a traffic light.
Payload: Object[] {String trafficLightId, TrafficLight trafficLight, TrafficLightColor newColor}
-
-
Constructor Details
-
TrafficLight
public TrafficLight(String id, Lane lane, org.djunits.value.vdouble.scalar.Length longitudinalPosition, org.djunits.value.vdouble.scalar.Length height) throws NetworkException Construct an AbstractTrafficLight with specified elevation.- Parameters:
id
- traffic light idlane
- lane where the traffic light is locatedlongitudinalPosition
- position of the traffic light on the lane, in the design directionheight
- the elevation of the traffic light- Throws:
NetworkException
- on failure to place the object
-
TrafficLight
public TrafficLight(String id, Lane lane, org.djunits.value.vdouble.scalar.Length longitudinalPosition) throws NetworkException Construct an AbstractTrafficLight at default elevation (use only on roads at elevation 0).- Parameters:
id
- traffic light idlane
- lane where the traffic light is locatedlongitudinalPosition
- position of the traffic light on the lane, in the design direction- Throws:
NetworkException
- on failure to place the object
-
-
Method Details
-
getTrafficLightColor
Get the current traffic light color.- Returns:
- current traffic light color.
-
getTrafficLightColor
Get the traffic light color in the past.- Parameters:
time
- time to obtain traffic light color.- Returns:
- current traffic light color.
-
setTrafficLightColor
Set the new traffic light color.- Parameters:
trafficLightColor
- set the trafficLightColor
-
addTurnOnRed
Add node GTUs may turn to through red.- Parameters:
node
- node.
-
canTurnOnRed
Whether a GTU can turn on red.- Parameters:
route
- route.gtuType
- GTU type.- Returns:
- whether a GTU can turn on red.
-
toString
- Overrides:
toString
in classAbstractLaneBasedObject
-