void NIXMLTrafficLightsHandler::myStartElement( int element, const SUMOSAXAttributes& attrs) { switch (element) { case SUMO_TAG_TLLOGIC: myCurrentTL = initTrafficLightLogic(attrs, myCurrentTL); break; case SUMO_TAG_PHASE: if (myCurrentTL != 0) { if (myResetPhases) { myCurrentTL->getLogic()->resetPhases(); myResetPhases = false; } NIImporter_SUMO::addPhase(attrs, myCurrentTL); } break; case SUMO_TAG_CONNECTION: addTlConnection(attrs); break; case SUMO_TAG_DELETE: removeTlConnection(attrs); break; default: break; } }
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_NET: { bool ok; myAmLefthand = attrs.getOpt<bool>(SUMO_ATTR_LEFTHAND, 0, ok, false); myCornerDetail = attrs.getOpt<int>(SUMO_ATTR_CORNERDETAIL, 0, ok, 0); myLinkDetail = attrs.getOpt<int>(SUMO_ATTR_LINKDETAIL, 0, ok, -1); break; } case SUMO_TAG_EDGE: addEdge(attrs); break; case SUMO_TAG_LANE: addLane(attrs); break; case SUMO_TAG_JUNCTION: addJunction(attrs); break; case SUMO_TAG_REQUEST: addRequest(attrs); break; case SUMO_TAG_CONNECTION: addConnection(attrs); break; 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; case SUMO_TAG_ROUNDABOUT: addRoundabout(attrs); break; default: break; } }
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 NLHandler::myStartElement(int element, const SUMOSAXAttributes& attrs) { try { switch (element) { case SUMO_TAG_EDGE: beginEdgeParsing(attrs); break; case SUMO_TAG_LANE: addLane(attrs); break; case SUMO_TAG_POLY: addPoly(attrs); break; case SUMO_TAG_POI: addPOI(attrs); break; case SUMO_TAG_JUNCTION: openJunction(attrs); initJunctionLogic(attrs); break; case SUMO_TAG_PHASE: addPhase(attrs); break; case SUMO_TAG_CONNECTION: addConnection(attrs); break; case SUMO_TAG_TLLOGIC: initTrafficLightLogic(attrs); break; case SUMO_TAG_REQUEST: addRequest(attrs); break; case SUMO_TAG_WAUT: openWAUT(attrs); break; case SUMO_TAG_WAUT_SWITCH: addWAUTSwitch(attrs); break; case SUMO_TAG_WAUT_JUNCTION: addWAUTJunction(attrs); break; case SUMO_TAG_E1DETECTOR: case SUMO_TAG_INDUCTION_LOOP: addE1Detector(attrs); break; case SUMO_TAG_E2DETECTOR: case SUMO_TAG_LANE_AREA_DETECTOR: addE2Detector(attrs); break; case SUMO_TAG_E3DETECTOR: case SUMO_TAG_ENTRY_EXIT_DETECTOR: beginE3Detector(attrs); break; case SUMO_TAG_DET_ENTRY: addE3Entry(attrs); break; case SUMO_TAG_DET_EXIT: addE3Exit(attrs); break; case SUMO_TAG_INSTANT_INDUCTION_LOOP: addInstantE1Detector(attrs); break; case SUMO_TAG_VSS: myTriggerBuilder.parseAndBuildLaneSpeedTrigger(myNet, attrs, getFileName()); break; case SUMO_TAG_CALIBRATOR: myTriggerBuilder.parseAndBuildCalibrator(myNet, attrs, getFileName()); break; case SUMO_TAG_REROUTER: myTriggerBuilder.parseAndBuildRerouter(myNet, attrs, getFileName()); break; case SUMO_TAG_BUS_STOP: myTriggerBuilder.parseAndBuildBusStop(myNet, attrs); break; case SUMO_TAG_VTYPEPROBE: addVTypeProbeDetector(attrs); break; case SUMO_TAG_ROUTEPROBE: addRouteProbeDetector(attrs); break; case SUMO_TAG_MEANDATA_EDGE: addEdgeLaneMeanData(attrs, SUMO_TAG_MEANDATA_EDGE); break; case SUMO_TAG_MEANDATA_LANE: addEdgeLaneMeanData(attrs, SUMO_TAG_MEANDATA_LANE); break; case SUMO_TAG_TIMEDEVENT: myActionBuilder.addAction(attrs, getFileName()); break; case SUMO_TAG_VAPORIZER: myTriggerBuilder.buildVaporizer(attrs); break; case SUMO_TAG_LOCATION: setLocation(attrs); break; case SUMO_TAG_TAZ: addDistrict(attrs); break; case SUMO_TAG_TAZSOURCE: addDistrictEdge(attrs, true); break; case SUMO_TAG_TAZSINK: addDistrictEdge(attrs, false); break; default: break; } } catch (InvalidArgument& e) { WRITE_ERROR(e.what()); } MSRouteHandler::myStartElement(element, attrs); if (element == SUMO_TAG_PARAM) { addParam(attrs); } }