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 /****************************************************************************/
20 // A household contains the people and cars of the city: roughly represents
21 // families with their address, cars, adults and possibly children
22 /****************************************************************************/
23 #ifndef HOUSEHOLD_H
24 #define HOUSEHOLD_H
25 
26 
27 // ===========================================================================
28 // included modules
29 // ===========================================================================
30 #include <config.h>
31 
32 #include <iostream>
33 #include <list>
34 #include "AGPerson.h"
35 #include "AGAdult.h"
36 #include "AGChild.h"
37 #include "AGCar.h"
38 #include "AGStreet.h"
39 #include "AGPosition.h"
40 #include "AGCity.h"
41 
42 
43 // ===========================================================================
44 // class declarations
45 // ===========================================================================
46 class AGCity;
47 
48 
49 // ===========================================================================
50 // class definitions
51 // ===========================================================================
52 class AGHousehold {
53 public:
54  AGHousehold(AGPosition pos, AGCity* city, int idHouseholds) :
55  myCity(city),
56  myLocation(pos),
57  myId(idHouseholds) {};
58  AGHousehold(AGStreet* str, AGCity* city, int idHouseholds) :
59  myCity(city),
60  myLocation(*str),
61  myId(idHouseholds) {};
65  void generatePeople(int numAdults, int numChilds, bool firstRetired);
66  int getPeopleNbr();
67  int getAdultNbr();
68  const std::list<AGAdult>& getAdults() const;
69  const std::list<AGChild>& getChildren() const;
70  const std::list<AGCar>& getCars() const;
74  bool isCloseFromPubTransport(std::list<AGPosition>* pubTransport);
75  bool isCloseFromPubTransport(std::map<int, AGPosition>* pubTransport);
83  void regenerate();
93  bool allocateAdultsWork();
97  void generateCars(double rate);
98  int getCarNbr();
102  void addACar();
106  AGCity* getTheCity();
110  bool retiredHouseholders();
115 
116 private:
119  int myId;
120 
121 private:
122  std::list<AGAdult> myAdults;
123  std::list<AGChild> myChildren;
124  std::list<AGCar> myCars;
125 };
126 
127 #endif
128 
129 /****************************************************************************/
AGHousehold
Definition: AGHousehold.h:52
AGHousehold::getAdultNbr
int getAdultNbr()
Definition: AGHousehold.cpp:95
AGHousehold::generatePeople
void generatePeople(int numAdults, int numChilds, bool firstRetired)
Definition: AGHousehold.cpp:42
AGHousehold::getCarNbr
int getCarNbr()
Definition: AGHousehold.cpp:85
AGStreet.h
AGHousehold::myCars
std::list< AGCar > myCars
Definition: AGHousehold.h:124
AGHousehold::myAdults
std::list< AGAdult > myAdults
Definition: AGHousehold.h:122
AGPerson.h
AGHousehold::getPosition
AGPosition getPosition()
Definition: AGHousehold.cpp:189
AGHousehold::isCloseFromPubTransport
bool isCloseFromPubTransport(std::list< AGPosition > *pubTransport)
Definition: AGHousehold.cpp:115
AGAdult.h
AGHousehold::AGHousehold
AGHousehold(AGStreet *str, AGCity *city, int idHouseholds)
Definition: AGHousehold.h:58
AGHousehold::getPeopleNbr
int getPeopleNbr()
Definition: AGHousehold.cpp:90
AGHousehold::myLocation
AGPosition myLocation
Definition: AGHousehold.h:118
AGHousehold::myId
int myId
Definition: AGHousehold.h:119
AGHousehold::getTheCity
AGCity * getTheCity()
Definition: AGHousehold.cpp:194
AGHousehold::myCity
AGCity * myCity
Definition: AGHousehold.h:117
AGHousehold::generateCars
void generateCars(double rate)
Definition: AGHousehold.cpp:68
AGHousehold::myChildren
std::list< AGChild > myChildren
Definition: AGHousehold.h:123
AGHousehold::retiredHouseholders
bool retiredHouseholders()
Definition: AGHousehold.cpp:199
AGCity
Definition: AGCity.h:53
AGStreet
A model of the street in the city.
Definition: AGStreet.h:53
AGHousehold::getChildren
const std::list< AGChild > & getChildren() const
Definition: AGHousehold.cpp:105
AGCar.h
AGHousehold::allocateAdultsWork
bool allocateAdultsWork()
Definition: AGHousehold.cpp:174
AGPosition.h
AGPosition
A location in the 2D plane freely positioned on a street.
Definition: AGPosition.h:56
AGHousehold::addACar
void addACar()
Definition: AGHousehold.cpp:79
AGChild.h
config.h
AGHousehold::getAdults
const std::list< AGAdult > & getAdults() const
Definition: AGHousehold.cpp:100
AGHousehold::regenerate
void regenerate()
Definition: AGHousehold.cpp:133
AGCity.h
AGHousehold::getCars
const std::list< AGCar > & getCars() const
Definition: AGHousehold.cpp:110
AGHousehold::allocateChildrenSchool
bool allocateChildrenSchool()
Definition: AGHousehold.cpp:161
AGHousehold::AGHousehold
AGHousehold(AGPosition pos, AGCity *city, int idHouseholds)
Definition: AGHousehold.h:54