![]() |
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 occured. 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... | |
virtual void | myCharacters (int element, const std::string &chars) |
Callback method for characters to implement by derived classes. More... | |
NIImporter_OpenDrive (const NBTypeCont &tc, std::map< std::string, OpenDriveEdge *> &edges) | |
Constructor. More... | |
~NIImporter_OpenDrive () | |
Destructor. More... | |
inherited from GenericSAXHandler | |
void | myStartElement (int element, const SUMOSAXAttributes &attrs) |
Called on the opening of a tag;. 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 | myImportWidths |
static double | myMinWidth |
Friends | |
bool | operator< (const Connection &c1, const Connection &c2) |
Importer for networks stored in openDrive format.
Definition at line 60 of file NIImporter_OpenDrive.h.
|
protected |
LaneOffset has the same fields as Elevation.
Definition at line 278 of file NIImporter_OpenDrive.h.
|
protected |
Definition at line 279 of file NIImporter_OpenDrive.h.
|
protected |
Definition at line 280 of file NIImporter_OpenDrive.h.
|
protected |
OpenDrive contact type enumeration.
Enumerator | |
---|---|
OPENDRIVE_CP_UNKNOWN | |
OPENDRIVE_CP_START | |
OPENDRIVE_CP_END |
Definition at line 186 of file NIImporter_OpenDrive.h.
|
protected |
OpenDrive element type enumeration.
Enumerator | |
---|---|
OPENDRIVE_ET_UNKNOWN | |
OPENDRIVE_ET_ROAD | |
OPENDRIVE_ET_JUNCTION |
Definition at line 177 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 194 of file NIImporter_OpenDrive.h.
|
protected |
OpenDrive link type enumeration.
Enumerator | |
---|---|
OPENDRIVE_LT_SUCCESSOR | |
OPENDRIVE_LT_PREDECESSOR |
Definition at line 169 of file NIImporter_OpenDrive.h.
|
protected |
Numbers representing openDrive-XML - attributes.
Definition at line 122 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 |
Definition at line 87 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 1503 of file NIImporter_OpenDrive.cpp.
|
protected |
Destructor.
Definition at line 1509 of file NIImporter_OpenDrive.cpp.
|
private |
Definition at line 1829 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 1807 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 713 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::Connection::origID, NIImporter_OpenDrive::Connection::origLane, 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 1279 of file NIImporter_OpenDrive.cpp.
Referenced by geomFromArc().
|
staticprotected |
Definition at line 1251 of file NIImporter_OpenDrive.cpp.
Referenced by geomFromArc().
|
staticprotected |
Definition at line 1239 of file NIImporter_OpenDrive.cpp.
References Position::x(), and Position::y().
Referenced by geomFromLine().
|
inherited |
The inherited method called when characters occured.
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 TplConvert::_2str(), and GenericSAXHandler::myCharactersVector.
|
staticprotected |
Computes a polygon representation of each edge's geometry.
[in] | edges | The edges which geometries shall be converted |
Definition at line 901 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 TplConvert::_2str(), GenericSAXHandler::convertTag(), GenericSAXHandler::myCharacters(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myEndElement(), GenericSAXHandler::myParentHandler, GenericSAXHandler::myParentIndicator, XMLSubSys::setHandler(), SUMO_TAG_INCLUDE, and SUMO_TAG_NOTHING.
|
inherited |
Handler for XML-errors.
The message is built using buildErrorMessage and thrown within a ProcessError.
[in] | exception | The occured exception to process |
ProcessError | On any call |
Definition at line 206 of file GenericSAXHandler.cpp.
References GenericSAXHandler::buildErrorMessage().
Referenced by MSRouteHandler::addPersonTrip(), 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 occured exception to process |
Definition at line 212 of file GenericSAXHandler.cpp.
References GenericSAXHandler::buildErrorMessage().
|
staticprotected |
Definition at line 1953 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 1158 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 1084 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 1220 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 1203 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 1094 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 81 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 866 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 162 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, 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_BICYCLE, SVC_EMERGENCY, SVC_PEDESTRIAN, NIImporter_OpenDrive::OpenDriveEdge::to, toString(), SUMOXMLDefinitions::TrafficLightTypes, NIImporter_OpenDrive::OpenDriveLane::type, UNSET_CONNECTION, NBEdge::UNSPECIFIED_OFFSET, NBEdge::UNSPECIFIED_WIDTH, NBEdgeCont::wasIgnored(), NBEdge::Lane::width, NIImporter_OpenDrive::OpenDriveLane::width, WRITE_ERROR, and WRITE_WARNING.
Referenced by NILoader::load().
|
protectedvirtualinherited |
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 in NIImporter_ITSUMO::Handler.
Definition at line 222 of file GenericSAXHandler.cpp.
Referenced by GenericSAXHandler::endElement().
|
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 1771 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 1514 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 2043 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 2054 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 857 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 1026 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 772 of file NIImporter_OpenDrive.cpp.
References NIImporter_OpenDrive::Connection::all, NIImporter_OpenDrive::OpenDriveEdge::connections, NIImporter_OpenDrive::OpenDriveLink::contactPoint, DEBUG_COND, DEBUG_COND2, 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 75 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 880 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().
|
staticprotected |
Definition at line 2035 of file NIImporter_OpenDrive.cpp.
Referenced by splitMinWidths().
|
staticprotected |
Definition at line 1860 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 100 of file GenericSAXHandler.cpp.
References TplConvert::_2str(), GenericSAXHandler::convertTag(), FileHelpers::getConfigurationRelative(), GenericSAXHandler::getFileName(), SUMOSAXAttributesImpl_Xerces::getString(), FileHelpers::isAbsolute(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myPredefinedTags, GenericSAXHandler::myPredefinedTagsMML, GenericSAXHandler::myStartElement(), XMLSubSys::runParser(), SUMO_ATTR_HREF, and SUMO_TAG_INCLUDE.
|
inherited |
Handler for XML-warnings.
The message is built using buildErrorMessage and reported to the warning-instance of the MsgHandler.
[in] | exception | The occured exception to process |
Definition at line 200 of file GenericSAXHandler.cpp.
References GenericSAXHandler::buildErrorMessage(), and WRITE_WARNING.
|
friend |
Definition at line 1845 of file NIImporter_OpenDrive.cpp.
|
private |
Definition at line 537 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
private |
Definition at line 535 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
private |
Definition at line 536 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
private |
Definition at line 528 of file NIImporter_OpenDrive.h.
Referenced by addGeometryShape(), addLink(), myEndElement(), and myStartElement().
|
private |
Definition at line 534 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
private |
Definition at line 533 of file NIImporter_OpenDrive.h.
Referenced by myStartElement().
|
private |
Definition at line 532 of file NIImporter_OpenDrive.h.
Referenced by myStartElement().
|
private |
Definition at line 530 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
private |
Definition at line 531 of file NIImporter_OpenDrive.h.
Referenced by myEndElement(), and myStartElement().
|
staticprivate |
Definition at line 539 of file NIImporter_OpenDrive.h.
Referenced by NIImporter_OpenDrive::OpenDriveLaneSection::buildLaneMapping(), loadNetwork(), and setEdgeLinks2().
|
staticprivate |
Definition at line 540 of file NIImporter_OpenDrive.h.
Referenced by loadNetwork().
|
staticprivate |
Definition at line 541 of file NIImporter_OpenDrive.h.
Referenced by findWidthSplit(), and loadNetwork().
|
private |
Definition at line 527 of file NIImporter_OpenDrive.h.
Referenced by myEndElement().
|
staticprotected |
The names of openDrive-XML attributes (for passing to GenericSAXHandler)
Definition at line 602 of file NIImporter_OpenDrive.h.
|
staticprotected |
The names of openDrive-XML elements (for passing to GenericSAXHandler)
Definition at line 599 of file NIImporter_OpenDrive.h.