void RONetHandler::myStartElement(int element, const SUMOSAXAttributes& attrs) { switch (element) { case SUMO_TAG_EDGE: // in the first step, we do need the name to allocate the edge // in the second, we need it to know to which edge we have to add // the following edges to parseEdge(attrs); break; case SUMO_TAG_LANE: if (myProcess) { parseLane(attrs); } break; case SUMO_TAG_JUNCTION: parseJunction(attrs); break; case SUMO_TAG_CONNECTION: parseConnection(attrs); break; case SUMO_TAG_BUS_STOP: parseBusStop(attrs); break; case SUMO_TAG_CONTAINER_STOP: parseContainerStop(attrs); break; case SUMO_TAG_TAZ: parseDistrict(attrs); break; case SUMO_TAG_TAZSOURCE: parseDistrictEdge(attrs, true); break; case SUMO_TAG_TAZSINK: parseDistrictEdge(attrs, false); break; case SUMO_TAG_TYPE: { bool ok = true; myCurrentTypeID = attrs.get<std::string>(SUMO_ATTR_ID, 0, ok); break; } case SUMO_TAG_RESTRICTION: { bool ok = true; const SUMOVehicleClass svc = getVehicleClassID(attrs.get<std::string>(SUMO_ATTR_VCLASS, myCurrentTypeID.c_str(), ok)); const SUMOReal speed = attrs.get<SUMOReal>(SUMO_ATTR_SPEED, myCurrentTypeID.c_str(), ok); if (ok) { myNet.addRestriction(myCurrentTypeID, svc, speed); } break; } default: break; } }
void RONetHandler::myStartElement(int element, const SUMOSAXAttributes& attrs) { switch (element) { case SUMO_TAG_EDGE: // in the first step, we do need the name to allocate the edge // in the second, we need it to know to which edge we have to add // the following edges to parseEdge(attrs); break; case SUMO_TAG_LANE: if (myProcess) { parseLane(attrs); } break; case SUMO_TAG_JUNCTION: parseJunction(attrs); break; case SUMO_TAG_CONNECTION: parseConnection(attrs); break; case SUMO_TAG_BUS_STOP: parseBusStop(attrs); break; case SUMO_TAG_CONTAINER_STOP: parseContainerStop(attrs); break; case SUMO_TAG_TAZ: parseDistrict(attrs); break; case SUMO_TAG_TAZSOURCE: parseDistrictEdge(attrs, true); break; case SUMO_TAG_TAZSINK: parseDistrictEdge(attrs, false); break; default: break; } }