47 #ifdef CHECK_MEMORY_LEAKS
49 #endif // CHECK_MEMORY_LEAKS
56 std::set<std::string> MSBaseVehicle::myShallTraceMoveReminders;
66 myCurrEdge(route->begin()),
67 myChosenSpeedFactor(speedFactor),
69 myDeparture(NOT_YET_DEPARTED),
73 , myTraceMoveReminders(myShallTraceMoveReminders.count(pars->id) > 0)
79 for (std::vector< MSDevice* >::iterator dev =
myDevices.begin(); dev !=
myDevices.end(); ++dev) {
92 for (std::vector< MSDevice* >::iterator dev =
myDevices.begin(); dev !=
myDevices.end(); ++dev) {
135 std::vector<const MSEdge*> edges;
138 if (edges.size() >= 2) {
139 edges.erase(edges.begin());
156 std::string
id =
getID();
160 if (
myRoute->
getID().find(
"!var#") != std::string::npos) {
215 msg =
"No connection between '" + (*e)->getID() +
"' and '" + (*(e + 1))->getID() +
"'.";
222 if ((*e)->prohibits(
this)) {
223 msg =
"Edge '" + (*e)->getID() +
"' prohibits.";
234 if (myTraceMoveReminders) {
235 traceMoveReminder(
"add", rem, 0,
true);
245 if (r->first == rem) {
247 if (myTraceMoveReminders) {
248 traceMoveReminder(
"remove", rem, 0,
false);
261 if (rem->first->notifyEnter(*
this, reason)) {
263 if (myTraceMoveReminders) {
264 traceMoveReminder(
"notifyEnter", rem->first, rem->second,
true);
270 if (myTraceMoveReminders) {
271 traceMoveReminder(
"notifyEnter", rem->first, rem->second,
false);
286 WRITE_WARNING(
"Vehicle '" +
getID() +
"' will not be able to arrive at the given position!");
306 for (std::vector<MSDevice*>::const_iterator dev =
myDevices.begin(); dev !=
myDevices.end(); ++dev) {
307 if (
typeid(**dev) == type) {
328 MSBaseVehicle::initMoveReminderOutput(
const OptionsCont& oc) {
329 if (oc.
isSet(
"movereminder-output.vehicles")) {
330 const std::vector<std::string> vehicles = oc.
getStringVector(
"movereminder-output.vehicles");
331 myShallTraceMoveReminders.insert(vehicles.begin(), vehicles.end());
337 MSBaseVehicle::traceMoveReminder(
const std::string& type,
MSMoveReminder* rem,
SUMOReal pos,
bool keep)
const {