88 std::list<AGAdult>::const_iterator itA;
90 if (itA->isWorking()) {
109 std::list<AGAdult>::iterator it;
113 if (
myHousehold->getAdults().front().decide(this->carPreference)) {
157 std::list<AGAdult>::const_iterator itDriA;
158 std::list<AGCar>::const_iterator itCar =
myHousehold->getCars().begin();
165 if (!itDriA->getWorkPosition().getPosition().getStreet().allows(
SVC_PASSENGER)) {
168 AGTrip trip(
myHousehold->getPosition(), itDriA->getWorkPosition().getPosition(), *itCar,
depHour(
myHousehold->getPosition(), itDriA->getWorkPosition().getPosition(), itDriA->getWorkPosition().getOpening()));
173 std::list<AGAdult>::iterator itAccA;
175 AGTrip trip(
myHousehold->getPosition(), itAccA->getWorkPosition().getPosition(),
depHour(
myHousehold->getPosition(), itAccA->getWorkPosition().getPosition(), itAccA->getWorkPosition().getOpening()));
179 std::list<AGChild>::iterator itAccC;
204 std::list<AGTrip>::iterator it1, it2;
213 diff1 = it2->getTime() - it1->getRideBackArrTime(this->
timePerKm);
214 diff2 = it1->getTime() - it2->getRideBackArrTime(this->
timePerKm);
216 if (diff1 < 0 || diff2 < 0) {
218 arrTime = it2->getArrTime(this->
timePerKm);
219 it2->addLayOver(*it1);
220 it2->setDepTime(it2->estimateDepTime(arrTime, this->timePerKm));
223 arrTime = it1->getArrTime(this->
timePerKm);
224 it1->addLayOver(*it2);
225 it1->setDepTime(it1->estimateDepTime(arrTime, this->timePerKm));
270 std::list<AGTrip>::iterator itAccT;
271 std::list<AGTrip>::iterator itDriT;
272 std::list<AGAdult>::iterator itA;
282 if (itAccT->getArrTime(this->timePerKm) < itDriT->getArrTime(this->timePerKm) && !alreadyDone) {
284 if (itAccT->getRideBackArrTime(this->timePerKm) < itDriT->getTime()) {
286 itAccT->setVehicleName(itDriT->getVehicleName());
287 itAccT->addLayOver(itAccT->getArr());
293 arrTime = itDriT->getArrTime(this->
timePerKm);
294 itDriT->addLayOver(*itAccT);
295 itDriT->setDepTime(itDriT->estimateDepTime(arrTime, this->timePerKm));
305 if (!itA->isWorking() && !alreadyDone) {
307 if (nameC.size() != 0) {
309 itAccT->addLayOver(itAccT->getArr());
314 }
else if (itAccT->getRideBackArrTime(this->timePerKm) < itA->getWorkPosition().getOpening() && !alreadyDone) {
316 if (nameC.size() != 0) {
318 itAccT->addLayOver(itAccT->getArr());
339 if (itA->getWorkPosition().getPosition() == itDriT->getArr()) {
340 AGTrip trip(itA->getWorkPosition().getPosition(),
myHousehold->getPosition(), itDriT->getVehicleName(), itA->getWorkPosition().getClosing());
351 std::string nameCar =
"";
352 std::string nameCarUsed =
"";
355 nameCarUsed =
tempTrip.front().getVehicleName();
360 if (nameCarUsed.size() != 0) {
361 if (
myHousehold->getCars().front().getName() == nameCarUsed) {
364 nameCar =
myHousehold->getCars().front().getName();