Road Network Descriptor

Optional block. With the help of RoadNetworkDescriptor developers get access to controlling all the vehicles located in one road network. Block allows to set actions which will be executed for each car in the following cases: on entering network, on entering road, on changing the lane, etc.

This block also enables road density map that displays the current state of traffic jams on roads of the network.

Parameters

Road network
Road network which this block configures.
Syntax: RoadNetwork roadNetwork
Set new value at runtime: set_roadNetwork(new value)
Road section length
Length of road section (cannot be less than 1 meter long). All roads of network are split by sections of the same length (section at the end of road can be shorter). These sections are used in density maps and average speed reporting.
Syntax: double roadSectionLength
Set new value at runtime: set_roadSectionLength(new value)
Density map
Enable density map
Controls the visibility of traffic density map. Traffic density map is a semi-transparent coloring of roads depending on the average speed of a car on each section of the road. Traffic density map is shown in both 2D and 3D animation.
Syntax: boolean enableDensityMap
Set new value at runtime: set_enableDensityMap(new value)
Green speed level
[Visible and applies only if the Enable density map option is set] If the average speed on a road section is greater or equal to the value of this parameter, road density map will be shown green for this section. Green speed level parameter value must always be greater than the Red speed level parameter value.
Syntax: double greenSpeedLevel
Set new value at runtime: set_greenSpeedLevel(new value)
Red speed level
[Visible and applies only if the Enable density map option is set] If the average speed on a road section is less or equal to the value of this parameter, road density map will be shown red for this section.
Syntax: double redSpeedLevel
Set new value at runtime: set_redSpeedLevel(new value)
Map transparency (0..1)
[Visible and applies only if the Enable density map option is set] Transparency of density map. Value of this parameter can be in range of [0...1]. 0 - opaque map, 1 - transparent map.
Syntax: double densityMapTransparency
Set new value at runtime: set_densityMapTransparency(new value)
Actions
On enter network [code]
Code that is executed each time a car enters road network.
Local variable: car - the car that enters road network
On exit network [code]
Code that is executed each time a car exits road network.
Local variable: car - the car that exits road network
On enter road [code]
Code that is executed each time a car enters road.
Local variables: car - the car that enters road
                          Road road - the road that is being entered by the car
                          boolean isRoadForwardtrue if car enters the road in forward direction, false otherwise
On exit road [code]
Code that is executed each time a car exits road.
Local variables: car - the car that exits road
                          Road road - the road that is being exited by the car
                          boolean isRoadForwardtrue if car was moving on the road in forward direction, false otherwise
On enter intersection [code]
Code that is executed each time a car enters intersection.
Local variables: car - the car that enters intersection
                          Intersection intersection - the intersection that is being entered by the car
On exit intersection [code]
Code that is executed each time a car exits intersection.
Local variables: car - the car that exits intersection
                          Intersection intersection - the intersection that is being exited by the car
On lane change [code]

Code that is executed each time a car finishes lane changing.

Local variables:  car - the car that finishes lane changing
                          Road road - the road that car is on during the lane change
                          boolean isRoadForwardtrue if car moves on road in forward direction, false otherwise
                          int previousLaneIndex - 0-based index of lane that was left by the car
                          int currentLaneIndex - 0-based index of lane that the car arrived to
On stop [code]
Code that is executed each time a car stops. There can be several reasons for a car to stop:
- there is a car ahead that is not moving
- car's preferred speed is set to 0
- car stopped before the stop line
- car reached target bus stop or parking space
Local variable:  car - the car that stopped
                          Road road - the road that caк is on when stopped, or null if car stopped outside any road (e.g. on intersection)
                          boolean isRoadForwardtrue if car was moving on road in forward direction, false otherwise
On resume moving [code]
Code that is executed each time a car resumes moving after a stop.
Local variable: car - the car that resumed moving
                          Road road - the road that can is on when resumed moving, or null if car is outside any road (e.g. on intersection)
                          boolean isRoadForwardtrue if car is moving on road in forward direction, false otherwise
On car clicked [code]
Code that is executed each time a car is clicked by mouse.
Local variable: car - the car that is clicked by mouse
Additional options
Automatically resolve deadlocks
Enables / disables resolution of deadlocks. Deadlock is the situation when cars are in each other's way and cannot continue movement. If this option is selected, the library will identify deadlocks and temporary allow cars pass through each other to avoid complete blockages of the model.
Syntax: boolean automaticallyResolveDeadlocks
Set new value at runtime: set_automaticallyResolveDeadlocks(new value)
Precision of geometric calculations
Precision of geometric calculations (in pixels). Can be changed if the model cannot run with the current settings.
Syntax: double geometricCalculationsPrecision
Set new value at runtime: set_geometricCalculationsPrecision(new value)
Precision of temporal calculations
Precision of temporal calculations (in seconds). Can be changed if the model cannot run with the current settings.
Syntax: double temporalCalculationsPrecision
Set new value at runtime: set_temporalCalculationsPrecision(new value)

Functions

int size() - Returns the number of cars in the road network.

Agent getCar(int index) - Returns the car in this road network with the given index, or null if there is no such car.