Eclipse SUMO - Simulation of Urban MObility
AGHousehold.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2010-2019 German Aerospace Center (DLR) and others.
4 // activitygen module
5 // Copyright 2010 TUM (Technische Universitaet Muenchen, http://www.tum.de/)
6 // This program and the accompanying materials
7 // are made available under the terms of the Eclipse Public License v2.0
8 // which accompanies this distribution, and is available at
9 // http://www.eclipse.org/legal/epl-v20.html
10 // SPDX-License-Identifier: EPL-2.0
11 /****************************************************************************/
19 // A household contains the people and cars of the city: roughly represents
20 // families with their address, cars, adults and possibly children
21 /****************************************************************************/
22 #ifndef HOUSEHOLD_H
23 #define HOUSEHOLD_H
24 
25 
26 // ===========================================================================
27 // included modules
28 // ===========================================================================
29 #include <config.h>
30 
31 #include <iostream>
32 #include <list>
33 #include "AGPerson.h"
34 #include "AGAdult.h"
35 #include "AGChild.h"
36 #include "AGCar.h"
37 #include "AGStreet.h"
38 #include "AGPosition.h"
39 #include "AGCity.h"
40 
41 
42 // ===========================================================================
43 // class declarations
44 // ===========================================================================
45 class AGCity;
46 
47 
48 // ===========================================================================
49 // class definitions
50 // ===========================================================================
51 class AGHousehold {
52 public:
53  AGHousehold(AGPosition pos, AGCity* city, int idHouseholds) :
54  myCity(city),
55  myLocation(pos),
56  myId(idHouseholds) {};
57  AGHousehold(AGStreet* str, AGCity* city, int idHouseholds) :
58  myCity(city),
59  myLocation(*str),
60  myId(idHouseholds) {};
64  void generatePeople(int numAdults, int numChilds, bool firstRetired);
65  int getPeopleNbr();
66  int getAdultNbr();
67  const std::list<AGAdult>& getAdults() const;
68  const std::list<AGChild>& getChildren() const;
69  const std::list<AGCar>& getCars() const;
73  bool isCloseFromPubTransport(std::list<AGPosition>* pubTransport);
74  bool isCloseFromPubTransport(std::map<int, AGPosition>* pubTransport);
82  void regenerate();
92  bool allocateAdultsWork();
96  void generateCars(double rate);
97  int getCarNbr();
101  void addACar();
105  AGCity* getTheCity();
109  bool retiredHouseholders();
114 
115 private:
118  int myId;
119 
120 private:
121  std::list<AGAdult> myAdults;
122  std::list<AGChild> myChildren;
123  std::list<AGCar> myCars;
124 };
125 
126 #endif
127 
128 /****************************************************************************/
AGHousehold
Definition: AGHousehold.h:51
AGHousehold::getAdultNbr
int getAdultNbr()
Definition: AGHousehold.cpp:94
AGHousehold::generatePeople
void generatePeople(int numAdults, int numChilds, bool firstRetired)
Definition: AGHousehold.cpp:41
AGHousehold::getCarNbr
int getCarNbr()
Definition: AGHousehold.cpp:84
AGStreet.h
AGHousehold::myCars
std::list< AGCar > myCars
Definition: AGHousehold.h:123
AGHousehold::myAdults
std::list< AGAdult > myAdults
Definition: AGHousehold.h:121
AGPerson.h
AGHousehold::getPosition
AGPosition getPosition()
Definition: AGHousehold.cpp:188
AGHousehold::isCloseFromPubTransport
bool isCloseFromPubTransport(std::list< AGPosition > *pubTransport)
Definition: AGHousehold.cpp:114
AGAdult.h
AGHousehold::AGHousehold
AGHousehold(AGStreet *str, AGCity *city, int idHouseholds)
Definition: AGHousehold.h:57
AGHousehold::getPeopleNbr
int getPeopleNbr()
Definition: AGHousehold.cpp:89
AGHousehold::myLocation
AGPosition myLocation
Definition: AGHousehold.h:117
AGHousehold::myId
int myId
Definition: AGHousehold.h:118
AGHousehold::getTheCity
AGCity * getTheCity()
Definition: AGHousehold.cpp:193
AGHousehold::myCity
AGCity * myCity
Definition: AGHousehold.h:116
AGHousehold::generateCars
void generateCars(double rate)
Definition: AGHousehold.cpp:67
AGHousehold::myChildren
std::list< AGChild > myChildren
Definition: AGHousehold.h:122
AGHousehold::retiredHouseholders
bool retiredHouseholders()
Definition: AGHousehold.cpp:198
AGCity
Definition: AGCity.h:52
AGStreet
A model of the street in the city.
Definition: AGStreet.h:52
AGHousehold::getChildren
const std::list< AGChild > & getChildren() const
Definition: AGHousehold.cpp:104
AGCar.h
AGHousehold::allocateAdultsWork
bool allocateAdultsWork()
Definition: AGHousehold.cpp:173
AGPosition.h
AGPosition
A location in the 2D plane freely positioned on a street.
Definition: AGPosition.h:55
AGHousehold::addACar
void addACar()
Definition: AGHousehold.cpp:78
AGChild.h
config.h
AGHousehold::getAdults
const std::list< AGAdult > & getAdults() const
Definition: AGHousehold.cpp:99
AGHousehold::regenerate
void regenerate()
Definition: AGHousehold.cpp:132
AGCity.h
AGHousehold::getCars
const std::list< AGCar > & getCars() const
Definition: AGHousehold.cpp:109
AGHousehold::allocateChildrenSchool
bool allocateChildrenSchool()
Definition: AGHousehold.cpp:160
AGHousehold::AGHousehold
AGHousehold(AGPosition pos, AGCity *city, int idHouseholds)
Definition: AGHousehold.h:53