38 #include "../city/AGCar.h" 79 std::list<AGChild>::const_iterator itC;
81 if (itC->haveASchool()) {
92 std::list<AGAdult>::const_iterator itA;
94 if (itA->isWorking()) {
113 std::list<AGAdult>::iterator it;
141 std::list<AGAdult>::const_iterator itUA;
143 if (! itUA->isWorking()) {
161 std::list<AGAdult>::const_iterator itDriA;
169 if (!itDriA->getWorkPosition().getPosition().getStreet().allows(
SVC_PASSENGER)) {
177 std::list<AGAdult>::iterator itAccA;
183 std::list<AGChild>::iterator itAccC;
208 std::list<AGTrip>::iterator it1, it2;
217 diff1 = it2->getTime() - it1->getRideBackArrTime(this->
timePerKm);
218 diff2 = it1->getTime() - it2->getRideBackArrTime(this->
timePerKm);
220 if (diff1 < 0 || diff2 < 0) {
222 arrTime = it2->getArrTime(this->
timePerKm);
223 it2->addLayOver(*it1);
224 it2->setDepTime(it2->estimateDepTime(arrTime, this->timePerKm));
227 arrTime = it1->getArrTime(this->
timePerKm);
228 it1->addLayOver(*it2);
229 it1->setDepTime(it1->estimateDepTime(arrTime, this->timePerKm));
247 std::list<AGTrip>::iterator itAccT;
248 std::list<AGTrip>::iterator itDriT;
249 std::list<AGAdult>::iterator itA;
252 if (itAccT->getArrTime(this->timePerKm) < itDriT->getArrTime(this->
timePerKm)) {
257 if (!itA->isWorking()) {
259 }
else if (itAccT->getRideBackArrTime(this->timePerKm) < itA->getWorkPosition().getOpening()) {
274 std::list<AGTrip>::iterator itAccT;
275 std::list<AGTrip>::iterator itDriT;
276 std::list<AGAdult>::iterator itA;
286 if (itAccT->getArrTime(this->timePerKm) < itDriT->getArrTime(this->
timePerKm) && !alreadyDone) {
288 if (itAccT->getRideBackArrTime(this->timePerKm) < itDriT->getTime()) {
290 itAccT->setVehicleName(itDriT->getVehicleName());
291 itAccT->addLayOver(itAccT->getArr());
297 arrTime = itDriT->getArrTime(this->
timePerKm);
298 itDriT->addLayOver(*itAccT);
299 itDriT->setDepTime(itDriT->estimateDepTime(arrTime, this->timePerKm));
309 if (!itA->isWorking() && !alreadyDone) {
311 if (nameC.size() != 0) {
313 itAccT->addLayOver(itAccT->getArr());
318 }
else if (itAccT->getRideBackArrTime(this->timePerKm) < itA->getWorkPosition().getOpening() && !alreadyDone) {
320 if (nameC.size() != 0) {
322 itAccT->addLayOver(itAccT->getArr());
343 if (itA->getWorkPosition().getPosition() == itDriT->getArr()) {
344 AGTrip trip(itA->getWorkPosition().getPosition(),
myHousehold->
getPosition(), itDriT->getVehicleName(), itA->getWorkPosition().getClosing());
355 std::string nameCar =
"";
356 std::string nameCarUsed =
"";
359 nameCarUsed =
tempTrip.front().getVehicleName();
364 if (nameCarUsed.size() != 0) {
378 std::list<AGAdult>::const_iterator itUA;
380 if (! itUA->isWorking()) {
int depHour(AGPosition from, AGPosition to, int arrival)
const std::list< AGAdult > & getAdults() const
void makePossibleDriversDrive()
std::list< AGAdult > notNeedingDrivers
SUMOReal getPosition() const
Provides the relative position of this AGPosition on the street.
std::list< AGTrip > tempAccTrip
const std::list< AGChild > & getChildren() const
const AGStreet & getStreet() const
Provides the street this AGPosition is located on.
std::list< AGAdult > adultNeedingCarAccompaniment
int availableTranspMeans(AGPosition from, AGPosition to)
AGHousehold * myHousehold
std::list< AGAdult > personsDrivingCars
bool checkDriversScheduleMatching()
vehicle is a passenger car (a "normal" car)
bool allows(const SUMOVehicleClass vclass) const
Returns whether the given vehicle class is allowed on this street.
std::list< AGAdult > workingPeoplePossCar
std::list< AGChild > childrenNeedingCarAccompaniment
std::list< AGTrip > tempTrip
int possibleTranspMean(AGPosition destination)
std::list< AGTrip > myPartialActivityTrips
void buildChildrenAccompaniment()
void buildWorkDestinations()
std::string getUnusedCar()
bool checkAndBuildTripConsistancy()
const std::list< AGCar > & getCars() const