Class ConflictBuilderParallel
- java.lang.Object
-
- org.opentrafficsim.road.network.lane.conflict.ConflictBuilderParallel
-
public final class ConflictBuilderParallel extends Object
Copyright (c) 2013-2022 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.- Version:
- $Revision$, $LastChangedDate$, by $Author$, initial version 11 dec. 2016
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
ConflictBuilderParallel.CbrTask
(package private) static class
ConflictBuilderParallel.ConflictBuilderRecord
static class
ConflictBuilderParallel.FixedWidthGenerator
Generator with fixed width.static class
ConflictBuilderParallel.RelativeWidthGenerator
Generator with width factor on actual lane width.static interface
ConflictBuilderParallel.WidthGenerator
Generator for width.
-
Field Summary
Fields Modifier and Type Field Description static ConflictBuilderParallel.WidthGenerator
DEFAULT_WIDTH_GENERATOR
Default width generator for conflicts which uses 80% of the lane width.
-
Method Summary
-
-
-
Field Detail
-
DEFAULT_WIDTH_GENERATOR
public static final ConflictBuilderParallel.WidthGenerator DEFAULT_WIDTH_GENERATOR
Default width generator for conflicts which uses 80% of the lane width.
-
-
Method Detail
-
buildConflicts
public static void buildConflicts(OTSRoadNetwork network, GTUType gtuType, OTSSimulatorInterface simulator, ConflictBuilderParallel.WidthGenerator widthGenerator) throws OTSGeometryException
Build conflicts on network.- Parameters:
network
- OTSRoadNetwork; networkgtuType
- GTUType; gtu typesimulator
- OTSSimulatorInterface; simulatorwidthGenerator
- WidthGenerator; width generator- Throws:
OTSGeometryException
- in case of geometry exception
-
buildConflicts
public static void buildConflicts(OTSRoadNetwork network, GTUType gtuType, OTSSimulatorInterface simulator, ConflictBuilderParallel.WidthGenerator widthGenerator, LaneCombinationList ignoreList, LaneCombinationList permittedList) throws OTSGeometryException
Build conflicts on network.- Parameters:
network
- OTSRoadNetwork; networkgtuType
- GTUType; gtu typesimulator
- OTSSimulatorInterface; simulatorwidthGenerator
- WidthGenerator; width generatorignoreList
- LaneCombinationList; lane combinations to ignorepermittedList
- LaneCombinationList; lane combinations that are permitted by traffic control- Throws:
OTSGeometryException
- in case of geometry exception
-
buildConflicts
public static void buildConflicts(List<Lane> lanes, GTUType gtuType, OTSSimulatorInterface simulator, ConflictBuilderParallel.WidthGenerator widthGenerator) throws OTSGeometryException
Build conflicts on list of lanes.- Parameters:
lanes
- List<Lane>; lanesgtuType
- GTUType; gtu typesimulator
- OTSSimulatorInterface; simulatorwidthGenerator
- WidthGenerator; width generator- Throws:
OTSGeometryException
- in case of geometry exception
-
buildConflictsParallelSmall
public static void buildConflictsParallelSmall(List<Lane> lanes, GTUType gtuType, OTSSimulatorInterface simulator, ConflictBuilderParallel.WidthGenerator widthGenerator, LaneCombinationList ignoreList, LaneCombinationList permittedList) throws OTSGeometryException
Build conflicts on list of lanes. Small jobs for parallelization.- Parameters:
lanes
- List<Lane>; list of LanesgtuType
- GTUType; the GTU typesimulator
- OTSSimulatorInterface; the simulatorwidthGenerator
- WidthGenerator; the width generatorignoreList
- LaneCombinationList; lane combinations to ignorepermittedList
- LaneCombinationList; lane combinations that are permitted by traffic control- Throws:
OTSGeometryException
- in case of geometry exception
-
buildConflictsParallelBig
public static void buildConflictsParallelBig(List<Lane> lanes, GTUType gtuType, OTSSimulatorInterface simulator, ConflictBuilderParallel.WidthGenerator widthGenerator, LaneCombinationList ignoreList, LaneCombinationList permittedList) throws OTSGeometryException
Build conflicts on list of lanes. Parallelize bigger jobs- Parameters:
lanes
- List<Lane>; list of LanesgtuType
- GTUType; the GTU typesimulator
- OTSSimulatorInterface; the simulatorwidthGenerator
- WidthGenerator; the width generatorignoreList
- LaneCombinationList; lane combinations to ignorepermittedList
- LaneCombinationList; lane combinations that are permitted by traffic control- Throws:
OTSGeometryException
- in case of geometry exception
-
buildConflicts
static void buildConflicts(ConflictBuilderParallel.ConflictBuilderRecord cbr)
Build conflicts for one record.- Parameters:
cbr
- the lane record
-
buildConflicts
public static void buildConflicts(Lane lane1, GTUDirectionality dir1, Lane lane2, GTUDirectionality dir2, GTUType gtuType, OTSSimulatorInterface simulator, ConflictBuilderParallel.WidthGenerator widthGenerator) throws OTSGeometryException
Build conflict on single lane pair. Connecting lanes are determined.- Parameters:
lane1
- Lane; lane 1dir1
- GTUDirectionality; gtu direction 1lane2
- Lane; lane 2dir2
- GTUDirectionality; gtu direction 2gtuType
- GTUType; gtu typesimulator
- OTSSimulatorInterface; simulatorwidthGenerator
- WidthGenerator; width generator- Throws:
OTSGeometryException
- in case of geometry exception
-
buildConflicts
public static void buildConflicts(Lane lane1, GTUDirectionality dir1, Lane lane2, GTUDirectionality dir2, GTUType gtuType, OTSSimulatorInterface simulator, ConflictBuilderParallel.WidthGenerator widthGenerator, boolean permitted) throws OTSGeometryException
Build conflict on single lane pair. Connecting lanes are determined.- Parameters:
lane1
- Lane; lane 1dir1
- GTUDirectionality; gtu direction 1lane2
- Lane; lane 2dir2
- GTUDirectionality; gtu direction 2gtuType
- GTUType; gtu typesimulator
- OTSSimulatorInterface; simulatorwidthGenerator
- WidthGenerator; width generatorpermitted
- boolean; conflict permitted by traffic control- Throws:
OTSGeometryException
- in case of geometry exception
-
buildConflicts
static void buildConflicts(Lane lane1, GTUDirectionality dir1, ImmutableMap<Lane,GTUDirectionality> down1, ImmutableMap<Lane,GTUDirectionality> up1, Lane lane2, GTUDirectionality dir2, ImmutableMap<Lane,GTUDirectionality> down2, ImmutableMap<Lane,GTUDirectionality> up2, GTUType gtuType, boolean permitted, OTSSimulatorInterface simulator, ConflictBuilderParallel.WidthGenerator widthGenerator, Map<Lane,OTSLine3D> leftEdges, Map<Lane,OTSLine3D> rightEdges) throws OTSGeometryException, NetworkException
Build conflicts on single lane pair.- Parameters:
lane1
- Lane; lane 1dir1
- GTUDirectionality; gtu direction 1down1
- Map<Lane,GTUDirectionality>; downstream lanes 1up1
- Map<Lane,GTUDirectionality>; upstream lanes 1lane2
- Lane; lane 2dir2
- GTUDirectionality; gtu direction 2down2
- Map<Lane,GTUDirectionality>; downstream lane 2up2
- Map<Lane,GTUDirectionality>; upstream lanes 2gtuType
- GTUType; gtu typepermitted
- boolean; conflict permitted by traffic controlsimulator
- OTSSimulatorInterface; simulatorwidthGenerator
- WidthGenerator; width generatorleftEdges
- Map<Lane, OTSLine3D>; cache of left edge linesrightEdges
- Map<Lane, OTSLine3D>; cache of right edge lines- Throws:
OTSGeometryException
- in case of geometry exceptionNetworkException
- if the combination of conflict type and both conflict rules is not correct
-
-