LCOV - code coverage report
Current view: top level - src/activitygen/activities - AGTrip.cpp (source / functions) Coverage Total Hit
Test: lcov.info Lines: 84.3 % 70 59
Test Date: 2024-11-22 15:46:21 Functions: 91.3 % 23 21

            Line data    Source code
       1              : /****************************************************************************/
       2              : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
       3              : // Copyright (C) 2010-2024 German Aerospace Center (DLR) and others.
       4              : // activitygen module
       5              : // Copyright 2010 TUM (Technische Universitaet Muenchen, http://www.tum.de/)
       6              : // This program and the accompanying materials are made available under the
       7              : // terms of the Eclipse Public License 2.0 which is available at
       8              : // https://www.eclipse.org/legal/epl-2.0/
       9              : // This Source Code may also be made available under the following Secondary
      10              : // Licenses when the conditions for such availability set forth in the Eclipse
      11              : // Public License 2.0 are satisfied: GNU General Public License, version 2
      12              : // or later which is available at
      13              : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
      14              : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
      15              : /****************************************************************************/
      16              : /// @file    AGTrip.cpp
      17              : /// @author  Piotr Woznica
      18              : /// @author  Daniel Krajzewicz
      19              : /// @author  Walter Bamberger
      20              : /// @author  Jakob Erdmann
      21              : /// @author  Michael Behrisch
      22              : /// @date    July 2010
      23              : ///
      24              : // Class containing all information of a given trip (car, bus)
      25              : /****************************************************************************/
      26              : #include <config.h>
      27              : 
      28              : #include "AGTrip.h"
      29              : 
      30              : 
      31              : // ===========================================================================
      32              : // method definitions
      33              : // ===========================================================================
      34              : bool
      35        33797 : AGTrip::operator <(const AGTrip& trip) const {
      36        33797 :     if (getDay() < trip.getDay()) {
      37              :         return true;
      38              :     }
      39        33797 :     if (getDay() == trip.getDay())
      40        33797 :         if (getTime() < trip.getTime()) {
      41              :             return true;
      42              :         }
      43              :     return false;
      44              : }
      45              : 
      46              : void
      47            0 : AGTrip::print() const {
      48              :     std::cout << "Trip: " << std::endl;
      49            0 :     std::cout << "\t-From= ";
      50            0 :     myFrom.print();
      51            0 :     std::cout << "\t-To= ";
      52            0 :     myTo.print();
      53            0 :     std::cout << "\t-At= " << myDepTime << " -Day= " << myDay << std::endl;
      54              :     std::cout << "\t-Vehicle= " << myVehicle << std::endl;
      55              :     std::cout << "\t-type= " << myType << std::endl;
      56            0 : }
      57              : 
      58              : void
      59         5980 : AGTrip::addLayOver(AGPosition by) {
      60         5980 :     myPassBy.push_back(by);
      61         5980 : }
      62              : 
      63              : void
      64           29 : AGTrip::addLayOver(AGTrip& trip) {
      65              :     std::list<AGPosition>::iterator it;
      66           29 :     for (it = trip.myPassBy.begin(); it != trip.myPassBy.end(); ++it) {
      67            0 :         myPassBy.push_back(*it);
      68              :     }
      69           29 :     myPassBy.push_back(trip.myTo);
      70           29 : }
      71              : 
      72              : void
      73         7665 : AGTrip::addLayOverWithoutDestination(AGTrip& trip) {
      74              :     std::list<AGPosition>::iterator it;
      75        16657 :     for (it = trip.myPassBy.begin(); it != trip.myPassBy.end(); ++it) {
      76         8992 :         myPassBy.push_back(*it);
      77              :     }
      78         7665 : }
      79              : 
      80              : const std::list<AGPosition>*
      81        14350 : AGTrip::getPassed() const {
      82        14350 :     return &myPassBy;
      83              : }
      84              : 
      85              : const std::string&
      86        19144 : AGTrip::getType() const {
      87        19144 :     return myType;
      88              : }
      89              : 
      90              : void
      91         9190 : AGTrip::setType(std::string type) {
      92         9190 :     myType = type;
      93         9190 : }
      94              : 
      95              : AGPosition
      96        23265 : AGTrip::getDep() const {
      97        23265 :     return myFrom;
      98              : }
      99              : 
     100              : AGPosition
     101        22860 : AGTrip::getArr() const {
     102        22860 :     return myTo;
     103              : }
     104              : 
     105              : int
     106       106577 : AGTrip::getTime() const {
     107       106577 :     return myDepTime;
     108              : }
     109              : 
     110              : int
     111         3702 : AGTrip::getTimeTrip(double secPerKm) const {
     112              :     double dist = 0;
     113              :     std::list<AGPosition> positions;
     114         3702 :     positions.push_back(myFrom);
     115              :     std::list<AGPosition>::const_iterator it;
     116         3841 :     for (it = myPassBy.begin(); it != myPassBy.end(); ++it) {
     117              :         positions.push_back(*it);
     118              :     }
     119         3702 :     positions.push_back(myTo);
     120              : 
     121              :     const AGPosition* temp = &positions.front();
     122         7543 :     for (it = positions.begin(), ++it; it != positions.end(); ++it) {
     123         3841 :         dist += temp->distanceTo(*it);
     124              :         temp = &*it;
     125              :     }
     126         7404 :     return (int)(secPerKm * (dist / 1000.0));
     127              : }
     128              : 
     129              : int
     130         3273 : AGTrip::getArrTime(double secPerKm) const {
     131         3273 :     return myDepTime + getTimeTrip(secPerKm);
     132              : }
     133              : 
     134              : int
     135           86 : AGTrip::getRideBackArrTime(double secPerKm) const {
     136           86 :     return getArrTime(secPerKm) + (int)(secPerKm * myTo.distanceTo(myFrom) / 1000.0);
     137              : }
     138              : 
     139              : void
     140         5045 : AGTrip::setDepTime(int time) {
     141         5045 :     myDepTime = time;
     142         5045 : }
     143              : 
     144              : int
     145          429 : AGTrip::estimateDepTime(int arrTime, double secPerKm) const {
     146          429 :     return arrTime - getTimeTrip(secPerKm);
     147              : }
     148              : 
     149              : const std::string&
     150        42744 : AGTrip::getVehicleName() const {
     151        42744 :     return myVehicle;
     152              : }
     153              : 
     154              : void
     155         7693 : AGTrip::setVehicleName(std::string name) {
     156         7693 :     myVehicle = name;
     157         7693 : }
     158              : 
     159              : void
     160           28 : AGTrip::setArr(AGPosition arrival) {
     161           28 :     myTo = AGPosition(arrival.getStreet(), arrival.getPosition());
     162           28 : }
     163              : 
     164              : void
     165            0 : AGTrip::setDep(AGPosition departure) {
     166            0 :     myFrom = AGPosition(departure.getStreet(), departure.getPosition());
     167            0 : }
     168              : 
     169              : bool
     170         9812 : AGTrip::isDaily() const {
     171         9812 :     return (myDay == 0);
     172              : }
     173              : 
     174              : int
     175       179938 : AGTrip::getDay() const {
     176       179938 :     return myDay;
     177              : }
     178              : 
     179              : void
     180         4616 : AGTrip::setDay(int d) {
     181         4616 :     myDay = d;
     182         4616 : }
     183              : 
     184              : 
     185              : /****************************************************************************/
        

Generated by: LCOV version 2.0-1