![]() |
Eclipse SUMO - Simulation of Urban MObility
|
Storage for edges, including some functionality operating on multiple edges. More...
#include <NBEdgeCont.h>
Data Structures | |
struct | PostProcessConnection |
A structure representing a connection between two lanes. More... | |
struct | Split |
A structure which describes changes of lane number or speed along the road. More... | |
class | split_sorter |
Sorts splits by their position (increasing) More... | |
Public Member Functions | |
void | addRoundabout (const EdgeSet &roundabout) |
add user specified roundabout More... | |
void | applyOptions (OptionsCont &oc) |
Initialises the storage by applying given options. More... | |
void | checkGrade (double threshold) const |
check whether edges are to steep More... | |
void | checkOverlap (double threshold, double zThreshold) const |
check whether edges overlap More... | |
void | clear () |
Deletes all edges. More... | |
void | generateStreetSigns () |
assigns street signs to edges based on toNode types More... | |
EdgeVector | getAllEdges () const |
return all edges More... | |
RouterEdgeVector | getAllRouterEdges () const |
NBEdge * | getByID (const std::string &edgeID) const |
Returns the edge with id if it exists. More... | |
EdgeVector | getGeneratedFrom (const std::string &id) const |
Returns the edges which have been built by splitting the edge of the given id. More... | |
NBEdge * | getOppositeByID (const std::string &edgeID) const |
Returns the edge with negated id if it exists. More... | |
const std::set< EdgeSet > | getRoundabouts () const |
Returns the determined roundabouts. More... | |
int | guessRoundabouts () |
Determines which edges belong to roundabouts and increases their priority. More... | |
int | guessSpecialLanes (SUMOVehicleClass svc, double width, double minSpeed, double maxSpeed, bool fromPermissions, const std::string &excludeOpt) |
add sidwalks to edges within the given limits or permissions and return the number of edges affected More... | |
void | ignore (std::string id) |
mark the given edge id as ignored More... | |
bool | ignoreFilterMatch (NBEdge *edge) |
Returns true if this edge matches one of the removal criteria. More... | |
int | joinLanes (SVCPermissions perms) |
join adjacent lanes with the given permissions More... | |
void | markRoundabouts () |
mark edge priorities and prohibit turn-arounds for all roundabout edges More... | |
NBEdgeCont (NBTypeCont &tc) | |
Constructor. More... | |
void | patchRoundabouts (NBEdge *orig, NBEdge *part1, NBEdge *part2, std::set< EdgeSet > &roundabouts) |
fix roundabout information after splitting an edge More... | |
int | remapIDs (bool numericaIDs, bool reservedIDs, const std::string &prefix, NBPTStopCont &sc) |
remap node IDs accoring to options –numerical-ids and –reserved-ids More... | |
void | removeRoundabout (const NBNode *node) |
remove roundabout that contains the given node More... | |
void | rename (NBEdge *edge, const std::string &newID) |
Renames the edge. Throws exception if newID already exists. More... | |
bool | wasIgnored (std::string id) const |
Returns whether the edge with the id was ignored during parsing. More... | |
bool | wasRemoved (std::string id) const |
Returns whether the edge with the id was deleted explicitly. More... | |
~NBEdgeCont () | |
Destructor. More... | |
edge access methods | |
bool | insert (NBEdge *edge, bool ignorePrunning=false) |
Adds an edge to the dictionary. More... | |
NBEdge * | retrieve (const std::string &id, bool retrieveExtracted=false) const |
Returns the edge that has the given id. More... | |
NBEdge * | retrievePossiblySplit (const std::string &id, bool downstream) const |
Tries to retrieve an edge, even if it is splitted. More... | |
NBEdge * | retrievePossiblySplit (const std::string &id, const std::string &hint, bool incoming) const |
Tries to retrieve an edge, even if it is splitted. More... | |
NBEdge * | retrievePossiblySplit (const std::string &id, double pos) const |
Tries to retrieve an edge, even if it is splitted. More... | |
void | erase (NBDistrictCont &dc, NBEdge *edge) |
Removes the given edge from the container (deleting it) More... | |
void | extract (NBDistrictCont &dc, NBEdge *edge, bool remember=false) |
Removes the given edge from the container like erase but does not delete it. More... | |
std::map< std::string, NBEdge * >::const_iterator | begin () const |
Returns the pointer to the begin of the stored edges. More... | |
std::map< std::string, NBEdge * >::const_iterator | end () const |
Returns the pointer to the end of the stored edges. More... | |
explicit edge manipulation methods | |
void | processSplits (NBEdge *e, std::vector< Split > splits, NBNodeCont &nc, NBDistrictCont &dc, NBTrafficLightLogicCont &tlc) |
bool | splitAt (NBDistrictCont &dc, NBEdge *edge, NBNode *node) |
Splits the edge at the position nearest to the given node. More... | |
bool | splitAt (NBDistrictCont &dc, NBEdge *edge, NBNode *node, const std::string &firstEdgeName, const std::string &secondEdgeName, int noLanesFirstEdge, int noLanesSecondEdge, const double speed=-1., const int changedLeft=0) |
Splits the edge at the position nearest to the given node using the given modifications. More... | |
bool | splitAt (NBDistrictCont &dc, NBEdge *edge, double edgepos, NBNode *node, const std::string &firstEdgeName, const std::string &secondEdgeName, int noLanesFirstEdge, int noLanesSecondEdge, const double speed=-1., const int changedLeft=0) |
Splits the edge at the position nearest to the given node using the given modifications. More... | |
container access methods | |
int | size () const |
Returns the number of edges. More... | |
std::vector< std::string > | getAllNames () const |
Returns all ids of known edges. More... | |
int | getNoEdgeSplits () const |
Returns the number of edge splits. More... | |
Adapting the input | |
void | removeUnwishedEdges (NBDistrictCont &dc) |
Removes unwished edges (not in keep-edges) More... | |
void | splitGeometry (NBDistrictCont &dc, NBNodeCont &nc) |
Splits edges into multiple if they have a complex geometry. More... | |
void | reduceGeometries (const double minDist) |
void | checkGeometries (const double maxAngle, const double minRadius, bool fix, bool fixRailways, bool silent=false) |
processing methods | |
void | sortOutgoingLanesConnections () |
Sorts all lanes of all edges within the container by their direction. More... | |
void | computeEdge2Edges (bool noLeftMovers) |
Computes for each edge the approached edges. More... | |
void | computeLanes2Edges () |
Computes for each edge which lanes approach the next edges. More... | |
void | recheckLanes () |
Rechecks whether all lanes have a successor for each of the stored edges. More... | |
void | appendTurnarounds (bool noTLSControlled, bool onlyDeadends, bool noGeometryLike) |
Appends turnarounds to all edges stored in the container. More... | |
void | appendTurnarounds (const std::set< std::string > &ids, bool noTLSControlled) |
Appends turnarounds to all edges stored in the container Calls "NBEdge::appendTurnaround" for edges with the given ids. More... | |
void | appendRailwayTurnarounds (const NBPTStopCont &sc) |
Appends turnarounds to all bidiRail edges with stops. More... | |
void | computeEdgeShapes (double smoothElevationThreshold=-1) |
Computes the shapes of all edges stored in the container. More... | |
void | computeLaneShapes () |
Computes the shapes of all lanes of all edges stored in the container. More... | |
void | clearControllingTLInformation () const |
Clears information about controlling traffic lights for all connenections of all edges. More... | |
void | joinSameNodeConnectingEdges (NBDistrictCont &dc, NBTrafficLightLogicCont &tlc, EdgeVector edges) |
Joins the given edges because they connect the same nodes. More... | |
void | guessOpposites () |
Sets opposite lane information for geometrically close edges. More... | |
void | recheckLaneSpread () |
Rechecks whether the lane spread is proper. More... | |
Connections handling | |
void | addPostProcessConnection (const std::string &from, int fromLane, const std::string &to, int toLane, bool mayDefinitelyPass, bool keepClear, double contPos, double visibility, double speed, const PositionVector &customShape, bool uncontrolled, bool warnOnly, SVCPermissions permissions=SVC_UNSPECIFIED) |
Adds a connection which could not be set during loading. More... | |
bool | hasPostProcessConnection (const std::string &from, const std::string &to="") |
void | recheckPostProcessConnections () |
Try to set any stored connections. More... | |
Private Types | |
typedef std::map< std::string, NBEdge * > | EdgeCont |
The type of the dictionary where an edge may be found by its id. More... | |
Private Member Functions | |
NBEdgeCont (const NBEdgeCont &s) | |
invalidated copy constructor More... | |
NBEdgeCont & | operator= (const NBEdgeCont &s) |
invalidated assignment operator More... | |
Static Private Member Functions | |
static double | formFactor (const EdgeVector &loopEdges) |
compute the form factor for a loop of edges More... | |
Private Attributes | |
std::map< std::string, std::vector< PostProcessConnection > > | myConnections |
The list of connections to recheck. More... | |
EdgeCont | myEdges |
The instance of the dictionary (id->edge) More... | |
int | myEdgesSplit |
the number of splits of edges during the building More... | |
EdgeCont | myExtractedEdges |
The extracted nodes which are kept for reference. More... | |
std::set< EdgeSet > | myGuessedRoundabouts |
Edges marked as belonging to a roundabout after guessing. More... | |
std::set< std::string > | myIgnoredEdges |
The ids of ignored edges. More... | |
std::set< EdgeSet > | myRoundabouts |
Edges marked as belonging to a roundabout by the user (each EdgeVector is a roundabout) More... | |
NBTypeCont & | myTypeCont |
The network builder; used to obtain type information. More... | |
Settings for accepting/dismissing edges | |
double | myEdgesMinSpeed |
The minimum speed an edge may have in order to be kept (default: -1) More... | |
bool | myRemoveEdgesAfterJoining |
Whether edges shall be joined first, then removed. More... | |
std::set< std::string > | myEdges2Keep |
Set of ids of edges which shall explicitly be kept. More... | |
std::set< std::string > | myEdges2Remove |
Set of ids of edges which shall explicitly be removed. More... | |
SVCPermissions | myVehicleClasses2Keep |
Set of vehicle types which must be allowed on edges in order to keep them. More... | |
SVCPermissions | myVehicleClasses2Remove |
Set of vehicle types which need not be supported (edges which allow ONLY these are removed) More... | |
std::set< std::string > | myTypes2Keep |
Set of edges types which shall be kept. More... | |
std::set< std::string > | myTypes2Remove |
Set of edges types which shall be removed. More... | |
PositionVector | myPruningBoundary |
Boundary within which an edge must be located in order to be kept. More... | |
bool | myNeedGeoTransformedPruningBoundary |
whether a geo transform has been applied to the pruning boundary More... | |
Storage for edges, including some functionality operating on multiple edges.
Definition at line 60 of file NBEdgeCont.h.
|
private |
The type of the dictionary where an edge may be found by its id.
Definition at line 671 of file NBEdgeCont.h.
NBEdgeCont::NBEdgeCont | ( | NBTypeCont & | tc | ) |
Constructor.
[in] | tc | The net builded; used to obtain types |
Definition at line 58 of file NBEdgeCont.cpp.
NBEdgeCont::~NBEdgeCont | ( | ) |
|
private |
invalidated copy constructor
void NBEdgeCont::addPostProcessConnection | ( | const std::string & | from, |
int | fromLane, | ||
const std::string & | to, | ||
int | toLane, | ||
bool | mayDefinitelyPass, | ||
bool | keepClear, | ||
double | contPos, | ||
double | visibility, | ||
double | speed, | ||
const PositionVector & | customShape, | ||
bool | uncontrolled, | ||
bool | warnOnly, | ||
SVCPermissions | permissions = SVC_UNSPECIFIED |
||
) |
Adds a connection which could not be set during loading.
[in] | from | The id of the edge the connection starts at |
[in] | fromLane | The number of the lane the connection starts at |
[in] | to | The id of the edge the connection ends at |
[in] | toLane | The number of the lane the connection ends at |
[in] | mayDefinitelyPass | Whether the connection may be passed without braking |
[in] | keepClear | Whether the connection must check to keep the junction clear |
[in] | contPos | Custom position for internal junction |
[in] | visibility | Custom foe visiblity connection |
[in] | speed | Custom speed |
[in] | customShape | Custom shape |
[in] | warnOnly | Whether a failure to set this connection should only result in a warning |
Definition at line 1052 of file NBEdgeCont.cpp.
References myConnections.
Referenced by NIXMLConnectionsHandler::parseLaneBound().
void NBEdgeCont::addRoundabout | ( | const EdgeSet & | roundabout | ) |
add user specified roundabout
Definition at line 1353 of file NBEdgeCont.cpp.
References myRoundabouts, toString(), and WRITE_WARNING.
Referenced by NIImporter_SUMO::_loadNetwork(), and NIXMLEdgesHandler::addRoundabout().
void NBEdgeCont::appendRailwayTurnarounds | ( | const NBPTStopCont & | sc | ) |
Appends turnarounds to all bidiRail edges with stops.
Definition at line 854 of file NBEdgeCont.cpp.
References NBEdge::getID(), NBEdge::getNumLanes(), NBPTStopCont::getStops(), NBEdge::getTurnDestination(), NBEdge::isBidiRail(), NBEdge::L2L_VALIDATED, myEdges, NBEdge::setConnection(), SUMO_const_haltingSpeed, NBEdge::UNSPECIFIED_CONTPOS, and NBEdge::UNSPECIFIED_VISIBILITY_DISTANCE.
Referenced by NBNetBuilder::compute().
void NBEdgeCont::appendTurnarounds | ( | bool | noTLSControlled, |
bool | onlyDeadends, | ||
bool | noGeometryLike | ||
) |
Appends turnarounds to all edges stored in the container.
Calls "NBEdge::appendTurnaround" for all edges within the container.
[in] | noTLSControlled | Whether the turnaround shall not be connected if the edge is controlled by a tls |
[in] | exceptDeadends | Whether the turnaround shall only be built at deadends |
Definition at line 838 of file NBEdgeCont.cpp.
References myEdges.
Referenced by NBNetBuilder::compute().
void NBEdgeCont::appendTurnarounds | ( | const std::set< std::string > & | ids, |
bool | noTLSControlled | ||
) |
Appends turnarounds to all edges stored in the container Calls "NBEdge::appendTurnaround" for edges with the given ids.
[in] | ids | The list of ids for which to append a turnaround |
[in] | noTLSControlled | Whether the turnaround shall not be connected if the edge is controlled by a tls |
Definition at line 846 of file NBEdgeCont.cpp.
References myEdges.
void NBEdgeCont::applyOptions | ( | OptionsCont & | oc | ) |
Initialises the storage by applying given options.
Options, mainly steering the acceptance of edges, are parsed and the according internal variables are set.
[in] | oc | The options container to read options from |
Definition at line 73 of file NBEdgeCont.cpp.
References OptionsCont::exists(), OptionsCont::getBool(), OptionsCont::getFloat(), OptionsCont::getString(), OptionsCont::getStringVector(), OptionsCont::isSet(), NBHelpers::loadEdgesFromFile(), myEdges2Keep, myEdges2Remove, myEdgesMinSpeed, myNeedGeoTransformedPruningBoundary, myPruningBoundary, myRemoveEdgesAfterJoining, myTypes2Keep, myTypes2Remove, myVehicleClasses2Keep, myVehicleClasses2Remove, parseVehicleClasses(), and StringUtils::toDouble().
Referenced by NBNetBuilder::applyOptions().
|
inline |
Returns the pointer to the begin of the stored edges.
Definition at line 184 of file NBEdgeCont.h.
References myEdges.
Referenced by NBNetBuilder::compute(), NBRailwayTopologyAnalyzer::extendBidiEdges(), NBRailwayTopologyAnalyzer::getRailNodes(), NBNetBuilder::mirrorX(), NBNetBuilder::moveToOrigin(), NBNodeCont::removeComponents(), NGNet::toNB(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_Amitran::writeNetwork(), NWWriter_OpenDrive::writeNetwork(), NWWriter_MATSim::writeNetwork(), NWWriter_SUMO::writeNetwork(), NWWriter_DlrNavteq::writeNodesUnsplitted(), NWWriter_XML::writeStreetSigns(), and NWWriter_XML::writeTrafficLights().
void NBEdgeCont::checkGeometries | ( | const double | maxAngle, |
const double | minRadius, | ||
bool | fix, | ||
bool | fixRailways, | ||
bool | silent = false |
||
) |
[in] | maxAngle | The maximum geometry angle allowed |
[in] | minRadius | The minimum turning radius allowed at the start and end |
[in] | fix | Whether to prune geometry points to avoid sharp turns at start and end |
Definition at line 752 of file NBEdgeCont.cpp.
References isForbidden(), isRailway(), isSidewalk(), and myEdges.
Referenced by NBNetBuilder::compute().
void NBEdgeCont::checkGrade | ( | double | threshold | ) | const |
check whether edges are to steep
Definition at line 1559 of file NBEdgeCont.cpp.
References NBEdge::getConnections(), NBEdge::Connection::getDescription(), NBEdge::getID(), NBEdge::getLaneShape(), PositionVector::getMaxGrade(), NBEdge::getNumLanes(), MAX2(), myEdges, NBEdge::Connection::shape, toString(), NBEdge::Connection::viaShape, and WRITE_WARNING.
Referenced by NBNetBuilder::compute().
void NBEdgeCont::checkOverlap | ( | double | threshold, |
double | zThreshold | ||
) | const |
check whether edges overlap
Definition at line 1530 of file NBEdgeCont.cpp.
References PositionVector::append(), PositionVector::getBoxBoundary(), NBEdge::getCCWBoundaryLine(), NBEdge::getFromNode(), NBEdge::getGeometry(), NBEdge::getID(), PositionVector::getOverlapWith(), NBEdge::getToNode(), NBEdge::getTotalWidth(), Boundary::grow(), myEdges, Boundary::overlapsWith(), toString(), and WRITE_WARNING.
Referenced by NBNetBuilder::compute().
void NBEdgeCont::clear | ( | ) |
Deletes all edges.
Definition at line 138 of file NBEdgeCont.cpp.
References myEdges, and myExtractedEdges.
Referenced by ~NBEdgeCont().
void NBEdgeCont::clearControllingTLInformation | ( | ) | const |
Clears information about controlling traffic lights for all connenections of all edges.
Definition at line 766 of file NBEdgeCont.cpp.
References myEdges.
Referenced by NBTrafficLightLogicCont::setTLControllingInformation().
void NBEdgeCont::computeEdge2Edges | ( | bool | noLeftMovers | ) |
Computes for each edge the approached edges.
Calls "NBEdge::computeEdge2Edges" for all edges within the container.
[in] | noLeftMovers | Whether left-moving connections shall be omitted |
Definition at line 782 of file NBEdgeCont.cpp.
References myEdges.
Referenced by NBNetBuilder::compute().
void NBEdgeCont::computeEdgeShapes | ( | double | smoothElevationThreshold = -1 | ) |
Computes the shapes of all edges stored in the container.
Calls "NBEdge::computeEdgeShape" for all edges within the container.
Recheck whether a visitor-pattern should be used herefor
Recheck usage
Definition at line 875 of file NBEdgeCont.cpp.
References NBEdge::getLaneID(), NBEdge::getLanes(), NBEdge::getLength(), NBEdge::getNumLanes(), myEdges, NUMERICAL_EPS, retrieve(), and NBEdge::setAverageLengthWithOpposite().
Referenced by NBNetBuilder::compute().
void NBEdgeCont::computeLanes2Edges | ( | ) |
Computes for each edge which lanes approach the next edges.
Calls "NBEdge::computeLanes2Edges" for all edges within the container.
Definition at line 790 of file NBEdgeCont.cpp.
References myEdges.
Referenced by NBNetBuilder::compute().
void NBEdgeCont::computeLaneShapes | ( | ) |
Computes the shapes of all lanes of all edges stored in the container.
Calls "NBEdge::computeLaneShapes" for all edges within the container.
Recheck whether a visitor-pattern should be used herefor
Recheck usage
Definition at line 899 of file NBEdgeCont.cpp.
References myEdges.
Referenced by NBNetBuilder::compute().
|
inline |
Returns the pointer to the end of the stored edges.
Definition at line 192 of file NBEdgeCont.h.
References myEdges.
Referenced by NBNetBuilder::compute(), NBRailwayTopologyAnalyzer::extendBidiEdges(), NBRailwayTopologyAnalyzer::getRailNodes(), NBNetBuilder::mirrorX(), NBNetBuilder::moveToOrigin(), NBNodeCont::removeComponents(), NGNet::toNB(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_Amitran::writeNetwork(), NWWriter_OpenDrive::writeNetwork(), NWWriter_MATSim::writeNetwork(), NWWriter_SUMO::writeNetwork(), NWWriter_DlrNavteq::writeNodesUnsplitted(), NWWriter_XML::writeStreetSigns(), and NWWriter_XML::writeTrafficLights().
void NBEdgeCont::erase | ( | NBDistrictCont & | dc, |
NBEdge * | edge | ||
) |
Removes the given edge from the container (deleting it)
[in] | dc | The district container, in order to remove the edge from sources/sinks |
[in] | edge | The edge to remove |
Definition at line 380 of file NBEdgeCont.cpp.
References extract().
Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLEdgesHandler::addEdge(), NBNodeCont::removeComponents(), NBNodeCont::removeIsolatedRoads(), NBNode::removeSelfLoops(), removeUnwishedEdges(), and splitAt().
void NBEdgeCont::extract | ( | NBDistrictCont & | dc, |
NBEdge * | edge, | ||
bool | remember = false |
||
) |
Removes the given edge from the container like erase but does not delete it.
[in] | dc | The district container, in order to remove the edge from sources/sinks |
[in] | edge | The edge to remove |
[in] | remember | Whether to keep this edge for future reference |
Recheck whether the district cont is needed - if districts are processed using an external tool
Recheck whether this is used at all and why
Definition at line 387 of file NBEdgeCont.cpp.
References NBEdge::getID(), myEdges, myExtractedEdges, NBEdge::myFrom, NBEdge::myTo, NBNode::removeEdge(), and NBDistrictCont::removeFromSinksAndSources().
Referenced by NIXMLEdgesHandler::deleteEdge(), GNENet::deleteSingleEdge(), erase(), NBNodeCont::joinNodeCluster(), joinSameNodeConnectingEdges(), and NBNodeCont::removeUnwishedNodes().
|
staticprivate |
compute the form factor for a loop of edges
Definition at line 1334 of file NBEdgeCont.cpp.
References PositionVector::append(), PositionVector::area(), PositionVector::length2D(), and M_PI.
Referenced by guessRoundabouts().
void NBEdgeCont::generateStreetSigns | ( | ) |
assigns street signs to edges based on toNode types
Definition at line 1403 of file NBEdgeCont.cpp.
References NBEdge::addSign(), NBEdge::getJunctionPriority(), NBEdge::getLength(), NBEdge::getToNode(), NBNode::getType(), NBNode::isSimpleContinuation(), MAX2(), myEdges, NODETYPE_ALLWAY_STOP, NODETYPE_PRIORITY, NODETYPE_PRIORITY_STOP, NODETYPE_RIGHT_BEFORE_LEFT, NBSign::SIGN_TYPE_ALLWAY_STOP, NBSign::SIGN_TYPE_PRIORITY, NBSign::SIGN_TYPE_RIGHT_BEFORE_LEFT, NBSign::SIGN_TYPE_STOP, and NBSign::SIGN_TYPE_YIELD.
Referenced by NBNetBuilder::compute().
EdgeVector NBEdgeCont::getAllEdges | ( | ) | const |
return all edges
Definition at line 1599 of file NBEdgeCont.cpp.
References myEdges.
Referenced by NBRailwayTopologyAnalyzer::addBidiEdgesForStops(), getAllRouterEdges(), GNEViewNet::getEdgeLaneParamKeys(), and NBRailwayTopologyAnalyzer::makeAllBidi().
std::vector< std::string > NBEdgeCont::getAllNames | ( | ) | const |
Returns all ids of known edges.
Definition at line 689 of file NBEdgeCont.cpp.
References myEdges.
Referenced by GNENet::initJunctionsAndEdges(), remapIDs(), NBNodeCont::removeIsolatedRoads(), NWWriter_DlrNavteq::writeNodesUnsplitted(), and NWWriter_DlrNavteq::writeProhibitedManoeuvres().
RouterEdgeVector NBEdgeCont::getAllRouterEdges | ( | ) | const |
Definition at line 1609 of file NBEdgeCont.cpp.
References getAllEdges().
Referenced by NBPTLineCont::fixBidiStops(), and GNEDemandElement::RouteCalculator::RouteCalculator().
NBEdge * NBEdgeCont::getByID | ( | const std::string & | edgeID | ) | const |
Returns the edge with id if it exists.
Definition at line 1045 of file NBEdgeCont.cpp.
References myEdges.
Referenced by NBPTStopCont::assignAndCreatNewPTStopAsNeeded(), NBPTStopCont::assignPTStopToEdgeOfClosestPlatform(), NBPTStopCont::cleanupDeleted(), NBPTStop::findLaneAndComputeBusStopExtent(), NBPTStopCont::generateBidiStops(), NBPTLineCont::getCost(), NBPTStopCont::getReverseStop(), NBNodeCont::removeComponents(), and NBPTLineCont::reviseStops().
EdgeVector NBEdgeCont::getGeneratedFrom | ( | const std::string & | id | ) | const |
Returns the edges which have been built by splitting the edge of the given id.
[in] | id | The id of the original edge |
Definition at line 1115 of file NBEdgeCont.cpp.
References myEdges.
Referenced by NBPTStopCont::assignLanes(), and retrievePossiblySplit().
|
inline |
Returns the number of edge splits.
Definition at line 319 of file NBEdgeCont.h.
References myEdgesSplit.
Referenced by NILoader::load().
NBEdge * NBEdgeCont::getOppositeByID | ( | const std::string & | edgeID | ) | const |
Returns the edge with negated id if it exists.
Definition at line 1038 of file NBEdgeCont.cpp.
References myEdges.
Referenced by recheckLaneSpread(), and NWWriter_DlrNavteq::writeNodesUnsplitted().
const std::set< EdgeSet > NBEdgeCont::getRoundabouts | ( | ) | const |
Returns the determined roundabouts.
Definition at line 1345 of file NBEdgeCont.cpp.
References myGuessedRoundabouts, and myRoundabouts.
Referenced by NBNetBuilder::compute(), NBNodeCont::computeLogics2(), NBRampsComputer::computeRamps(), markRoundabouts(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_Amitran::writeNetwork(), and NWWriter_SUMO::writeNetwork().
void NBEdgeCont::guessOpposites | ( | ) |
Sets opposite lane information for geometrically close edges.
Definition at line 994 of file NBEdgeCont.cpp.
References PositionVector::distances(), NBEdge::getFromNode(), NBEdge::getLaneID(), NBEdge::getLaneStruct(), NBEdge::getNumLanes(), NBNode::getOutgoingEdges(), NBEdge::getToNode(), VectorHelper< T >::maxValue(), myEdges, NBEdge::Lane::oppositeID, and NBEdge::Lane::shape.
Referenced by NBNetBuilder::compute().
int NBEdgeCont::guessRoundabouts | ( | ) |
Determines which edges belong to roundabouts and increases their priority.
[out] | marked | Edges which belong to a roundabout are stored here |
Definition at line 1157 of file NBEdgeCont.cpp.
References DEBUG_EDGE_ID, formFactor(), gDebugFlag1, NBEdge::getAngleAtNode(), NBNode::getConnectionTo(), NBNode::getEdges(), NBEdge::getFromNode(), NBEdge::getID(), NBEdge::getLaneShape(), NBEdge::getLength(), NBEdge::getPermissions(), NBEdge::getToNode(), NBEdge::getTurnDestination(), NBNode::getType(), MAX2(), myEdges, myGuessedRoundabouts, myRoundabouts, NBContHelper::nextCW(), NODETYPE_RIGHT_BEFORE_LEFT, NBHelpers::relAngle(), SVC_PEDESTRIAN, SVCAll, toString(), and NBNode::typeWasGuessed().
Referenced by NBNetBuilder::compute().
int NBEdgeCont::guessSpecialLanes | ( | SUMOVehicleClass | svc, |
double | width, | ||
double | minSpeed, | ||
double | maxSpeed, | ||
bool | fromPermissions, | ||
const std::string & | excludeOpt | ||
) |
add sidwalks to edges within the given limits or permissions and return the number of edges affected
Definition at line 1443 of file NBEdgeCont.cpp.
References NBEdge::addRestrictedLane(), NBEdge::getID(), OptionsCont::getOptions(), NBEdge::getPermissions(), NBEdge::getSpeed(), OptionsCont::getStringVector(), NBEdge::hasRestrictedLane(), and myEdges.
Referenced by NBNetBuilder::compute().
bool NBEdgeCont::hasPostProcessConnection | ( | const std::string & | from, |
const std::string & | to = "" |
||
) |
Definition at line 1059 of file NBEdgeCont.cpp.
References myConnections.
Referenced by NBNodeCont::joinNodeCluster().
|
inline |
mark the given edge id as ignored
Definition at line 506 of file NBEdgeCont.h.
References myIgnoredEdges.
Referenced by NIImporter_SUMO::_loadNetwork().
bool NBEdgeCont::ignoreFilterMatch | ( | NBEdge * | edge | ) |
Returns true if this edge matches one of the removal criteria.
Definition at line 174 of file NBEdgeCont.cpp.
References PositionVector::getBoxBoundary(), NBEdge::getGeometry(), NBEdge::getID(), GeoConvHelper::getLoaded(), NBEdge::getPermissions(), GeoConvHelper::getProcessing(), NBTypeCont::getShallBeDiscarded(), NBEdge::getSpeed(), NBEdge::getTypeID(), Boundary::grow(), NBTypeCont::knows(), myEdges2Keep, myEdges2Remove, myEdgesMinSpeed, myNeedGeoTransformedPruningBoundary, myPruningBoundary, myRemoveEdgesAfterJoining, myTypeCont, myTypes2Keep, myTypes2Remove, myVehicleClasses2Keep, myVehicleClasses2Remove, Boundary::overlapsWith(), POSITION_EPS, NBNetBuilder::transformCoordinates(), WRITE_ERROR, and GeoConvHelper::x2cartesian_const().
Referenced by NIImporter_SUMO::_loadNetwork(), and insert().
bool NBEdgeCont::insert | ( | NBEdge * | edge, |
bool | ignorePrunning = false |
||
) |
Adds an edge to the dictionary.
First, it is determined whether the edge shall not be discarded due to any reasons (being outside a boundary, or not in the optional list of edges to import, etc.). If so, the edge is deleted and "true" is returned. "true" is also returned if the edge is accepted - no edge with the same name exists within this container. If another edge with the same name exists, false is returned.
[in] | edge | The edge to add |
[in] | ignorePrunning | Whether this edge must not be prunned |
Definition at line 153 of file NBEdgeCont.cpp.
References NBEdge::dismissVehicleClassInformation(), OptionsCont::exists(), OptionsCont::getBool(), NBEdge::getFromNode(), NBEdge::getID(), OptionsCont::getOptions(), NBEdge::getToNode(), ignoreFilterMatch(), myEdges, myIgnoredEdges, and NBNode::removeEdge().
Referenced by NIImporter_SUMO::_loadNetwork(), NBRailwayTopologyAnalyzer::addBidiEdge(), NIVissimEdge::buildNBEdge(), NIVissimDistrictConnection::dict_BuildDistricts(), NBRailwayTopologyAnalyzer::getRailNodes(), NIImporter_OpenStreetMap::insertEdge(), GNENet::insertEdge(), joinSameNodeConnectingEdges(), NIImporter_ArcView::load(), NIImporter_RobocupRescue::loadEdges(), NIImporter_OpenDrive::loadNetwork(), NIXMLEdgesHandler::myEndElement(), NIImporter_VISUM::parse_Connectors_legacy(), NIImporter_VISUM::parse_Edges(), splitAt(), and NGNet::toNB().
int NBEdgeCont::joinLanes | ( | SVCPermissions | perms | ) |
join adjacent lanes with the given permissions
Definition at line 1588 of file NBEdgeCont.cpp.
References myEdges.
Referenced by NBNetBuilder::compute().
void NBEdgeCont::joinSameNodeConnectingEdges | ( | NBDistrictCont & | dc, |
NBTrafficLightLogicCont & | tlc, | ||
EdgeVector | edges | ||
) |
Joins the given edges because they connect the same nodes.
[in] | dc | The district container needed to remove edges |
[in] | tlc | The tls container needed to remove edges |
[in] | edges | The edges to join |
Definition at line 907 of file NBEdgeCont.cpp.
References NBEdge::addEdge2EdgeConnection(), extract(), NBEdge::getFromNode(), NBEdge::getStreetName(), NBEdge::getToNode(), insert(), MAX2(), NBEdge::moveOutgoingConnectionsFrom(), NBEdge::myLaneSpreadFunction, NBNode::replaceIncoming(), NBNode::replaceOutgoing(), NBTrafficLightLogicCont::replaceRemoved(), NBEdge::setEndOffset(), NBEdge::setLaneWidth(), NBEdge::setPermissions(), NBEdge::UNSPECIFIED_OFFSET, and NBEdge::UNSPECIFIED_WIDTH.
Referenced by NBNodeCont::joinSimilarEdges().
void NBEdgeCont::markRoundabouts | ( | ) |
mark edge priorities and prohibit turn-arounds for all roundabout edges
Definition at line 1377 of file NBEdgeCont.cpp.
References NBNode::getIncomingEdges(), getRoundabouts(), NBEdge::LANES2LANES_USER, NBEdge::ROUNDABOUT, and NBNode::setRoundabout().
Referenced by NBNetBuilder::compute().
|
private |
invalidated assignment operator
void NBEdgeCont::patchRoundabouts | ( | NBEdge * | orig, |
NBEdge * | part1, | ||
NBEdge * | part2, | ||
std::set< EdgeSet > & | roundabouts | ||
) |
fix roundabout information after splitting an edge
Definition at line 671 of file NBEdgeCont.cpp.
Referenced by splitAt().
void NBEdgeCont::processSplits | ( | NBEdge * | e, |
std::vector< Split > | splits, | ||
NBNodeCont & | nc, | ||
NBDistrictCont & | dc, | ||
NBTrafficLightLogicCont & | tlc | ||
) |
Definition at line 412 of file NBEdgeCont.cpp.
References NBEdge::addLane2LaneConnection(), NBEdge::decLaneNo(), NBEdge::getFromNode(), NBEdge::getGeometry(), NBEdge::getID(), NBNode::getIncomingEdges(), NBEdge::getLaneSpreadFunction(), NBEdge::getNumLanes(), NBNode::getOutgoingEdges(), NBEdge::getToNode(), NBEdgeCont::Split::idAfter, NBEdgeCont::Split::idBefore, NBEdge::incLaneNo(), NBNodeCont::insert(), NBEdge::invalidateConnections(), NBNode::invalidateTLS(), NBEdge::L2L_VALIDATED, NBEdgeCont::Split::lanes, LANESPREAD_CENTER, LANESPREAD_RIGHT, PositionVector::length(), NBNodeCont::markAsSplit(), MAX2(), PositionVector::move2side(), NBEdgeCont::Split::nameID, NBEdgeCont::Split::node, NBEdgeCont::Split::offset, NBEdgeCont::Split::offsetFactor, NBEdgeCont::Split::pos, retrieve(), NBEdge::setGeometry(), NBEdgeCont::Split::speed, splitAt(), SUMO_const_halfLaneAndOffset, SUMO_const_laneWidthAndOffset, toString(), and WRITE_WARNING.
Referenced by NIXMLEdgesHandler::myEndElement(), and NGNet::toNB().
void NBEdgeCont::recheckLanes | ( | ) |
Rechecks whether all lanes have a successor for each of the stored edges.
Calls "NBEdge::recheckLanes" for all edges within the container.
Definition at line 798 of file NBEdgeCont.cpp.
References OptionsCont::getBool(), NBEdge::getFinalLength(), NBEdge::getFromNode(), NBEdge::getID(), NBEdge::getLaneID(), NBEdge::getLanes(), NBEdge::getLaneStruct(), NBEdge::getLoadedLength(), NBEdge::getNumLanes(), OptionsCont::getOptions(), NBEdge::getToNode(), myEdges, NUMERICAL_EPS, NBEdge::Lane::oppositeID, NBEdge::recheckLanes(), retrieve(), NBEdge::setLoadedLength(), toString(), WRITE_ERROR, and WRITE_WARNING.
Referenced by NBNetBuilder::compute().
void NBEdgeCont::recheckLaneSpread | ( | ) |
Rechecks whether the lane spread is proper.
Definition at line 1024 of file NBEdgeCont.cpp.
References getOppositeByID(), LANESPREAD_CENTER, LANESPREAD_RIGHT, myEdges, and NBEdge::setLaneSpreadFunction().
Referenced by NIImporter_DlrNavteq::loadNetwork().
void NBEdgeCont::recheckPostProcessConnections | ( | ) |
Try to set any stored connections.
Definition at line 1077 of file NBEdgeCont.cpp.
References NBEdge::addLane2LaneConnection(), OptionsCont::exists(), OptionsCont::getBool(), NBEdge::getConnections(), NBEdge::getFromNode(), Named::getID(), NBEdge::getID(), OptionsCont::getOptions(), NBEdge::getToNode(), NBEdge::L2L_USER, myConnections, myEdges, NBEdge::removeFromConnections(), retrievePossiblySplit(), NBEdge::Connection::toEdge, WRITE_ERROR, and WRITE_WARNING.
Referenced by NBNetBuilder::compute().
void NBEdgeCont::reduceGeometries | ( | const double | minDist | ) |
[in] | nc | The node container needed to build (geometry) nodes |
Definition at line 744 of file NBEdgeCont.cpp.
References myEdges.
Referenced by NBNetBuilder::compute(), and NIImporter_VISUM::load().
int NBEdgeCont::remapIDs | ( | bool | numericaIDs, |
bool | reservedIDs, | ||
const std::string & | prefix, | ||
NBPTStopCont & | sc | ||
) |
remap node IDs accoring to options –numerical-ids and –reserved-ids
Definition at line 1471 of file NBEdgeCont.cpp.
References getAllNames(), OptionsCont::getBool(), NBEdge::getID(), IDSupplier::getNext(), OptionsCont::getOptions(), NBPTStopCont::getStops(), NBHelpers::loadPrefixedIDsFomFile(), myEdges, rename(), Named::setID(), NBEdge::setOrigID(), StringUtils::startsWith(), and StringUtils::toLong().
Referenced by NBNetBuilder::compute().
void NBEdgeCont::removeRoundabout | ( | const NBNode * | node | ) |
remove roundabout that contains the given node
Definition at line 1364 of file NBEdgeCont.cpp.
References myRoundabouts.
Referenced by NIXMLNodesHandler::processNodeType(), and GNEJunction::setAttribute().
void NBEdgeCont::removeUnwishedEdges | ( | NBDistrictCont & | dc | ) |
Removes unwished edges (not in keep-edges)
[in,opt. | changed] dc The district container needed to remove edges |
Definition at line 700 of file NBEdgeCont.cpp.
References erase(), NBEdge::getFromNode(), NBEdge::getID(), NBEdge::getToNode(), myEdges, myEdges2Keep, and NBNode::removeEdge().
Referenced by NBNetBuilder::compute().
void NBEdgeCont::rename | ( | NBEdge * | edge, |
const std::string & | newID | ||
) |
Renames the edge. Throws exception if newID already exists.
Definition at line 399 of file NBEdgeCont.cpp.
References NBEdge::getID(), myEdges, and Named::setID().
Referenced by remapIDs(), and GNENet::renameEdge().
NBEdge * NBEdgeCont::retrieve | ( | const std::string & | id, |
bool | retrieveExtracted = false |
||
) | const |
Returns the edge that has the given id.
If no edge that has the given id is known, 0 is returned.
[in] | id | The id of the edge to retrieve |
[in] | bool | Whether extracted edges shall be retrieved as well |
Definition at line 246 of file NBEdgeCont.cpp.
References myEdges, and myExtractedEdges.
Referenced by NIImporter_SUMO::_loadNetwork(), NBRailwayTopologyAnalyzer::addBidiEdge(), NIXMLConnectionsHandler::addCrossing(), NIXMLEdgesHandler::addEdge(), NIXMLPTHandler::addPTStop(), NIXMLEdgesHandler::addRoundabout(), NIXMLPTHandler::addRoute(), NIVissimDisturbance::addToNode(), NIXMLConnectionsHandler::addWalkingArea(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), NBConnection::checkFrom(), NBConnection::checkTo(), computeEdgeShapes(), NBRampsComputer::computeRamps(), NBPTLineCont::constructRoute(), NIXMLEdgesHandler::deleteEdge(), NIVissimDistrictConnection::dict_BuildDistricts(), NBNodeCont::feasibleCluster(), NIXMLShapeHandler::getLanePos(), NIImporter_VISUM::getNamedEdge(), NIImporter_VISUM::getNamedEdgeContinuating(), NWWriter_SUMO::getOppositeInternalID(), NIImporter_VISUM::getReversedContinuating(), NBPTLine::getRouteEnd(), NBPTLine::getRouteStart(), NBPTLine::getStopEdges(), GNENet::initJunctionsAndEdges(), NIImporter_ArcView::load(), NIImporter_OpenDrive::loadNetwork(), NIXMLConnectionsHandler::myStartElement(), NIImporter_VISUM::parse_Connectors_legacy(), NIImporter_VISUM::parse_Edges(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_TurnsToSignalGroups(), NIXMLConnectionsHandler::parseConnection(), processSplits(), recheckLanes(), NBNodeCont::removeIsolatedRoads(), NIXMLTrafficLightsHandler::retrieveEdge(), retrievePossiblySplit(), splitGeometry(), NBParking::write(), NBPTLine::write(), and NWWriter_SUMO::writeRoundabout().
NBEdge * NBEdgeCont::retrievePossiblySplit | ( | const std::string & | id, |
bool | downstream | ||
) | const |
Tries to retrieve an edge, even if it is splitted.
The edge given with the id should exist and is followed downstream or upstream, depending on the parameter to the last edge still starting with the id.
[in] | id | The id of the edge to retrieve |
[in] | downstream | search direction |
Definition at line 282 of file NBEdgeCont.cpp.
References retrieve().
Referenced by NIVissimTL::NIVissimTLSignal::addTo(), NIVissimDisturbance::addToNode(), NIVissimConnection::buildEdgeConnections(), NBConnection::checkFrom(), NBConnection::checkTo(), NIVissimDistrictConnection::dict_BuildDistricts(), recheckPostProcessConnections(), and NIVissimConflictArea::setPriorityRegulation().
NBEdge * NBEdgeCont::retrievePossiblySplit | ( | const std::string & | id, |
const std::string & | hint, | ||
bool | incoming | ||
) | const |
Tries to retrieve an edge, even if it is splitted.
To describe which part of the edge shall be returned, the id of a second edge, participating at the node and the information whether to return the outgoing or the incoming is needed.
[in] | id | The id of the edge to retrieve |
[in] | hint | An additional information which helps to retrieve the correct edge |
[in] | incoming | Whether the edge to find is an incoming edge at the node "hint" participates |
Definition at line 301 of file NBEdgeCont.cpp.
References getGeneratedFrom(), NBNode::getIncomingEdges(), NBNode::getOutgoingEdges(), NBEdge::myFrom, NBEdge::myTo, and retrieve().
NBEdge * NBEdgeCont::retrievePossiblySplit | ( | const std::string & | id, |
double | pos | ||
) | const |
Tries to retrieve an edge, even if it is splitted.
To describe which part of the edge shall be returned, a position hint is supplied.
[in] | id | The id of the edge to retrieve |
[in] | pos | An additional about the position of the basic edge's subpart |
Definition at line 335 of file NBEdgeCont.cpp.
References NBEdge::getLength(), MAX2(), myEdges, and retrieve().
|
inline |
Returns the number of edges.
Definition at line 304 of file NBEdgeCont.h.
References myEdges.
Referenced by NBRailwayTopologyAnalyzer::addBidiEdgesForStops(), NILoader::load(), and main().
void NBEdgeCont::sortOutgoingLanesConnections | ( | ) |
Sorts all lanes of all edges within the container by their direction.
Calls "NBEdge::sortOutgoingLanesConnections" for all edges within the container.
Definition at line 774 of file NBEdgeCont.cpp.
References myEdges.
Referenced by NBNetBuilder::compute().
bool NBEdgeCont::splitAt | ( | NBDistrictCont & | dc, |
NBEdge * | edge, | ||
double | edgepos, | ||
NBNode * | node, | ||
const std::string & | firstEdgeName, | ||
const std::string & | secondEdgeName, | ||
int | noLanesFirstEdge, | ||
int | noLanesSecondEdge, | ||
const double | speed = -1. , |
||
const int | changedLeft = 0 |
||
) |
Splits the edge at the position nearest to the given node using the given modifications.
[in] | dc | The district container, in order to remove/add the edge from/to sources/sinks |
[in] | edge | The edge to split |
[in] | node | The node to split the edge at |
[in] | firstEdgeName | The id the first part of the split edge shall have |
[in] | secondEdgeName | The id the second part of the split edge shall have |
[in] | noLanesFirstEdge | The number of lanes the second part of the split edge shall have |
[in] | noLanesSecondEdge | The number of lanes the second part of the split edge shall have |
[in] | speed | The speed for the edge after the split |
[in] | changedLeft | The number of lanes that is added or removed on the left side of the edge (By default all added/removed lanes are assumed to be on the right when computing connections) |
ProcessError | If connections between the edges can not be built |
Definition at line 586 of file NBEdgeCont.cpp.
References NBEdge::addLane2LaneConnection(), NBEdge::copyConnectionsFrom(), erase(), NBNode::getControllingTLS(), NBEdge::getGeometry(), NBEdge::getID(), NBEdge::getLaneStruct(), NBEdge::getNumLanes(), OptionsCont::getOptions(), Parameterised::getParameter(), insert(), NBEdge::L2L_COMPUTED, MAX2(), MIN2(), myEdges2Keep, myEdges2Remove, myEdgesSplit, NBEdge::myFrom, myGuessedRoundabouts, myRemoveEdgesAfterJoining, myRoundabouts, NBEdge::myTo, patchRoundabouts(), NBNode::removeDoubleEdges(), NBNode::replaceIncoming(), NBNode::replaceOutgoing(), NBEdge::setOrigID(), NBEdge::setSpeed(), PositionVector::splitAt(), SUMO_PARAM_ORIGID, and WRITE_ERROR.
bool NBEdgeCont::splitAt | ( | NBDistrictCont & | dc, |
NBEdge * | edge, | ||
NBNode * | node | ||
) |
Splits the edge at the position nearest to the given node.
Uses "splitAt(NBDistrictCont &, NBEdge *, NBNode *, const std::string &, const std::string &, int , int)" to perform the split; the edge names are built by appending "[0]" and "[1]", respectively. Both edges will have the same number of lanes.
[in] | dc | The district container, in order to remove/add the edge from/to sources/sinks |
[in] | edge | The edge to split |
[in] | node | The node to split the edge at |
ProcessError | If connections between the edges can not be built |
Definition at line 557 of file NBEdgeCont.cpp.
References NBEdge::getID(), and NBEdge::myLanes.
Referenced by NIVissimDisturbance::addToNode(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), NIImporter_VISUM::parse_Lanes(), processSplits(), splitAt(), and splitGeometry().
bool NBEdgeCont::splitAt | ( | NBDistrictCont & | dc, |
NBEdge * | edge, | ||
NBNode * | node, | ||
const std::string & | firstEdgeName, | ||
const std::string & | secondEdgeName, | ||
int | noLanesFirstEdge, | ||
int | noLanesSecondEdge, | ||
const double | speed = -1. , |
||
const int | changedLeft = 0 |
||
) |
Splits the edge at the position nearest to the given node using the given modifications.
Determines the position of the split by finding the nearest position on the edge to the given node. If this position is too near to the edges begin/end, false is returned.
Otherwise, "splitAt(NBDistrictCont &, NBEdge *, double, NBNode *, const std::string &, const std::string &, int , int)" is used to perform the split.
[in] | dc | The district container, in order to remove/add the edge from/to sources/sinks |
[in] | edge | The edge to split |
[in] | node | The node to split the edge at |
[in] | firstEdgeName | The id the first part of the split edge shall have |
[in] | secondEdgeName | The id the second part of the split edge shall have |
[in] | noLanesFirstEdge | The number of lanes the second part of the split edge shall have |
[in] | noLanesSecondEdge | The number of lanes the second part of the split edge shall have |
[in] | speed | The speed for the edge after the split |
[in] | changedLeft | The number of lanes that is added or removed on the left side of the edge (By default all added/removed lanes are assumed to be on the right when computing connections) |
ProcessError | If connections between the edges can not be built |
Definition at line 564 of file NBEdgeCont.cpp.
References NBEdge::getGeometry(), NBNode::getPosition(), PositionVector::length(), NBEdge::myFrom, NBEdge::myTo, GeomHelper::nearest_offset_on_line_to_point2D(), PositionVector::nearest_offset_to_point2D(), and splitAt().
void NBEdgeCont::splitGeometry | ( | NBDistrictCont & | dc, |
NBNodeCont & | nc | ||
) |
Splits edges into multiple if they have a complex geometry.
Calls "NBEdge::splitGeometry" for all edges within the container which have more than three positions in their geometry.
[in] | nc | The node container needed to build (geometry) nodes |
Definition at line 717 of file NBEdgeCont.cpp.
References NBEdge::getGeometry(), NBEdge::getID(), NBEdge::getNumLanes(), NBNodeCont::insert(), myEdges, NBNodeCont::retrieve(), retrieve(), splitAt(), toString(), and WRITE_WARNING.
Referenced by NBNetBuilder::compute().
|
inline |
Returns whether the edge with the id was ignored during parsing.
Definition at line 501 of file NBEdgeCont.h.
References myIgnoredEdges.
Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLEdgesHandler::addRoundabout(), NIImporter_OpenDrive::loadNetwork(), and NIXMLConnectionsHandler::myStartElement().
|
inline |
Returns whether the edge with the id was deleted explicitly.
Definition at line 512 of file NBEdgeCont.h.
References myExtractedEdges.
Referenced by NIXMLConnectionsHandler::addCrossing(), and NIXMLConnectionsHandler::myStartElement().
|
private |
The list of connections to recheck.
Definition at line 667 of file NBEdgeCont.h.
Referenced by addPostProcessConnection(), hasPostProcessConnection(), and recheckPostProcessConnections().
|
private |
The instance of the dictionary (id->edge)
Definition at line 674 of file NBEdgeCont.h.
Referenced by appendRailwayTurnarounds(), appendTurnarounds(), begin(), checkGeometries(), checkGrade(), checkOverlap(), clear(), clearControllingTLInformation(), computeEdge2Edges(), computeEdgeShapes(), computeLanes2Edges(), computeLaneShapes(), end(), extract(), generateStreetSigns(), getAllEdges(), getAllNames(), getByID(), getGeneratedFrom(), getOppositeByID(), guessOpposites(), guessRoundabouts(), guessSpecialLanes(), insert(), joinLanes(), recheckLanes(), recheckLaneSpread(), recheckPostProcessConnections(), reduceGeometries(), remapIDs(), removeUnwishedEdges(), rename(), retrieve(), retrievePossiblySplit(), size(), sortOutgoingLanesConnections(), and splitGeometry().
|
private |
Set of ids of edges which shall explicitly be kept.
Definition at line 695 of file NBEdgeCont.h.
Referenced by applyOptions(), ignoreFilterMatch(), removeUnwishedEdges(), and splitAt().
|
private |
Set of ids of edges which shall explicitly be removed.
Definition at line 698 of file NBEdgeCont.h.
Referenced by applyOptions(), ignoreFilterMatch(), and splitAt().
|
private |
The minimum speed an edge may have in order to be kept (default: -1)
Definition at line 689 of file NBEdgeCont.h.
Referenced by applyOptions(), and ignoreFilterMatch().
|
private |
the number of splits of edges during the building
Definition at line 683 of file NBEdgeCont.h.
Referenced by getNoEdgeSplits(), and splitAt().
|
private |
The extracted nodes which are kept for reference.
Definition at line 677 of file NBEdgeCont.h.
Referenced by clear(), extract(), retrieve(), and wasRemoved().
|
private |
Edges marked as belonging to a roundabout after guessing.
Definition at line 722 of file NBEdgeCont.h.
Referenced by getRoundabouts(), guessRoundabouts(), and splitAt().
|
private |
The ids of ignored edges.
Definition at line 680 of file NBEdgeCont.h.
Referenced by ignore(), insert(), and wasIgnored().
|
private |
whether a geo transform has been applied to the pruning boundary
Definition at line 716 of file NBEdgeCont.h.
Referenced by applyOptions(), and ignoreFilterMatch().
|
private |
Boundary within which an edge must be located in order to be kept.
Definition at line 713 of file NBEdgeCont.h.
Referenced by applyOptions(), and ignoreFilterMatch().
|
private |
Whether edges shall be joined first, then removed.
Definition at line 692 of file NBEdgeCont.h.
Referenced by applyOptions(), ignoreFilterMatch(), and splitAt().
|
private |
Edges marked as belonging to a roundabout by the user (each EdgeVector is a roundabout)
Definition at line 720 of file NBEdgeCont.h.
Referenced by addRoundabout(), getRoundabouts(), guessRoundabouts(), removeRoundabout(), and splitAt().
|
private |
The network builder; used to obtain type information.
Definition at line 611 of file NBEdgeCont.h.
Referenced by ignoreFilterMatch().
|
private |
Set of edges types which shall be kept.
Definition at line 707 of file NBEdgeCont.h.
Referenced by applyOptions(), and ignoreFilterMatch().
|
private |
Set of edges types which shall be removed.
Definition at line 710 of file NBEdgeCont.h.
Referenced by applyOptions(), and ignoreFilterMatch().
|
private |
Set of vehicle types which must be allowed on edges in order to keep them.
Definition at line 701 of file NBEdgeCont.h.
Referenced by applyOptions(), and ignoreFilterMatch().
|
private |
Set of vehicle types which need not be supported (edges which allow ONLY these are removed)
Definition at line 704 of file NBEdgeCont.h.
Referenced by applyOptions(), and ignoreFilterMatch().