SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NIImporter_OpenDrive Class Reference

Importer for networks stored in openDrive format. More...

#include <NIImporter_OpenDrive.h>

Inheritance diagram for NIImporter_OpenDrive:
GenericSAXHandler DefaultHandler

Data Structures

struct  Connection
class  edge_by_id_finder
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 connection. More...

Public Member Functions

void characters (const XMLCh *const chars, const XERCES3_SIZE_t length)
 The inherited method called when characters occured.
void endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname)
 The inherited method called when a tag is being closed.
const std::string & getFileName () const
 returns the current file name
void registerParent (const int tag, GenericSAXHandler *handler)
 Assigning a parent handler which is enabled when the specified tag is closed.
void setFileName (const std::string &name)
 Sets the current file name.
void startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const Attributes &attrs)
 The inherited method called when a new tag opens.
SAX ErrorHandler callbacks
void warning (const SAXParseException &exception)
 Handler for XML-warnings.
void error (const SAXParseException &exception)
 Handler for XML-errors.
void fatalError (const SAXParseException &exception)
 Handler for XML-errors.

Static Public Member Functions

static void loadNetwork (const OptionsCont &oc, NBNetBuilder &nb)
 Loads content of the optionally given SUMO file.

Protected Types

enum  ContactPoint { OPENDRIVE_CP_UNKNOWN, OPENDRIVE_CP_START, OPENDRIVE_CP_END }
enum  ElementType { OPENDRIVE_ET_UNKNOWN, OPENDRIVE_ET_ROAD, OPENDRIVE_ET_JUNCTION }
enum  GeometryType {
  OPENDRIVE_GT_UNKNOWN, OPENDRIVE_GT_LINE, OPENDRIVE_GT_SPIRAL, OPENDRIVE_GT_ARC,
  OPENDRIVE_GT_POLY3
}
enum  LinkType { OPENDRIVE_LT_SUCCESSOR, OPENDRIVE_LT_PREDECESSOR }
enum  OpenDriveXMLAttr {
  OPENDRIVE_ATTR_NOTHING, OPENDRIVE_ATTR_REVMAJOR, OPENDRIVE_ATTR_REVMINOR, OPENDRIVE_ATTR_ID,
  OPENDRIVE_ATTR_LENGTH, OPENDRIVE_ATTR_JUNCTION, OPENDRIVE_ATTR_ELEMENTTYPE, OPENDRIVE_ATTR_ELEMENTID,
  OPENDRIVE_ATTR_CONTACTPOINT, OPENDRIVE_ATTR_S, OPENDRIVE_ATTR_X, OPENDRIVE_ATTR_Y,
  OPENDRIVE_ATTR_HDG, OPENDRIVE_ATTR_CURVSTART, OPENDRIVE_ATTR_CURVEND, OPENDRIVE_ATTR_CURVATURE,
  OPENDRIVE_ATTR_A, OPENDRIVE_ATTR_B, OPENDRIVE_ATTR_C, OPENDRIVE_ATTR_D,
  OPENDRIVE_ATTR_TYPE, OPENDRIVE_ATTR_LEVEL
}
 Numbers representing openDrive-XML - attributes. More...
enum  OpenDriveXMLTag {
  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_LANESECTION, OPENDRIVE_TAG_LEFT,
  OPENDRIVE_TAG_CENTER, OPENDRIVE_TAG_RIGHT, OPENDRIVE_TAG_LANE
}
 Numbers representing openDrive-XML - element names. More...

Protected Member Functions

std::string buildErrorMessage (const SAXParseException &exception)
 Builds an error message.
 NIImporter_OpenDrive (std::vector< OpenDriveEdge > &innerEdges, std::vector< OpenDriveEdge > &outerEdges)
 Constructor.
 ~NIImporter_OpenDrive ()
 Destructor.
inherited from GenericSAXHandler
void myStartElement (int element, const SUMOSAXAttributes &attrs)
 Called on the opening of a tag;.
void myCharacters (int element, const std::string &chars)
 Called when characters occure.
void myEndElement (int element)
 Called when a closing tag occurs.

Static Protected Member Functions

