![]() |
SUMO - Simulation of Urban MObility
|
Importer for networks stored in openDrive format. More...
#include <NIImporter_OpenDrive.h>
Data Structures | |
struct | Connection |
A connection between two roads. More... | |
struct | OpenDriveEdge |
Representation of an openDrive "link". More... | |
struct | OpenDriveGeometry |
Representation of an OpenDrive geometry part. More... | |
struct | OpenDriveLane |
Representation of a lane. More... | |
struct | OpenDriveLaneSection |
Representation of a lane section. More... | |
struct | OpenDriveLink |
Representation of an OpenDrive link. More... | |
struct | OpenDriveSignal |
Representation of a signal. More... | |
struct | Poly3 |
class | same_position_finder |
class | sections_by_s_sorter |
A class for sorting lane sections by their s-value. More... | |
Public Member Functions | |
void | characters (const XMLCh *const chars, const XERCES3_SIZE_t length) |
The inherited method called when characters occurred. More... | |
void | endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname) |
The inherited method called when a tag is being closed. More... | |
const std::string & | getFileName () const |
returns the current file name More... | |
void | registerParent (const int tag, GenericSAXHandler *handler) |
Assigning a parent handler which is enabled when the specified tag is closed. More... | |
void | setFileName (const std::string &name) |
Sets the current file name. More... | |
void | startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const XERCES_CPP_NAMESPACE::Attributes &attrs) |
The inherited method called when a new tag opens. More... | |
SAX ErrorHandler callbacks | |
void | warning (const XERCES_CPP_NAMESPACE::SAXParseException &exception) |
Handler for XML-warnings. More... | |
void | error (const XERCES_CPP_NAMESPACE::SAXParseException &exception) |
Handler for XML-errors. More... | |
void | fatalError (const XERCES_CPP_NAMESPACE::SAXParseException &exception) |
Handler for XML-errors. More... | |
Static Public Member Functions | |
static void | loadNetwork (const OptionsCont &oc, NBNetBuilder &nb) |
Loads content of the optionally given SUMO file. More... | |
Protected Member Functions | |
std::string | buildErrorMessage (const XERCES_CPP_NAMESPACE::SAXParseException &exception) |
Builds an error message. More... | |
NIImporter_OpenDrive (const NBTypeCont &tc, std::map< std::string, OpenDriveEdge *> &edges) | |
Constructor. More... | |
void | setSchemaSeen (const bool schemaSeen=true) |
~NIImporter_OpenDrive () | |
Destructor. More... | |
inherited from GenericSAXHandler | |
void | myStartElement (int element, const SUMOSAXAttributes &attrs) |
Called on the opening of a tag;. More... | |
void | myCharacters (int element, const std::string &chars) |
Callback method for characters to implement by derived classes. More... | |
void | myEndElement (int element) |
Called when a closing tag occurs. More... | |
Static Protected Member Functions | |
static void | calcPointOnCurve (double *ad_x, double *ad_y, double ad_centerX, double ad_centerY, double ad_r, double ad_length) |
static void | calculateCurveCenter (double *ad_x, double *ad_y, double ad_radius, double ad_hdg) |
static Position | calculateStraightEndPoint (double hdg, double length, const Position &start) |
static void | computeShapes (std::map< std::string, OpenDriveEdge *> &edges) |
Computes a polygon representation of each edge's geometry. More... | |
static void | findWidthSplit (const NBTypeCont &tc, std::vector< OpenDriveLane > &lanes, int section, double sectionStart, double sectionEnd, std::vector< double > &splitPositions) |
static PositionVector | geomFromArc (const OpenDriveEdge &e, const OpenDriveGeometry &g, double resolution) |
static PositionVector | geomFromLine (const OpenDriveEdge &e, const OpenDriveGeometry &g) |
static PositionVector | geomFromParamPoly (const OpenDriveEdge &e, const OpenDriveGeometry &g, double resolution) |
static PositionVector | geomFromPoly (const OpenDriveEdge &e, const OpenDriveGeometry &g, double resolution) |
static PositionVector | geomFromSpiral (const OpenDriveEdge &e, const OpenDriveGeometry &g, double resolution) |
static NBNode * | getOrBuildNode (const std::string &id, const Position &pos, NBNodeCont &nc) |
Builds a node or returns the already built. More... | |
static void | recomputeWidths (OpenDriveLaneSection &sec, double start, double end, double sectionStart, double sectionEnd) |
static void | recomputeWidths (std::vector< OpenDriveLane > &lanes, double start, double end, double sectionStart, double sectionEnd) |
static void | revisitLaneSections (const NBTypeCont &tc, std::map< std::string, OpenDriveEdge *> &edges) |
Rechecks lane sections of the given edges. More... | |
static void | setNodeSecure (NBNodeCont &nc, OpenDriveEdge &e, const std::string &nodeID, NIImporter_OpenDrive::LinkType lt) |
static void | setStraightConnections (std::vector< OpenDriveLane > &lanes) |
static void | splitMinWidths (OpenDriveEdge *e, const NBTypeCont &tc, double minDist) |
Static Protected Attributes | |
static StringBijection< int >::Entry | openDriveAttrs [] |
The names of openDrive-XML attributes (for passing to GenericSAXHandler) More... | |
static StringBijection< int >::Entry | openDriveTags [] |
The names of openDrive-XML elements (for passing to GenericSAXHandler) More... | |
Private Member Functions | |
void | addGeometryShape (GeometryType type, const std::vector< double > &vals) |
void | addLink (LinkType lt, const std::string &elementType, const std::string &elementID, const std::string &contactPoint) |
Static Private Member Functions | |
static void | buildConnectionsToOuter (const Connection &c, const std::map< std::string, OpenDriveEdge *> &innerEdges, std::vector< Connection > &into, std::set< Connection > &seen) |
static std::string | revertID (const std::string &id) |
static void | setEdgeLinks2 (OpenDriveEdge &e, const std::map< std::string, OpenDriveEdge *> &edges) |
Private Attributes | |
bool | myConnectionWasEmpty |
std::string | myCurrentConnectingRoad |
ContactPoint | myCurrentContactPoint |
OpenDriveEdge | myCurrentEdge |
std::string | myCurrentIncomingRoad |
std::string | myCurrentJunctionID |
OpenDriveXMLTag | myCurrentLaneDirection |
std::map< std::string, OpenDriveEdge * > & | myEdges |
std::vector< int > | myElementStack |
const NBTypeCont & | myTypeContainer |
Static Private Attributes | |
static bool | myImportAllTypes |
static bool | myImportInternalShapes |
static bool | myImportWidths |
static double | myMinWidth |
Friends | |
bool | operator< (const Connection &c1, const Connection &c2) |
Importer for networks stored in openDrive format.
Definition at line 54 of file NIImporter_OpenDrive.h.
|
protected |
LaneOffset has the same fields as Elevation.
Definition at line 273 of file NIImporter_OpenDrive.h.
|
protected |
Definition at line 274 of file NIImporter_OpenDrive.h.
|
protected |
Definition at line 275 of file NIImporter_OpenDrive.h.
|
protected |
OpenDrive contact type enumeration.
Enumerator | |
---|---|
OPENDRIVE_CP_UNKNOWN | |
OPENDRIVE_CP_START | |
OPENDRIVE_CP_END |
Definition at line 181 of file NIImporter_OpenDrive.h.
|
protected |
OpenDrive element type enumeration.
Enumerator | |
---|---|
OPENDRIVE_ET_UNKNOWN | |
OPENDRIVE_ET_ROAD | |
OPENDRIVE_ET_JUNCTION |
Definition at line 172 of file NIImporter_OpenDrive.h.
|
protected |
OpenDrive geometry type enumeration.
Enumerator | |
---|---|
OPENDRIVE_GT_UNKNOWN | |
OPENDRIVE_GT_LINE | |
OPENDRIVE_GT_SPIRAL | |
OPENDRIVE_GT_ARC | |
OPENDRIVE_GT_POLY3 | |
OPENDRIVE_GT_PARAMPOLY3 |
Definition at line 189 of file NIImporter_OpenDrive.h.
|
protected |
OpenDrive link type enumeration.
Enumerator | |
---|---|
OPENDRIVE_LT_SUCCESSOR | |
OPENDRIVE_LT_PREDECESSOR |
Definition at line 164 of file NIImporter_OpenDrive.h.
|
protected |
Numbers representing openDrive-XML - attributes.
Definition at line 117 of file NIImporter_OpenDrive.h.
|
protected |
Numbers representing openDrive-XML - element names.
Enumerator | |
---|---|
OPENDRIVE_TAG_NOTHING | |
OPENDRIVE_TAG_HEADER | |
OPENDRIVE_TAG_ROAD | |
OPENDRIVE_TAG_PREDECESSOR | |
OPENDRIVE_TAG_SUCCESSOR | |
OPENDRIVE_TAG_GEOMETRY |
|
OPENDRIVE_TAG_LINE | |
OPENDRIVE_TAG_SPIRAL | |
OPENDRIVE_TAG_ARC | |
OPENDRIVE_TAG_POLY3 | |
OPENDRIVE_TAG_PARAMPOLY3 | |
OPENDRIVE_TAG_LANESECTION | |
OPENDRIVE_TAG_LANEOFFSET | |
OPENDRIVE_TAG_LEFT | |
OPENDRIVE_TAG_CENTER | |
OPENDRIVE_TAG_RIGHT | |
OPENDRIVE_TAG_LANE | |
OPENDRIVE_TAG_SIGNAL | |
OPENDRIVE_TAG_JUNCTION | |
OPENDRIVE_TAG_CONNECTION | |
OPENDRIVE_TAG_LANELINK | |
OPENDRIVE_TAG_WIDTH | |
OPENDRIVE_TAG_SPEED | |
OPENDRIVE_TAG_ELEVATION | |
OPENDRIVE_TAG_GEOREFERENCE |
Definition at line 81 of file NIImporter_OpenDrive.h.
|
protected |
Constructor.
[in] | tc | The type container used to determine whether a lane shall kept |
[in] | nc | The edge map to fill |
Definition at line 1586 of file NIImporter_OpenDrive.cpp.
|
protected |
Destructor.
Definition at line 1592 of file NIImporter_OpenDrive.cpp.
|
private |
Definition at line 1940 of file NIImporter_OpenDrive.cpp.
References NIImporter_OpenDrive::OpenDriveEdge::geometries, NIImporter_OpenDrive::OpenDriveEdge::id, myCurrentEdge, OPENDRIVE_GT_UNKNOWN, NIImporter_OpenDrive::OpenDriveGeometry::params, and NIImporter_OpenDrive::OpenDriveGeometry::type.
Referenced by myStartElement().
|
private |
Definition at line 1918 of file NIImporter_OpenDrive.cpp.
References NIImporter_OpenDrive::OpenDriveLink::contactPoint, NIImporter_OpenDrive::OpenDriveLink::elementType, NIImporter_OpenDrive::OpenDriveEdge::links, myCurrentEdge, OPENDRIVE_CP_END, OPENDRIVE_CP_START, OPENDRIVE_ET_JUNCTION, and OPENDRIVE_ET_ROAD.
Referenced by myStartElement().
|
staticprivate |
!!! should not, look in all?
Definition at line 718 of file NIImporter_OpenDrive.cpp.
References NIImporter_OpenDrive::Connection::all, cn, NIImporter_OpenDrive::OpenDriveEdge::connections, NIImporter_OpenDrive::Connection::fromCP, NIImporter_OpenDrive::Connection::fromEdge, NIImporter_OpenDrive::Connection::fromLane, NIImporter_OpenDrive::OpenDriveEdge::geom, NIImporter_OpenDrive::Connection::getDescription(), NIImporter_OpenDrive::OpenDriveEdge::id, NIImporter_OpenDrive::OpenDriveEdge::laneSections, PositionVector::length2D(), PositionVector::move2side(), myImportInternalShapes, OPENDRIVE_CP_END, OPENDRIVE_TAG_LEFT, OPENDRIVE_TAG_RIGHT, NIImporter_OpenDrive::Connection::origID, NIImporter_OpenDrive::Connection::origLane, PositionVector::reverse(), NIImporter_OpenDrive::Connection::shape, NIImporter_OpenDrive::Connection::toCP, NIImporter_OpenDrive::Connection::toEdge, NIImporter_OpenDrive::Connection::toLane, toString(), and WRITE_WARNING.
Referenced by loadNetwork().
|
protectedinherited |
Builds an error message.
The error message includes the file name and the line/column information as supported by the given SAXParseException
[in] | exception | The name of the currently processed file |
Definition at line 187 of file GenericSAXHandler.cpp.
References GenericSAXHandler::getFileName().
Referenced by GenericSAXHandler::error(), GenericSAXHandler::fatalError(), and GenericSAXHandler::warning().
|
staticprotected |
Definition at line 1362 of file NIImporter_OpenDrive.cpp.
Referenced by geomFromArc().
|
staticprotected |
Definition at line 1334 of file NIImporter_OpenDrive.cpp.
Referenced by geomFromArc().
|
staticprotected |
Definition at line 1322 of file NIImporter_OpenDrive.cpp.
References Position::x(), and Position::y().
Referenced by geomFromLine().
|
inherited |
The inherited method called when characters occurred.
The retrieved characters are converted into a string and appended into a private buffer. They are reported as soon as the element ends.
recheck/describe what happens with characters when a new element is opened
describe characters processing in the class' head
Definition at line 170 of file GenericSAXHandler.cpp.
References GenericSAXHandler::myCharactersVector, and StringUtils::transcode().
|
staticprotected |
Computes a polygon representation of each edge's geometry.
[in] | edges | The edges which geometries shall be converted |
Definition at line 983 of file NIImporter_OpenDrive.cpp.
References PositionVector::add(), NIImporter_OpenDrive::Poly3::computeAt(), Position::distanceTo2D(), NIImporter_OpenDrive::OpenDriveEdge::elevations, OptionsCont::exists(), NIImporter_OpenDrive::OpenDriveEdge::geom, NIImporter_OpenDrive::OpenDriveEdge::geometries, geomFromArc(), geomFromLine(), geomFromParamPoly(), geomFromPoly(), geomFromSpiral(), OptionsCont::getFloat(), OptionsCont::getOptions(), NIImporter_OpenDrive::OpenDriveEdge::id, PositionVector::indexOfClosest(), PositionVector::insertAtClosest(), OptionsCont::isDefault(), PositionVector::move2side(), NIImporter_OpenDrive::OpenDriveEdge::offsets, OPENDRIVE_GT_ARC, OPENDRIVE_GT_LINE, OPENDRIVE_GT_PARAMPOLY3, OPENDRIVE_GT_POLY3, OPENDRIVE_GT_SPIRAL, OPENDRIVE_GT_UNKNOWN, POSITION_EPS, PositionVector::positionAtOffset2D(), PositionVector::push_back_noDoublePos(), PositionVector::removeDoublePoints(), NIImporter_OpenDrive::Poly3::s, toString(), NBNetBuilder::transformCoordinates(), NIImporter_OpenDrive::OpenDriveGeometry::type, WRITE_ERROR, and WRITE_WARNING.
Referenced by loadNetwork().
|
inherited |
The inherited method called when a tag is being closed.
This method calls the user-implemented methods myCharacters with the previously collected and converted characters.
Then, myEndElement is called, supplying it the qname converted to its enum- and string-representations.
recheck/describe encoding of the string-representation
do not generate and report the string-representation
Definition at line 121 of file GenericSAXHandler.cpp.
References GenericSAXHandler::convertTag(), GenericSAXHandler::myCharacters(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myEndElement(), GenericSAXHandler::myParentHandler, GenericSAXHandler::myParentIndicator, XMLSubSys::setHandler(), SUMO_TAG_INCLUDE, SUMO_TAG_NOTHING, and StringUtils::transcode().
|
inherited |
Handler for XML-errors.
The message is built using buildErrorMessage and thrown within a ProcessError.
[in] | exception | The occurred exception to process |
ProcessError | On any call |
Definition at line 206 of file GenericSAXHandler.cpp.
References GenericSAXHandler::buildErrorMessage().
Referenced by MSRouteHandler::closeContainer(), MSRouteHandler::closePerson(), geomFromSpiral(), and MSRouteHandler::myStartElement().
|
inherited |
Handler for XML-errors.
The message is built using buildErrorMessage and thrown within a ProcessError.
ProcessError | On any call |
[in] | exception | The occurred exception to process |
Definition at line 212 of file GenericSAXHandler.cpp.
References GenericSAXHandler::buildErrorMessage().
|
staticprotected |
Definition at line 2064 of file NIImporter_OpenDrive.cpp.
References gDebugFlag1, NBTypeCont::getPermissions(), NBTypeCont::getShallBeDiscarded(), NIImporter_OpenDrive::OpenDriveLane::id, NBTypeCont::knows(), myMinWidth, POSITION_EPS, SVC_BICYCLE, SVC_PEDESTRIAN, NIImporter_OpenDrive::OpenDriveLane::type, UNUSED_PARAMETER, and NIImporter_OpenDrive::OpenDriveLane::widthData.
Referenced by splitMinWidths().
|
staticprotected |
Definition at line 1241 of file NIImporter_OpenDrive.cpp.
References calcPointOnCurve(), calculateCurveCenter(), PositionVector::getSubpart2D(), NIImporter_OpenDrive::OpenDriveGeometry::hdg, NIImporter_OpenDrive::OpenDriveGeometry::length, NIImporter_OpenDrive::OpenDriveGeometry::params, NIImporter_OpenDrive::OpenDriveGeometry::s, UNUSED_PARAMETER, NIImporter_OpenDrive::OpenDriveGeometry::x, and NIImporter_OpenDrive::OpenDriveGeometry::y.
Referenced by computeShapes().
|
staticprotected |
Definition at line 1166 of file NIImporter_OpenDrive.cpp.
References calculateStraightEndPoint(), NIImporter_OpenDrive::OpenDriveGeometry::hdg, NIImporter_OpenDrive::OpenDriveGeometry::length, UNUSED_PARAMETER, NIImporter_OpenDrive::OpenDriveGeometry::x, and NIImporter_OpenDrive::OpenDriveGeometry::y.
Referenced by computeShapes().
|
staticprotected |
Definition at line 1303 of file NIImporter_OpenDrive.cpp.
References PositionVector::getSubpart2D(), NIImporter_OpenDrive::OpenDriveGeometry::hdg, NIImporter_OpenDrive::OpenDriveGeometry::length, NIImporter_OpenDrive::OpenDriveGeometry::params, UNUSED_PARAMETER, NIImporter_OpenDrive::OpenDriveGeometry::x, and NIImporter_OpenDrive::OpenDriveGeometry::y.
Referenced by computeShapes().
|
staticprotected |
Definition at line 1286 of file NIImporter_OpenDrive.cpp.
References PositionVector::getSubpart2D(), NIImporter_OpenDrive::OpenDriveGeometry::hdg, NIImporter_OpenDrive::OpenDriveGeometry::length, NIImporter_OpenDrive::OpenDriveGeometry::params, UNUSED_PARAMETER, NIImporter_OpenDrive::OpenDriveGeometry::x, and NIImporter_OpenDrive::OpenDriveGeometry::y.
Referenced by computeShapes().
|
staticprotected |
Definition at line 1176 of file NIImporter_OpenDrive.cpp.
References PositionVector::add(), GenericSAXHandler::error(), PositionVector::getSubpart2D(), NIImporter_OpenDrive::OpenDriveGeometry::hdg, NIImporter_OpenDrive::OpenDriveEdge::id, NIImporter_OpenDrive::OpenDriveGeometry::length, GeomHelper::naviDegree(), odrSpiral(), NIImporter_OpenDrive::OpenDriveGeometry::params, PositionVector::rotate2D(), NIImporter_OpenDrive::OpenDriveGeometry::s, toString(), UNUSED_PARAMETER, WRITE_WARNING, NIImporter_OpenDrive::OpenDriveGeometry::x, and NIImporter_OpenDrive::OpenDriveGeometry::y.
Referenced by computeShapes().
|
inherited |
returns the current file name
Definition at line 75 of file GenericSAXHandler.cpp.
References GenericSAXHandler::myFileName.
Referenced by NLHandler::addE1Detector(), NLHandler::addE2Detector(), NLHandler::addEdgeLaneMeanData(), NLHandler::addInstantE1Detector(), ShapeHandler::addPOI(), ShapeHandler::addPoly(), NLHandler::addRouteProbeDetector(), NLHandler::addVTypeProbeDetector(), NLHandler::beginE3Detector(), GenericSAXHandler::buildErrorMessage(), PCNetProjectionLoader::load(), NILoader::loadXMLType(), NLHandler::myEndElement(), RODFDetectorHandler::myStartElement(), GUISettingsHandler::myStartElement(), SUMORouteHandler::myStartElement(), NLHandler::myStartElement(), myStartElement(), XMLSubSys::runParser(), GenericSAXHandler::startElement(), and SUMORouteLoader::SUMORouteLoader().
|
staticprotected |
Builds a node or returns the already built.
If the node is already known, it is returned. Otherwise, the node is built. If the newly built node can not be added to the container, a ProcessError is thrown. Otherwise this node is returned.
[in] | id | The id of the node to build/get |
Definition at line 948 of file NIImporter_OpenDrive.cpp.
References NBNodeCont::insert(), and NBNodeCont::retrieve().
Referenced by loadNetwork().
|
static |
Loads content of the optionally given SUMO file.
If the option "opendrive-files" is set, the file stored therein is read and the network definition stored therein is stored within the given network builder.
If the option "opendrive-files" is not set, this method simply returns.
The loading is done by parsing the network definition as an XML file using the SAXinterface and handling the incoming data via this class' methods.
[in] | oc | The options to use |
[in] | nb | The network builder to fill |
Definition at line 159 of file NIImporter_OpenDrive.cpp.
References NBEdge::addLane2LaneConnection(), NBNode::addTrafficLight(), buildConnectionsToOuter(), computeShapes(), NIImporter_OpenDrive::OpenDriveLink::contactPoint, DEBUG_COND, DEBUG_COND2, NIImporter_OpenDrive::OpenDriveLink::elementID, NIImporter_OpenDrive::OpenDriveLink::elementType, NIImporter_OpenDrive::OpenDriveEdge::from, NIImporter_OpenDrive::OpenDriveEdge::geom, StringBijection< T >::get(), OptionsCont::getBool(), PositionVector::getBoxBoundary(), NBEdge::getConnections(), NBNode::getControllingTLS(), NBNetBuilder::getEdgeCont(), OptionsCont::getFloat(), Named::getID(), NBEdge::getLaneStruct(), NBNetBuilder::getNodeCont(), OptionsCont::getOptions(), getOrBuildNode(), NBTypeCont::getPermissions(), NIImporter_OpenDrive::OpenDriveEdge::getPriority(), NBTypeCont::getSpeed(), OptionsCont::getStringVector(), PositionVector::getSubpart2D(), NBNetBuilder::getTLLogicCont(), NBEdge::getToNode(), NBNetBuilder::getTypeCont(), NBTypeCont::getWidth(), NIImporter_OpenDrive::OpenDriveEdge::id, NBNodeCont::insert(), NBTrafficLightLogicCont::insert(), NBEdgeCont::insert(), FileHelpers::isReadable(), NBNode::isTLControlled(), OptionsCont::isUsableFileList(), NIImporter_OpenDrive::OpenDriveEdge::junction, NBEdge::L2L_USER, NBEdge::L2L_VALIDATED, NIImporter_OpenDrive::OpenDriveEdge::laneSections, LANESPREAD_RIGHT, NIImporter_OpenDrive::OpenDriveEdge::length, PositionVector::length2D(), NIImporter_OpenDrive::OpenDriveEdge::links, NIImporter_OpenDrive::OpenDriveLink::linkType, myImportAllTypes, myImportInternalShapes, myImportWidths, myMinWidth, OPENDRIVE_CP_END, OPENDRIVE_CP_START, OPENDRIVE_ET_ROAD, OPENDRIVE_LT_PREDECESSOR, OPENDRIVE_LT_SUCCESSOR, OPENDRIVE_TAG_LEFT, OPENDRIVE_TAG_RIGHT, NBEdge::Lane::permissions, PositionVector::positionAtOffset(), PROGRESS_BEGIN_MESSAGE, PROGRESS_DONE_MESSAGE, NBNodeCont::retrieve(), NBEdgeCont::retrieve(), PositionVector::reverse(), revertID(), revisitLaneSections(), XMLSubSys::runParser(), NIImporter_OpenDrive::OpenDriveLaneSection::s, setEdgeLinks2(), setNodeSecure(), Parameterised::setParameter(), NIImporter_OpenDrive::OpenDriveEdge::signals, NBEdge::Lane::speed, NIImporter_OpenDrive::OpenDriveLane::speed, splitMinWidths(), NIImporter_OpenDrive::OpenDriveEdge::streetName, SUMO_PARAM_ORIGID, SVC_AUTHORITY, SVC_EMERGENCY, SVC_PASSENGER, NIImporter_OpenDrive::OpenDriveEdge::to, toString(), SUMOXMLDefinitions::TrafficLightTypes, NIImporter_OpenDrive::OpenDriveLane::type, UNSET_CONNECTION, NBEdge::UNSPECIFIED_CONTPOS, NBEdge::UNSPECIFIED_OFFSET, NBEdge::UNSPECIFIED_SPEED, NBEdge::UNSPECIFIED_VISIBILITY_DISTANCE, NBEdge::UNSPECIFIED_WIDTH, NBEdgeCont::wasIgnored(), NBEdge::Lane::width, NIImporter_OpenDrive::OpenDriveLane::width, WRITE_ERROR, and WRITE_WARNING.
Referenced by NILoader::load().
|
protectedvirtual |
Callback method for characters to implement by derived classes.
Called by "endElement" (see there).
[in] | element | The opened element, given as a int |
[in] | chars | The complete embedded character string ProcessError These method may throw a ProcessError if something fails |
Reimplemented from GenericSAXHandler.
Definition at line 1854 of file NIImporter_OpenDrive.cpp.
References Boundary::add(), OPENDRIVE_TAG_GEOREFERENCE, GeoConvHelper::setLoaded(), WRITE_ERROR, and WRITE_WARNING.
|
protectedvirtual |
Called when a closing tag occurs.
[in] | element | ID of the currently opened element |
ProcessError | If something fails |
Reimplemented from GenericSAXHandler.
Definition at line 1882 of file NIImporter_OpenDrive.cpp.
References NIImporter_OpenDrive::Connection::all, NIImporter_OpenDrive::OpenDriveEdge::connections, NIImporter_OpenDrive::Connection::fromCP, NIImporter_OpenDrive::Connection::fromEdge, NIImporter_OpenDrive::Connection::fromLane, NIImporter_OpenDrive::OpenDriveEdge::id, NIImporter_OpenDrive::OpenDriveEdge::laneSections, myConnectionWasEmpty, myCurrentConnectingRoad, myCurrentContactPoint, myCurrentEdge, myCurrentIncomingRoad, myEdges, myElementStack, myTypeContainer, OPENDRIVE_CP_END, OPENDRIVE_TAG_CONNECTION, OPENDRIVE_TAG_LANESECTION, OPENDRIVE_TAG_ROAD, NIImporter_OpenDrive::Connection::toCP, NIImporter_OpenDrive::Connection::toEdge, NIImporter_OpenDrive::Connection::toLane, and WRITE_ERROR.
|
protectedvirtual |
Called on the opening of a tag;.
In dependence to the obtained type, an appropriate parsing method is called ("addEdge" if an edge encounters, f.e.).
[in] | element | ID of the currently opened element |
[in] | attrs | Attributes within the currently opened element |
ProcessError | If something fails |
Reimplemented from GenericSAXHandler.
Definition at line 1597 of file NIImporter_OpenDrive.cpp.
References addGeometryShape(), addLink(), NIImporter_OpenDrive::OpenDriveEdge::connections, DEBUG_COND, NIImporter_OpenDrive::OpenDriveEdge::elevations, NIImporter_OpenDrive::Connection::fromEdge, NIImporter_OpenDrive::OpenDriveEdge::geometries, SUMOSAXAttributes::get(), GenericSAXHandler::getFileName(), SUMOSAXAttributes::getOpt(), gPrecision, SUMOSAXAttributes::hasAttribute(), NIImporter_OpenDrive::OpenDriveEdge::id, NIImporter_OpenDrive::OpenDriveEdge::junction, NIImporter_OpenDrive::OpenDriveEdge::laneSections, MAX2(), myConnectionWasEmpty, myCurrentConnectingRoad, myCurrentContactPoint, myCurrentEdge, myCurrentIncomingRoad, myCurrentJunctionID, myCurrentLaneDirection, myEdges, myElementStack, NIImporter_OpenDrive::OpenDriveEdge::offsets, OPENDRIVE_ATTR_A, OPENDRIVE_ATTR_AU, OPENDRIVE_ATTR_AV, OPENDRIVE_ATTR_B, OPENDRIVE_ATTR_BU, OPENDRIVE_ATTR_BV, OPENDRIVE_ATTR_C, OPENDRIVE_ATTR_CONNECTINGROAD, OPENDRIVE_ATTR_CONTACTPOINT, OPENDRIVE_ATTR_CU, OPENDRIVE_ATTR_CURVATURE, OPENDRIVE_ATTR_CURVEND, OPENDRIVE_ATTR_CURVSTART, OPENDRIVE_ATTR_CV, OPENDRIVE_ATTR_D, OPENDRIVE_ATTR_DU, OPENDRIVE_ATTR_DV, OPENDRIVE_ATTR_DYNAMIC, OPENDRIVE_ATTR_ELEMENTID, OPENDRIVE_ATTR_ELEMENTTYPE, OPENDRIVE_ATTR_FROM, OPENDRIVE_ATTR_HDG, OPENDRIVE_ATTR_ID, OPENDRIVE_ATTR_INCOMINGROAD, OPENDRIVE_ATTR_JUNCTION, OPENDRIVE_ATTR_LENGTH, OPENDRIVE_ATTR_LEVEL, OPENDRIVE_ATTR_MAX, OPENDRIVE_ATTR_NAME, OPENDRIVE_ATTR_ORIENTATION, OPENDRIVE_ATTR_PRANGE, OPENDRIVE_ATTR_REVMAJOR, OPENDRIVE_ATTR_REVMINOR, OPENDRIVE_ATTR_S, OPENDRIVE_ATTR_SOFFSET, OPENDRIVE_ATTR_TO, OPENDRIVE_ATTR_TYPE, OPENDRIVE_ATTR_UNIT, OPENDRIVE_ATTR_X, OPENDRIVE_ATTR_Y, OPENDRIVE_CP_END, OPENDRIVE_CP_START, OPENDRIVE_GT_ARC, OPENDRIVE_GT_LINE, OPENDRIVE_GT_PARAMPOLY3, OPENDRIVE_GT_POLY3, OPENDRIVE_GT_SPIRAL, OPENDRIVE_LT_PREDECESSOR, OPENDRIVE_LT_SUCCESSOR, OPENDRIVE_TAG_ARC, OPENDRIVE_TAG_CENTER, OPENDRIVE_TAG_CONNECTION, OPENDRIVE_TAG_ELEVATION, OPENDRIVE_TAG_GEOMETRY, OPENDRIVE_TAG_HEADER, OPENDRIVE_TAG_JUNCTION, OPENDRIVE_TAG_LANE, OPENDRIVE_TAG_LANELINK, OPENDRIVE_TAG_LANEOFFSET, OPENDRIVE_TAG_LANESECTION, OPENDRIVE_TAG_LEFT, OPENDRIVE_TAG_LINE, OPENDRIVE_TAG_PARAMPOLY3, OPENDRIVE_TAG_POLY3, OPENDRIVE_TAG_PREDECESSOR, OPENDRIVE_TAG_RIGHT, OPENDRIVE_TAG_ROAD, OPENDRIVE_TAG_SIGNAL, OPENDRIVE_TAG_SPEED, OPENDRIVE_TAG_SPIRAL, OPENDRIVE_TAG_SUCCESSOR, OPENDRIVE_TAG_WIDTH, NIImporter_OpenDrive::OpenDriveEdge::signals, toString(), WRITE_ERROR, and WRITE_WARNING.
|
staticprotected |
Definition at line 2154 of file NIImporter_OpenDrive.cpp.
References NIImporter_OpenDrive::OpenDriveLaneSection::lanesByDir, NIImporter_OpenDrive::OpenDriveLaneSection::leftLaneNumber, OPENDRIVE_TAG_LEFT, OPENDRIVE_TAG_RIGHT, and NIImporter_OpenDrive::OpenDriveLaneSection::rightLaneNumber.
Referenced by splitMinWidths().
|
staticprotected |
Definition at line 2165 of file NIImporter_OpenDrive.cpp.
References gDebugFlag1, NIImporter_OpenDrive::OpenDriveLane::id, MAX2(), NIImporter_OpenDrive::OpenDriveLane::type, NIImporter_OpenDrive::OpenDriveLane::width, and NIImporter_OpenDrive::OpenDriveLane::widthData.
|
inherited |
Assigning a parent handler which is enabled when the specified tag is closed.
Definition at line 162 of file GenericSAXHandler.cpp.
References GenericSAXHandler::myParentHandler, GenericSAXHandler::myParentIndicator, and XMLSubSys::setHandler().
Referenced by NLTriggerBuilder::parseAndBuildCalibrator(), NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), and NLTriggerBuilder::parseAndBuildRerouter().
|
staticprivate |
Definition at line 939 of file NIImporter_OpenDrive.cpp.
Referenced by loadNetwork().
|
staticprotected |
Rechecks lane sections of the given edges.
[in] | edges | The edges which lane sections shall be reviewed |
Definition at line 1108 of file NIImporter_OpenDrive.cpp.
References DEBUG_COND, gDebugFlag1, NIImporter_OpenDrive::OpenDriveEdge::id, NIImporter_OpenDrive::OpenDriveEdge::laneSections, POSITION_EPS, toString(), and WRITE_WARNING.
Referenced by loadNetwork().
|
staticprivate |
Definition at line 854 of file NIImporter_OpenDrive.cpp.
References NIImporter_OpenDrive::Connection::all, NIImporter_OpenDrive::OpenDriveEdge::connections, NIImporter_OpenDrive::OpenDriveLink::contactPoint, DEBUG_COND, NIImporter_OpenDrive::OpenDriveLink::elementID, NIImporter_OpenDrive::OpenDriveLink::elementType, NIImporter_OpenDrive::Connection::fromCP, NIImporter_OpenDrive::Connection::fromEdge, NIImporter_OpenDrive::Connection::fromLane, NIImporter_OpenDrive::OpenDriveEdge::id, joinToString(), NIImporter_OpenDrive::OpenDriveLaneSection::laneMap, NIImporter_OpenDrive::OpenDriveLaneSection::lanesByDir, NIImporter_OpenDrive::OpenDriveEdge::laneSections, NIImporter_OpenDrive::OpenDriveEdge::links, NIImporter_OpenDrive::OpenDriveLink::linkType, myImportAllTypes, OPENDRIVE_CP_END, OPENDRIVE_ET_ROAD, OPENDRIVE_LT_SUCCESSOR, OPENDRIVE_TAG_LEFT, OPENDRIVE_TAG_RIGHT, NIImporter_OpenDrive::OpenDriveLaneSection::s, NIImporter_OpenDrive::Connection::toCP, NIImporter_OpenDrive::Connection::toEdge, NIImporter_OpenDrive::Connection::toLane, and WRITE_ERROR.
Referenced by loadNetwork().
|
inherited |
Sets the current file name.
[in] | name | The name of the currently processed file |
Definition at line 69 of file GenericSAXHandler.cpp.
References GenericSAXHandler::myFileName.
Referenced by NIImporter_SUMO::_loadNetwork(), GUISettingsHandler::GUISettingsHandler(), PCNetProjectionLoader::load(), NIImporter_OpenStreetMap::load(), loadNet(), ROLoader::loadNet(), NIImporter_ITSUMO::loadNetwork(), NIImporter_MATSim::loadNetwork(), NIImporter_Vissim::loadXML(), NILoader::loadXMLType(), main(), and XMLSubSys::runParser().
|
staticprotected |
Definition at line 962 of file NIImporter_OpenDrive.cpp.
References NIImporter_OpenDrive::OpenDriveEdge::from, NIImporter_OpenDrive::OpenDriveEdge::id, OPENDRIVE_LT_SUCCESSOR, NBNodeCont::retrieve(), and NIImporter_OpenDrive::OpenDriveEdge::to.
Referenced by loadNetwork().
|
inlineprotectedinherited |
Definition at line 255 of file GenericSAXHandler.h.
References GenericSAXHandler::convert(), GenericSAXHandler::convertTag(), and GenericSAXHandler::mySchemaSeen.
Referenced by SUMOSAXReader::LocalSchemaResolver::resolveEntity().
|
staticprotected |
Definition at line 2146 of file NIImporter_OpenDrive.cpp.
Referenced by splitMinWidths().
|
staticprotected |
Definition at line 1971 of file NIImporter_OpenDrive.cpp.
References DEBUG_COND, findWidthSplit(), gDebugFlag1, NIImporter_OpenDrive::OpenDriveEdge::id, NIImporter_OpenDrive::OpenDriveLaneSection::lanesByDir, NIImporter_OpenDrive::OpenDriveEdge::laneSections, NIImporter_OpenDrive::OpenDriveLaneSection::leftLaneNumber, NIImporter_OpenDrive::OpenDriveEdge::length, OPENDRIVE_TAG_LEFT, OPENDRIVE_TAG_RIGHT, recomputeWidths(), NIImporter_OpenDrive::OpenDriveLaneSection::rightLaneNumber, NIImporter_OpenDrive::OpenDriveLaneSection::s, setStraightConnections(), NIImporter_OpenDrive::OpenDriveLaneSection::sOrig, and toString().
Referenced by loadNetwork().
|
inherited |
The inherited method called when a new tag opens.
The method parses the supplied XMLCh*-qname using the internal name/enum-map to obtain the enum representation of the attribute name.
Then, "myStartElement" is called supplying the enumeration value, the string-representation of the name and the attributes.
recheck/describe encoding of the string-representation
do not generate and report the string-representation
Definition at line 94 of file GenericSAXHandler.cpp.
References GenericSAXHandler::convertTag(), FileHelpers::getConfigurationRelative(), GenericSAXHandler::getFileName(), SUMOSAXAttributesImpl_Xerces::getString(), FileHelpers::isAbsolute(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myExpectedRoot, GenericSAXHandler::myPredefinedTags, GenericSAXHandler::myPredefinedTagsMML, GenericSAXHandler::mySchemaSeen, GenericSAXHandler::myStartElement(), XMLSubSys::runParser(), SUMO_ATTR_HREF, SUMO_TAG_INCLUDE, and StringUtils::transcode().
|
inherited |
Handler for XML-warnings.
The message is built using buildErrorMessage and reported to the warning-instance of the MsgHandler.
[in] | exception | The occurred exception to process |
Definition at line 200 of file GenericSAXHandler.cpp.
References GenericSAXHandler::buildErrorMessage(), and WRITE_WARNING.
|
friend |
Definition at line 1956 of file NIImporter_OpenDrive.cpp.
|
private |
Definition at line 552 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
private |
Definition at line 550 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
private |
Definition at line 551 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
private |
Definition at line 543 of file NIImporter_OpenDrive.h.
Referenced by addGeometryShape(), addLink(), myEndElement(), and myStartElement().
|
private |
Definition at line 549 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
private |
Definition at line 548 of file NIImporter_OpenDrive.h.
Referenced by myStartElement().
|
private |
Definition at line 547 of file NIImporter_OpenDrive.h.
Referenced by myStartElement().
|
private |
Definition at line 545 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
private |
Definition at line 546 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
staticprivate |
Definition at line 554 of file NIImporter_OpenDrive.h.
Referenced by NIImporter_OpenDrive::OpenDriveLaneSection::buildLaneMapping(), loadNetwork(), and setEdgeLinks2().
|
staticprivate |
Definition at line 557 of file NIImporter_OpenDrive.h.
Referenced by buildConnectionsToOuter(), and loadNetwork().
|
staticprivate |
Definition at line 555 of file NIImporter_OpenDrive.h.
Referenced by loadNetwork().
|
staticprivate |
Definition at line 556 of file NIImporter_OpenDrive.h.
Referenced by findWidthSplit(), and loadNetwork().
|
private |
Definition at line 542 of file NIImporter_OpenDrive.h.
Referenced by myEndElement().
|
staticprotected |
The names of openDrive-XML attributes (for passing to GenericSAXHandler)
Definition at line 618 of file NIImporter_OpenDrive.h.
|
staticprotected |
The names of openDrive-XML elements (for passing to GenericSAXHandler)
Definition at line 615 of file NIImporter_OpenDrive.h.