Eclipse SUMO - Simulation of Urban MObility
NIImporter_OpenDrive.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
16 // Importer for networks stored in openDrive format
17 /****************************************************************************/
18 #ifndef NIImporter_OpenDrive_h
19 #define NIImporter_OpenDrive_h
20 
21 
22 // ===========================================================================
23 // included modules
24 // ===========================================================================
25 #include <config.h>
26 
27 #include <string>
28 #include <map>
31 
32 
33 // ===========================================================================
34 // class declarations
35 // ===========================================================================
36 class NBNetBuilder;
37 class NBEdge;
38 class OptionsCont;
39 class NBNode;
40 class NBNodeCont;
41 
42 
43 #define UNSET_CONNECTION 100000
44 
45 // ===========================================================================
46 // class definitions
47 // ===========================================================================
54 public:
70  static void loadNetwork(const OptionsCont& oc, NBNetBuilder& nb);
71 
72 
73 protected:
74 
110  };
111 
112 
167  OPENDRIVE_ATTR_UNIT // xodr v1.4
168  };
169 
170 
173  enum LinkType {
176  };
177 
178 
181  enum ElementType {
185  };
186 
187 
194  };
195 
205  };
206 
207 
208 
213  struct OpenDriveLink {
218  OpenDriveLink(LinkType linkTypeArg, const std::string& elementIDArg)
219  : linkType(linkTypeArg), elementID(elementIDArg),
221 
223  std::string elementID;
226  };
227 
228 
241  OpenDriveGeometry(double lengthArg, double sArg, double xArg, double yArg, double hdgArg)
242  : length(lengthArg), s(sArg), x(xArg), y(yArg), hdg(hdgArg),
244 
245  double length;
246  double s;
247  double x;
248  double y;
249  double hdg;
251  std::vector<double> params;
252  };
253 
258  struct Poly3 {
266  Poly3(double _s, double _a, double _b, double _c, double _d) :
267  s(_s), a(_a), b(_b), c(_c), d(_d) {}
268 
269  double computeAt(double pos) const {
270  const double ds = pos - s;
271  return a + b * ds + c * ds * ds + d * ds * ds * ds;
272  }
273 
274  double s;
275  double a;
276  double b;
277  double c;
278  double d;
279  };
280 
285 
286 
291  struct OpenDriveLane {
297  OpenDriveLane(int idArg, const std::string& levelArg, const std::string& typeArg) :
298  id(idArg), level(levelArg), type(typeArg), successor(UNSET_CONNECTION), predecessor(UNSET_CONNECTION),
299  speed(0), width(NBEdge::UNSPECIFIED_WIDTH) { }
300 
301  int id;
302  std::string level;
303  std::string type;
304  int successor;
306  std::vector<std::pair<double, double> > speeds;
307  double speed;
308  double width; //The lane's maximum width
309  std::vector<OpenDriveWidth> widthData;
310  };
311 
312 
321  OpenDriveLaneSection(double sArg);
322 
323 
330  void buildLaneMapping(const NBTypeCont& tc);
331 
332 
338  std::map<int, int> getInnerConnections(OpenDriveXMLTag dir, const OpenDriveLaneSection& prev);
339 
340 
341  bool buildSpeedChanges(const NBTypeCont& tc, std::vector<OpenDriveLaneSection>& newSections);
342  OpenDriveLaneSection buildLaneSection(double startPos);
343 
345  double s;
347  double sOrig;
349  double length;
351  std::map<int, int> laneMap;
353  std::map<OpenDriveXMLTag, std::vector<OpenDriveLane> > lanesByDir;
355  std::string sumoID;
359  std::string rightType;
360  std::string leftType;
361  };
362 
363 
364 
378  OpenDriveSignal(const std::string& idArg, const std::string typeArg, const std::string nameArg, int orientationArg, bool dynamicArg, double sArg)
379  : id(idArg), type(typeArg), name(nameArg), orientation(orientationArg), dynamic(dynamicArg), s(sArg) { }
380 
381  std::string id;
382  std::string type;
383  std::string name;
385  bool dynamic;
386  double s;
387  };
388 
389 
394  struct Connection {
395  std::string fromEdge;
396  std::string toEdge;
397  int fromLane;
398  int toLane;
401  bool all;
402  std::string origID;
403  int origLane;
405 
406  std::string getDescription() const {
407  return "Connection from=" + fromEdge + "_" + toString(fromLane)
408  + " to=" + toEdge + "_" + toString(toLane)
409  + " fromCP=" + (fromCP == OPENDRIVE_CP_START ? "start" : fromCP == OPENDRIVE_CP_END ? "end" : "unknown")
410  + " toCP=" + (toCP == OPENDRIVE_CP_START ? "start" : toCP == OPENDRIVE_CP_END ? "end" : "unknown")
411  + " all=" + toString(all);
412  //+ " origID=" + origID + " origLane=" + toString(origLane);
413  }
414  };
415 
421  std::string type;
422  std::string name;
423  std::string id;
424  double s;
425  double t;
426  double zOffset;
427  double length;
428  double width;
429  double height;
430  double radius;
431  double hdg;
432  double pitch;
433  double roll;
434  };
435 
440  struct OpenDriveEdge {
441  OpenDriveEdge(const std::string& idArg, const std::string& streetNameArg, const std::string& junctionArg, double lengthArg) :
442  id(idArg),
443  streetName(streetNameArg),
444  junction(junctionArg),
445  length(lengthArg),
446  from(0),
447  to(0) {
448  isInner = junction != "" && junction != "-1";
449  }
450 
451 
458  int getPriority(OpenDriveXMLTag dir) const;
459 
460 
462  std::string id;
464  std::string streetName;
466  std::string junction;
468  double length;
469  std::vector<OpenDriveLink> links;
470  std::vector<OpenDriveGeometry> geometries;
471  std::vector<OpenDriveElevation> elevations;
472  std::vector<OpenDriveLaneOffset> offsets;
476  std::vector<double> laneOffsets;
477  std::vector<OpenDriveLaneSection> laneSections;
478  std::vector<OpenDriveSignal> signals;
479  std::set<Connection> connections;
480  std::vector<OpenDriveObject> objects;
481  bool isInner;
482  };
483 
484 
487  public:
489  explicit sections_by_s_sorter() { }
490 
493  return ls1.s < ls2.s;
494  }
495  };
496 
497  /* @brief A class for search in position/speed tuple vectors for the given position */
499  public:
501  explicit same_position_finder(double pos) : myPosition(pos) { }
502 
504  bool operator()(const std::pair<double, double>& ps) {
505  return ps.first == myPosition;
506  }
507 
508  private:
509  same_position_finder& operator=(const same_position_finder&); // just to avoid a compiler warning
510  private:
512  double myPosition;
513 
514  };
515 
516 protected:
521  NIImporter_OpenDrive(const NBTypeCont& tc, std::map<std::string, OpenDriveEdge*>& edges);
522 
523 
526 
527 
528 
530 
531 
542  void myStartElement(int element, const SUMOSAXAttributes& attrs);
543 
552  void myCharacters(int element, const std::string& chars);
553 
554 
561  void myEndElement(int element);
563 
564 
565 
566 private:
567  void addLink(LinkType lt, const std::string& elementType, const std::string& elementID,
568  const std::string& contactPoint);
569  void addGeometryShape(GeometryType type, const std::vector<double>& vals);
570  static void setEdgeLinks2(OpenDriveEdge& e, const std::map<std::string, OpenDriveEdge*>& edges);
571  static void buildConnectionsToOuter(const Connection& c, const std::map<std::string, OpenDriveEdge*>& innerEdges, std::vector<Connection>& into, std::set<Connection>& seen);
572  static bool laneSectionsConnected(OpenDriveEdge* edge, int in, int out);
573  friend bool operator<(const Connection& c1, const Connection& c2);
574  static std::string revertID(const std::string& id);
577 
578  std::map<std::string, OpenDriveEdge*>& myEdges;
579  std::vector<int> myElementStack;
581  std::string myCurrentJunctionID;
586 
587  static bool myImportAllTypes;
588  static bool myImportWidths;
589  static double myMinWidth;
591 
592 
593 protected:
607  static NBNode* getOrBuildNode(const std::string& id, const Position& pos, NBNodeCont& nc);
608 
609 
610  static PositionVector geomFromLine(const OpenDriveEdge& e, const OpenDriveGeometry& g, double resolution);
611  static PositionVector geomFromSpiral(const OpenDriveEdge& e, const OpenDriveGeometry& g, double resolution);
612  static PositionVector geomFromArc(const OpenDriveEdge& e, const OpenDriveGeometry& g, double resolution);
613  static PositionVector geomFromPoly(const OpenDriveEdge& e, const OpenDriveGeometry& g, double resolution);
614  static PositionVector geomFromParamPoly(const OpenDriveEdge& e, const OpenDriveGeometry& g, double resolution);
615  static Position calculateStraightEndPoint(double hdg, double length, const Position& start);
616  static void calculateCurveCenter(double* ad_x, double* ad_y, double ad_radius, double ad_hdg);
617  static void calcPointOnCurve(double* ad_x, double* ad_y, double ad_centerX, double ad_centerY,
618  double ad_r, double ad_length);
619 
620 
624  static void computeShapes(std::map<std::string, OpenDriveEdge*>& edges);
625 
626  static bool hasNonLinearElevation(OpenDriveEdge& e);
627 
633  static void revisitLaneSections(const NBTypeCont& tc, std::map<std::string, OpenDriveEdge*>& edges);
634 
635  static void setNodeSecure(NBNodeCont& nc, OpenDriveEdge& e,
636  const std::string& nodeID, NIImporter_OpenDrive::LinkType lt);
637 
638 
639  static void splitMinWidths(OpenDriveEdge* e, const NBTypeCont& tc, double minDist);
640 
641  static void findWidthSplit(const NBTypeCont& tc, std::vector<OpenDriveLane>& lanes,
642  int section, double sectionStart, double sectionEnd,
643  std::vector<double>& splitPositions);
644 
645  static void sanitizeWidths(OpenDriveEdge* e);
646  static void sanitizeWidths(std::vector<OpenDriveLane>& lanes, double length);
647 
648  static void setStraightConnections(std::vector<OpenDriveLane>& lanes);
649  static void recomputeWidths(OpenDriveLaneSection& sec, double start, double end, double sectionStart, double sectionEnd);
650  static void recomputeWidths(std::vector<OpenDriveLane>& lanes, double start, double end, double sectionStart, double sectionEnd);
651  static void setLaneAttributes(const OpenDriveEdge* e, NBEdge::Lane& sumoLane, const OpenDriveLane& odLane, bool saveOrigIDs, const NBTypeCont& tc);
652 
655 
658 
659 
660 
661 };
662 
663 
664 #endif
665 
666 /****************************************************************************/
667 
GenericSAXHandler.h
NIImporter_OpenDrive::OpenDriveEdge::getPriority
int getPriority(OpenDriveXMLTag dir) const
Returns the edge's priority, regarding the direction.
Definition: NIImporter_OpenDrive.cpp:1737
NIImporter_OpenDrive::OpenDriveSignal
Representation of a signal.
Definition: NIImporter_OpenDrive.h:369
NIImporter_OpenDrive::OpenDriveEdge::to
NBNode * to
Definition: NIImporter_OpenDrive.h:474
NIImporter_OpenDrive::OPENDRIVE_TAG_SIGNAL
@ OPENDRIVE_TAG_SIGNAL
Definition: NIImporter_OpenDrive.h:100
NIImporter_OpenDrive::OPENDRIVE_TAG_CENTER
@ OPENDRIVE_TAG_CENTER
Definition: NIImporter_OpenDrive.h:97
NIImporter_OpenDrive::addLink
void addLink(LinkType lt, const std::string &elementType, const std::string &elementID, const std::string &contactPoint)
Definition: NIImporter_OpenDrive.cpp:2151
NIImporter_OpenDrive::myImportInternalShapes
static bool myImportInternalShapes
Definition: NIImporter_OpenDrive.h:590
NIImporter_OpenDrive::OPENDRIVE_ATTR_LEVEL
@ OPENDRIVE_ATTR_LEVEL
Definition: NIImporter_OpenDrive.h:157
NIImporter_OpenDrive::OpenDriveEdge
Representation of an openDrive "link".
Definition: NIImporter_OpenDrive.h:440
NIImporter_OpenDrive::OPENDRIVE_TAG_SUCCESSOR
@ OPENDRIVE_TAG_SUCCESSOR
Definition: NIImporter_OpenDrive.h:85
NIImporter_OpenDrive::OpenDriveLaneSection::sOrig
double sOrig
The original starting offset of this lane section (differs from s if the section had to be split)
Definition: NIImporter_OpenDrive.h:347
NIImporter_OpenDrive::myTypeContainer
const NBTypeCont & myTypeContainer
Definition: NIImporter_OpenDrive.h:575
NIImporter_OpenDrive::OpenDriveLaneSection::getInnerConnections
std::map< int, int > getInnerConnections(OpenDriveXMLTag dir, const OpenDriveLaneSection &prev)
Returns the links from the previous to this lane section.
Definition: NIImporter_OpenDrive.cpp:1607
NIImporter_OpenDrive::Poly3::computeAt
double computeAt(double pos) const
Definition: NIImporter_OpenDrive.h:269
NIImporter_OpenDrive::Connection::origLane
int origLane
Definition: NIImporter_OpenDrive.h:403
NIImporter_OpenDrive::OpenDriveLaneSection::laneMap
std::map< int, int > laneMap
A mapping from OpenDrive to SUMO-index (the first is signed, the second unsigned)
Definition: NIImporter_OpenDrive.h:351
NIImporter_OpenDrive::geomFromPoly
static PositionVector geomFromPoly(const OpenDriveEdge &e, const OpenDriveGeometry &g, double resolution)
Definition: NIImporter_OpenDrive.cpp:1464
NIImporter_OpenDrive::OpenDriveObject::height
double height
Definition: NIImporter_OpenDrive.h:429
NIImporter_OpenDrive::OPENDRIVE_GT_SPIRAL
@ OPENDRIVE_GT_SPIRAL
Definition: NIImporter_OpenDrive.h:201
NIImporter_OpenDrive::myCurrentLaneDirection
OpenDriveXMLTag myCurrentLaneDirection
Definition: NIImporter_OpenDrive.h:580
NBNetBuilder
Instance responsible for building networks.
Definition: NBNetBuilder.h:109
NIImporter_OpenDrive::OPENDRIVE_TAG_CONNECTION
@ OPENDRIVE_TAG_CONNECTION
Definition: NIImporter_OpenDrive.h:102
NIImporter_OpenDrive::OPENDRIVE_ATTR_FROM
@ OPENDRIVE_ATTR_FROM
Definition: NIImporter_OpenDrive.h:162
NIImporter_OpenDrive::OpenDriveEdge::junction
std::string junction
The id of the junction the edge belongs to.
Definition: NIImporter_OpenDrive.h:466
NIImporter_OpenDrive::same_position_finder::operator=
same_position_finder & operator=(const same_position_finder &)
NIImporter_OpenDrive::OPENDRIVE_GT_UNKNOWN
@ OPENDRIVE_GT_UNKNOWN
Definition: NIImporter_OpenDrive.h:199
NIImporter_OpenDrive::OpenDriveSignal::name
std::string name
Definition: NIImporter_OpenDrive.h:383
NIImporter_OpenDrive::OpenDriveLaneSection::length
double length
The length of this lane section.
Definition: NIImporter_OpenDrive.h:349
NIImporter_OpenDrive::OPENDRIVE_TAG_LANELINK
@ OPENDRIVE_TAG_LANELINK
Definition: NIImporter_OpenDrive.h:103
NIImporter_OpenDrive::OpenDriveGeometry::x
double x
Definition: NIImporter_OpenDrive.h:247
NIImporter_OpenDrive::OpenDriveLane::width
double width
Definition: NIImporter_OpenDrive.h:308
NIImporter_OpenDrive::OPENDRIVE_ATTR_DISTANCE
@ OPENDRIVE_ATTR_DISTANCE
Definition: NIImporter_OpenDrive.h:126
NIImporter_OpenDrive::OPENDRIVE_TAG_GEOMETRY
@ OPENDRIVE_TAG_GEOMETRY
Definition: NIImporter_OpenDrive.h:88
NIImporter_OpenDrive::OpenDriveEdge::connections
std::set< Connection > connections
Definition: NIImporter_OpenDrive.h:479
NIImporter_OpenDrive::OpenDriveEdge::laneSections
std::vector< OpenDriveLaneSection > laneSections
Definition: NIImporter_OpenDrive.h:477
NIImporter_OpenDrive::geomFromSpiral
static PositionVector geomFromSpiral(const OpenDriveEdge &e, const OpenDriveGeometry &g, double resolution)
Definition: NIImporter_OpenDrive.cpp:1354
NIImporter_OpenDrive::OpenDriveLaneSection
Representation of a lane section.
Definition: NIImporter_OpenDrive.h:317
NIImporter_OpenDrive::Connection::fromLane
int fromLane
Definition: NIImporter_OpenDrive.h:397
NIImporter_OpenDrive::sanitizeWidths
static void sanitizeWidths(OpenDriveEdge *e)
Definition: NIImporter_OpenDrive.cpp:2203
NIImporter_OpenDrive::Connection::all
bool all
Definition: NIImporter_OpenDrive.h:401
NIImporter_OpenDrive::NIImporter_OpenDrive
NIImporter_OpenDrive(const NBTypeCont &tc, std::map< std::string, OpenDriveEdge * > &edges)
Constructor.
Definition: NIImporter_OpenDrive.cpp:1764
NIImporter_OpenDrive::OPENDRIVE_TAG_ELEVATION
@ OPENDRIVE_TAG_ELEVATION
Definition: NIImporter_OpenDrive.h:106
NIImporter_OpenDrive::OpenDriveObject::length
double length
Definition: NIImporter_OpenDrive.h:427
NIImporter_OpenDrive::OPENDRIVE_ATTR_C
@ OPENDRIVE_ATTR_C
Definition: NIImporter_OpenDrive.h:145
NIImporter_OpenDrive::OPENDRIVE_ATTR_CONTACTPOINT
@ OPENDRIVE_ATTR_CONTACTPOINT
Definition: NIImporter_OpenDrive.h:134
NIImporter_OpenDrive::OpenDriveSignal::OpenDriveSignal
OpenDriveSignal(const std::string &idArg, const std::string typeArg, const std::string nameArg, int orientationArg, bool dynamicArg, double sArg)
Constructor.
Definition: NIImporter_OpenDrive.h:378
NIImporter_OpenDrive::OpenDriveLane
Representation of a lane.
Definition: NIImporter_OpenDrive.h:291
NIImporter_OpenDrive::OpenDriveLane::speed
double speed
The lane's speed (set in post-processing)
Definition: NIImporter_OpenDrive.h:307
NIImporter_OpenDrive::myCharacters
void myCharacters(int element, const std::string &chars)
Callback method for characters to implement by derived classes.
Definition: NIImporter_OpenDrive.cpp:2087
NIImporter_OpenDrive::OpenDriveLane::OpenDriveLane
OpenDriveLane(int idArg, const std::string &levelArg, const std::string &typeArg)
Constructor.
Definition: NIImporter_OpenDrive.h:297
NIImporter_OpenDrive::OPENDRIVE_ATTR_A
@ OPENDRIVE_ATTR_A
Definition: NIImporter_OpenDrive.h:143
NIImporter_OpenDrive::OPENDRIVE_ATTR_DU
@ OPENDRIVE_ATTR_DU
Definition: NIImporter_OpenDrive.h:150
NIImporter_OpenDrive::OpenDriveLane::level
std::string level
The lane's level (not used)
Definition: NIImporter_OpenDrive.h:302
NIImporter_OpenDrive::OpenDriveLane::predecessor
int predecessor
The lane's predecessor lane.
Definition: NIImporter_OpenDrive.h:305
NIImporter_OpenDrive::OPENDRIVE_CP_UNKNOWN
@ OPENDRIVE_CP_UNKNOWN
Definition: NIImporter_OpenDrive.h:191
NIImporter_OpenDrive::calculateStraightEndPoint
static Position calculateStraightEndPoint(double hdg, double length, const Position &start)
Definition: NIImporter_OpenDrive.cpp:1500
NIImporter_OpenDrive::sections_by_s_sorter::sections_by_s_sorter
sections_by_s_sorter()
Constructor.
Definition: NIImporter_OpenDrive.h:489
NIImporter_OpenDrive::OPENDRIVE_TAG_SPIRAL
@ OPENDRIVE_TAG_SPIRAL
Definition: NIImporter_OpenDrive.h:90
NIImporter_OpenDrive::OpenDriveLaneSection::rightType
std::string rightType
the composite type built from all used lane types
Definition: NIImporter_OpenDrive.h:359
NIImporter_OpenDrive::OpenDriveObject::t
double t
Definition: NIImporter_OpenDrive.h:425
NIImporter_OpenDrive::OpenDriveEdge::signals
std::vector< OpenDriveSignal > signals
Definition: NIImporter_OpenDrive.h:478
NIImporter_OpenDrive::OPENDRIVE_ATTR_INCOMINGROAD
@ OPENDRIVE_ATTR_INCOMINGROAD
Definition: NIImporter_OpenDrive.h:160
NIImporter_OpenDrive::OpenDriveLaneOffset
Poly3 OpenDriveLaneOffset
Definition: NIImporter_OpenDrive.h:283
NIImporter_OpenDrive::OPENDRIVE_ATTR_AU
@ OPENDRIVE_ATTR_AU
Definition: NIImporter_OpenDrive.h:147
NIImporter_OpenDrive::OPENDRIVE_ATTR_WIDTH
@ OPENDRIVE_ATTR_WIDTH
Definition: NIImporter_OpenDrive.h:124
PositionVector
A list of positions.
Definition: PositionVector.h:45
NIImporter_OpenDrive::Connection::fromEdge
std::string fromEdge
Definition: NIImporter_OpenDrive.h:395
NIImporter_OpenDrive::OPENDRIVE_ATTR_S
@ OPENDRIVE_ATTR_S
Definition: NIImporter_OpenDrive.h:135
NIImporter_OpenDrive::OpenDriveObject::radius
double radius
Definition: NIImporter_OpenDrive.h:430
NIImporter_OpenDrive::OpenDriveXMLTag
OpenDriveXMLTag
Numbers representing openDrive-XML - element names.
Definition: NIImporter_OpenDrive.h:80
NIImporter_OpenDrive::OPENDRIVE_GT_ARC
@ OPENDRIVE_GT_ARC
Definition: NIImporter_OpenDrive.h:202
NIImporter_OpenDrive::OPENDRIVE_TAG_REPEAT
@ OPENDRIVE_TAG_REPEAT
Definition: NIImporter_OpenDrive.h:109
NIImporter_OpenDrive::myConnectionWasEmpty
bool myConnectionWasEmpty
Definition: NIImporter_OpenDrive.h:585
NIImporter_OpenDrive::OPENDRIVE_ATTR_WIDTHSTART
@ OPENDRIVE_ATTR_WIDTHSTART
Definition: NIImporter_OpenDrive.h:129
NIImporter_OpenDrive::OPENDRIVE_ATTR_CV
@ OPENDRIVE_ATTR_CV
Definition: NIImporter_OpenDrive.h:153
NBNodeCont
Container for nodes during the netbuilding process.
Definition: NBNodeCont.h:59
NIImporter_OpenDrive::revisitLaneSections
static void revisitLaneSections(const NBTypeCont &tc, std::map< std::string, OpenDriveEdge * > &edges)
Rechecks lane sections of the given edges.
Definition: NIImporter_OpenDrive.cpp:1273
NIImporter_OpenDrive::OPENDRIVE_ATTR_TEND
@ OPENDRIVE_ATTR_TEND
Definition: NIImporter_OpenDrive.h:128
NIImporter_OpenDrive::OpenDriveLane::type
std::string type
The lane's type.
Definition: NIImporter_OpenDrive.h:303
NBEdge
The representation of a single edge during network building.
Definition: NBEdge.h:91
NIImporter_OpenDrive::geomFromLine
static PositionVector geomFromLine(const OpenDriveEdge &e, const OpenDriveGeometry &g, double resolution)
Definition: NIImporter_OpenDrive.cpp:1333
NIImporter_OpenDrive::OpenDriveObject::id
std::string id
Definition: NIImporter_OpenDrive.h:423
NIImporter_OpenDrive::OpenDriveGeometry::s
double s
Definition: NIImporter_OpenDrive.h:246
NIImporter_OpenDrive::OpenDriveObject::s
double s
Definition: NIImporter_OpenDrive.h:424
NIImporter_OpenDrive::OPENDRIVE_ATTR_ELEMENTID
@ OPENDRIVE_ATTR_ELEMENTID
Definition: NIImporter_OpenDrive.h:133
NIImporter_OpenDrive::OPENDRIVE_ATTR_PRANGE
@ OPENDRIVE_ATTR_PRANGE
Definition: NIImporter_OpenDrive.h:155
NIImporter_OpenDrive::OpenDriveElevation
Poly3 OpenDriveElevation
LaneOffset has the same fields as Elevation.
Definition: NIImporter_OpenDrive.h:282
NIImporter_OpenDrive::OPENDRIVE_ATTR_ID
@ OPENDRIVE_ATTR_ID
Definition: NIImporter_OpenDrive.h:122
NIImporter_OpenDrive::OpenDriveLane::id
int id
The lane's id.
Definition: NIImporter_OpenDrive.h:301
NIImporter_OpenDrive::OPENDRIVE_ATTR_CURVSTART
@ OPENDRIVE_ATTR_CURVSTART
Definition: NIImporter_OpenDrive.h:140
NIImporter_OpenDrive::Connection
A connection between two roads.
Definition: NIImporter_OpenDrive.h:394
NIImporter_OpenDrive
Importer for networks stored in openDrive format.
Definition: NIImporter_OpenDrive.h:53
NIImporter_OpenDrive::OPENDRIVE_TAG_ROAD
@ OPENDRIVE_TAG_ROAD
Definition: NIImporter_OpenDrive.h:83
NIImporter_OpenDrive::OpenDriveSignal::type
std::string type
Definition: NIImporter_OpenDrive.h:382
NIImporter_OpenDrive::OPENDRIVE_TAG_OBJECT
@ OPENDRIVE_TAG_OBJECT
Definition: NIImporter_OpenDrive.h:108
NIImporter_OpenDrive::Connection::getDescription
std::string getDescription() const
Definition: NIImporter_OpenDrive.h:406
NIImporter_OpenDrive::OPENDRIVE_ATTR_ELEMENTTYPE
@ OPENDRIVE_ATTR_ELEMENTTYPE
Definition: NIImporter_OpenDrive.h:132
NIImporter_OpenDrive::Poly3::d
double d
Definition: NIImporter_OpenDrive.h:278
NIImporter_OpenDrive::Poly3::c
double c
Definition: NIImporter_OpenDrive.h:277
NIImporter_OpenDrive::OPENDRIVE_ATTR_WIDTHEND
@ OPENDRIVE_ATTR_WIDTHEND
Definition: NIImporter_OpenDrive.h:130
NIImporter_OpenDrive::OPENDRIVE_ATTR_CURVATURE
@ OPENDRIVE_ATTR_CURVATURE
Definition: NIImporter_OpenDrive.h:142
NIImporter_OpenDrive::OpenDriveGeometry::y
double y
Definition: NIImporter_OpenDrive.h:248
NIImporter_OpenDrive::OPENDRIVE_GT_LINE
@ OPENDRIVE_GT_LINE
Definition: NIImporter_OpenDrive.h:200
NIImporter_OpenDrive::OPENDRIVE_ATTR_BV
@ OPENDRIVE_ATTR_BV
Definition: NIImporter_OpenDrive.h:152
NIImporter_OpenDrive::myEndElement
void myEndElement(int element)
Called when a closing tag occurs.
Definition: NIImporter_OpenDrive.cpp:2115
StringBijection
Definition: StringBijection.h:43
NIImporter_OpenDrive::OpenDriveEdge::isInner
bool isInner
Definition: NIImporter_OpenDrive.h:481
NIImporter_OpenDrive::geomFromParamPoly
static PositionVector geomFromParamPoly(const OpenDriveEdge &e, const OpenDriveGeometry &g, double resolution)
Definition: NIImporter_OpenDrive.cpp:1481
NIImporter_OpenDrive::OPENDRIVE_ATTR_X
@ OPENDRIVE_ATTR_X
Definition: NIImporter_OpenDrive.h:137
NIImporter_OpenDrive::OpenDriveGeometry
Representation of an OpenDrive geometry part.
Definition: NIImporter_OpenDrive.h:233
NIImporter_OpenDrive::OpenDriveEdge::objects
std::vector< OpenDriveObject > objects
Definition: NIImporter_OpenDrive.h:480
NIImporter_OpenDrive::OpenDriveEdge::length
double length
The length of the edge.
Definition: NIImporter_OpenDrive.h:468
NIImporter_OpenDrive::OPENDRIVE_ATTR_DYNAMIC
@ OPENDRIVE_ATTR_DYNAMIC
Definition: NIImporter_OpenDrive.h:159
NIImporter_OpenDrive::splitMinWidths
static void splitMinWidths(OpenDriveEdge *e, const NBTypeCont &tc, double minDist)
Definition: NIImporter_OpenDrive.cpp:2246
NIImporter_OpenDrive::OPENDRIVE_ATTR_T
@ OPENDRIVE_ATTR_T
Definition: NIImporter_OpenDrive.h:136
NIImporter_OpenDrive::calcPointOnCurve
static void calcPointOnCurve(double *ad_x, double *ad_y, double ad_centerX, double ad_centerY, double ad_r, double ad_length)
Definition: NIImporter_OpenDrive.cpp:1540
NIImporter_OpenDrive::OPENDRIVE_TAG_LANE
@ OPENDRIVE_TAG_LANE
Definition: NIImporter_OpenDrive.h:99
NIImporter_OpenDrive::OPENDRIVE_ATTR_RADIUS
@ OPENDRIVE_ATTR_RADIUS
Definition: NIImporter_OpenDrive.h:125
NIImporter_OpenDrive::buildConnectionsToOuter
static void buildConnectionsToOuter(const Connection &c, const std::map< std::string, OpenDriveEdge * > &innerEdges, std::vector< Connection > &into, std::set< Connection > &seen)
Definition: NIImporter_OpenDrive.cpp:796
NIImporter_OpenDrive::OpenDriveLaneSection::rightLaneNumber
int rightLaneNumber
The number of lanes on the right and on the left side, respectively.
Definition: NIImporter_OpenDrive.h:357
NIImporter_OpenDrive::OpenDriveGeometry::hdg
double hdg
Definition: NIImporter_OpenDrive.h:249
NIImporter_OpenDrive::same_position_finder::operator()
bool operator()(const std::pair< double, double > &ps)
the comparing function
Definition: NIImporter_OpenDrive.h:504
NIImporter_OpenDrive::OpenDriveObject::name
std::string name
Definition: NIImporter_OpenDrive.h:422
NIImporter_OpenDrive::OPENDRIVE_TAG_LANEOFFSET
@ OPENDRIVE_TAG_LANEOFFSET
Definition: NIImporter_OpenDrive.h:95
NIImporter_OpenDrive::myImportWidths
static bool myImportWidths
Definition: NIImporter_OpenDrive.h:588
NIImporter_OpenDrive::OPENDRIVE_TAG_RIGHT
@ OPENDRIVE_TAG_RIGHT
Definition: NIImporter_OpenDrive.h:98
NIImporter_OpenDrive::Poly3
Definition: NIImporter_OpenDrive.h:258
NIImporter_OpenDrive::OpenDriveEdge::offsets
std::vector< OpenDriveLaneOffset > offsets
Definition: NIImporter_OpenDrive.h:472
Position
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:38
NIImporter_OpenDrive::OpenDriveEdge::links
std::vector< OpenDriveLink > links
Definition: NIImporter_OpenDrive.h:469
NIImporter_OpenDrive::OpenDriveLaneSection::buildSpeedChanges
bool buildSpeedChanges(const NBTypeCont &tc, std::vector< OpenDriveLaneSection > &newSections)
Definition: NIImporter_OpenDrive.cpp:1670
NIImporter_OpenDrive::Poly3::Poly3
Poly3(double _s, double _a, double _b, double _c, double _d)
Constructor.
Definition: NIImporter_OpenDrive.h:266
NIImporter_OpenDrive::OPENDRIVE_ATTR_TYPE
@ OPENDRIVE_ATTR_TYPE
Definition: NIImporter_OpenDrive.h:156
NIImporter_OpenDrive::Poly3::b
double b
Definition: NIImporter_OpenDrive.h:276
NIImporter_OpenDrive::OPENDRIVE_TAG_PREDECESSOR
@ OPENDRIVE_TAG_PREDECESSOR
Definition: NIImporter_OpenDrive.h:84
NIImporter_OpenDrive::OPENDRIVE_TAG_LINE
@ OPENDRIVE_TAG_LINE
Definition: NIImporter_OpenDrive.h:89
OptionsCont
A storage for options typed value containers)
Definition: OptionsCont.h:89
NIImporter_OpenDrive::OpenDriveGeometry::OpenDriveGeometry
OpenDriveGeometry(double lengthArg, double sArg, double xArg, double yArg, double hdgArg)
Constructor.
Definition: NIImporter_OpenDrive.h:241
NIImporter_OpenDrive::myEdges
std::map< std::string, OpenDriveEdge * > & myEdges
Definition: NIImporter_OpenDrive.h:578
NIImporter_OpenDrive::OPENDRIVE_TAG_NOTHING
@ OPENDRIVE_TAG_NOTHING
Definition: NIImporter_OpenDrive.h:81
NIImporter_OpenDrive::OPENDRIVE_ATTR_NAME
@ OPENDRIVE_ATTR_NAME
Definition: NIImporter_OpenDrive.h:166
NIImporter_OpenDrive::OPENDRIVE_TAG_GEOREFERENCE
@ OPENDRIVE_TAG_GEOREFERENCE
Definition: NIImporter_OpenDrive.h:107
NIImporter_OpenDrive::GeometryType
GeometryType
OpenDrive geometry type enumeration.
Definition: NIImporter_OpenDrive.h:198
NIImporter_OpenDrive::OPENDRIVE_ATTR_Y
@ OPENDRIVE_ATTR_Y
Definition: NIImporter_OpenDrive.h:138
NIImporter_OpenDrive::myCurrentIncomingRoad
std::string myCurrentIncomingRoad
Definition: NIImporter_OpenDrive.h:582
NIImporter_OpenDrive::OpenDriveLaneSection::leftType
std::string leftType
Definition: NIImporter_OpenDrive.h:360
NIImporter_OpenDrive::OPENDRIVE_TAG_LEFT
@ OPENDRIVE_TAG_LEFT
Definition: NIImporter_OpenDrive.h:96
NIImporter_OpenDrive::OpenDriveSignal::dynamic
bool dynamic
Definition: NIImporter_OpenDrive.h:385
NIImporter_OpenDrive::ElementType
ElementType
OpenDrive element type enumeration.
Definition: NIImporter_OpenDrive.h:181
NIImporter_OpenDrive::OpenDriveEdge::laneOffsets
std::vector< double > laneOffsets
Definition: NIImporter_OpenDrive.h:476
NIImporter_OpenDrive::OpenDriveObject::hdg
double hdg
Definition: NIImporter_OpenDrive.h:431
NIImporter_OpenDrive::OPENDRIVE_ATTR_HDG
@ OPENDRIVE_ATTR_HDG
Definition: NIImporter_OpenDrive.h:139
NIImporter_OpenDrive::OPENDRIVE_TAG_LANESECTION
@ OPENDRIVE_TAG_LANESECTION
Definition: NIImporter_OpenDrive.h:94
NIImporter_OpenDrive::OpenDriveObject::width
double width
Definition: NIImporter_OpenDrive.h:428
NIImporter_OpenDrive::setEdgeLinks2
static void setEdgeLinks2(OpenDriveEdge &e, const std::map< std::string, OpenDriveEdge * > &edges)
Definition: NIImporter_OpenDrive.cpp:1013
NIImporter_OpenDrive::OpenDriveEdge::id
std::string id
The id of the edge.
Definition: NIImporter_OpenDrive.h:462
NIImporter_OpenDrive::OpenDriveEdge::elevations
std::vector< OpenDriveElevation > elevations
Definition: NIImporter_OpenDrive.h:471
NIImporter_OpenDrive::myStartElement
void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
Definition: NIImporter_OpenDrive.cpp:1775
NIImporter_OpenDrive::OpenDriveObject::roll
double roll
Definition: NIImporter_OpenDrive.h:433
NIImporter_OpenDrive::OPENDRIVE_LT_SUCCESSOR
@ OPENDRIVE_LT_SUCCESSOR
Definition: NIImporter_OpenDrive.h:174
NIImporter_OpenDrive::myCurrentEdge
OpenDriveEdge myCurrentEdge
Definition: NIImporter_OpenDrive.h:576
toString
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Definition: ToString.h:47
NIImporter_OpenDrive::revertID
static std::string revertID(const std::string &id)
Definition: NIImporter_OpenDrive.cpp:1100
NIImporter_OpenDrive::OpenDriveGeometry::length
double length
Definition: NIImporter_OpenDrive.h:245
NIImporter_OpenDrive::ContactPoint
ContactPoint
OpenDrive contact type enumeration.
Definition: NIImporter_OpenDrive.h:190
NIImporter_OpenDrive::sections_by_s_sorter::operator()
int operator()(const OpenDriveLaneSection &ls1, const OpenDriveLaneSection &ls2)
Sorting function; compares OpenDriveLaneSection::s.
Definition: NIImporter_OpenDrive.h:492
NIImporter_OpenDrive::myElementStack
std::vector< int > myElementStack
Definition: NIImporter_OpenDrive.h:579
NIImporter_OpenDrive::Connection::origID
std::string origID
Definition: NIImporter_OpenDrive.h:402
NIImporter_OpenDrive::OpenDriveLaneSection::lanesByDir
std::map< OpenDriveXMLTag, std::vector< OpenDriveLane > > lanesByDir
The lanes, sorted by their direction.
Definition: NIImporter_OpenDrive.h:353
NIImporter_OpenDrive::OPENDRIVE_ATTR_REVMAJOR
@ OPENDRIVE_ATTR_REVMAJOR
Definition: NIImporter_OpenDrive.h:120
NIImporter_OpenDrive::OpenDriveLaneSection::OpenDriveLaneSection
OpenDriveLaneSection(double sArg)
Constructor.
Definition: NIImporter_OpenDrive.cpp:1564
NIImporter_OpenDrive::OPENDRIVE_CP_START
@ OPENDRIVE_CP_START
Definition: NIImporter_OpenDrive.h:192
NIImporter_OpenDrive::OPENDRIVE_ATTR_CURVEND
@ OPENDRIVE_ATTR_CURVEND
Definition: NIImporter_OpenDrive.h:141
NIImporter_OpenDrive::geomFromArc
static PositionVector geomFromArc(const OpenDriveEdge &e, const OpenDriveGeometry &g, double resolution)
Definition: NIImporter_OpenDrive.cpp:1419
NBTypeCont
A storage for available types of edges.
Definition: NBTypeCont.h:54
NIImporter_OpenDrive::OPENDRIVE_CP_END
@ OPENDRIVE_CP_END
Definition: NIImporter_OpenDrive.h:193
NIImporter_OpenDrive::OPENDRIVE_ATTR_SOFFSET
@ OPENDRIVE_ATTR_SOFFSET
Definition: NIImporter_OpenDrive.h:165
NIImporter_OpenDrive::hasNonLinearElevation
static bool hasNonLinearElevation(OpenDriveEdge &e)
Definition: NIImporter_OpenDrive.cpp:1143
NIImporter_OpenDrive::OPENDRIVE_ATTR_D
@ OPENDRIVE_ATTR_D
Definition: NIImporter_OpenDrive.h:146
NIImporter_OpenDrive::calculateCurveCenter
static void calculateCurveCenter(double *ad_x, double *ad_y, double ad_radius, double ad_hdg)
Definition: NIImporter_OpenDrive.cpp:1512
NBEdge::Lane
An (internal) definition of a single lane of an edge.
Definition: NBEdge.h:142
NIImporter_OpenDrive::OPENDRIVE_ATTR_NOTHING
@ OPENDRIVE_ATTR_NOTHING
Definition: NIImporter_OpenDrive.h:119
NIImporter_OpenDrive::OPENDRIVE_ATTR_DV
@ OPENDRIVE_ATTR_DV
Definition: NIImporter_OpenDrive.h:154
NIImporter_OpenDrive::myMinWidth
static double myMinWidth
Definition: NIImporter_OpenDrive.h:589
NIImporter_OpenDrive::Connection::fromCP
ContactPoint fromCP
Definition: NIImporter_OpenDrive.h:399
NIImporter_OpenDrive::OpenDriveGeometry::params
std::vector< double > params
Definition: NIImporter_OpenDrive.h:251
NIImporter_OpenDrive::OpenDriveLaneSection::s
double s
The starting offset of this lane section.
Definition: NIImporter_OpenDrive.h:345
NIImporter_OpenDrive::OPENDRIVE_TAG_WIDTH
@ OPENDRIVE_TAG_WIDTH
Definition: NIImporter_OpenDrive.h:104
NIImporter_OpenDrive::same_position_finder
Definition: NIImporter_OpenDrive.h:498
NIImporter_OpenDrive::myCurrentContactPoint
ContactPoint myCurrentContactPoint
Definition: NIImporter_OpenDrive.h:584
NIImporter_OpenDrive::OpenDriveEdge::OpenDriveEdge
OpenDriveEdge(const std::string &idArg, const std::string &streetNameArg, const std::string &junctionArg, double lengthArg)
Definition: NIImporter_OpenDrive.h:441
NIImporter_OpenDrive::OpenDriveObject::zOffset
double zOffset
Definition: NIImporter_OpenDrive.h:426
NIImporter_OpenDrive::OpenDriveLane::speeds
std::vector< std::pair< double, double > > speeds
List of positions/speeds of speed changes.
Definition: NIImporter_OpenDrive.h:306
NIImporter_OpenDrive::OpenDriveWidth
Poly3 OpenDriveWidth
Definition: NIImporter_OpenDrive.h:284
NIImporter_OpenDrive::getOrBuildNode
static NBNode * getOrBuildNode(const std::string &id, const Position &pos, NBNodeCont &nc)
Builds a node or returns the already built.
Definition: NIImporter_OpenDrive.cpp:1109
NIImporter_OpenDrive::recomputeWidths
static void recomputeWidths(OpenDriveLaneSection &sec, double start, double end, double sectionStart, double sectionEnd)
Definition: NIImporter_OpenDrive.cpp:2429
NIImporter_OpenDrive::setStraightConnections
static void setStraightConnections(std::vector< OpenDriveLane > &lanes)
Definition: NIImporter_OpenDrive.cpp:2421
NIImporter_OpenDrive::same_position_finder::myPosition
double myPosition
The position to search for.
Definition: NIImporter_OpenDrive.h:512
NIImporter_OpenDrive::OPENDRIVE_TAG_SPEED
@ OPENDRIVE_TAG_SPEED
Definition: NIImporter_OpenDrive.h:105
NIImporter_OpenDrive::laneSectionsConnected
static bool laneSectionsConnected(OpenDriveEdge *edge, int in, int out)
Definition: NIImporter_OpenDrive.cpp:985
NIImporter_OpenDrive::OPENDRIVE_ET_ROAD
@ OPENDRIVE_ET_ROAD
Definition: NIImporter_OpenDrive.h:183
NIImporter_OpenDrive::OPENDRIVE_ATTR_TSTART
@ OPENDRIVE_ATTR_TSTART
Definition: NIImporter_OpenDrive.h:127
NIImporter_OpenDrive::OPENDRIVE_ATTR_REVMINOR
@ OPENDRIVE_ATTR_REVMINOR
Definition: NIImporter_OpenDrive.h:121
NIImporter_OpenDrive::openDriveAttrs
static StringBijection< int >::Entry openDriveAttrs[]
The names of openDrive-XML attributes (for passing to GenericSAXHandler)
Definition: NIImporter_OpenDrive.h:657
UNSET_CONNECTION
#define UNSET_CONNECTION
Definition: NIImporter_OpenDrive.h:43
NIImporter_OpenDrive::OpenDriveSignal::id
std::string id
Definition: NIImporter_OpenDrive.h:381
NIImporter_OpenDrive::OPENDRIVE_ATTR_MAX
@ OPENDRIVE_ATTR_MAX
Definition: NIImporter_OpenDrive.h:164
NIImporter_OpenDrive::OPENDRIVE_GT_POLY3
@ OPENDRIVE_GT_POLY3
Definition: NIImporter_OpenDrive.h:203
config.h
NIImporter_OpenDrive::OpenDriveLaneSection::leftLaneNumber
int leftLaneNumber
Definition: NIImporter_OpenDrive.h:357
NIImporter_OpenDrive::OPENDRIVE_ATTR_AV
@ OPENDRIVE_ATTR_AV
Definition: NIImporter_OpenDrive.h:151
NIImporter_OpenDrive::setLaneAttributes
static void setLaneAttributes(const OpenDriveEdge *e, NBEdge::Lane &sumoLane, const OpenDriveLane &odLane, bool saveOrigIDs, const NBTypeCont &tc)
Definition: NIImporter_OpenDrive.cpp:758
NIImporter_OpenDrive::OPENDRIVE_TAG_POLY3
@ OPENDRIVE_TAG_POLY3
Definition: NIImporter_OpenDrive.h:92
NIImporter_OpenDrive::Poly3::s
double s
Definition: NIImporter_OpenDrive.h:274
NIImporter_OpenDrive::OpenDriveObject::pitch
double pitch
Definition: NIImporter_OpenDrive.h:432
NIImporter_OpenDrive::OPENDRIVE_ATTR_CONNECTINGROAD
@ OPENDRIVE_ATTR_CONNECTINGROAD
Definition: NIImporter_OpenDrive.h:161
NIImporter_OpenDrive::OPENDRIVE_TAG_HEADER
@ OPENDRIVE_TAG_HEADER
Definition: NIImporter_OpenDrive.h:82
NIImporter_OpenDrive::LinkType
LinkType
OpenDrive link type enumeration.
Definition: NIImporter_OpenDrive.h:173
NIImporter_OpenDrive::operator<
friend bool operator<(const Connection &c1, const Connection &c2)
Definition: NIImporter_OpenDrive.cpp:2189
NIImporter_OpenDrive::OPENDRIVE_ATTR_JUNCTION
@ OPENDRIVE_ATTR_JUNCTION
Definition: NIImporter_OpenDrive.h:131
NIImporter_OpenDrive::OpenDriveEdge::geometries
std::vector< OpenDriveGeometry > geometries
Definition: NIImporter_OpenDrive.h:470
NIImporter_OpenDrive::Connection::shape
PositionVector shape
Definition: NIImporter_OpenDrive.h:404
NIImporter_OpenDrive::OpenDriveObject
Definition: NIImporter_OpenDrive.h:420
NIImporter_OpenDrive::OPENDRIVE_TAG_JUNCTION
@ OPENDRIVE_TAG_JUNCTION
Definition: NIImporter_OpenDrive.h:101
NIImporter_OpenDrive::~NIImporter_OpenDrive
~NIImporter_OpenDrive()
Destructor.
Definition: NIImporter_OpenDrive.cpp:1770
NIImporter_OpenDrive::OPENDRIVE_ATTR_B
@ OPENDRIVE_ATTR_B
Definition: NIImporter_OpenDrive.h:144
NIImporter_OpenDrive::OpenDriveLane::successor
int successor
The lane's successor lane.
Definition: NIImporter_OpenDrive.h:304
NIImporter_OpenDrive::OPENDRIVE_ET_JUNCTION
@ OPENDRIVE_ET_JUNCTION
Definition: NIImporter_OpenDrive.h:184
NBNode
Represents a single node (junction) during network building.
Definition: NBNode.h:67
NIImporter_OpenDrive::OpenDriveObject::type
std::string type
Definition: NIImporter_OpenDrive.h:421
NIImporter_OpenDrive::OPENDRIVE_GT_PARAMPOLY3
@ OPENDRIVE_GT_PARAMPOLY3
Definition: NIImporter_OpenDrive.h:204
NIImporter_OpenDrive::OpenDriveLaneSection::buildLaneSection
OpenDriveLaneSection buildLaneSection(double startPos)
Definition: NIImporter_OpenDrive.cpp:1646
NIImporter_OpenDrive::OpenDriveXMLAttr
OpenDriveXMLAttr
Numbers representing openDrive-XML - attributes.
Definition: NIImporter_OpenDrive.h:118
NIImporter_OpenDrive::OPENDRIVE_LT_PREDECESSOR
@ OPENDRIVE_LT_PREDECESSOR
Definition: NIImporter_OpenDrive.h:175
NIImporter_OpenDrive::OPENDRIVE_ATTR_TO
@ OPENDRIVE_ATTR_TO
Definition: NIImporter_OpenDrive.h:163
NIImporter_OpenDrive::OpenDriveSignal::orientation
int orientation
Definition: NIImporter_OpenDrive.h:384
GenericSAXHandler
A handler which converts occuring elements and attributes into enums.
Definition: GenericSAXHandler.h:67
NIImporter_OpenDrive::addGeometryShape
void addGeometryShape(GeometryType type, const std::vector< double > &vals)
Definition: NIImporter_OpenDrive.cpp:2173
NIImporter_OpenDrive::OPENDRIVE_ATTR_BU
@ OPENDRIVE_ATTR_BU
Definition: NIImporter_OpenDrive.h:148
NIImporter_OpenDrive::Poly3::a
double a
Definition: NIImporter_OpenDrive.h:275
NIImporter_OpenDrive::setNodeSecure
static void setNodeSecure(NBNodeCont &nc, OpenDriveEdge &e, const std::string &nodeID, NIImporter_OpenDrive::LinkType lt)
Definition: NIImporter_OpenDrive.cpp:1123
NIImporter_OpenDrive::OPENDRIVE_ATTR_ORIENTATION
@ OPENDRIVE_ATTR_ORIENTATION
Definition: NIImporter_OpenDrive.h:158
NIImporter_OpenDrive::OpenDriveLaneSection::sumoID
std::string sumoID
The id (generic, without the optionally leading '-') of the edge generated for this section.
Definition: NIImporter_OpenDrive.h:355
NIImporter_OpenDrive::Connection::toCP
ContactPoint toCP
Definition: NIImporter_OpenDrive.h:400
NIImporter_OpenDrive::OpenDriveEdge::geom
PositionVector geom
Definition: NIImporter_OpenDrive.h:475
NIImporter_OpenDrive::OPENDRIVE_TAG_ARC
@ OPENDRIVE_TAG_ARC
Definition: NIImporter_OpenDrive.h:91
SUMOSAXAttributes
Encapsulated SAX-Attributes.
Definition: SUMOSAXAttributes.h:56
NIImporter_OpenDrive::OpenDriveSignal::s
double s
Definition: NIImporter_OpenDrive.h:386
NIImporter_OpenDrive::OPENDRIVE_ATTR_UNIT
@ OPENDRIVE_ATTR_UNIT
Definition: NIImporter_OpenDrive.h:167
NIImporter_OpenDrive::OPENDRIVE_ATTR_LENGTH
@ OPENDRIVE_ATTR_LENGTH
Definition: NIImporter_OpenDrive.h:123
NIImporter_OpenDrive::OPENDRIVE_ET_UNKNOWN
@ OPENDRIVE_ET_UNKNOWN
Definition: NIImporter_OpenDrive.h:182
NIImporter_OpenDrive::myCurrentConnectingRoad
std::string myCurrentConnectingRoad
Definition: NIImporter_OpenDrive.h:583
NIImporter_OpenDrive::OpenDriveEdge::from
NBNode * from
Definition: NIImporter_OpenDrive.h:473
PositionVector.h
NIImporter_OpenDrive::OpenDriveLaneSection::buildLaneMapping
void buildLaneMapping(const NBTypeCont &tc)
Build the mapping from OpenDrive to SUMO lanes.
Definition: NIImporter_OpenDrive.cpp:1572
NIImporter_OpenDrive::OPENDRIVE_TAG_PARAMPOLY3
@ OPENDRIVE_TAG_PARAMPOLY3
Definition: NIImporter_OpenDrive.h:93
NIImporter_OpenDrive::sections_by_s_sorter
A class for sorting lane sections by their s-value.
Definition: NIImporter_OpenDrive.h:486
NIImporter_OpenDrive::loadNetwork
static void loadNetwork(const OptionsCont &oc, NBNetBuilder &nb)
Loads content of the optionally given SUMO file.
Definition: NIImporter_OpenDrive.cpp:171
NIImporter_OpenDrive::Connection::toEdge
std::string toEdge
Definition: NIImporter_OpenDrive.h:396
NIImporter_OpenDrive::same_position_finder::same_position_finder
same_position_finder(double pos)
constructor
Definition: NIImporter_OpenDrive.h:501
NIImporter_OpenDrive::myImportAllTypes
static bool myImportAllTypes
Definition: NIImporter_OpenDrive.h:587
NIImporter_OpenDrive::findWidthSplit
static void findWidthSplit(const NBTypeCont &tc, std::vector< OpenDriveLane > &lanes, int section, double sectionStart, double sectionEnd, std::vector< double > &splitPositions)
Definition: NIImporter_OpenDrive.cpp:2339
NIImporter_OpenDrive::OPENDRIVE_ATTR_CU
@ OPENDRIVE_ATTR_CU
Definition: NIImporter_OpenDrive.h:149
NIImporter_OpenDrive::OpenDriveGeometry::type
GeometryType type
Definition: NIImporter_OpenDrive.h:250
NIImporter_OpenDrive::OpenDriveLane::widthData
std::vector< OpenDriveWidth > widthData
Definition: NIImporter_OpenDrive.h:309
NIImporter_OpenDrive::myCurrentJunctionID
std::string myCurrentJunctionID
Definition: NIImporter_OpenDrive.h:581
NIImporter_OpenDrive::OpenDriveEdge::streetName
std::string streetName
The road name of the edge.
Definition: NIImporter_OpenDrive.h:464
NIImporter_OpenDrive::Connection::toLane
int toLane
Definition: NIImporter_OpenDrive.h:398
NIImporter_OpenDrive::computeShapes
static void computeShapes(std::map< std::string, OpenDriveEdge * > &edges)
Computes a polygon representation of each edge's geometry.
Definition: NIImporter_OpenDrive.cpp:1156
NIImporter_OpenDrive::openDriveTags
static StringBijection< int >::Entry openDriveTags[]
The names of openDrive-XML elements (for passing to GenericSAXHandler)
Definition: NIImporter_OpenDrive.h:654