SUMO - Simulation of Urban MObility
Person.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2012-2017 German Aerospace Center (DLR) and others.
4 /****************************************************************************/
5 //
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 //
11 /****************************************************************************/
17 // C++ TraCI client API implementation
18 /****************************************************************************/
19 #ifndef Person_h
20 #define Person_h
21 
22 
23 // ===========================================================================
24 // included modules
25 // ===========================================================================
26 #ifdef _MSC_VER
27 #include <windows_config.h>
28 #else
29 #include <config.h>
30 #endif
31 
32 #include <vector>
33 #include <libsumo/TraCIDefs.h>
36 
37 // ===========================================================================
38 // class declarations
39 // ===========================================================================
40 class MSRoute;
41 
42 // ===========================================================================
43 // class definitions
44 // ===========================================================================
49 namespace libsumo {
50 class Person {
51  // processSet calls private member getSingularVType(), which should not be exposed to the public API.
53 
54 public:
55  static std::vector<std::string> getIDList();
56  static int getIDCount();
57  static double getSpeed(const std::string& personID);
58  static TraCIPosition getPosition(const std::string& personID);
59  static std::string getRoadID(const std::string& personID);
60  static std::string getTypeID(const std::string& personID);
61  static double getWaitingTime(const std::string& personID);
62  static std::string getNextEdge(const std::string& personID);
63  static std::string getVehicle(const std::string& personID);
64  static int getRemainingStages(const std::string& personID);
65  static int getStage(const std::string& personID, int nextStageIndex = 0);
66  static std::vector<std::string> getEdges(const std::string& personID, int nextStageIndex = 0);
67  static std::string getParameter(const std::string& routeID, const std::string& param);
68  static double getAngle(const std::string& personID);
69  static double getLanePosition(const std::string& personID);
70  static TraCIColor getColor(const std::string& personID);
71 
72  static void removeStages(const std::string& personID);
73  static void add(const std::string& personID, const std::string& edgeID, double pos, double depart = DEPARTFLAG_NOW, const std::string typeID = "DEFAULT_PEDTYPE");
74  static void appendWaitingStage(const std::string& personID, double duration, const std::string& description = "waiting", const std::string& stopID = "");
75  static void appendWalkingStage(const std::string& personID, const std::vector<std::string>& edgeIDs, double arrivalPos, double duration = -1, double speed = -1, const std::string& stopID = "");
76  static void appendDrivingStage(const std::string& personID, const std::string& toEdge, const std::string& lines, const std::string& stopID = "");
77  static void removeStage(const std::string& personID, int nextStageIndex);
78  static void rerouteTraveltime(const std::string& personID);
79  static void moveTo(const std::string& personID, const std::string& edgeID, double position);
80  static void moveToXY(const std::string& personID, const std::string& edgeID, const double x, const double y, double angle, const int keepRouteFlag);
81  static void setParameter(const std::string& personID, const std::string& key, const std::string& value);
82  static void setSpeed(const std::string& personID, double speed);
83  static void setType(const std::string& personID, const std::string& typeID);
84  static void setLength(const std::string& personID, double length);
85  static void setWidth(const std::string& personID, double width);
86  static void setHeight(const std::string& personID, double height);
87  static void setMinGap(const std::string& personID, double minGap);
88  static void setColor(const std::string& personID, const TraCIColor& c);
89 
90 private:
92  Person();
93 
95  Person(const Person& src);
96 
98  Person& operator=(const Person& src);
99 
100  static MSPerson* getPerson(const std::string& id);
101 
102  // This does not only return the person's vType, but makes it singular.
103  static std::string getSingularVType(const std::string& personID);
104 
105 };
106 }
107 
108 
109 #endif
110 
111 /****************************************************************************/
static void moveTo(const std::string &personID, const std::string &edgeID, double position)
Definition: Person.cpp:386
#define DEPARTFLAG_NOW
static std::string getNextEdge(const std::string &personID)
Definition: Person.cpp:128
static void setHeight(const std::string &personID, double height)
Definition: Person.cpp:545
static void setMinGap(const std::string &personID, double minGap)
Definition: Person.cpp:550
static void setType(const std::string &personID, const std::string &typeID)
Definition: Person.cpp:195
static int getIDCount()
Definition: Person.cpp:63
static void moveToXY(const std::string &personID, const std::string &edgeID, const double x, const double y, double angle, const int keepRouteFlag)
Definition: Person.cpp:411
static std::string getSingularVType(const std::string &personID)
Definition: Person.cpp:574
static std::vector< std::string > getIDList()
Definition: Person.cpp:50
static std::string getTypeID(const std::string &personID)
Definition: Person.cpp:116
static double getLanePosition(const std::string &personID)
Definition: Person.cpp:98
static void appendDrivingStage(const std::string &personID, const std::string &toEdge, const std::string &lines, const std::string &stopID="")
Definition: Person.cpp:271
static int getRemainingStages(const std::string &personID)
Definition: Person.cpp:164
static std::string getVehicle(const std::string &personID)
Definition: Person.cpp:170
static MSPerson * getPerson(const std::string &id)
Definition: Person.cpp:564
static TraCIPosition getPosition(const std::string &personID)
Definition: Person.cpp:69
static bool processSet(TraCIServer &server, tcpip::Storage &inputStorage, tcpip::Storage &outputStorage)
Processes a set value command (Command 0xce: Change Person State)
static void add(const std::string &personID, const std::string &edgeID, double pos, double depart=DEPARTFLAG_NOW, const std::string typeID="DEFAULT_PEDTYPE")
Definition: Person.cpp:205
Person()
invalidated standard constructor
static void setParameter(const std::string &personID, const std::string &key, const std::string &value)
Definition: Person.cpp:529
static void setColor(const std::string &personID, const TraCIColor &c)
Definition: Person.cpp:555
TraCI server used to control sumo by a remote TraCI client.
Definition: TraCIServer.h:69
static std::string getParameter(const std::string &routeID, const std::string &param)
Definition: Person.cpp:181
static void setSpeed(const std::string &personID, double speed)
Definition: Person.cpp:189
Definition: Edge.cpp:31
static TraCIColor getColor(const std::string &personID)
Definition: Person.cpp:104
static std::string getRoadID(const std::string &personID)
Definition: Person.cpp:92
static void removeStage(const std::string &personID, int nextStageIndex)
Definition: Person.cpp:341
static double getWaitingTime(const std::string &personID)
Definition: Person.cpp:122
static int getStage(const std::string &personID, int nextStageIndex=0)
Definition: Person.cpp:151
static void appendWaitingStage(const std::string &personID, double duration, const std::string &description="waiting", const std::string &stopID="")
Definition: Person.cpp:292
static std::vector< std::string > getEdges(const std::string &personID, int nextStageIndex=0)
Definition: Person.cpp:134
Person & operator=(const Person &src)
invalidated assignment operator
static void removeStages(const std::string &personID)
static void appendWalkingStage(const std::string &personID, const std::vector< std::string > &edgeIDs, double arrivalPos, double duration=-1, double speed=-1, const std::string &stopID="")
Definition: Person.cpp:309
static void setWidth(const std::string &personID, double width)
Definition: Person.cpp:540
static void setLength(const std::string &personID, double length)
Definition: Person.cpp:535
static double getSpeed(const std::string &personID)
Definition: Person.cpp:86
A 3D-position.
Definition: TraCIDefs.h:71
static void rerouteTraveltime(const std::string &personID)
Definition: Person.cpp:354
static double getAngle(const std::string &personID)
Definition: Person.cpp:80