LCOV - code coverage report
Current view: top level - app/src/Dynamic/Env/Event - EventMoveVehicle.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 16 0.0 %
Date: 2023-08-17 16:45:52 Functions: 0 2 0.0 %

          Line data    Source code
       1             : #include "Dynamic/Env/Event/EventMoveVehicle.hpp"
       2             : 
       3             : #include <spdlog/spdlog.h>
       4             : 
       5             : #include "Dynamic/Env/Env.hpp"
       6             : #include "Dynamic/Env/Lane.hpp"
       7             : 
       8             : using namespace std;
       9             : using namespace Dynamic;
      10             : using namespace Dynamic::Env;
      11             : 
      12           0 : EventMoveVehicle::EventMoveVehicle(Time t_, Vehicle &vehicle_):
      13           0 :     Event(t_), vehicle(vehicle_) {}
      14             : 
      15           0 : void EventMoveVehicle::process(Env &env) {
      16           0 :     if(vehicle.state == Vehicle::State::STOPPED) {
      17           0 :         size_t i = vehicle.position.lane.stopped.order_of({vehicle, nullptr});
      18             : 
      19           0 :         vehicle.position.offset = vehicle.position.lane.edge.length - Vehicle::LENGTH * (Length)i;
      20           0 :         vehicle.lastUpdateTime  = env.getTime();
      21           0 :         return;
      22             :     }
      23             : 
      24           0 :     Time   Dt              = env.getTime() - vehicle.lastUpdateTime;
      25           0 :     Length x               = vehicle.speed * Dt;
      26           0 :     vehicle.lastUpdateTime = env.getTime();
      27           0 :     if(x > 0.0) {
      28           0 :         vehicle.position.offset += x;
      29           0 :         vehicle.lastMoveTime = env.getTime();
      30             :     }
      31             : 
      32           0 :     if(vehicle.position.offset > vehicle.position.lane.edge.length + 0.001) {
      33           0 :         spdlog::warn("Vehicle {} has gone past the end of lane {} after update", vehicle.id, vehicle.position.lane.idAsString());
      34             :     }
      35             : }

Generated by: LCOV version 1.14