void NIImporter_SUMO::myStartElement(int element, const SUMOSAXAttributes& attrs) { /* our goal is to reproduce the input net faithfully * there are different types of objects in the netfile: * 1) those which must be loaded into NBNetBuilder-Containers for processing * 2) those which can be ignored because they are recomputed based on group 1 * 3) those which are of no concern to NBNetBuilder but should be exposed to * NETEDIT. We will probably have to patch NBNetBuilder to contain them * and hand them over to NETEDIT * alternative idea: those shouldn't really be contained within the * network but rather in separate files. teach NETEDIT how to open those * (POI?) * 4) those which are of concern neither to NBNetBuilder nor NETEDIT and * must be copied over - need to patch NBNetBuilder for this. * copy unknown by default */ switch (element) { case SUMO_TAG_EDGE: addEdge(attrs); break; case SUMO_TAG_LANE: addLane(attrs); break; case SUMO_TAG_JUNCTION: addJunction(attrs); break; case SUMO_TAG_SUCC: addSuccEdge(attrs); break; case SUMO_TAG_SUCCLANE: addSuccLane(attrs); break; case SUMO_TAG_CONNECTION: addConnection(attrs); break; case SUMO_TAG_TLLOGIC__DEPRECATED: case SUMO_TAG_TLLOGIC: myCurrentTL = initTrafficLightLogic(attrs, myCurrentTL); break; case SUMO_TAG_PHASE: addPhase(attrs, myCurrentTL); break; case SUMO_TAG_LOCATION: myLocation = loadLocation(attrs); break; case SUMO_TAG_PROHIBITION: addProhibition(attrs); break; default: break; } }
void NIImporter_SUMO::myStartElement(SumoXMLTag element, const SUMOSAXAttributes &attrs) throw(ProcessError) { switch (element) { case SUMO_TAG_EDGE: addEdge(attrs); break; case SUMO_TAG_LANE: if (myCurrentEdge!=0) { addLane(attrs); } break; case SUMO_TAG_JUNCTION: addJunction(attrs); break; case SUMO_TAG_SUCC: addSuccEdge(attrs); break; case SUMO_TAG_SUCCLANE: addSuccLane(attrs); break; } }