![]() |
Eclipse SUMO - Simulation of Urban MObility
|
#include <NBAlgorithms_Railway.h>
Data Structures | |
class | Track |
routing edge More... | |
Static Public Member Functions | |
static void | analyzeTopology (NBEdgeCont &ec) |
static void | extendDirectionPriority (NBEdgeCont &ec, bool fromUniDir) |
static double | getTravelTimeStatic (const Track *const track, const NBVehicle *const veh, double time) |
static int | makeAllBidi (NBEdgeCont &ec) |
static int | repairTopology (NBEdgeCont &ec, NBPTStopCont &sc, NBPTLineCont &lc) |
Static Private Member Functions | |
static NBEdge * | addBidiEdge (NBEdgeCont &ec, NBEdge *edge, bool update=true) |
add bidi-edge for the given edge More... | |
static int | addBidiEdgesBetweenSwitches (NBEdgeCont &ec) |
add bidi-edges to connect switches that are approached in both directions More... | |
static int | addBidiEdgesForBufferStops (NBEdgeCont &ec) |
add bidi-edges to connect buffers stops in both directions More... | |
static int | addBidiEdgesForStops (NBEdgeCont &ec, NBPTLineCont &lc, NBPTStopCont &sc) |
add bidi-edges to connect successive public transport stops More... | |
static int | addBidiEdgesForStraightConnectivity (NBEdgeCont &ec, bool geometryLike) |
add bidi-edges to connect straight tracks More... | |
static bool | allBidi (const EdgeVector &edges) |
static bool | allBroken (const NBNode *node, NBEdge *candOut, const EdgeVector &in, const EdgeVector &out) |
static bool | allSharp (const NBNode *node, const EdgeVector &in, const EdgeVector &out, bool countBidiAsSharp=false) |
static int | extendBidiEdges (NBEdgeCont &ec) |
add further bidi-edges near existing bidi-edges More... | |
static int | extendBidiEdges (NBEdgeCont &ec, NBNode *node, NBEdge *bidiIn) |
static std::set< NBPTLine * > | findBidiCandidates (NBPTLineCont &lc) |
identify lines that are likely to require bidirectional tracks More... | |
static std::set< NBNode * > | getBrokenRailNodes (NBEdgeCont &ec, bool verbose=false) |
static void | getRailEdges (const NBNode *node, EdgeVector &inEdges, EdgeVector &outEdges) |
filter out rail edges among all edges of a the given node More... | |
static std::set< NBNode * > | getRailNodes (NBEdgeCont &ec, bool verbose=false) |
static bool | hasRailway (SVCPermissions permissions) |
filter for rail edges but do not return (legacy) all purpose edges More... | |
static bool | hasStraightPair (const NBNode *node, const EdgeVector &edges, const EdgeVector &edges2) |
static NBEdge * | isBidiSwitch (const NBNode *n) |
static bool | isStraight (const NBNode *node, const NBEdge *e1, const NBEdge *e2) |
static int | reverseEdges (NBEdgeCont &ec, NBPTStopCont &sc) |
reverse edges sequences that are to broken nodes on both sides More... | |
static void | updateTurns (NBEdge *edge) |
recompute turning directions for both nodes of the given edge More... | |
Definition at line 47 of file NBAlgorithms_Railway.h.
|
staticprivate |
add bidi-edge for the given edge
Definition at line 181 of file NBAlgorithms_Railway.cpp.
References CENTER, NBEdge::getFromNode(), NBEdge::getGeometry(), NBEdge::getID(), NBNode::getIncomingEdges(), NBEdge::getLaneSpreadFunction(), NBEdge::getToNode(), hasRailway(), NBEdgeCont::insert(), NBEdge::isBidiRail(), NBEdgeCont::retrieve(), PositionVector::reverse(), TL, updateTurns(), NBEdgeCont::wasIgnored(), and WRITE_WARNINGF.
Referenced by addBidiEdgesBetweenSwitches(), addBidiEdgesForBufferStops(), addBidiEdgesForStops(), addBidiEdgesForStraightConnectivity(), extendBidiEdges(), and makeAllBidi().
|
staticprivate |
add bidi-edges to connect switches that are approached in both directions
Definition at line 773 of file NBAlgorithms_Railway.cpp.
References addBidiEdge(), CENTER, getBrokenRailNodes(), NBEdge::getFromNode(), NBEdge::getLaneSpreadFunction(), getRailEdges(), NBEdge::getToNode(), isBidiSwitch(), isStraight(), joinToString(), toString(), and WRITE_MESSAGE.
Referenced by repairTopology().
|
staticprivate |
add bidi-edges to connect buffers stops in both directions
Definition at line 679 of file NBAlgorithms_Railway.cpp.
References addBidiEdge(), CENTER, getBrokenRailNodes(), NBEdge::getFromNode(), getRailEdges(), getRailNodes(), NBEdge::getToNode(), NBEdge::setLaneSpreadFunction(), TL, StringUtils::toBool(), toString(), WRITE_MESSAGE, and WRITE_WARNINGF.
Referenced by repairTopology().
|
staticprivate |
add bidi-edges to connect successive public transport stops
Definition at line 864 of file NBAlgorithms_Railway.cpp.
References addBidiEdge(), CENTER, SUMOAbstractRouter< E, V >::compute(), extendBidiEdges(), findBidiCandidates(), NBPTStopCont::get(), NBEdgeCont::getAllEdges(), OptionsCont::getBool(), NBEdge::getID(), NBEdge::getLaneSpreadFunction(), NBPTLineCont::getLines(), OptionsCont::getOptions(), NBEdge::getPermissions(), getRailEdges(), getRailNodes(), NBPTLine::getRef(), NBPTStopCont::getReverseStop(), NBPTLine::getRouteEnd(), NBPTLine::getRouteStart(), NBPTLine::getStopEdges(), getTravelTimeStatic(), NBPTStopCont::insert(), NBEdge::isBidiRail(), NBPTLine::isConsistent(), isStraight(), NBPTStop::setBidiStop(), SVC_RAIL_CLASSES, TL, toString(), WRITE_MESSAGE, and WRITE_WARNINGF.
Referenced by repairTopology().
|
staticprivate |
add bidi-edges to connect straight tracks
Definition at line 1071 of file NBAlgorithms_Railway.cpp.
References addBidiEdge(), extendBidiEdges(), getBrokenRailNodes(), getRailEdges(), hasRailway(), isStraight(), toString(), and WRITE_MESSAGE.
Referenced by repairTopology().
|
staticprivate |
Definition at line 501 of file NBAlgorithms_Railway.cpp.
Referenced by allSharp(), and getBrokenRailNodes().
|
staticprivate |
Definition at line 461 of file NBAlgorithms_Railway.cpp.
References gDebugFlag1, NBEdge::getID(), and isStraight().
Referenced by reverseEdges().
|
staticprivate |
Definition at line 483 of file NBAlgorithms_Railway.cpp.
References allBidi(), and isStraight().
Referenced by extendBidiEdges(), and getBrokenRailNodes().
|
static |
Definition at line 107 of file NBAlgorithms_Railway.cpp.
References getBrokenRailNodes().
Referenced by NBNetBuilder::compute().
|
staticprivate |
add further bidi-edges near existing bidi-edges
Definition at line 512 of file NBAlgorithms_Railway.cpp.
References NBEdgeCont::begin(), NBEdgeCont::end(), extendBidiEdges(), NBEdge::getFromNode(), NBEdge::getToNode(), NBEdge::getTurnDestination(), NBEdge::isBidiRail(), toString(), and WRITE_MESSAGE.
Referenced by addBidiEdgesForStops(), addBidiEdgesForStraightConnectivity(), extendBidiEdges(), and repairTopology().
|
staticprivate |
Definition at line 529 of file NBAlgorithms_Railway.cpp.
References addBidiEdge(), allSharp(), CENTER, extendBidiEdges(), NBEdge::getID(), getRailEdges(), NBEdge::getToNode(), NBEdge::getTurnDestination(), isStraight(), and WRITE_WARNING.
|
static |
Definition at line 1169 of file NBAlgorithms_Railway.cpp.
References NBEdgeCont::getAllEdges(), NBEdge::getID(), Named::getIDSecure(), NBEdge::getPermissions(), NBEdge::getPriority(), NBEdge::getStraightContinuation(), NBEdge::getStraightPredecessor(), hasRailway(), joinToString(), NBEdge::setPriority(), TL, WRITE_MESSAGE, WRITE_WARNING, and WRITE_WARNINGF.
Referenced by NBNetBuilder::compute().
|
staticprivate |
identify lines that are likely to require bidirectional tracks
Definition at line 833 of file NBAlgorithms_Railway.cpp.
References NBPTLineCont::getLines().
Referenced by addBidiEdgesForStops().
|
staticprivate |
Definition at line 233 of file NBAlgorithms_Railway.cpp.
References allBidi(), allSharp(), OutputDevice::close(), OutputDevice::closeTag(), OutputDevice::getDevice(), NBEdge::getID(), Named::getID(), OptionsCont::getOptions(), Parameterised::getParameter(), getRailEdges(), getRailNodes(), NBEdge::getTurnDestination(), hasStraightPair(), OutputDevice::openTag(), SUMO_ATTR_ID, SUMO_TAG_NODE, std::swap(), TL, StringUtils::toBool(), toString(), WRITE_MESSAGE, OutputDevice::writeAttr(), and OutputDevice::writeXMLHeader().
Referenced by addBidiEdgesBetweenSwitches(), addBidiEdgesForBufferStops(), addBidiEdgesForStraightConnectivity(), analyzeTopology(), and reverseEdges().
|
staticprivate |
filter out rail edges among all edges of a the given node
Definition at line 217 of file NBAlgorithms_Railway.cpp.
References NBNode::getIncomingEdges(), NBNode::getOutgoingEdges(), and SVC_RAIL_CLASSES.
Referenced by addBidiEdgesBetweenSwitches(), addBidiEdgesForBufferStops(), addBidiEdgesForStops(), addBidiEdgesForStraightConnectivity(), extendBidiEdges(), getBrokenRailNodes(), isBidiSwitch(), and reverseEdges().
|
staticprivate |
Definition at line 388 of file NBAlgorithms_Railway.cpp.
References NBEdgeCont::begin(), NBEdgeCont::end(), hasRailway(), RAIL_SIGNAL, toString(), and WRITE_MESSAGE.
Referenced by addBidiEdgesForBufferStops(), addBidiEdgesForStops(), and getBrokenRailNodes().
|
static |
Definition at line 1163 of file NBAlgorithms_Railway.cpp.
References NBRailwayTopologyAnalyzer::Track::edge, and NBEdge::getTravelTimeStatic().
Referenced by addBidiEdgesForStops().
|
inlinestaticprivate |
filter for rail edges but do not return (legacy) all purpose edges
Definition at line 113 of file NBAlgorithms_Railway.h.
References SVC_RAIL_CLASSES, and SVCAll.
Referenced by addBidiEdge(), addBidiEdgesForStraightConnectivity(), extendDirectionPriority(), getRailNodes(), and makeAllBidi().
|
staticprivate |
Definition at line 435 of file NBAlgorithms_Railway.cpp.
References isStraight().
Referenced by getBrokenRailNodes().
Definition at line 751 of file NBAlgorithms_Railway.cpp.
References getRailEdges(), and isStraight().
Referenced by addBidiEdgesBetweenSwitches().
|
staticprivate |
Definition at line 412 of file NBAlgorithms_Railway.cpp.
References NBEdge::getAngleAtNode(), NBEdge::getFromNode(), NBEdge::getToNode(), NBHelpers::normRelAngle(), SHARP_THRESHOLD, and SHARP_THRESHOLD_SAMEDIR.
Referenced by addBidiEdgesBetweenSwitches(), addBidiEdgesForStops(), addBidiEdgesForStraightConnectivity(), allBroken(), allSharp(), extendBidiEdges(), hasStraightPair(), and isBidiSwitch().
|
static |
Definition at line 132 of file NBAlgorithms_Railway.cpp.
References addBidiEdge(), CENTER, NBEdgeCont::getAllEdges(), OptionsCont::getOptions(), OptionsCont::getString(), hasRailway(), NBEdge::invalidateConnections(), NBHelpers::loadEdgesFromFile(), NBEdgeCont::retrieve(), toString(), WRITE_MESSAGE, and WRITE_WARNING.
Referenced by NBNetBuilder::compute().
|
static |
Definition at line 113 of file NBAlgorithms_Railway.cpp.
References addBidiEdgesBetweenSwitches(), addBidiEdgesForBufferStops(), addBidiEdgesForStops(), addBidiEdgesForStraightConnectivity(), extendBidiEdges(), NBPTLineCont::getLines(), OptionsCont::getOptions(), and reverseEdges().
Referenced by NBNetBuilder::compute().
|
staticprivate |
reverse edges sequences that are to broken nodes on both sides
Definition at line 570 of file NBAlgorithms_Railway.cpp.
References allBroken(), DEBUGNODEID, getBrokenRailNodes(), Named::getID(), getRailEdges(), NBPTStopCont::getStops(), joinToString(), toString(), and WRITE_MESSAGE.
Referenced by repairTopology().
|
staticprivate |
recompute turning directions for both nodes of the given edge
Definition at line 1156 of file NBAlgorithms_Railway.cpp.
References NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NBEdge::getFromNode(), and NBEdge::getToNode().
Referenced by addBidiEdge().