1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2002-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
10 /// @file    ODCell.h
11 /// @author  Peter Mieth
12 /// @author  Daniel Krajzewicz
13 /// @author  Yun-Pang Floetteroed
14 /// @date    Sept 2002
15 /// @version $Id$
16 ///
17 // A single O/D-matrix cell
18 /****************************************************************************/
19 #ifndef ODCell_h
20 #define ODCell_h
21 
22 
23 // ===========================================================================
24 // included modules
25 // ===========================================================================
26 #include <config.h>
27 
28 #include <vector>
29 #include <map>
30 #include <utils/common/SUMOTime.h>
31 
32 
33 // ===========================================================================
34 // class declarations
35 // ===========================================================================
36 class RORoute;
37 
38 
39 // ===========================================================================
40 // class definitions
41 // ===========================================================================
42 /**
43  * @struct ODCell
44  * @brief A single O/D-matrix cell
45  *
46  * A single cell within an O/D-matrix. Contains the information about the origin
47  *  and destination via string-ids of the district, the begin and the end time
48  *  for which this cell is valid, the id of the vehicle type to use, and the
49  *  amount of vehicles to insert during the described interval.
50  */
51 struct ODCell {
52     /// @brief The number of vehicles
53     double vehicleNumber;
54 
55     /// @brief The begin time this cell describes
56     SUMOTime begin;
57 
58     /// @brief The end time this cell describes
59     SUMOTime end;
60 
61     /// @brief Name of the origin district
62     std::string origin;
63 
64     /// @brief Name of the destination district
65     std::string destination;
66 
67     /// @brief Name of the vehicle type
68     std::string vehicleType;
69 
70     /// @brief the list of paths / routes
71     std::vector<RORoute*> pathsVector;  // path_id, string of edges?
72 
73     /// @brief mapping of departure times to departing vehicles, if already fixed
74     std::map<SUMOTime, std::vector<std::string> > departures;
75 
76     /// @brief the origin "district" is an edge id
77     bool originIsEdge = false;
78 
79     /// @brief the destination "district" is an edge id
80     bool destinationIsEdge = false;
81 };
82 
83 
84 #endif
85 
86 /****************************************************************************/
87 
88