static void addE2EConnectionsSecure (const NBEdgeCont &ec, const NBNode *const node, const OpenDriveEdge &from, const OpenDriveEdge &to, std::vector< NIImporter_OpenDrive::Connection > &connections)
static void addViaConnectionSecure (const NBEdgeCont &ec, const NBNode *const node, const OpenDriveEdge &e, LinkType lt, const std::string &via, std::vector< NIImporter_OpenDrive::Connection > &connections)
static void calcPointOnCurve (SUMOReal *ad_x, SUMOReal *ad_y, SUMOReal ad_centerX, SUMOReal ad_centerY, SUMOReal ad_r, SUMOReal ad_length)
static void calculateCurveCenter (SUMOReal *ad_x, SUMOReal *ad_y, SUMOReal ad_radius, SUMOReal ad_hdg)
static Position calculateStraightEndPoint (double hdg, double length, const Position &start)
static void computeShapes (std::vector< OpenDriveEdge > &edges)
static std::vector< PositiongeomFromArc (const OpenDriveEdge &e, const OpenDriveGeometry &g)
static std::vector< PositiongeomFromLine (const OpenDriveEdge &e, const OpenDriveGeometry &g)
static std::vector< PositiongeomFromPoly (const OpenDriveEdge &e, const OpenDriveGeometry &g)
static NBEdgegetIncomingDirectionalEdge (const NBEdgeCont &ec, const NBNodeCont &nc, const std::string &edgeID, const std::string &nodeID)
static NBNodegetOrBuildNode (const std::string &id, Position &pos, NBNodeCont &nc)
 Builds a node or returns the already built.
static NBEdgegetOutgoingDirectionalEdge (const NBEdgeCont &ec, const NBNodeCont &nc, const std::string &edgeID, const std::string &nodeID)
static void setLaneConnections (NIImporter_OpenDrive::Connection &c, const OpenDriveEdge &from, bool fromAtBegin, OpenDriveXMLTag fromLaneDir, const OpenDriveEdge &to, bool toAtEnd, OpenDriveXMLTag toLaneDir)
static void setLaneConnections (NIImporter_OpenDrive::Connection &c, const OpenDriveEdge &from, bool fromAtBegin, OpenDriveXMLTag fromLaneDir, const OpenDriveEdge &via, bool viaIsReversed, OpenDriveXMLTag viaLaneDir, const OpenDriveEdge &to, bool fromAtEnd, OpenDriveXMLTag toLaneDir)
static void setNodeSecure (NBNodeCont &nc, OpenDriveEdge &e, const std::string &nodeID, NIImporter_OpenDrive::LinkType lt)

Static Protected Attributes

static StringBijection< int >
::Entry 
openDriveAttrs []
 The names of openDrive-XML attributes (for passing to GenericSAXHandler)
static StringBijection< int >
::Entry 
openDriveTags []
 The names of openDrive-XML elements (for passing to GenericSAXHandler)

Private Member Functions

void addGeometryShape (GeometryType type, const std::vector< SUMOReal > &vals)
void addLink (LinkType lt, const std::string &elementType, const std::string &elementID, const std::string &contactPoint)

Private Attributes

OpenDriveEdge myCurrentEdge
OpenDriveXMLTag myCurrentLaneDirection
std::vector< intmyElementStack
std::vector< OpenDriveEdge > & myInnerEdges
std::vector< OpenDriveEdge > & myOuterEdges

Detailed Description

Importer for networks stored in openDrive format.

Definition at line 61 of file NIImporter_OpenDrive.h.


Member Enumeration Documentation

Enumerator:
OPENDRIVE_CP_UNKNOWN 
OPENDRIVE_CP_START 
OPENDRIVE_CP_END 

Definition at line 150 of file NIImporter_OpenDrive.h.

Enumerator:
OPENDRIVE_ET_UNKNOWN 
OPENDRIVE_ET_ROAD 
OPENDRIVE_ET_JUNCTION 

Definition at line 144 of file NIImporter_OpenDrive.h.

Enumerator:
OPENDRIVE_GT_UNKNOWN 
OPENDRIVE_GT_LINE 
OPENDRIVE_GT_SPIRAL 
OPENDRIVE_GT_ARC 
OPENDRIVE_GT_POLY3 

Definition at line 156 of file NIImporter_OpenDrive.h.

Enumerator:
OPENDRIVE_LT_SUCCESSOR 
OPENDRIVE_LT_PREDECESSOR 

Definition at line 139 of file NIImporter_OpenDrive.h.

Numbers representing openDrive-XML - attributes.

