Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/src/activitygen/activities/AGFreeTime.h
169678 views
1
/****************************************************************************/
2
// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3
// Copyright (C) 2010-2025 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 are made available under the
7
// terms of the Eclipse Public License 2.0 which is available at
8
// https://www.eclipse.org/legal/epl-2.0/
9
// This Source Code may also be made available under the following Secondary
10
// Licenses when the conditions for such availability set forth in the Eclipse
11
// Public License 2.0 are satisfied: GNU General Public License, version 2
12
// or later which is available at
13
// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
14
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
15
/****************************************************************************/
16
/// @file AGFreeTime.h
17
/// @author Piotr Woznica
18
/// @author Daniel Krajzewicz
19
/// @author Walter Bamberger
20
/// @author Michael Behrisch
21
/// @date July 2010
22
///
23
// Generates trips related to after-work activities
24
// like visiting the family or party.
25
/****************************************************************************/
26
#pragma once
27
#include <config.h>
28
29
#include <activitygen/city/AGHousehold.h>
30
#include "AGActivity.h"
31
32
33
// ===========================================================================
34
// class definitions
35
// ===========================================================================
36
class AGFreeTime : public AGActivity {
37
public:
38
AGFreeTime(AGHousehold* hh, AGDataAndStatistics* das, std::list<AGTrip>* prevTrips, int days = 1) :
39
AGActivity(hh, das, prevTrips, 2),
40
freqOut(das->freeTimeActivityRate),
41
nbrDays(days) {};
42
43
/**
44
* @Overwrite
45
*/
46
bool generateTrips();
47
48
/**
49
* returns the type of trip that will be done on this household
50
* there is also the case: no free time trip
51
* 0 = non
52
* 1 = during the day
53
* 2 = in the evening
54
* 4 = during the night
55
* (combinations using '+' are available for possibleTypeOfTrip())
56
*/
57
int possibleTypeOfTrip();
58
int decideTypeOfTrip();
59
/**
60
* The different type of trips that are available:
61
* one function is called among all the following
62
*/
63
bool typeFromHomeDay(int day);
64
bool typeFromHomeEvening(int day);
65
bool typeFromHomeNight(int day);
66
67
/**
68
* returns the moment when everybody is back home and ready
69
* to do some thing else using everyday trips
70
*/
71
int whenBackHome();
72
/**
73
* moment when everybody is back home using all trips applicable for the given day
74
* if no car is used: return 0
75
*/
76
int whenBackHomeThisDay(int day);
77
/**
78
* moment when the first person takes the car to go somewhere
79
* id no car is used: return 2400 (midnight at the end of the given day)
80
*/
81
int whenBeginActivityNextDay(int day);
82
83
private:
84
/**
85
* frequency of going out or see family is assumed to be once a week (in mean)
86
*/
87
double freqOut;
88
/**
89
* number of days for the simulation
90
* households are likely to go out some days but not others
91
*/
92
int nbrDays;
93
/**
94
* time ready to do something else
95
* everybody is back home
96
*/
97
int tReady = 0;
98
/**
99
* possible type of trips for this household
100
*/
101
int possibleType = 0;
102
103
static const int DAY;// = 1;
104
static const int EVENING;// = 2;
105
static const int NIGHT;// = 4;
106
107
static const int TB_DAY;// = 800;
108
static const int TE_DAY;// = 1800;
109
static const int TB_EVENING;// = 1900;
110
static const int TE_EVENING;// = 2400;
111
static const int TB_NIGHT;// = 2300;
112
static const int TE_NIGHT;// = 500;
113
114
};
115
116