SUMO - Simulation of Urban MObility
|
#include <AGWorkAndSchool.h>
Public Member Functions | |
AGWorkAndSchool (AGHousehold *hh, AGDataAndStatistics *das, std::list< AGTrip > *prevTrips) | |
int | arrHour (AGPosition from, AGPosition to, int departure) |
int | availableTranspMeans (AGPosition from, AGPosition to) |
void | buildChildrenAccompaniment () |
void | buildWorkDestinations () |
void | carAllocation () |
bool | carsToTrips () |
bool | checkAndBuildTripConsistancy () |
bool | checkDriversScheduleMatching () |
int | depHour (AGPosition from, AGPosition to, int arrival) |
void | generateListTrips () |
bool | generateTrips () |
std::list< AGTrip > & | getPartialActivityTrips () |
std::string | getUnusedCar () |
bool | isGenerated () |
bool | isThereUnusedCar () |
void | makePossibleDriversDrive () |
int | possibleTranspMean (AGPosition destination) |
int | randomTimeBetween (int begin, int end) |
int | timeToDrive (AGPosition from, AGPosition to) |
Protected Attributes | |
int | activityPriority |
SUMOReal | carPreference |
bool | genDone |
AGHousehold * | myHousehold |
std::list< AGTrip > | myPartialActivityTrips |
std::list< AGTrip > * | myPreviousTrips |
AGDataAndStatistics * | myStatData |
SUMOReal | timePerKm |
Private Attributes | |
std::list< AGAdult > | adultNeedingCarAccompaniment |
std::list< AGChild > | childrenNeedingCarAccompaniment |
std::list< AGAdult > | notNeedingDrivers |
std::list< AGAdult > | personsDrivingCars |
std::list< AGTrip > | tempAccTrip |
std::list< AGTrip > | tempTrip |
std::list< AGAdult > | workingPeoplePossCar |
Definition at line 45 of file AGWorkAndSchool.h.
|
inline |
Definition at line 47 of file AGWorkAndSchool.h.
|
inherited |
Definition at line 122 of file AGActivity.cpp.
References AGActivity::timeToDrive().
Referenced by AGFreeTime::typeFromHomeDay(), AGFreeTime::typeFromHomeEvening(), and AGFreeTime::typeFromHomeNight().
|
inherited |
determine the possible means for a trip from one position to a destination. whether CAR is necessary or not, BUS available or not... 1 = by foot possible. 2 = by bus possible. 0 = by bus or foot NOT possible => only by car. : 4 is useless because it is always possible : 3 = 2 + 1 = means bus and foot possible.
Definition at line 92 of file AGActivity.cpp.
References AGDataAndStatistics::busStations, AGPosition::distanceTo(), AGDataAndStatistics::maxFootDistance, AGPosition::minDistanceTo(), and AGActivity::myStatData.
Referenced by buildChildrenAccompaniment().
void AGWorkAndSchool::buildChildrenAccompaniment | ( | ) |
generate objects
Definition at line 78 of file AGWorkAndSchool.cpp.
References AGActivity::availableTranspMeans(), childrenNeedingCarAccompaniment, AGHousehold::getChildren(), AGHousehold::getPosition(), and AGActivity::myHousehold.
Referenced by generateTrips().
void AGWorkAndSchool::buildWorkDestinations | ( | ) |
Definition at line 91 of file AGWorkAndSchool.cpp.
References adultNeedingCarAccompaniment, AGActivity::carPreference, AGHousehold::getAdults(), AGHousehold::getCarNbr(), AGActivity::myHousehold, personsDrivingCars, AGActivity::possibleTranspMean(), and workingPeoplePossCar.
Referenced by generateTrips().
void AGWorkAndSchool::carAllocation | ( | ) |
allocation of cars to the convenient adult: the adult able to accompany the other (adult) and children in need.
Definition at line 125 of file AGWorkAndSchool.cpp.
References adultNeedingCarAccompaniment, childrenNeedingCarAccompaniment, AGHousehold::getAdultNbr(), AGHousehold::getAdults(), AGActivity::myHousehold, notNeedingDrivers, personsDrivingCars, and workingPeoplePossCar.
Referenced by generateTrips().
bool AGWorkAndSchool::carsToTrips | ( | ) |
trip generation for adults and children
Definition at line 156 of file AGWorkAndSchool.cpp.
References adultNeedingCarAccompaniment, checkAndBuildTripConsistancy(), checkDriversScheduleMatching(), childrenNeedingCarAccompaniment, AGActivity::depHour(), generateListTrips(), AGHousehold::getCars(), AGPosition::getPosition(), AGHousehold::getPosition(), isThereUnusedCar(), makePossibleDriversDrive(), AGActivity::myHousehold, personsDrivingCars, tempAccTrip, and tempTrip.
Referenced by generateTrips().
bool AGWorkAndSchool::checkAndBuildTripConsistancy | ( | ) |
main function of Accompaniment trip management: simple trips are analyzed whether they can be grouped together or not. return true if every thing worked well
Definition at line 196 of file AGWorkAndSchool.cpp.
References tempAccTrip, and AGActivity::timePerKm.
Referenced by carsToTrips().
bool AGWorkAndSchool::checkDriversScheduleMatching | ( | ) |
checks whether the driver is able to accompany all people or if the others have to go too late to work for him
Definition at line 237 of file AGWorkAndSchool.cpp.
References notNeedingDrivers, tempAccTrip, tempTrip, and AGActivity::timePerKm.
Referenced by carsToTrips().
|
inherited |
estimates the departure/arrival time given the departure location the arrival location and the wished arrival/departure time
Definition at line 115 of file AGActivity.cpp.
References AGActivity::timeToDrive().
Referenced by carsToTrips(), and AGFreeTime::typeFromHomeNight().
void AGWorkAndSchool::generateListTrips | ( | ) |
function generating Trip objects using the local objects
1 / 3 : Accompaniment
2/3 : drivers way
3/3: way return
Definition at line 264 of file AGWorkAndSchool.cpp.
References AGHousehold::getPosition(), getUnusedCar(), AGActivity::myHousehold, AGActivity::myPartialActivityTrips, notNeedingDrivers, personsDrivingCars, tempAccTrip, tempTrip, and AGActivity::timePerKm.
Referenced by carsToTrips().
|
virtual |
Implements AGActivity.
Definition at line 45 of file AGWorkAndSchool.cpp.
References adultNeedingCarAccompaniment, buildChildrenAccompaniment(), buildWorkDestinations(), carAllocation(), carsToTrips(), childrenNeedingCarAccompaniment, AGActivity::genDone, AGHousehold::getCarNbr(), AGActivity::myHousehold, notNeedingDrivers, and personsDrivingCars.
Referenced by AGActivities::generateTrips().
|
inherited |
Definition at line 139 of file AGActivity.cpp.
References AGActivity::myPartialActivityTrips.
Referenced by AGActivities::generateTrips().
std::string AGWorkAndSchool::getUnusedCar | ( | ) |
return the name of a car that is not used by another adult driver of the household in fact there is only 1 or 2 adults, so if the number of cars is greater that 1 at least one car isn't used
Definition at line 346 of file AGWorkAndSchool.cpp.
References AGHousehold::getCars(), AGActivity::myHousehold, AGActivity::myPartialActivityTrips, and tempTrip.
Referenced by generateListTrips().
|
inherited |
returns whether the generation could have been well done
Definition at line 45 of file AGActivity.cpp.
References AGActivity::genDone.
bool AGWorkAndSchool::isThereUnusedCar | ( | ) |
returns true if there is an unused car that can be driven by an adult
Definition at line 191 of file AGWorkAndSchool.cpp.
References AGHousehold::getCarNbr(), AGActivity::myHousehold, notNeedingDrivers, and personsDrivingCars.
Referenced by carsToTrips().
void AGWorkAndSchool::makePossibleDriversDrive | ( | ) |
function adding new drivers when a not used car is needed
Definition at line 367 of file AGWorkAndSchool.cpp.
References adultNeedingCarAccompaniment, AGHousehold::getAdultNbr(), AGHousehold::getAdults(), AGActivity::myHousehold, notNeedingDrivers, personsDrivingCars, and workingPeoplePossCar.
Referenced by carsToTrips().
|
inherited |
determine the possible transportation means, what would be chosen: 1 = foot 2 = bus 4 = car any combination is possible by simply addition of these values (ex. 7 means: 4+2+1 <=> foot, bus and car possible / 5 means: 4+1 <=> only foot and car are possible)
Definition at line 55 of file AGActivity.cpp.
References AGDataAndStatistics::busStations, AGPosition::distanceTo(), AGHousehold::getCarNbr(), AGHousehold::getPosition(), AGDataAndStatistics::maxFootDistance, AGPosition::minDistanceTo(), AGActivity::myHousehold, AGActivity::myStatData, and SUMOReal.
Referenced by buildWorkDestinations().
evaluates a random time between the given two time instants
Definition at line 127 of file AGActivity.cpp.
References RandHelper::rand().
Referenced by AGFreeTime::typeFromHomeDay(), AGFreeTime::typeFromHomeEvening(), and AGFreeTime::typeFromHomeNight().
|
inherited |
evaluation of the needed time for going from one point to an other using the car
Definition at line 109 of file AGActivity.cpp.
References AGPosition::distanceTo(), SUMOReal, and AGActivity::timePerKm.
Referenced by AGActivity::arrHour(), and AGActivity::depHour().
|
protectedinherited |
Definition at line 116 of file AGActivity.h.
|
private |
adult needing a car having a car but this car is not available because of an other person
Definition at line 121 of file AGWorkAndSchool.h.
Referenced by buildWorkDestinations(), carAllocation(), carsToTrips(), generateTrips(), and makePossibleDriversDrive().
|
protectedinherited |
rate of taking the car instead of the bus because of personal preference
Definition at line 122 of file AGActivity.h.
Referenced by buildWorkDestinations().
|
private |
list of destinations for children, which can be reach only using a car (too far from home) and therefore need to be accompanied: waiting list for the accompaniment
Definition at line 116 of file AGWorkAndSchool.h.
Referenced by buildChildrenAccompaniment(), carAllocation(), carsToTrips(), and generateTrips().
|
protectedinherited |
Definition at line 117 of file AGActivity.h.
Referenced by generateTrips(), AGFreeTime::generateTrips(), and AGActivity::isGenerated().
|
protectedinherited |
Definition at line 110 of file AGActivity.h.
Referenced by buildChildrenAccompaniment(), buildWorkDestinations(), carAllocation(), carsToTrips(), AGFreeTime::decideTypeOfTrip(), generateListTrips(), generateTrips(), getUnusedCar(), isThereUnusedCar(), makePossibleDriversDrive(), AGActivity::possibleTranspMean(), AGFreeTime::possibleTypeOfTrip(), AGFreeTime::typeFromHomeDay(), AGFreeTime::typeFromHomeEvening(), and AGFreeTime::typeFromHomeNight().
|
protectedinherited |
Definition at line 115 of file AGActivity.h.
Referenced by generateListTrips(), AGActivity::getPartialActivityTrips(), getUnusedCar(), AGFreeTime::typeFromHomeDay(), AGFreeTime::typeFromHomeEvening(), and AGFreeTime::typeFromHomeNight().
|
protectedinherited |
Definition at line 114 of file AGActivity.h.
Referenced by AGFreeTime::whenBackHome(), AGFreeTime::whenBackHomeThisDay(), and AGFreeTime::whenBeginActivityNextDay().
|
protectedinherited |
Definition at line 112 of file AGActivity.h.
Referenced by AGActivity::availableTranspMeans(), AGActivity::possibleTranspMean(), and AGFreeTime::possibleTypeOfTrip().
|
private |
adults of the household who are not in need of car for work but are able to accompany someone. used only in case of need.
Definition at line 137 of file AGWorkAndSchool.h.
Referenced by carAllocation(), checkDriversScheduleMatching(), generateListTrips(), generateTrips(), isThereUnusedCar(), and makePossibleDriversDrive().
|
private |
work destinations with use of car
Definition at line 132 of file AGWorkAndSchool.h.
Referenced by buildWorkDestinations(), carAllocation(), carsToTrips(), generateListTrips(), generateTrips(), isThereUnusedCar(), and makePossibleDriversDrive().
|
private |
list of temporary trips: contains accompaniment trips without any return to home.
Definition at line 142 of file AGWorkAndSchool.h.
Referenced by carsToTrips(), checkAndBuildTripConsistancy(), checkDriversScheduleMatching(), and generateListTrips().
|
private |
Definition at line 143 of file AGWorkAndSchool.h.
Referenced by carsToTrips(), checkDriversScheduleMatching(), generateListTrips(), and getUnusedCar().
|
protectedinherited |
Definition at line 118 of file AGActivity.h.
Referenced by checkAndBuildTripConsistancy(), checkDriversScheduleMatching(), generateListTrips(), AGActivity::timeToDrive(), AGFreeTime::whenBackHome(), and AGFreeTime::whenBackHomeThisDay().
|
private |
list of destinations for work by bus or car, car being possible (other wise bus or feet)
Definition at line 127 of file AGWorkAndSchool.h.
Referenced by buildWorkDestinations(), carAllocation(), and makePossibleDriversDrive().