See also:
GenericSAXHandler
Enumerator:
OPENDRIVE_ATTR_NOTHING 
OPENDRIVE_ATTR_REVMAJOR 
OPENDRIVE_ATTR_REVMINOR 
OPENDRIVE_ATTR_ID 
OPENDRIVE_ATTR_LENGTH 
OPENDRIVE_ATTR_JUNCTION 
OPENDRIVE_ATTR_ELEMENTTYPE 
OPENDRIVE_ATTR_ELEMENTID 
OPENDRIVE_ATTR_CONTACTPOINT 
OPENDRIVE_ATTR_S 
OPENDRIVE_ATTR_X 
OPENDRIVE_ATTR_Y 
OPENDRIVE_ATTR_HDG 
OPENDRIVE_ATTR_CURVSTART 
OPENDRIVE_ATTR_CURVEND 
OPENDRIVE_ATTR_CURVATURE 
OPENDRIVE_ATTR_A 
OPENDRIVE_ATTR_B 
OPENDRIVE_ATTR_C 
OPENDRIVE_ATTR_D 
OPENDRIVE_ATTR_TYPE 
OPENDRIVE_ATTR_LEVEL 

Definition at line 114 of file NIImporter_OpenDrive.h.

Numbers representing openDrive-XML - element names.

See also:
GenericSAXHandler
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_LANESECTION 
OPENDRIVE_TAG_LEFT 
OPENDRIVE_TAG_CENTER 
OPENDRIVE_TAG_RIGHT 
OPENDRIVE_TAG_LANE 

Definition at line 88 of file NIImporter_OpenDrive.h.


Constructor & Destructor Documentation

NIImporter_OpenDrive::NIImporter_OpenDrive ( std::vector< OpenDriveEdge > &  innerEdges,
std::vector< OpenDriveEdge > &  outerEdges 
)
protected

Constructor.

Parameters:
[in]ncThe node control to fill

Definition at line 831 of file NIImporter_OpenDrive.cpp.

NIImporter_OpenDrive::~NIImporter_OpenDrive ( )
protected

Destructor.

Definition at line 839 of file NIImporter_OpenDrive.cpp.


Member Function Documentation

void NIImporter_OpenDrive::addE2EConnectionsSecure ( const NBEdgeCont ec,
const NBNode *const  node,
const OpenDriveEdge from,
const OpenDriveEdge to,
std::vector< NIImporter_OpenDrive::Connection > &  connections 
)
staticprotected
void NIImporter_OpenDrive::addLink ( LinkType  lt,
const std::string &  elementType,
const std::string &  elementID,
const std::string &  contactPoint 
)
private
void NIImporter_OpenDrive::addViaConnectionSecure ( const NBEdgeCont ec,
const NBNode *const  node,
const OpenDriveEdge e,
LinkType  lt,
const std::string &  via,
std::vector< NIImporter_OpenDrive::Connection > &  connections 
)
staticprotected
std::string GenericSAXHandler::buildErrorMessage ( const SAXParseException &  exception)
protectedinherited

Builds an error message.

The error message includes the file name and the line/column information as supported by the given SAXParseException

Parameters:
[in]exceptionThe name of the currently processed file
Returns:
A string describing the given exception

Definition at line 193 of file GenericSAXHandler.cpp.

References GenericSAXHandler::getFileName().

Referenced by GenericSAXHandler::error(), GenericSAXHandler::fatalError(), and GenericSAXHandler::warning().

void NIImporter_OpenDrive::calcPointOnCurve ( SUMOReal ad_x,
SUMOReal ad_y,
SUMOReal  ad_centerX,
SUMOReal  ad_centerY,
SUMOReal  ad_r,
SUMOReal  ad_length 
)
staticprotected

Definition at line 808 of file NIImporter_OpenDrive.cpp.

Referenced by geomFromArc().

void NIImporter_OpenDrive::calculateCurveCenter ( SUMOReal ad_x,
SUMOReal ad_y,
SUMOReal  ad_radius,
SUMOReal  ad_hdg 
)
staticprotected

Definition at line 780 of file NIImporter_OpenDrive.cpp.

References PI, and SUMOReal.

Referenced by geomFromArc().

Position NIImporter_OpenDrive::calculateStraightEndPoint ( double  hdg,
double  length,
const Position start 
)
staticprotected

Definition at line 768 of file NIImporter_OpenDrive.cpp.

References Position::x(), and Position::y().

Referenced by geomFromLine().

void GenericSAXHandler::characters ( const XMLCh *const  chars,
const XERCES3_SIZE_t  length 
)
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.

Todo:

recheck/describe what happens with characters when a new element is opened

describe characters processing in the class' head

Definition at line 176 of file GenericSAXHandler.cpp.

References GenericSAXHandler::myCharactersVector.

