42 myDescription(description) {
43 if (
myLane != 0 && doAdd) {
57 if (entryTime > currentTime) {
65 const SUMOTime previousEntryTime = j->second.first;
66 if (previousEntryTime <= currentTime) {
67 entryTime = previousEntryTime;
68 entryPos = j->second.second;
71 assert(entryTime <= currentTime);
72 if ((entryTime < leaveTime) && (entryPos < leavePos)) {
73 const double timeOnLane =
STEPS2TIME(currentTime - entryTime);
74 const double speed = (leavePos - entryPos) /
STEPS2TIME(leaveTime - entryTime);
76 assert(timeOnLane >= 0);
78 notifyMoveInternal(veh, timeOnLane, timeOnLane, speed, speed, speed * timeOnLane, speed * timeOnLane);
void updateDetector(SUMOVehicle &veh, double entryPos, double leavePos, SUMOTime entryTime, SUMOTime currentTime, SUMOTime leaveTime, bool cleanUp)
virtual void notifyMoveInternal(const SUMOVehicle &veh, const double frontOnLane, const double timeOnLane, const double meanSpeedFrontOnLane, const double meanSpeedVehicleOnLane, const double travelledDistanceFrontOnLane, const double travelledDistanceVehicleOnLane)
Internal notification about the vehicle moves.
MSLane *const myLane
Lane on which the reminder works.
void removeFromVehicleUpdateValues(SUMOVehicle &veh)
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.
std::map< SUMOVehicle *, std::pair< SUMOTime, double > > myLastVehicleUpdateValues
Representation of a lane in the micro simulation.