22 #ifndef NIImporter_OpenDrive_h
23 #define NIImporter_OpenDrive_h
51 #define UNSET_CONNECTION 100000
186 :
length(lengthArg),
s(sArg),
x(xArg),
y(yArg),
hdg(hdgArg),
204 OpenDriveLane(
int idArg,
const std::string& levelArg,
const std::string& typeArg)
228 unsigned int laneNum = 0;
229 const std::vector<OpenDriveLane> &dirLanes =
lanesByDir.find(dir)->second;
230 for (std::vector<OpenDriveLane>::const_iterator i = dirLanes.begin(); i != dirLanes.end(); ++i) {
231 if ((*i).type ==
"driving") {
239 std::map<int, int> ret;
240 unsigned int sumoLane = 0;
241 const std::vector<OpenDriveLane> &dirLanes =
lanesByDir.find(dir)->second;
243 for (std::vector<OpenDriveLane>::const_reverse_iterator i = dirLanes.rbegin(); i != dirLanes.rend(); ++i) {
244 if ((*i).type ==
"driving") {
245 ret[(*i).id] = sumoLane++;
249 for (std::vector<OpenDriveLane>::const_iterator i = dirLanes.begin(); i != dirLanes.end(); ++i) {
250 if ((*i).type ==
"driving") {
251 ret[(*i).id] = sumoLane++;
259 std::map<OpenDriveXMLTag, std::vector<OpenDriveLane> >
lanesByDir;
273 unsigned int maxLaneNum = 0;
275 maxLaneNum =
MAX2(maxLaneNum, (*i).getLaneNumber(dir));
299 :
from(fromArg),
to(toArg),
via(viaArg) { }
303 std::vector<std::pair<int, int> >
lanes;
310 NIImporter_OpenDrive(std::vector<OpenDriveEdge> &innerEdges, std::vector<OpenDriveEdge> &outerEdges);
343 const std::string& chars) ;
358 void addLink(
LinkType lt,
const std::string& elementType,
const std::string& elementID,
359 const std::string& contactPoint) ;
396 const std::string& edgeID,
const std::string& nodeID) ;
398 const std::string& edgeID,
const std::string& nodeID) ;
400 static void computeShapes(std::vector<OpenDriveEdge> &edges) ;
406 std::vector<NIImporter_OpenDrive::Connection> &connections);
408 LinkType lt,
const std::string& via,
409 std::vector<NIImporter_OpenDrive::Connection> &connections);