43 myOpeningTime(generateOpeningTime(*ds)),
44 myClosingTime(generateClosingTime(*ds)) {
51 myLocation(inStreet, pos),
53 myOpeningTime(generateOpeningTime(*ds)),
54 myClosingTime(generateClosingTime(*ds)) {
76 for (std::map<int, double>::const_iterator it = ds.
beginWorkHours.begin();
79 if (cumul >= choice) {
83 std::cout <<
"-- WARNING: work time distribution not complete (Sum(proportions) != 1): AUTODEFINED at 9.00am --" << std::endl;
92 for (std::map<int, double>::const_iterator it = ds.
endWorkHours.begin();
95 if (cumul >= choice) {
99 std::cout <<
"-- WARNING: work time distribution not complete (Sum(proportions) != 1): AUTODEFINED at 5.00pm --" << std::endl;
126 throw (std::runtime_error(
"Work position already occupied. Cannot give it to another adult."));
An adult person who can have a job.
void lostWorkPosition()
Called when the adult has lost her job.
std::map< int, double > endWorkHours
std::map< int, double > beginWorkHours
A location in the 2D plane freely positioned on a street.
void print() const
Prints out a summary of the properties of this class on standard output.
A model of the street in the city.
static int generateOpeningTime(const AGDataAndStatistics &ds)
static int generateClosingTime(const AGDataAndStatistics &ds)
AGPosition getPosition() const
AGDataAndStatistics * myStatData
AGWorkPosition(AGDataAndStatistics *ds, const AGStreet &inStreet)
static double rand(std::mt19937 *rng=nullptr)
Returns a random real number in [0, 1)