Eclipse SUMO - Simulation of Urban MObility
Vehicle.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-2020 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials are made available under the
5 // terms of the Eclipse Public License 2.0 which is available at
6 // https://www.eclipse.org/legal/epl-2.0/
7 // This Source Code may also be made available under the following Secondary
8 // Licenses when the conditions for such availability set forth in the Eclipse
9 // Public License 2.0 are satisfied: GNU General Public License, version 2
10 // or later which is available at
11 // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 /****************************************************************************/
19 // C++ Vehicle API
20 /****************************************************************************/
21 #pragma once
22 #include <config.h>
23 
24 #include <limits>
25 #include <vector>
26 #include <libsumo/TraCIDefs.h>
27 #include <libsumo/VehicleType.h>
28 #include <libsumo/TraCIConstants.h>
29 #ifndef LIBTRACI
31 #endif
32 
33 
34 // ===========================================================================
35 // class declarations
36 // ===========================================================================
37 #ifndef LIBTRACI
38 namespace libsumo {
39 class VariableWrapper;
40 }
41 class SUMOVehicle;
42 #endif
43 
44 
45 // ===========================================================================
46 // class definitions
47 // ===========================================================================
52 namespace LIBSUMO_NAMESPACE {
53 class Vehicle {
54 public:
57  static double getSpeed(const std::string& vehicleID);
58  static double getLateralSpeed(const std::string& vehicleID);
59  static double getAcceleration(const std::string& vehicleID);
60  static double getSpeedWithoutTraCI(const std::string& vehicleID);
61  static libsumo::TraCIPosition getPosition(const std::string& vehicleID, const bool includeZ = false);
62  static libsumo::TraCIPosition getPosition3D(const std::string& vehicleID);
63  static double getAngle(const std::string& vehicleID);
64  static double getSlope(const std::string& vehicleID);
65  static std::string getRoadID(const std::string& vehicleID);
66  static std::string getLaneID(const std::string& vehicleID);
67  static int getLaneIndex(const std::string& vehicleID);
68  static std::string getTypeID(const std::string& vehicleID);
69  static std::string getRouteID(const std::string& vehicleID);
70  static int getRouteIndex(const std::string& vehicleID);
71  static double getLanePosition(const std::string& vehicleID);
72  static double getLateralLanePosition(const std::string& vehicleID);
73  static double getCO2Emission(const std::string& vehicleID);
74  static double getCOEmission(const std::string& vehicleID);
75  static double getHCEmission(const std::string& vehicleID);
76  static double getPMxEmission(const std::string& vehicleID);
77  static double getNOxEmission(const std::string& vehicleID);
78  static double getFuelConsumption(const std::string& vehicleID);
79  static double getNoiseEmission(const std::string& vehicleID);
80  static double getElectricityConsumption(const std::string& vehicleID);
81  static int getPersonNumber(const std::string& vehicleID);
82  static std::vector<std::string> getPersonIDList(const std::string& vehicleID);
83  static std::pair<std::string, double> getLeader(const std::string& vehicleID, double dist = 0.);
84  static std::pair<std::string, double> getFollower(const std::string& vehicleID, double dist = 0.);
85  static double getWaitingTime(const std::string& vehicleID);
86  static double getAccumulatedWaitingTime(const std::string& vehicleID);
87  static double getAdaptedTraveltime(const std::string& vehicleID, double time, const std::string& edgeID);
88  static double getEffort(const std::string& vehicleID, double time, const std::string& edgeID);
89  static bool isRouteValid(const std::string& vehicleID);
90  static std::vector<std::string> getRoute(const std::string& vehicleID);
91  static int getSignals(const std::string& vehicleID);
92  static std::vector<libsumo::TraCIBestLanesData> getBestLanes(const std::string& vehicleID);
93  static std::vector<libsumo::TraCINextTLSData> getNextTLS(const std::string& vehicleID);
94  static std::vector<libsumo::TraCINextStopData> getNextStops(const std::string& vehicleID);
95  static std::vector<libsumo::TraCINextStopData> getStops(const std::string& vehicleID, int limit = 0);
96  static int getStopState(const std::string& vehicleID);
97  static double getDistance(const std::string& vehicleID);
98  static double getDrivingDistance(const std::string& vehicleID, const std::string& edgeID, double position, int laneIndex = 0);
99  static double getDrivingDistance2D(const std::string& vehicleID, double x, double y);
100  static double getAllowedSpeed(const std::string& vehicleID);
101  static int getSpeedMode(const std::string& vehicleID);
102  static int getLaneChangeMode(const std::string& vehicleID);
103  static int getRoutingMode(const std::string& vehicleID);
104  static std::string getLine(const std::string& vehicleID);
105  static std::vector<std::string> getVia(const std::string& vehicleID);
106  static std::pair<int, int> getLaneChangeState(const std::string& vehicleID, int direction);
107  static double getLastActionTime(const std::string& vehicleID);
108  static std::vector<std::pair<std::string, double> > getNeighbors(const std::string& vehicleID, const int mode);
109  static double getFollowSpeed(const std::string& vehicleID, double speed, double gap, double leaderSpeed, double leaderMaxDecel, const std::string& leaderID = "");
110  static double getSecureGap(const std::string& vehicleID, double speed, double leaderSpeed, double leaderMaxDecel, const std::string& leaderID = "");
111  static double getStopSpeed(const std::string& vehicleID, double speed, double gap);
112  static double getStopDelay(const std::string& vehicleID);
113  static double getStopArrivalDelay(const std::string& vehicleID);
114  static std::vector<std::string> getTaxiFleet(int taxiState = 0);
116 
119 
122 
123  static void setStop(const std::string& vehicleID,
124  const std::string& edgeID,
125  double pos = 1.,
126  int laneIndex = 0,
127  double duration = libsumo::INVALID_DOUBLE_VALUE,
128  int flags = libsumo::STOP_DEFAULT,
129  double startPos = libsumo::INVALID_DOUBLE_VALUE,
130  double until = libsumo::INVALID_DOUBLE_VALUE);
131 
132  static void replaceStop(const std::string& vehicleID,
133  int nextStopIndex,
134  const std::string& edgeID,
135  double pos = 1.,
136  int laneIndex = 0,
137  double duration = libsumo::INVALID_DOUBLE_VALUE,
138  int flags = libsumo::STOP_DEFAULT,
139  double startPos = libsumo::INVALID_DOUBLE_VALUE,
140  double until = libsumo::INVALID_DOUBLE_VALUE);
141 
142  static void rerouteParkingArea(const std::string& vehicleID,
143  const std::string& parkingAreaID);
144 
145  static void resume(const std::string& vehicleID);
146 
147  static void add(const std::string& vehID,
148  const std::string& routeID,
149  const std::string& typeID = "DEFAULT_VEHTYPE",
150  const std::string& depart = "now",
151  const std::string& departLane = "first",
152  const std::string& departPos = "base",
153  const std::string& departSpeed = "0",
154  const std::string& arrivalLane = "current",
155  const std::string& arrivalPos = "max",
156  const std::string& arrivalSpeed = "current",
157  const std::string& fromTaz = "",
158  const std::string& toTaz = "",
159  const std::string& line = "",
160  int personCapacity = 4,
161  int personNumber = 0);
162 
163  static void changeTarget(const std::string& vehicleID, const std::string& edgeID);
164  static void changeLane(const std::string& vehicleID, int laneIndex, double duration);
165  static void changeLaneRelative(const std::string& vehicleID, int indexOffset, double duration);
166  static void changeSublane(const std::string& vehicleID, double latDist);
167 
168  static void slowDown(const std::string& vehicleID, double speed, double duration);
169  static void openGap(const std::string& vehicleID, double newTimeHeadway, double newSpaceHeadway, double duration, double changeRate, double maxDecel = libsumo::INVALID_DOUBLE_VALUE, const std::string& referenceVehID = "");
170  static void deactivateGapControl(const std::string& vehicleID);
171  static void requestToC(const std::string& vehID, double leadTime);
172  static void setSpeed(const std::string& vehicleID, double speed);
173  static void setPreviousSpeed(const std::string& vehicleID, double prevspeed);
174  static void setSpeedMode(const std::string& vehicleID, int speedMode);
175  static void setLaneChangeMode(const std::string& vehicleID, int laneChangeMode);
176  static void setRoutingMode(const std::string& vehicleID, int routingMode);
177  static void setType(const std::string& vehicleID, const std::string& typeID);
178  static void setRouteID(const std::string& vehicleID, const std::string& routeID);
179  static void setRoute(const std::string& vehicleID, const std::string& edgeID);
180  static void setRoute(const std::string& vehicleID, const std::vector<std::string>& edgeIDs);
181  static void updateBestLanes(const std::string& vehicleID);
182  static void setAdaptedTraveltime(const std::string& vehicleID, const std::string& edgeID,
183  double time = libsumo::INVALID_DOUBLE_VALUE, double begSeconds = 0, double endSeconds = std::numeric_limits<double>::max());
184  static void setEffort(const std::string& vehicleID, const std::string& edgeID,
185  double effort = libsumo::INVALID_DOUBLE_VALUE, double begSeconds = 0, double endSeconds = std::numeric_limits<double>::max());
186  static void rerouteTraveltime(const std::string& vehicleID, const bool currentTravelTimes = true);
187  static void rerouteEffort(const std::string& vehicleID);
188  static void setSignals(const std::string& vehicleID, int signals);
189  static void moveTo(const std::string& vehicleID, const std::string& laneID, double position, int reason = libsumo::MOVE_AUTOMATIC);
190  static void moveToXY(const std::string& vehicleID, const std::string& edgeID, const int laneIndex, const double x, const double y, double angle = libsumo::INVALID_DOUBLE_VALUE, const int keepRoute = 1);
191  static void remove(const std::string& vehicleID, char reason = libsumo::REMOVE_VAPORIZED);
192  static void setLine(const std::string& vehicleID, const std::string& line);
193  static void setVia(const std::string& vehicleID, const std::vector<std::string>& via);
194  static void highlight(const std::string& vehicleID, const libsumo::TraCIColor& col = libsumo::TraCIColor(255, 0, 0, 255), double size = -1, const int alphaMax = -1, const double duration = -1, const int type = 0);
195  static void dispatchTaxi(const std::string& vehicleID, const std::vector<std::string>& reservations);
197 
199 
201 
202  static void subscribeLeader(const std::string& vehicleID, double dist = 0., double beginTime = libsumo::INVALID_DOUBLE_VALUE, double endTime = libsumo::INVALID_DOUBLE_VALUE);
203 
204  static void addSubscriptionFilterLanes(const std::vector<int>& lanes, bool noOpposite = false, double downstreamDist = libsumo::INVALID_DOUBLE_VALUE, double upstreamDist = libsumo::INVALID_DOUBLE_VALUE);
205 
206  static void addSubscriptionFilterNoOpposite();
207 
208  static void addSubscriptionFilterDownstreamDistance(double dist);
209 
210  static void addSubscriptionFilterUpstreamDistance(double dist);
211 
212  static void addSubscriptionFilterCFManeuver(double downstreamDist = libsumo::INVALID_DOUBLE_VALUE, double upstreamDist = libsumo::INVALID_DOUBLE_VALUE);
213 
214  static void addSubscriptionFilterLCManeuver(int direction = libsumo::INVALID_INT_VALUE, bool noOpposite = false, double downstreamDist = libsumo::INVALID_DOUBLE_VALUE, double upstreamDist = libsumo::INVALID_DOUBLE_VALUE);
215 
216  static void addSubscriptionFilterLeadFollow(const std::vector<int>& lanes);
217 
218  static void addSubscriptionFilterTurn(double downstreamDist = libsumo::INVALID_DOUBLE_VALUE, double upstreamDist = libsumo::INVALID_DOUBLE_VALUE);
219 
220  static void addSubscriptionFilterVClass(const std::vector<std::string>& vClasses);
221 
222  static void addSubscriptionFilterVType(const std::vector<std::string>& vTypes);
223 
224  static void addSubscriptionFilterFieldOfVision(double openingAngle);
225 
226  static void addSubscriptionFilterLateralDistance(double lateralDist, double downstreamDist = libsumo::INVALID_DOUBLE_VALUE, double upstreamDist = libsumo::INVALID_DOUBLE_VALUE);
227 
228 #ifndef LIBTRACI
233  static void storeShape(const std::string& id, PositionVector& shape);
234 
235  static std::shared_ptr<VariableWrapper> makeWrapper();
236 
237  static bool handleVariable(const std::string& objID, const int variable, VariableWrapper* wrapper);
238 
239 
240 private:
241  static bool isVisible(const SUMOVehicle* veh);
242 
243  static bool isOnInit(const std::string& vehicleID);
244 
245  static SUMOVehicleParameter::Stop buildStopParameters(const std::string& edgeOrStoppingPlaceID,
246  double pos, int laneIndex, double startPos, int flags, double duration, double until);
247 
248  static TraCINextStopData buildStopData(const SUMOVehicleParameter::Stop& stopPar);
249 
250 private:
253 #endif
254 
256  Vehicle() = delete;
257 };
258 
259 
260 }
#define LIBSUMO_ID_PARAMETER_API
Definition: TraCIDefs.h:97
#define LIBSUMO_SUBSCRIPTION_API
Definition: TraCIDefs.h:44
#define LIBSUMO_VEHICLE_TYPE_GETTER
Definition: VehicleType.h:27
#define LIBSUMO_VEHICLE_TYPE_SETTER
Definition: VehicleType.h:51
static SubscriptionResults mySubscriptionResults
Definition: Vehicle.h:251
Vehicle()=delete
invalidated standard constructor
static TraCINextStopData buildStopData(const SUMOVehicleParameter::Stop &stopPar)
static std::vector< std::string > getPersonIDList(const std::string &vehicleID)
static double getNOxEmission(const std::string &vehicleID)
static std::string getLaneID(const std::string &vehicleID)
static double getDrivingDistance2D(const std::string &vehicleID, double x, double y)
static std::pair< std::string, double > getFollower(const std::string &vehicleID, double dist=0.)
static void setSpeed(const std::string &vehicleID, double speed)
static int getLaneIndex(const std::string &vehicleID)
static void addSubscriptionFilterVType(const std::vector< std::string > &vTypes)
static int getSpeedMode(const std::string &vehicleID)
static void addSubscriptionFilterVClass(const std::vector< std::string > &vClasses)
static void setRouteID(const std::string &vehicleID, const std::string &routeID)
static void rerouteParkingArea(const std::string &vehicleID, const std::string &parkingAreaID)
static std::vector< std::string > getRoute(const std::string &vehicleID)
static double getSecureGap(const std::string &vehicleID, double speed, double leaderSpeed, double leaderMaxDecel, const std::string &leaderID="")
static double getSpeedWithoutTraCI(const std::string &vehicleID)
static double getStopDelay(const std::string &vehicleID)
static std::vector< std::pair< std::string, double > > getNeighbors(const std::string &vehicleID, const int mode)
static std::vector< libsumo::TraCINextStopData > getNextStops(const std::string &vehicleID)
static std::vector< std::string > getVia(const std::string &vehicleID)
static void setEffort(const std::string &vehicleID, const std::string &edgeID, double effort=libsumo::INVALID_DOUBLE_VALUE, double begSeconds=0, double endSeconds=std::numeric_limits< double >::max())
static double getAngle(const std::string &vehicleID)
static void changeTarget(const std::string &vehicleID, const std::string &edgeID)
static double getLastActionTime(const std::string &vehicleID)
static double getAdaptedTraveltime(const std::string &vehicleID, double time, const std::string &edgeID)
static int getRouteIndex(const std::string &vehicleID)
static void addSubscriptionFilterLateralDistance(double lateralDist, double downstreamDist=libsumo::INVALID_DOUBLE_VALUE, double upstreamDist=libsumo::INVALID_DOUBLE_VALUE)
static void storeShape(const std::string &id, PositionVector &shape)
Saves the shape of the requested object in the given container.
static void rerouteEffort(const std::string &vehicleID)
static void add(const std::string &vehID, const std::string &routeID, const std::string &typeID="DEFAULT_VEHTYPE", const std::string &depart="now", const std::string &departLane="first", const std::string &departPos="base", const std::string &departSpeed="0", const std::string &arrivalLane="current", const std::string &arrivalPos="max", const std::string &arrivalSpeed="current", const std::string &fromTaz="", const std::string &toTaz="", const std::string &line="", int personCapacity=4, int personNumber=0)
static void replaceStop(const std::string &vehicleID, int nextStopIndex, const std::string &edgeID, double pos=1., int laneIndex=0, double duration=libsumo::INVALID_DOUBLE_VALUE, int flags=libsumo::STOP_DEFAULT, double startPos=libsumo::INVALID_DOUBLE_VALUE, double until=libsumo::INVALID_DOUBLE_VALUE)
static int getRoutingMode(const std::string &vehicleID)
static SUMOVehicleParameter::Stop buildStopParameters(const std::string &edgeOrStoppingPlaceID, double pos, int laneIndex, double startPos, int flags, double duration, double until)
static double getSlope(const std::string &vehicleID)
static double getFollowSpeed(const std::string &vehicleID, double speed, double gap, double leaderSpeed, double leaderMaxDecel, const std::string &leaderID="")
static int getLaneChangeMode(const std::string &vehicleID)
static void setRoute(const std::string &vehicleID, const std::string &edgeID)
static double getLanePosition(const std::string &vehicleID)
static void moveToXY(const std::string &vehicleID, const std::string &edgeID, const int laneIndex, const double x, const double y, double angle=libsumo::INVALID_DOUBLE_VALUE, const int keepRoute=1)
static int getSignals(const std::string &vehicleID)
static void addSubscriptionFilterNoOpposite()
static void highlight(const std::string &vehicleID, const libsumo::TraCIColor &col=libsumo::TraCIColor(255, 0, 0, 255), double size=-1, const int alphaMax=-1, const double duration=-1, const int type=0)
static bool handleVariable(const std::string &objID, const int variable, VariableWrapper *wrapper)
static std::vector< libsumo::TraCINextStopData > getStops(const std::string &vehicleID, int limit=0)
static void addSubscriptionFilterLeadFollow(const std::vector< int > &lanes)
static double getElectricityConsumption(const std::string &vehicleID)
static std::string getLine(const std::string &vehicleID)
static double getDistance(const std::string &vehicleID)
static bool isVisible(const SUMOVehicle *veh)
static void setVia(const std::string &vehicleID, const std::vector< std::string > &via)
static void slowDown(const std::string &vehicleID, double speed, double duration)
static void deactivateGapControl(const std::string &vehicleID)
static void setSignals(const std::string &vehicleID, int signals)
static bool isRouteValid(const std::string &vehicleID)
static std::string getRouteID(const std::string &vehicleID)
static void setStop(const std::string &vehicleID, const std::string &edgeID, double pos=1., int laneIndex=0, double duration=libsumo::INVALID_DOUBLE_VALUE, int flags=libsumo::STOP_DEFAULT, double startPos=libsumo::INVALID_DOUBLE_VALUE, double until=libsumo::INVALID_DOUBLE_VALUE)
static void dispatchTaxi(const std::string &vehicleID, const std::vector< std::string > &reservations)
static void setAdaptedTraveltime(const std::string &vehicleID, const std::string &edgeID, double time=libsumo::INVALID_DOUBLE_VALUE, double begSeconds=0, double endSeconds=std::numeric_limits< double >::max())
static void rerouteTraveltime(const std::string &vehicleID, const bool currentTravelTimes=true)
static double getWaitingTime(const std::string &vehicleID)
static std::shared_ptr< VariableWrapper > makeWrapper()
static double getLateralLanePosition(const std::string &vehicleID)
static std::string getTypeID(const std::string &vehicleID)
static void addSubscriptionFilterLCManeuver(int direction=libsumo::INVALID_INT_VALUE, bool noOpposite=false, double downstreamDist=libsumo::INVALID_DOUBLE_VALUE, double upstreamDist=libsumo::INVALID_DOUBLE_VALUE)
static void setLine(const std::string &vehicleID, const std::string &line)
static int getPersonNumber(const std::string &vehicleID)
static void setLaneChangeMode(const std::string &vehicleID, int laneChangeMode)
static std::pair< int, int > getLaneChangeState(const std::string &vehicleID, int direction)
static std::string getRoadID(const std::string &vehicleID)
static std::vector< std::string > getTaxiFleet(int taxiState=0)
static double getDrivingDistance(const std::string &vehicleID, const std::string &edgeID, double position, int laneIndex=0)
static void setSpeedMode(const std::string &vehicleID, int speedMode)
static ContextSubscriptionResults myContextSubscriptionResults
Definition: Vehicle.h:252
static double getAllowedSpeed(const std::string &vehicleID)
static double getCO2Emission(const std::string &vehicleID)
static double getPMxEmission(const std::string &vehicleID)
static void addSubscriptionFilterFieldOfVision(double openingAngle)
static void changeLaneRelative(const std::string &vehicleID, int indexOffset, double duration)
static double getLateralSpeed(const std::string &vehicleID)
static double getStopSpeed(const std::string &vehicleID, double speed, double gap)
static void resume(const std::string &vehicleID)
static void requestToC(const std::string &vehID, double leadTime)
static void changeLane(const std::string &vehicleID, int laneIndex, double duration)
static int getStopState(const std::string &vehicleID)
static void addSubscriptionFilterDownstreamDistance(double dist)
static void addSubscriptionFilterUpstreamDistance(double dist)
static void moveTo(const std::string &vehicleID, const std::string &laneID, double position, int reason=libsumo::MOVE_AUTOMATIC)
static void setType(const std::string &vehicleID, const std::string &typeID)
static std::vector< libsumo::TraCIBestLanesData > getBestLanes(const std::string &vehicleID)
static double getAcceleration(const std::string &vehicleID)
static double getEffort(const std::string &vehicleID, double time, const std::string &edgeID)
static double getStopArrivalDelay(const std::string &vehicleID)
static std::pair< std::string, double > getLeader(const std::string &vehicleID, double dist=0.)
static double getNoiseEmission(const std::string &vehicleID)
static double getFuelConsumption(const std::string &vehicleID)
static double getSpeed(const std::string &vehicleID)
static void openGap(const std::string &vehicleID, double newTimeHeadway, double newSpaceHeadway, double duration, double changeRate, double maxDecel=libsumo::INVALID_DOUBLE_VALUE, const std::string &referenceVehID="")
static void addSubscriptionFilterLanes(const std::vector< int > &lanes, bool noOpposite=false, double downstreamDist=libsumo::INVALID_DOUBLE_VALUE, double upstreamDist=libsumo::INVALID_DOUBLE_VALUE)
static std::vector< libsumo::TraCINextTLSData > getNextTLS(const std::string &vehicleID)
static double getCOEmission(const std::string &vehicleID)
static void addSubscriptionFilterCFManeuver(double downstreamDist=libsumo::INVALID_DOUBLE_VALUE, double upstreamDist=libsumo::INVALID_DOUBLE_VALUE)
LIBSUMO_VEHICLE_TYPE_SETTER static LIBSUMO_SUBSCRIPTION_API void subscribeLeader(const std::string &vehicleID, double dist=0., double beginTime=libsumo::INVALID_DOUBLE_VALUE, double endTime=libsumo::INVALID_DOUBLE_VALUE)
static double getAccumulatedWaitingTime(const std::string &vehicleID)
static double getHCEmission(const std::string &vehicleID)
static void remove(const std::string &vehicleID, char reason=libsumo::REMOVE_VAPORIZED)
static void changeSublane(const std::string &vehicleID, double latDist)
static libsumo::TraCIPosition getPosition(const std::string &vehicleID, const bool includeZ=false)
static libsumo::TraCIPosition getPosition3D(const std::string &vehicleID)
static void setPreviousSpeed(const std::string &vehicleID, double prevspeed)
static void addSubscriptionFilterTurn(double downstreamDist=libsumo::INVALID_DOUBLE_VALUE, double upstreamDist=libsumo::INVALID_DOUBLE_VALUE)
static void setRoutingMode(const std::string &vehicleID, int routingMode)
static void updateBestLanes(const std::string &vehicleID)
static bool isOnInit(const std::string &vehicleID)
A list of positions.
Representation of a vehicle.
Definition: SUMOVehicle.h:58
Definition of vehicle stop (position and duration)
TRACI_CONST double INVALID_DOUBLE_VALUE
TRACI_CONST int MOVE_AUTOMATIC
TRACI_CONST int STOP_DEFAULT
std::map< std::string, TraCIResults > SubscriptionResults
{object->{variable->value}}
Definition: TraCIDefs.h:250
TRACI_CONST int INVALID_INT_VALUE
std::map< std::string, SubscriptionResults > ContextSubscriptionResults
Definition: TraCIDefs.h:251
TRACI_CONST int REMOVE_VAPORIZED
A 3D-position.
Definition: TraCIDefs.h:141