18 #ifndef NBAlgorithms_Railway_h 19 #define NBAlgorithms_Railway_h 72 const std::string&
getID()
const {
94 mutable std::map<SUMOVehicleClass, std::vector<std::pair<const Track*, const Track*> > >
svcViaSuccessors;
static bool allBidi(const EdgeVector &edges)
static bool isStraight(const NBNode *node, const NBEdge *e1, const NBEdge *e2)
static NBEdge * addBidiEdge(NBNetBuilder &nb, NBEdge *edge, bool update=true)
add bidi-edge for the given edge
static std::set< NBNode * > getRailNodes(NBNetBuilder &nb, bool verbose=false)
std::vector< std::pair< const Track *, const Track * > > viaSuccessors
static bool allBroken(const NBNode *node, NBEdge *candOut, const EdgeVector &in, const EdgeVector &out)
std::vector< Track * > successors
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
static void repairTopology(NBNetBuilder &nb)
SVCPermissions minPermissions
static void addBidiEdgesForStraightConnectivity(NBNetBuilder &nb)
add bidi-edges to connect straight tracks
int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
The representation of a single edge during network building.
Track(NBEdge *e, int i=-1, const std::string &_id="")
static void updateTurns(NBEdge *edge)
recompute turning directions for both nodes of the given edge
const std::string & getID() const
const std::vector< std::pair< const Track *, const Track * > > & getViaSuccessors(SUMOVehicleClass svc=SVC_IGNORING) const
Track & operator=(const Track &)=delete
static std::set< NBNode * > getBrokenRailNodes(NBNetBuilder &nb, bool verbose=false)
std::map< SUMOVehicleClass, std::vector< std::pair< const Track *, const Track * > > > svcViaSuccessors
static void analyzeTopology(NBNetBuilder &nb)
Computes highway on-/off-ramps (if wished)
static void reverseEdges(NBNetBuilder &nb)
reverse edges sequences that are to broken nodes on both sides
static void addBidiEdgesForBufferStops(NBNetBuilder &nb)
add bidi-edges to connect buffers stops in both directions
int getNumericalID() const
static void getRailEdges(const NBNode *node, EdgeVector &inEdges, EdgeVector &outEdges)
filter out rail edges among all edges of a the given node
static void makeAllBidi(NBNetBuilder &nb)
A vehicle as used by router.
static void addBidiEdgesForStops(NBNetBuilder &nb)
add bidi-edges to connect successive public transport stops
static bool allSharp(const NBNode *node, const EdgeVector &in, const EdgeVector &out, bool countBidiAsSharp=false)
static NBEdge * isBidiSwitch(const NBNode *n)
std::map< SUMOVehicleClass, std::vector< Track * > > svcSuccessors
Instance responsible for building networks.
void addSuccessor(Track *track)
static void addBidiEdgesBetweenSwitches(NBNetBuilder &nb)
add bidi-edges to connect switches that are approached in both directions
std::vector< NBEdge * > EdgeVector
container for (sorted) edges
const std::vector< Track * > & getSuccessors(SUMOVehicleClass svc=SVC_IGNORING) const
A storage for options typed value containers)
Represents a single node (junction) during network building.
static bool hasStraightPair(const NBNode *node, const EdgeVector &edges, const EdgeVector &edges2)
static double getTravelTimeStatic(const Track *const track, const NBVehicle *const veh, double time)
static int extendBidiEdges(NBNetBuilder &nb)
add further bidi-edges near existing bidi-edges
vehicles ignoring classes