void GenericSAXHandler::endElement ( const XMLCh *const  uri,
const XMLCh *const  localname,
const XMLCh *const  qname 
)
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.

Todo:

recheck/describe encoding of the string-representation

do not generate and report the string-representation

Definition at line 126 of file GenericSAXHandler.cpp.

References GenericSAXHandler::convertTag(), GenericSAXHandler::myCharacters(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myEndElement(), GenericSAXHandler::myParentHandler, GenericSAXHandler::myParentIndicator, XMLSubSys::setHandler(), SUMO_TAG_INCLUDE, and SUMO_TAG_NOTHING.

void GenericSAXHandler::error ( const SAXParseException &  exception)
inherited

Handler for XML-errors.

The message is built using buildErrorMessage and thrown within a ProcessError.

Parameters:
[in]exceptionThe occured exception to process
Exceptions:
ProcessErrorOn any call

Definition at line 212 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage().

Referenced by NLHandler::getLanesFromIndices().

void GenericSAXHandler::fatalError ( const SAXParseException &  exception)
inherited

Handler for XML-errors.

The message is built using buildErrorMessage and thrown within a ProcessError.

Exceptions:
ProcessErrorOn any call
Parameters:
[in]exceptionThe occured exception to process

Definition at line 218 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage().

std::vector< Position > NIImporter_OpenDrive::geomFromPoly ( const OpenDriveEdge e,
const OpenDriveGeometry g 
)
staticprotected

Definition at line 759 of file NIImporter_OpenDrive.cpp.

References UNUSED_PARAMETER.

Referenced by computeShapes().

NBEdge * NIImporter_OpenDrive::getIncomingDirectionalEdge ( const NBEdgeCont ec,
const NBNodeCont nc,
const std::string &  edgeID,
const std::string &  nodeID 
)
staticprotected
NBNode * NIImporter_OpenDrive::getOrBuildNode ( const std::string &  id,
Position pos,
NBNodeCont nc 
)
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.

Parameters:
[in]idThe id of the node to build/get
in,changed]pos The position of the node to build/get
filled]nc The node container to retrieve/add the node to
Returns:
The retrieved/built node
Exceptions:
ProcessErrorIf the node could not be built/retrieved

Definition at line 588 of file NIImporter_OpenDrive.cpp.

References NBNodeCont::insert(), and NBNodeCont::retrieve().

Referenced by loadNetwork().

NBEdge * NIImporter_OpenDrive::getOutgoingDirectionalEdge ( const NBEdgeCont ec,
const NBNodeCont nc,
const std::string &  edgeID,
const std::string &  nodeID 
)
staticprotected
void NIImporter_OpenDrive::loadNetwork ( const OptionsCont oc,
NBNetBuilder nb 
)
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.

Parameters:
[in]ocThe options to use
[in]nbThe network builder to fill

Definition at line 123 of file NIImporter_OpenDrive.cpp.

References addE2EConnectionsSecure(), addViaConnectionSecure(), computeShapes(), NIImporter_OpenDrive::OpenDriveLink::contactPoint, NIImporter_OpenDrive::OpenDriveLink::elementID, NIImporter_OpenDrive::OpenDriveLink::elementType, FileHelpers::exists(), NIImporter_OpenDrive::OpenDriveEdge::from, NIImporter_OpenDrive::Connection::from, NIImporter_OpenDrive::OpenDriveEdge::geom, NIImporter_OpenDrive::OpenDriveEdge::geometries, PositionVector::getBoxBoundary(), NBNetBuilder::getEdgeCont(), Named::getID(), NIImporter_OpenDrive::OpenDriveEdge::getMaxLaneNumber(), NBNetBuilder::getNodeCont(), getOrBuildNode(), NBTypeCont::getPriority(), NBTypeCont::getSpeed(), OptionsCont::getStringVector(), NBNetBuilder::getTypeCont(), NIImporter_OpenDrive::OpenDriveEdge::id, NBNodeCont::insert(), NBEdgeCont::insert(), OptionsCont::isUsableFileList(), NIImporter_OpenDrive::OpenDriveEdge::junction, NBEdge::L2L_VALIDATED, NIImporter_OpenDrive::OpenDriveEdge::laneSections, LANESPREAD_CENTER, LANESPREAD_RIGHT, NIImporter_OpenDrive::OpenDriveEdge::links, NIImporter_OpenDrive::OpenDriveLink::linkType, OPENDRIVE_CP_END, OPENDRIVE_CP_START, OPENDRIVE_ET_ROAD, OPENDRIVE_LT_PREDECESSOR, OPENDRIVE_LT_SUCCESSOR, OPENDRIVE_TAG_LEFT, OPENDRIVE_TAG_RIGHT, PROGRESS_BEGIN_MESSAGE, PROGRESS_DONE_MESSAGE, NBEdgeCont::retrieve(), NBNodeCont::retrieve(), PositionVector::reverse(), XMLSubSys::runParser(), GenericSAXHandler::setFileName(), setLaneConnections(), setNodeSecure(), PositionVector::size(), SUMOReal, NIImporter_OpenDrive::OpenDriveEdge::to, NIImporter_OpenDrive::Connection::to, WRITE_ERROR, and WRITE_WARNING.

