62 #ifdef CHECK_MEMORY_LEAKS
64 #endif // CHECK_MEMORY_LEAKS
76 myNet(net), myActionBuilder(net),
77 myCurrentIsInternalToSkip(false),
78 myDetectorBuilder(detBuilder), myTriggerBuilder(triggerBuilder),
79 myEdgeControlBuilder(edgeBuilder), myJunctionControlBuilder(junctionBuilder),
80 myAmInTLLogicMode(false), myCurrentIsBroken(false),
81 myHaveWarnedAboutDeprecatedLanes(false), myLastParameterised(0) {}
130 case SUMO_TAG_MSG_EMITTER:
131 addMsgEmitter(attrs);
274 WRITE_ERROR(
"Edge '" +
id +
"' has an invalid type.");
344 if (shape.
size() < 2) {
345 WRITE_ERROR(
"Shape of lane '" +
id +
"' is broken.\n Can not build according edge.");
357 WRITE_ERROR(
"Another lane with the id '" +
id +
"' exists.");
389 WRITE_ERROR(
"An unknown or invalid junction type occured in junction '" +
id +
"'.");
394 std::vector<MSLane*> incomingLanes;
397 std::vector<MSLane*> internalLanes;
398 #ifdef HAVE_INTERNAL_LANES
409 WRITE_ERROR(e.what() + std::string(
"\n Can not build according junction."));
418 const std::string& def, std::vector<MSLane*>& into,
bool& ok) {
421 std::string laneID = st.
next();
427 WRITE_ERROR(
"An unknown lane ('" + laneID +
"') was tried to be set as incoming to junction '" + junctionID +
"'.");
431 into.push_back(lane);
528 const SUMOReal INVALID_POSITION(-1000000);
548 if (x == INVALID_POSITION || y == INVALID_POSITION) {
551 WRITE_ERROR(
"Lane '" + laneID +
"' to place a poi '" +
id +
"'on is not known.");
584 if (shape.
size() != 0) {
586 WRITE_ERROR(
"Polygon '" +
id +
"' already exists.");
600 #ifdef HAVE_INTERNAL_LANES
609 if (request >= 0 && response.length() > 0) {
643 WRITE_ERROR(
"Traffic light '" +
id +
"' has unknown type '" + typeS +
"'");
696 myNet.createMsgEmitter(
id, file,
getFileName(), whatemit, reverse, table, xycoord, step);
721 friendlyPos, splitByType);
818 if (lsaid !=
"<invalid>") {
819 if (toLane ==
"<invalid>") {
823 haltingTimeThreshold, haltingSpeedThreshold, jamDistThreshold,
829 haltingTimeThreshold, haltingSpeedThreshold, jamDistThreshold,
840 haltingTimeThreshold, haltingSpeedThreshold, jamDistThreshold,
865 frequency, haltingSpeedThreshold, haltingTimeThreshold);
923 excludeEmpty[0] !=
't' && excludeEmpty[0] !=
'T' && excludeEmpty[0] !=
'1' && excludeEmpty[0] !=
'x',
924 excludeEmpty ==
"defaults", withInternal, trackVehicles,
925 maxTravelTime, minSamples, haltingSpeedThreshold, vtypes,
951 #ifdef HAVE_INTERNAL_LANES
957 WRITE_ERROR(
"Unknown from-edge '" + fromID +
"' in connection");
962 WRITE_ERROR(
"Unknown to-edge '" + toID +
"' in connection");
965 if (fromLaneIdx < 0 || static_cast<unsigned int>(fromLaneIdx) >= from->
getLanes().size() ||
966 toLaneIdx < 0 || static_cast<unsigned int>(toLaneIdx) >= to->
getLanes().size()) {
967 WRITE_ERROR(
"Invalid lane index in connection from '" + from->
getID() +
"' to '" + to->
getID() +
"'.");
982 "' in connection controlled by '" + tlID +
"'");
993 #ifdef HAVE_INTERNAL_LANES
999 "') should be set as a via-lane for lane '" + toLane->
getID() +
"'.");
1004 link =
new MSLink(toLane, via, dir, state, length);
1011 link =
new MSLink(toLane, dir, state, length);
1067 WRITE_WARNING(
"no valid geo projection loaded from network. fcd-output.geo will not work");
1089 sink->
initialize(
new std::vector<MSLane*>());
1095 source->
initialize(
new std::vector<MSLane*>());
1098 for (std::vector<std::string>::const_iterator i = desc.begin(); i != desc.end(); ++i) {