38 #include "../city/AGCar.h"
79 std::list<AGChild>::iterator itC;
81 if (itC->haveASchool()) {
92 std::list<AGAdult>::iterator itA;
94 if (itA->isWorking()) {
113 std::list<AGAdult>::iterator it;
141 std::list<AGAdult>::iterator itUA;
143 if (! itUA->isWorking()) {
157 std::list<AGAdult>::iterator itDriA;
158 std::list<AGCar>::iterator itCar =
hh->
cars.begin();
161 if (itCar ==
hh->
cars.end()) {
169 std::list<AGAdult>::iterator itAccA;
175 std::list<AGChild>::iterator itAccC;
200 std::list<AGTrip>::iterator it1, it2;
209 diff1 = it2->getTime() - it1->getRideBackArrTime(this->
timePerKm);
210 diff2 = it1->getTime() - it2->getRideBackArrTime(this->
timePerKm);
212 if (diff1 < 0 || diff2 < 0) {
214 arrTime = it2->getArrTime(this->
timePerKm);
215 it2->addLayOver(*it1);
216 it2->setDepTime(it2->estimateDepTime(arrTime, this->timePerKm));
219 arrTime = it1->getArrTime(this->
timePerKm);
220 it1->addLayOver(*it2);
221 it1->setDepTime(it1->estimateDepTime(arrTime, this->timePerKm));
239 std::list<AGTrip>::iterator itAccT;
240 std::list<AGTrip>::iterator itDriT;
241 std::list<AGAdult>::iterator itA;
244 if (itAccT->getArrTime(this->timePerKm) < itDriT->getArrTime(this->
timePerKm)) {
249 if (!itA->isWorking()) {
251 }
else if (itAccT->getRideBackArrTime(this->timePerKm) < itA->getWorkPosition().getOpening()) {
266 std::list<AGTrip>::iterator itAccT;
267 std::list<AGTrip>::iterator itDriT;
268 std::list<AGAdult>::iterator itA;
278 if (itAccT->getArrTime(this->timePerKm) < itDriT->getArrTime(this->
timePerKm) && !alreadyDone) {
280 if (itAccT->getRideBackArrTime(this->timePerKm) < itDriT->getTime()) {
282 itAccT->setVehicleName(itDriT->getVehicleName());
283 itAccT->addLayOver(itAccT->getArr());
289 arrTime = itDriT->getArrTime(this->
timePerKm);
290 itDriT->addLayOver(*itAccT);
291 itDriT->setDepTime(itDriT->estimateDepTime(arrTime, this->timePerKm));
301 if (!itA->isWorking() && !alreadyDone) {
303 if (nameC.size() != 0) {
305 itAccT->addLayOver(itAccT->getArr());
310 }
else if (itAccT->getRideBackArrTime(this->timePerKm) < itA->getWorkPosition().getOpening() && !alreadyDone) {
312 if (nameC.size() != 0) {
314 itAccT->addLayOver(itAccT->getArr());
335 if (itA->getWorkPosition().getPosition() == itDriT->getArr()) {
336 AGTrip trip(itA->getWorkPosition().getPosition(),
hh->
getPosition(), itDriT->getVehicleName(), itA->getWorkPosition().getClosing());
347 std::string nameCar =
"";
348 std::string nameCarUsed =
"";
351 nameCarUsed =
tempTrip.front().getVehicleName();
356 if (nameCarUsed.size() != 0) {
357 if (
hh->
cars.front().getName() == nameCarUsed) {
358 nameCar =
hh->
cars.back().getName();
360 nameCar =
hh->
cars.front().getName();
370 std::list<AGAdult>::iterator itUA;
372 if (! itUA->isWorking()) {