Referenced by NILoader::load().

void NIImporter_OpenDrive::myCharacters ( int  element,
const std::string &  chars 
)
protectedvirtual

Called when characters occure.

Parameters:
[in]elementID of the last opened element
[in]charsThe read characters (complete)
Exceptions:
ProcessErrorIf something fails
See also:
GenericSAXHandler::myCharacters

Reimplemented from GenericSAXHandler.

Definition at line 963 of file NIImporter_OpenDrive.cpp.

References UNUSED_PARAMETER.

void NIImporter_OpenDrive::myEndElement ( int  element)
protectedvirtual

Called when a closing tag occurs.

Parameters:
[in]elementID of the currently opened element
Exceptions:
ProcessErrorIf something fails
See also:
GenericSAXHandler::myEndElement

Reimplemented from GenericSAXHandler.

Definition at line 972 of file NIImporter_OpenDrive.cpp.

References NIImporter_OpenDrive::OpenDriveEdge::junction, myCurrentEdge, myElementStack, myInnerEdges, myOuterEdges, and OPENDRIVE_TAG_ROAD.

void NIImporter_OpenDrive::myStartElement ( int  element,
const SUMOSAXAttributes attrs 
)
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.).

Parameters:
[in]elementID of the currently opened element
[in]attrsAttributes within the currently opened element
Exceptions:
ProcessErrorIf something fails
See also:
GenericSAXHandler::myStartElement

Reimplemented from GenericSAXHandler.

Definition at line 844 of file NIImporter_OpenDrive.cpp.

References addGeometryShape(), addLink(), NIImporter_OpenDrive::OpenDriveEdge::geometries, GenericSAXHandler::getFileName(), SUMOSAXAttributes::getIntReporting(), SUMOSAXAttributes::getStringReporting(), SUMOSAXAttributes::getSUMORealReporting(), SUMOSAXAttributes::hasAttribute(), NIImporter_OpenDrive::OpenDriveEdge::id, NIImporter_OpenDrive::OpenDriveLaneSection::lanesByDir, NIImporter_OpenDrive::OpenDriveEdge::laneSections, myCurrentEdge, myCurrentLaneDirection, myElementStack, OPENDRIVE_ATTR_A, OPENDRIVE_ATTR_B, OPENDRIVE_ATTR_C, OPENDRIVE_ATTR_CONTACTPOINT, OPENDRIVE_ATTR_CURVATURE, OPENDRIVE_ATTR_CURVEND, OPENDRIVE_ATTR_CURVSTART, OPENDRIVE_ATTR_D, OPENDRIVE_ATTR_ELEMENTID, OPENDRIVE_ATTR_ELEMENTTYPE, OPENDRIVE_ATTR_HDG, OPENDRIVE_ATTR_ID, OPENDRIVE_ATTR_JUNCTION, OPENDRIVE_ATTR_LENGTH, OPENDRIVE_ATTR_LEVEL, OPENDRIVE_ATTR_REVMAJOR, OPENDRIVE_ATTR_REVMINOR, OPENDRIVE_ATTR_S, OPENDRIVE_ATTR_TYPE, OPENDRIVE_ATTR_X, OPENDRIVE_ATTR_Y, OPENDRIVE_GT_ARC, OPENDRIVE_GT_LINE, OPENDRIVE_GT_POLY3, OPENDRIVE_GT_SPIRAL, OPENDRIVE_LT_PREDECESSOR, OPENDRIVE_LT_SUCCESSOR, OPENDRIVE_TAG_ARC, OPENDRIVE_TAG_CENTER, OPENDRIVE_TAG_GEOMETRY, OPENDRIVE_TAG_HEADER, OPENDRIVE_TAG_LANE, OPENDRIVE_TAG_LANESECTION, OPENDRIVE_TAG_LEFT, OPENDRIVE_TAG_LINE, OPENDRIVE_TAG_POLY3, OPENDRIVE_TAG_PREDECESSOR, OPENDRIVE_TAG_RIGHT, OPENDRIVE_TAG_ROAD, OPENDRIVE_TAG_SPIRAL, OPENDRIVE_TAG_SUCCESSOR, NIImporter_OpenDrive::OpenDriveLane::predecessor, NIImporter_OpenDrive::OpenDriveLane::successor, SUMOReal, toString(), and WRITE_WARNING.

