SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AGTrip.cpp
Go to the documentation of this file.
1 /****************************************************************************/
9 // Class containing all information of a given trip (car, bus)
10 /****************************************************************************/
11 // SUMO, Simulation of Urban MObility; see http://sumo-sim.org/
12 // Copyright (C) 2001-2014 DLR (http://www.dlr.de/) and contributors
13 // activitygen module
14 // Copyright 2010 TUM (Technische Universitaet Muenchen, http://www.tum.de/)
15 /****************************************************************************/
16 //
17 // This file is part of SUMO.
18 // SUMO is free software: you can redistribute it and/or modify
19 // it under the terms of the GNU General Public License as published by
20 // the Free Software Foundation, either version 3 of the License, or
21 // (at your option) any later version.
22 //
23 /****************************************************************************/
24 
25 
26 // ===========================================================================
27 // included modules
28 // ===========================================================================
29 #ifdef _MSC_VER
30 #include <windows_config.h>
31 #else
32 #include <config.h>
33 #endif
34 
35 #include "AGTrip.h"
36 
37 
38 // ===========================================================================
39 // method definitions
40 // ===========================================================================
41 bool
42 AGTrip::operator <(const AGTrip& trip) const {
43  if (getDay() < trip.getDay()) {
44  return true;
45  }
46  if (getDay() == trip.getDay())
47  if (getTime() < trip.getTime()) {
48  return true;
49  }
50  return false;
51 }
52 
53 void
55  std::cout << "Trip: " << std::endl;
56  std::cout << "\t-From= ";
57  myFrom.print();
58  std::cout << "\t-To= ";
59  myTo.print();
60  std::cout << "\t-At= " << myDepTime << " -Day= " << myDay << std::endl;
61  std::cout << "\t-Vehicle= " << myVehicle << std::endl;
62  std::cout << "\t-type= " << myType << std::endl;
63 }
64 
65 void
67  myPassBy.push_back(by);
68 }
69 
70 void
72  std::list<AGPosition>::iterator it;
73  for (it = trip.myPassBy.begin(); it != trip.myPassBy.end(); ++it) {
74  myPassBy.push_back(*it);
75  }
76  myPassBy.push_back(trip.myTo);
77 }
78 
79 void
81  std::list<AGPosition>::iterator it;
82  for (it = trip.myPassBy.begin(); it != trip.myPassBy.end(); ++it) {
83  myPassBy.push_back(*it);
84  }
85 }
86 
87 std::list<AGPosition>*
89  return &myPassBy;
90 }
91 
92 const std::string&
93 AGTrip::getType() const {
94  return myType;
95 }
96 
97 void
98 AGTrip::setType(std::string type) {
99  myType = type;
100 }
101 
103 AGTrip::getDep() const {
104  return myFrom;
105 }
106 
108 AGTrip::getArr() const {
109  return myTo;
110 }
111 
112 int
114  return myDepTime;
115 }
116 
117 int
119  SUMOReal dist = 0;
120  std::list<AGPosition> positions;
121  positions.push_back(myFrom);
122  std::list<AGPosition>::iterator it;
123  for (it = myPassBy.begin(); it != myPassBy.end(); ++it) {
124  positions.push_back(*it);
125  }
126  positions.push_back(myTo);
127 
128  AGPosition* temp = &positions.front();
129  for (it = positions.begin(), ++it; it != positions.end(); ++it) {
130  dist += temp->distanceTo(*it);
131  temp = &*it;
132  }
133  return (int)(secPerKm * (dist / 1000.0));
134 }
135 
136 int
138  return myDepTime + getTimeTrip(secPerKm);
139 }
140 
141 int
143  return getArrTime(secPerKm) + (int)(secPerKm * myTo.distanceTo(myFrom) / 1000.0);
144 }
145 
146 void
148  myDepTime = time;
149 }
150 
151 int
152 AGTrip::estimateDepTime(int arrTime, SUMOReal secPerKm) {
153  return arrTime - getTimeTrip(secPerKm);
154 }
155 
156 const std::string&
158  return myVehicle;
159 }
160 
161 void
162 AGTrip::setVehicleName(std::string name) {
163  myVehicle = name;
164 }
165 
166 void
168  myTo = *new AGPosition(arrival.getStreet(), arrival.getPosition());
169 }
170 
171 void
173  myFrom = *new AGPosition(departure.getStreet(), departure.getPosition());
174 }
175 
176 bool
178  return (myDay == 0);
179 }
180 
181 int
182 AGTrip::getDay() const {
183  return myDay;
184 }
185 
186 void
188  myDay = d;
189 }
190 
191 /****************************************************************************/
void addLayOver(AGPosition by)
Definition: AGTrip.cpp:66
AGPosition getDep() const
Definition: AGTrip.cpp:103
void print() const
Prints out a summary of the properties of this class on standard output.
Definition: AGPosition.cpp:58
int estimateDepTime(int arrTime, SUMOReal secPerKm)
Definition: AGTrip.cpp:152
bool operator<(const AGTrip &trip) const
Definition: AGTrip.cpp:42
const AGStreet & getStreet() const
Provides the street this AGPosition is located on.
Definition: AGPosition.cpp:108
int myDepTime
Definition: AGTrip.h:133
std::list< AGPosition > * getPassed()
Definition: AGTrip.cpp:88
A location in the 2D plane freely positioned on a street.
Definition: AGPosition.h:63
void addLayOverWithoutDestination(AGTrip &trip)
Definition: AGTrip.cpp:80
bool isDaily() const
Definition: AGTrip.cpp:177
void setType(std::string type)
Definition: AGTrip.cpp:98
void setArr(AGPosition arrival)
Definition: AGTrip.cpp:167
AGPosition myTo
Definition: AGTrip.h:132
void print()
Definition: AGTrip.cpp:54
SUMOReal getPosition() const
Provides the relative position of this AGPosition on the street.
Definition: AGPosition.cpp:114
AGPosition myFrom
Definition: AGTrip.h:131
std::list< AGPosition > myPassBy
Definition: AGTrip.h:145
void setDay(int day)
Definition: AGTrip.cpp:187
void setDepTime(int time)
Definition: AGTrip.cpp:147
int getArrTime(SUMOReal secPerKm)
Definition: AGTrip.cpp:137
int getTimeTrip(SUMOReal secPerKm)
Definition: AGTrip.cpp:118
std::string myType
Definition: AGTrip.h:139
int getTime() const
Definition: AGTrip.cpp:113
void setVehicleName(std::string name)
Definition: AGTrip.cpp:162
const std::string & getVehicleName() const
Definition: AGTrip.cpp:157
AGPosition getArr() const
Definition: AGTrip.cpp:108
int myDay
Definition: AGTrip.h:144
int getRideBackArrTime(SUMOReal secPerKm)
Definition: AGTrip.cpp:142
void setDep(AGPosition departure)
Definition: AGTrip.cpp:172
int getDay() const
Definition: AGTrip.cpp:182
std::string myVehicle
Definition: AGTrip.h:134
SUMOReal distanceTo(const AGPosition &otherPos) const
Computes the distance between two AGPosition objects.
Definition: AGPosition.cpp:70
#define SUMOReal
Definition: config.h:215
Definition: AGTrip.h:46
const std::string & getType() const
Definition: AGTrip.cpp:93