42 myDescription(description) {
43 if (
myLane != 0 && doAdd) {
58 if (entryTime > currentTime) {
61 std::map<SUMOVehicle*, std::pair<SUMOTime, SUMOReal> >::iterator j = myLastVehicleUpdateValues.find(&veh);
62 if (j != myLastVehicleUpdateValues.end()) {
66 const SUMOTime previousEntryTime = j->second.first;
67 if (previousEntryTime <= currentTime) {
68 entryTime = previousEntryTime;
69 entryPos = j->second.second;
72 assert(entryTime <= currentTime);
73 if ((entryTime < leaveTime) && (entryPos < leavePos)) {
76 myLastVehicleUpdateValues[&veh] = std::pair<SUMOTime, SUMOReal>(currentTime, entryPos + speed * timeOnLane);
77 assert(timeOnLane >= 0);
85 myLastVehicleUpdateValues[&veh] = std::pair<SUMOTime, SUMOReal>(leaveTime, leavePos);
89 removeFromVehicleUpdateValues(veh);
95 MSMoveReminder::removeFromVehicleUpdateValues(
SUMOVehicle& veh) {
96 myLastVehicleUpdateValues.erase(&veh);
MSLane *const myLane
Lane on which the reminder works.
virtual void addMoveReminder(MSMoveReminder *rem)
Add a move-reminder to move-reminder container.
MSMoveReminder(const std::string &description, MSLane *const lane=0, const bool doAdd=true)
Constructor.
Representation of a vehicle.
virtual void notifyMoveInternal(SUMOVehicle &veh, SUMOReal timeOnLane, SUMOReal speed)
Internal notification about the vehicle moves.
Representation of a lane in the micro simulation.