![]() |
SUMO - Simulation of Urban MObility
|
Instance responsible for building networks. More...
#include <NBNetBuilder.h>
Data Structures | |
class | by_id_sorter |
Sorts nodes by their ids. More... | |
Public Member Functions | ||||||||||||
void | applyOptions (OptionsCont &oc) | |||||||||||
Initialises the storage by applying given options. More... | ||||||||||||
void | compute (OptionsCont &oc, const std::set< std::string > &explicitTurnarounds=std::set< std::string >(), bool mayAddOrRemove=true) | |||||||||||
Performs the network building steps. More... | ||||||||||||
NBParkingCont & | getParkingCont () | |||||||||||
void | haveLoadedNetworkWithoutInternalEdges () | |||||||||||
notify about style of loaded network (Without internal edges More... | ||||||||||||
bool | haveNetworkCrossings () | |||||||||||
notify about style of loaded network (Without Crossings) More... | ||||||||||||
NBNetBuilder () | ||||||||||||
Constructor. More... | ||||||||||||
void | setHaveNetworkCrossings (bool value) | |||||||||||
enable crossing in networks More... | ||||||||||||
~NBNetBuilder () | ||||||||||||
Destructor. More... | ||||||||||||
Retrieval of subcontainers | ||||||||||||
Updates the shape for a single Node
Returns a reference to edge container | ||||||||||||
NBEdgeCont & | getEdgeCont () | |||||||||||
NBNodeCont & | getNodeCont () | |||||||||||
Returns a reference to the node container. More... | ||||||||||||
NBTypeCont & | getTypeCont () | |||||||||||
Returns a reference to the type container. More... | ||||||||||||
NBTrafficLightLogicCont & | getTLLogicCont () | |||||||||||
Returns a reference to the traffic light logics container. More... | ||||||||||||
NBDistrictCont & | getDistrictCont () | |||||||||||
Returns a reference the districts container. More... | ||||||||||||
NBPTStopCont & | getPTStopCont () | |||||||||||
Returns a reference to the pt stop container. More... | ||||||||||||
NBPTLineCont & | getPTLineCont () | |||||||||||
Returns a reference to the pt line container. More... | ||||||||||||
Static Public Member Functions | |
static bool | transformCoordinate (Position &from, bool includeInBoundary=true, GeoConvHelper *from_srs=0) |
transforms loaded coordinates handles projections, offsets (using GeoConvHelper) and import of height data (using NBHeightMapper) More... | |
static bool | transformCoordinates (PositionVector &from, bool includeInBoundary=true, GeoConvHelper *from_srs=0) |
Protected Attributes | |
NBDistrictCont | myDistrictCont |
The used container for districts. More... | |
NBEdgeCont | myEdgeCont |
The used container for edges. More... | |
bool | myHaveLoadedNetworkWithoutInternalEdges |
whether a .net.xml without internal edges was loaded More... | |
bool | myNetworkHaveCrossings |
flag to indicate that network has crossings More... | |
NBNodeCont | myNodeCont |
The used container for nodes. More... | |
NBParkingCont | myParkingCont |
NBPTLineCont | myPTLineCont |
The used container for pt stops. More... | |
NBPTStopCont | myPTStopCont |
The used container for pt stops. More... | |
NBTrafficLightLogicCont | myTLLCont |
The used container for traffic light logics. More... | |
NBTypeCont | myTypeCont |
The used container for street types. More... | |
Private Member Functions | |
void | mirrorX () |
mirror the network along the X-axis More... | |
void | moveToOrigin (GeoConvHelper &geoConvHelper, bool lefthand) |
shift network so its lower left corner is at 0,0 More... | |
NBNetBuilder (const NBNetBuilder &s) | |
invalidated copy constructor More... | |
NBNetBuilder & | operator= (const NBNetBuilder &s) |
invalidated assignment operator More... | |
Friends | |
class | GNENet |
Instance responsible for building networks.
The class' - and the netbuild module's - functionality is embedded within the compute() method.
Definition at line 115 of file NBNetBuilder.h.
NBNetBuilder::NBNetBuilder | ( | ) |
Constructor.
Definition at line 61 of file NBNetBuilder.cpp.
NBNetBuilder::~NBNetBuilder | ( | ) |
Destructor.
Definition at line 68 of file NBNetBuilder.cpp.
|
private |
invalidated copy constructor
void NBNetBuilder::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 |
ProcessError | If something fails (message is included) |
Definition at line 72 of file NBNetBuilder.cpp.
References NBTrafficLightLogicCont::applyOptions(), NBEdgeCont::applyOptions(), OptionsCont::getFloat(), OptionsCont::getInt(), OptionsCont::getString(), myEdgeCont, myTLLCont, myTypeCont, parseVehicleClasses(), and NBTypeCont::setDefaults().
Referenced by main().
void NBNetBuilder::compute | ( | OptionsCont & | oc, |
const std::set< std::string > & | explicitTurnarounds = std::set<std::string>() , |
||
bool | mayAddOrRemove = true |
||
) |
Performs the network building steps.
[in] | oc | Container that contains options for building |
[in] | explicitTurnarounds | List of edge ids for which turn-arounds should be added (used by NETEDIT) |
[in] | mayAddOrRemove | whether processing steps which cause nodes and edges to be added or removed shall be triggered (used by netedit) |
ProcessError | (recheck) |
Definition at line 84 of file NBNetBuilder.cpp.
References Boundary::add(), NBNodeCont::addJoinExclusion(), NBPTStopCont::alignIdSigns(), NBEdgeCont::appendTurnarounds(), NBPTStopCont::assignLanes(), NBNodeCont::avoidOverlap(), NBNodeCont::begin(), NBEdgeCont::begin(), NBEdgeCont::checkGeometries(), NBEdgeCont::checkGrade(), NBEdgeCont::checkOverlap(), NBEdgeCont::computeEdge2Edges(), NBEdgePriorityComputer::computeEdgePriorities(), NBEdgeCont::computeEdgeShapes(), GeoConvHelper::computeFinal(), NBEdgeCont::computeLanes2Edges(), NBNodeCont::computeLanes2Lanes(), NBEdgeCont::computeLaneShapes(), NBTrafficLightLogicCont::computeLogics(), NBNodeCont::computeLogics(), NBNodeCont::computeNodeShapes(), NBNodeTypeComputer::computeNodeTypes(), NBRampsComputer::computeRamps(), NBTurningDirectionsComputer::computeTurnDirections(), DEG2RAD, NBNodeCont::end(), NBEdgeCont::end(), OptionsCont::exists(), NBPTStopCont::findAccessEdgesForRailStops(), NBEdgeCont::generateStreetSigns(), StringBijection< T >::get(), OptionsCont::getBool(), GeoConvHelper::getConvBoundary(), SysUtils::getCurrentMillis(), OptionsCont::getFloat(), OptionsCont::getInt(), GeoConvHelper::getOffsetBase(), GeoConvHelper::getOrigBoundary(), GeoConvHelper::getProcessing(), NBEdgeCont::getRoundabouts(), NBPTLineCont::getServedPTStops(), OptionsCont::getString(), OptionsCont::getStringVector(), Boundary::getZRange(), NBEdgeCont::guessOpposites(), NBEdgeCont::guessRoundabouts(), NBEdgeCont::guessSidewalks(), NBNodeCont::guessTLs(), OptionsCont::isDefault(), OptionsCont::isSet(), NBNodeCont::joinJunctions(), NBNodeCont::joinLoadedClusters(), NBNodeCont::joinSimilarEdges(), NBNodeCont::joinTLS(), NBPTStopCont::localizePTStops(), NBEdgeCont::markRoundabouts(), MAX2(), MIN2(), mirrorX(), moveToOrigin(), myDistrictCont, myEdgeCont, myHaveLoadedNetworkWithoutInternalEdges, myNetworkHaveCrossings, myNodeCont, myParkingCont, myPTLineCont, myPTStopCont, myTLLCont, NBPTStopCont::postprocess(), NBNodeCont::printBuiltNodesStatistics(), NBPTLineCont::process(), PROGRESS_BEGIN_MESSAGE, PROGRESS_DONE_MESSAGE, PROGRESS_TIME_MESSAGE, NBEdgeCont::recheckLanes(), NBEdgeCont::recheckPostProcessConnections(), NBEdgeCont::reduceGeometries(), NBNodeCont::remapIDs(), NBEdgeCont::remapIDs(), NBNodeCont::removeComponents(), NBNodeCont::removeIsolatedRoads(), NBNodeCont::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBRequest::reportWarnings(), OptionsCont::resetWritable(), NBNodeCont::retrieve(), OptionsCont::set(), NBNodeCont::setAsTLControlled(), GeoConvHelper::setConvBoundary(), NBTrafficLightLogicCont::setTLControllingInformation(), NBNodesEdgesSorter::sortNodesEdges(), NBEdgeCont::sortOutgoingLanesConnections(), NBEdgeCont::splitGeometry(), toString(), SUMOXMLDefinitions::TrafficLightTypes, WRITE_MESSAGE, WRITE_WARNING, Boundary::xmax(), Boundary::xmin(), Boundary::ymax(), and Boundary::ymin().
Referenced by GNENet::computeAndUpdate(), and main().
|
inline |
Returns a reference the districts container.
Definition at line 176 of file NBNetBuilder.h.
References myDistrictCont.
Referenced by NIImporter_SUMO::_loadNetwork(), NIImporter_VISUM::buildDistrictNode(), NBRampsComputer::computeRamps(), GNENet::deleteSingleEdge(), NILoader::load(), NIImporter_DlrNavteq::loadNetwork(), NILoader::loadXML(), NIImporter_VISUM::parse_Connectors(), NIImporter_VISUM::parse_Districts(), NIImporter_VISUM::parse_Lanes(), NIImporter_Vissim::postLoadBuild(), and NWWriter_SUMO::writeNetwork().
|
inline |
Definition at line 156 of file NBNetBuilder.h.
References myEdgeCont.
Referenced by NIImporter_SUMO::_loadNetwork(), NBRampsComputer::computeRamps(), GNENet::deleteSingleEdge(), NIImporter_VISUM::getNamedEdge(), NIImporter_VISUM::getNamedEdgeContinuating(), NIImporter_VISUM::getReversedContinuating(), GNENet::initJunctionsAndEdges(), NIImporter_OpenStreetMap::insertEdge(), GNENet::insertEdge(), NILoader::load(), NIImporter_VISUM::load(), NIImporter_OpenStreetMap::load(), NIImporter_RobocupRescue::loadNetwork(), NIImporter_ArcView::loadNetwork(), NIImporter_DlrNavteq::loadNetwork(), NIImporter_MATSim::loadNetwork(), NIImporter_OpenDrive::loadNetwork(), NILoader::loadXML(), main(), NIImporter_ITSUMO::Handler::myEndElement(), NIImporter_VISUM::parse_Connectors(), NIImporter_VISUM::parse_Edges(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_TurnsToSignalGroups(), NIImporter_Vissim::postLoadBuild(), NIImporter_OpenStreetMap::reconstructLayerElevation(), GNENet::renameEdge(), NGNet::toNB(), NWWriter_Amitran::writeNetwork(), NWWriter_OpenDrive::writeNetwork(), NWWriter_DlrNavteq::writeNetwork(), NWWriter_MATSim::writeNetwork(), NWWriter_XML::writeNetwork(), and NWWriter_SUMO::writeNetwork().
|
inline |
Returns a reference to the node container.
Definition at line 161 of file NBNetBuilder.h.
References myNodeCont.
Referenced by NIImporter_VISUM::buildDistrictNode(), NGEdge::buildNBEdge(), NBRampsComputer::computeRamps(), GNENet::deleteSingleJunction(), NIImporter_VISUM::getNamedNode(), GNENet::initJunctionsAndEdges(), NIImporter_OpenStreetMap::insertEdge(), GNENet::insertJunction(), GNENet::joinSelectedJunctions(), NILoader::load(), NIImporter_OpenStreetMap::load(), NIImporter_RobocupRescue::loadNetwork(), NIImporter_ArcView::loadNetwork(), NIImporter_DlrNavteq::loadNetwork(), NIImporter_MATSim::loadNetwork(), NIImporter_OpenDrive::loadNetwork(), NILoader::loadXML(), main(), NIImporter_ITSUMO::Handler::myEndElement(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_Nodes(), NIImporter_VISUM::parse_NodesToTrafficLights(), NIImporter_Vissim::postLoadBuild(), NIImporter_OpenStreetMap::reconstructLayerElevation(), GNENet::renameJunction(), GNENet::saveJoined(), NGNet::toNB(), NWWriter_Amitran::writeNetwork(), NWWriter_OpenDrive::writeNetwork(), NWWriter_MATSim::writeNetwork(), NWWriter_DlrNavteq::writeNetwork(), NWWriter_XML::writeNetwork(), and NWWriter_SUMO::writeNetwork().
|
inline |
Definition at line 192 of file NBNetBuilder.h.
References myParkingCont.
Referenced by NBRampsComputer::computeRamps(), NIImporter_OpenStreetMap::insertEdge(), and NWWriter_XML::writeNetwork().
|
inline |
Returns a reference to the pt line container.
Definition at line 187 of file NBNetBuilder.h.
References myPTLineCont.
Referenced by NBRampsComputer::computeRamps(), NIImporter_OpenStreetMap::load(), and NWWriter_XML::writeNetwork().
|
inline |
Returns a reference to the pt stop container.
Definition at line 182 of file NBNetBuilder.h.
References myPTStopCont.
Referenced by NBRampsComputer::computeRamps(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_OpenStreetMap::load(), and NWWriter_XML::writeNetwork().
|
inline |
Returns a reference to the traffic light logics container.
Definition at line 171 of file NBNetBuilder.h.
References myTLLCont.
Referenced by NGNode::buildNBNode(), GNENet::getTLLogicCont(), NIImporter_OpenStreetMap::insertEdge(), NILoader::load(), NIImporter_VISUM::load(), NIImporter_OpenStreetMap::load(), NIImporter_DlrNavteq::loadNetwork(), NIImporter_OpenDrive::loadNetwork(), NILoader::loadXML(), NIImporter_Vissim::postLoadBuild(), NWWriter_XML::writeNetwork(), and NWWriter_SUMO::writeNetwork().
|
inline |
Returns a reference to the type container.
Definition at line 166 of file NBNetBuilder.h.
References myTypeCont.
Referenced by NIImporter_SUMO::_loadNetwork(), NGEdge::buildNBEdge(), NIImporter_OpenStreetMap::insertEdge(), NILoader::load(), NIImporter_ArcView::loadNetwork(), NIImporter_DlrNavteq::loadNetwork(), NIImporter_OpenDrive::loadNetwork(), NILoader::loadXML(), NIImporter_VISUM::parse_Edges(), NIImporter_VISUM::parse_Types(), NGNet::toNB(), NWWriter_XML::writeNetwork(), and NWWriter_SUMO::writeNetwork().
|
inline |
notify about style of loaded network (Without internal edges
Definition at line 197 of file NBNetBuilder.h.
References myHaveLoadedNetworkWithoutInternalEdges.
Referenced by NIImporter_SUMO::_loadNetwork().
|
inline |
notify about style of loaded network (Without Crossings)
Definition at line 202 of file NBNetBuilder.h.
References myNetworkHaveCrossings.
Referenced by GNEJunction::rebuildGNECrossings(), GNEChange_Crossing::redo(), and GNEChange_Crossing::undo().
|
private |
mirror the network along the X-axis
Definition at line 592 of file NBNetBuilder.cpp.
References NBDistrictCont::begin(), NBNodeCont::begin(), NBEdgeCont::begin(), NBDistrictCont::end(), NBNodeCont::end(), NBEdgeCont::end(), myDistrictCont, myEdgeCont, and myNodeCont.
Referenced by compute().
|
private |
shift network so its lower left corner is at 0,0
Definition at line 565 of file NBNetBuilder.cpp.
References NBPTStopCont::begin(), NBDistrictCont::begin(), NBNodeCont::begin(), NBEdgeCont::begin(), NBPTStopCont::end(), NBDistrictCont::end(), NBNodeCont::end(), NBEdgeCont::end(), GeoConvHelper::getConvBoundary(), SysUtils::getCurrentMillis(), GeoConvHelper::moveConvertedBy(), myDistrictCont, myEdgeCont, myNodeCont, myPTStopCont, PROGRESS_BEGIN_MESSAGE, PROGRESS_TIME_MESSAGE, Boundary::xmin(), Boundary::ymax(), and Boundary::ymin().
Referenced by compute().
|
private |
invalidated assignment operator
|
inline |
enable crossing in networks
Definition at line 207 of file NBNetBuilder.h.
References myNetworkHaveCrossings, transformCoordinate(), and transformCoordinates().
Referenced by GNEChange_Crossing::redo(), and GNEChange_Crossing::undo().
|
static |
transforms loaded coordinates handles projections, offsets (using GeoConvHelper) and import of height data (using NBHeightMapper)
[in,out] | from | The coordinate to be transformed |
[in] | includeInBoundary | Whether to patch the convex boundary of the GeoConvHelper default instance |
[in] | from_srs | The spatial reference system of the input coordinate These methods are located outside of GeoConvHelper to avoid linker-dependencies on GDAL for libgeom |
Definition at line 607 of file NBNetBuilder.cpp.
References GeoConvHelper::cartesian2geo(), NBHeightMapper::get(), GeoConvHelper::getProcessing(), NBHeightMapper::getZ(), NBHeightMapper::ready(), GeoConvHelper::usingGeoProjection(), Position::x(), GeoConvHelper::x2cartesian(), and Position::y().
Referenced by NIImporter_SUMO::addJunction(), NIXMLNodesHandler::addNode(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_OpenStreetMap::insertNodeChecking(), NIImporter_ArcView::load(), NIImporter_RobocupRescue::loadNodes(), NIImporter_ITSUMO::Handler::myEndElement(), NIImporter_OpenStreetMap::RelationHandler::myEndElement(), NIImporter_MATSim::NodesHandler::myStartElement(), NIVissimAbstractEdge::NIVissimAbstractEdge(), NIImporter_VISUM::parse_Districts(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Nodes(), NIImporter_VISUM::parse_Point(), NIImporter_DlrNavteq::NodesHandler::report(), setHaveNetworkCrossings(), and transformCoordinates().
|
static |
Definition at line 625 of file NBNetBuilder.cpp.
References OptionsCont::getFloat(), OptionsCont::getOptions(), and transformCoordinate().
Referenced by NIXMLConnectionsHandler::addCrossing(), NIImporter_SUMO::addEdge(), NIImporter_SUMO::addLane(), NIXMLEdgesHandler::addLane(), NIXMLConnectionsHandler::addWalkingArea(), NIImporter_OpenDrive::computeShapes(), NBEdgeCont::ignoreFilterMatch(), NIImporter_OpenStreetMap::insertEdge(), NIXMLConnectionsHandler::parseLaneBound(), setHaveNetworkCrossings(), and NIXMLEdgesHandler::tryGetShape().
|
friend |
Definition at line 116 of file NBNetBuilder.h.
|
protected |
The used container for districts.
Definition at line 253 of file NBNetBuilder.h.
Referenced by compute(), getDistrictCont(), mirrorX(), and moveToOrigin().
|
protected |
The used container for edges.
Definition at line 247 of file NBNetBuilder.h.
Referenced by applyOptions(), compute(), getEdgeCont(), mirrorX(), and moveToOrigin().
|
protected |
whether a .net.xml without internal edges was loaded
Definition at line 264 of file NBNetBuilder.h.
Referenced by compute(), and haveLoadedNetworkWithoutInternalEdges().
|
protected |
flag to indicate that network has crossings
Definition at line 267 of file NBNetBuilder.h.
Referenced by compute(), haveNetworkCrossings(), and setHaveNetworkCrossings().
|
protected |
The used container for nodes.
Definition at line 241 of file NBNetBuilder.h.
Referenced by compute(), getNodeCont(), mirrorX(), and moveToOrigin().
|
protected |
Definition at line 261 of file NBNetBuilder.h.
Referenced by compute(), and getParkingCont().
|
protected |
The used container for pt stops.
Definition at line 259 of file NBNetBuilder.h.
Referenced by compute(), and getPTLineCont().
|
protected |
The used container for pt stops.
Definition at line 256 of file NBNetBuilder.h.
Referenced by compute(), getPTStopCont(), and moveToOrigin().
|
protected |
The used container for traffic light logics.
Definition at line 250 of file NBNetBuilder.h.
Referenced by applyOptions(), compute(), and getTLLogicCont().
|
protected |
The used container for street types.
Definition at line 244 of file NBNetBuilder.h.
Referenced by applyOptions(), and getTypeCont().