Eclipse SUMO - Simulation of Urban MObility
AGStreet.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3 // Copyright (C) 2010-2024 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 /****************************************************************************/
23 // Represents a SUMO edge and contains people and work densities
24 /****************************************************************************/
25 #include <config.h>
26 
27 #include "AGStreet.h"
28 #include "router/ROEdge.h"
29 #include <iostream>
30 
31 
32 // ===========================================================================
33 // method definitions
34 // ===========================================================================
35 AGStreet::AGStreet(const std::string& id, RONode* from, RONode* to, int index, const int priority) :
36  ROEdge(id, from, to, index, priority), myPopulation(0.), myNumWorkplaces(0.) {
37 }
38 
39 
40 void
41 AGStreet::print() const {
42  std::cout << "- AGStreet: Name=" << getID() << " Length=" << getLength() << " pop=" << myPopulation << " work=" << myNumWorkplaces << std::endl;
43 }
44 
45 
46 double
48  return myPopulation;
49 }
50 
51 
52 void
53 AGStreet::setPopulation(const double population) {
54  myPopulation = population;
55 }
56 
57 
58 double
60  return myNumWorkplaces;
61 }
62 
63 
64 void
65 AGStreet::setWorkplaceNumber(const double workPositions) {
66  myNumWorkplaces = workPositions;
67 }
68 
69 
70 bool
71 AGStreet::allows(const SUMOVehicleClass vclass) const {
72  return (getPermissions() & vclass) == vclass;
73 }
74 
75 
76 /****************************************************************************/
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
void setWorkplaceNumber(const double work)
Modifies the number of work places in this street.
Definition: AGStreet.cpp:65
AGStreet(const std::string &id, RONode *from, RONode *to, int index, const int priority)
Definition: AGStreet.cpp:35
void print() const
Prints a summary of the properties of this street to standard output.
Definition: AGStreet.cpp:41
double myPopulation
Definition: AGStreet.h:106
double getPopulation() const
Provides the number of persons living in this street.
Definition: AGStreet.cpp:47
void setPopulation(const double pop)
Modifies the number of persons living in this street.
Definition: AGStreet.cpp:53
double getWorkplaceNumber() const
Provides the number of work places in this street.
Definition: AGStreet.cpp:59
bool allows(const SUMOVehicleClass vclass) const
Returns whether the given vehicle class is allowed on this street.
Definition: AGStreet.cpp:71
double myNumWorkplaces
Definition: AGStreet.h:107
const std::string & getID() const
Returns the id.
Definition: Named.h:74
A basic edge for routing applications.
Definition: ROEdge.h:70
SVCPermissions getPermissions() const
Definition: ROEdge.h:283
double getLength() const
Returns the length of the edge.
Definition: ROEdge.h:219
Base class for nodes used by the router.
Definition: RONode.h:43