void GenericSAXHandler::registerParent ( const int  tag,
GenericSAXHandler handler 
)
inherited

Assigning a parent handler which is enabled when the specified tag is closed.

Definition at line 168 of file GenericSAXHandler.cpp.

References GenericSAXHandler::myParentHandler, GenericSAXHandler::myParentIndicator, and XMLSubSys::setHandler().

Referenced by NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), and NLTriggerBuilder::parseAndBuildRerouter().

void GenericSAXHandler::setFileName ( const std::string &  name)
inherited

Sets the current file name.

Parameters:
[in]nameThe name of the currently processed file
Todo:
Hmmm - this is as unsafe as having a direct access to the variable; recheck

Definition at line 80 of file GenericSAXHandler.cpp.

References GenericSAXHandler::myFileName.

Referenced by NIImporter_SUMO::_loadNetwork(), GUISettingsHandler::GUISettingsHandler(), AGActivityGen::importInfoCity(), NIImporter_OpenStreetMap::load(), PCNetProjectionLoader::loadIfSet(), loadNet(), ROLoader::loadNet(), NIImporter_ITSUMO::loadNetwork(), NIImporter_MATSim::loadNetwork(), loadNetwork(), NILoader::loadXMLType(), and XMLSubSys::runParser().

void NIImporter_OpenDrive::setLaneConnections ( NIImporter_OpenDrive::Connection c,
const OpenDriveEdge from,
bool  fromAtBegin,
OpenDriveXMLTag  fromLaneDir,
const OpenDriveEdge to,
bool  toAtEnd,
OpenDriveXMLTag  toLaneDir 
)
staticprotected
void NIImporter_OpenDrive::setLaneConnections ( NIImporter_OpenDrive::Connection c,
const OpenDriveEdge from,
bool  fromAtBegin,
OpenDriveXMLTag  fromLaneDir,
const OpenDriveEdge via,
bool  viaIsReversed,
OpenDriveXMLTag  viaLaneDir,
const OpenDriveEdge to,
bool  fromAtEnd,
OpenDriveXMLTag  toLaneDir 
)
staticprotected
void NIImporter_OpenDrive::setNodeSecure ( NBNodeCont nc,
OpenDriveEdge e,
const std::string &  nodeID,
NIImporter_OpenDrive::LinkType  lt 
)
staticprotected
void GenericSAXHandler::startElement ( const XMLCh *const  uri,
const XMLCh *const  localname,
const XMLCh *const  qname,
const Attributes &  attrs 
)
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.

Todo:

recheck/describe encoding of the string-representation

do not generate and report the string-representation

Definition at line 105 of file GenericSAXHandler.cpp.

References 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.

void GenericSAXHandler::warning ( const SAXParseException &  exception)
inherited

Handler for XML-warnings.

The message is built using buildErrorMessage and reported to the warning-instance of the MsgHandler.

Parameters:
[in]exceptionThe occured exception to process

Definition at line 206 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage(), and WRITE_WARNING.


Field Documentation

OpenDriveEdge NIImporter_OpenDrive::myCurrentEdge
private

Definition at line 363 of file NIImporter_OpenDrive.h.

Referenced by addGeometryShape(), addLink(), myEndElement(), and myStartElement().

OpenDriveXMLTag NIImporter_OpenDrive::myCurrentLaneDirection
private

Definition at line 368 of file NIImporter_OpenDrive.h.

Referenced by myStartElement().

std::vector<int> NIImporter_OpenDrive::myElementStack
private

Definition at line 367 of file NIImporter_OpenDrive.h.

Referenced by myEndElement(), and myStartElement().

std::vector<OpenDriveEdge>& NIImporter_OpenDrive::myInnerEdges
private

Definition at line 365 of file NIImporter_OpenDrive.h.

Referenced by myEndElement().

std::vector<OpenDriveEdge>& NIImporter_OpenDrive::myOuterEdges
private

Definition at line 366 of file NIImporter_OpenDrive.h.

Referenced by myEndElement().


The documentation for this class was generated from the following files: