Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
Vehicle.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3// Copyright (C) 2012-2026 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 <limits>
23#include <vector>
24#include <libsumo/TraCIDefs.h>
25#include <libsumo/VehicleType.h>
27
28
29// ===========================================================================
30// class declarations
31// ===========================================================================
32#ifndef LIBTRACI
33class PositionVector;
34class SUMOVehicle;
35#endif
36
37
38// ===========================================================================
39// class definitions
40// ===========================================================================
45namespace LIBSUMO_NAMESPACE {
46class Vehicle {
47public:
50 static double getSpeed(const std::string& vehID);
51 static double getLateralSpeed(const std::string& vehID);
52 static double getAcceleration(const std::string& vehID);
53 static double getSpeedWithoutTraCI(const std::string& vehID);
54 static libsumo::TraCIPosition getPosition(const std::string& vehID, const bool includeZ = false);
55 static libsumo::TraCIPosition getPosition3D(const std::string& vehID);
56 static double getAngle(const std::string& vehID);
57 static double getSlope(const std::string& vehID);
58 static std::string getRoadID(const std::string& vehID);
59 static std::string getLaneID(const std::string& vehID);
60 static std::string getShadowLaneID(const std::string& vehID);
61 static int getLaneIndex(const std::string& vehID);
62 static std::string getSegmentID(const std::string& vehID);
63 static int getSegmentIndex(const std::string& vehID);
64 static std::string getTypeID(const std::string& vehID);
65 static std::string getRouteID(const std::string& vehID);
66 static double getDeparture(const std::string& vehID);
67 static double getDepartDelay(const std::string& vehID);
68 static int getRouteIndex(const std::string& vehID);
69 static double getLanePosition(const std::string& vehID);
70 static double getArrivalPos(const std::string& vehID);
71 static double getLateralLanePosition(const std::string& vehID);
72 static double getCO2Emission(const std::string& vehID);
73 static double getCOEmission(const std::string& vehID);
74 static double getHCEmission(const std::string& vehID);
75 static double getPMxEmission(const std::string& vehID);
76 static double getNOxEmission(const std::string& vehID);
77 static double getFuelConsumption(const std::string& vehID);
78 static double getNoiseEmission(const std::string& vehID);
79 static double getElectricityConsumption(const std::string& vehID);
80 static int getPersonNumber(const std::string& vehID);
81 static std::vector<std::string> getPersonIDList(const std::string& vehID);
82 static std::pair<std::string, double> getLeader(const std::string& vehID, double dist = 100.);
83 static std::pair<std::string, double> getFollower(const std::string& vehID, double dist = 0.);
84 static std::vector<libsumo::TraCIJunctionFoe> getJunctionFoes(const std::string& vehID, double dist = 0.);
85 static double getWaitingTime(const std::string& vehID);
86 static double getAccumulatedWaitingTime(const std::string& vehID);
87 static double getAdaptedTraveltime(const std::string& vehID, double time, const std::string& edgeID);
88 static double getEffort(const std::string& vehID, double time, const std::string& edgeID);
89 static bool isRouteValid(const std::string& vehID);
90 static std::vector<std::string> getRoute(const std::string& vehID);
91 static int getSignals(const std::string& vehID);
92 static std::vector<libsumo::TraCIBestLanesData> getBestLanes(const std::string& vehID);
93 static std::vector<libsumo::TraCINextTLSData> getNextTLS(const std::string& vehID);
94 static std::vector<libsumo::TraCINextStopData> getNextStops(const std::string& vehID);
95 static std::vector<libsumo::TraCIConnection> getNextLinks(const std::string& vehID);
96 static std::vector<libsumo::TraCINextStopData> getStops(const std::string& vehID, int limit = 0);
97 static int getStopState(const std::string& vehID);
98 static std::string getStopParameter(const std::string& vehID, int nextStopIndex, const std::string& param, bool customParam = false);
99
100 static double getDistance(const std::string& vehID);
101 static double getDrivingDistance(const std::string& vehID, const std::string& edgeID, double pos, int laneIndex = 0);
102 static double getDrivingDistance2D(const std::string& vehID, double x, double y);
103 static double getReferenceDistance(const std::string& vehID);
104 static double getAllowedSpeed(const std::string& vehID);
105 static int getSpeedMode(const std::string& vehID);
106 static int getLaneChangeMode(const std::string& vehID);
107 static int getRoutingMode(const std::string& vehID);
108 static std::string getLine(const std::string& vehID);
109 static std::vector<std::string> getVia(const std::string& vehID);
110 static std::pair<int, int> getLaneChangeState(const std::string& vehID, int direction);
111 static double getLastActionTime(const std::string& vehID);
112 static std::vector<std::pair<std::string, double> > getNeighbors(const std::string& vehID, const int mode);
113 static double getFollowSpeed(const std::string& vehID, double speed, double gap, double leaderSpeed, double leaderMaxDecel, const std::string& leaderID = "");
114 static double getSecureGap(const std::string& vehID, double speed, double leaderSpeed, double leaderMaxDecel, const std::string& leaderID = "");
115 static double getStopSpeed(const std::string& vehID, double speed, double gap);
116 static double getStopDelay(const std::string& vehID);
117 static double getStopArrivalDelay(const std::string& vehID);
118 static double getTimeLoss(const std::string& vehID);
119 static std::vector<std::string> getTaxiFleet(int taxiState = 0);
120
121 static std::vector<std::string> getLoadedIDList();
122 static std::vector<std::string> getTeleportingIDList();
124
127
130
131 static void setStop(const std::string& vehID,
132 const std::string& edgeID,
133 double pos = 1.,
134 int laneIndex = 0,
135 double duration = libsumo::INVALID_DOUBLE_VALUE,
136 int flags = libsumo::STOP_DEFAULT,
137 double startPos = libsumo::INVALID_DOUBLE_VALUE,
138 double until = libsumo::INVALID_DOUBLE_VALUE);
139
140 static void replaceStop(const std::string& vehID,
141 int nextStopIndex,
142 const std::string& edgeID,
143 double pos = 1.,
144 int laneIndex = 0,
145 double duration = libsumo::INVALID_DOUBLE_VALUE,
146 int flags = libsumo::STOP_DEFAULT,
147 double startPos = libsumo::INVALID_DOUBLE_VALUE,
148 double until = libsumo::INVALID_DOUBLE_VALUE,
149 int teleport = 0);
150
151 static void insertStop(const std::string& vehID,
152 int nextStopIndex,
153 const std::string& edgeID,
154 double pos = 1.,
155 int laneIndex = 0,
156 double duration = libsumo::INVALID_DOUBLE_VALUE,
157 int flags = libsumo::STOP_DEFAULT,
158 double startPos = libsumo::INVALID_DOUBLE_VALUE,
159 double until = libsumo::INVALID_DOUBLE_VALUE,
160 int teleport = 0);
161
162 static void setStopParameter(const std::string& vehID, int nextStopIndex,
163 const std::string& param, const std::string& value,
164 bool customParam = false);
165
166 static void rerouteParkingArea(const std::string& vehID,
167 const std::string& parkingAreaID);
168
169 static void resume(const std::string& vehID);
170
171 static void add(const std::string& vehID,
172 const std::string& routeID,
173 const std::string& typeID = "DEFAULT_VEHTYPE",
174 const std::string& depart = "now",
175 const std::string& departLane = "first",
176 const std::string& departPos = "base",
177 const std::string& departSpeed = "0",
178 const std::string& arrivalLane = "current",
179 const std::string& arrivalPos = "max",
180 const std::string& arrivalSpeed = "current",
181 const std::string& fromTaz = "",
182 const std::string& toTaz = "",
183 const std::string& line = "",
184 int personCapacity = 4,
185 int personNumber = 0,
186 const std::string& departPosLat = "",
187 const std::string& arrivalPosLat = "",
188 double speedFactor = -1.,
189 const std::string& insertionChecks = "");
190
191 static void changeTarget(const std::string& vehID, const std::string& edgeID);
192 static void changeLane(const std::string& vehID, int laneIndex, double duration);
193 static void changeLaneRelative(const std::string& vehID, int indexOffset, double duration);
194 static void changeSublane(const std::string& vehID, double latDist);
195
196 static void slowDown(const std::string& vehID, double speed, double duration);
197 static void openGap(const std::string& vehID, double newTimeHeadway, double newSpaceHeadway, double duration, double changeRate, double maxDecel = -1, const std::string& referenceVehID = "");
198 static void deactivateGapControl(const std::string& vehID);
199 static void requestToC(const std::string& vehID, double leadTime);
200 static void setSpeed(const std::string& vehID, double speed);
201 static void setAcceleration(const std::string& vehID, double acceleration, double duration);
202 static void setPreviousSpeed(const std::string& vehID, double prevSpeed, double prevAcceleration = libsumo::INVALID_DOUBLE_VALUE);
203 static void setSpeedMode(const std::string& vehID, int speedMode);
204 static void setLaneChangeMode(const std::string& vehID, int laneChangeMode);
205 static void setRoutingMode(const std::string& vehID, int routingMode);
206 static void setType(const std::string& vehID, const std::string& typeID);
207 static void setRouteID(const std::string& vehID, const std::string& routeID);
208 static void setRoute(const std::string& vehID, const std::string& edgeID);
209 static void setRoute(const std::string& vehID, const std::vector<std::string>& edgeIDs);
210 static void setLateralLanePosition(const std::string& vehID, double posLat);
211 static void updateBestLanes(const std::string& vehID);
212 static void setAdaptedTraveltime(const std::string& vehID, const std::string& edgeID,
213 double time = libsumo::INVALID_DOUBLE_VALUE, double begSeconds = 0, double endSeconds = std::numeric_limits<double>::max());
214 static void setEffort(const std::string& vehID, const std::string& edgeID,
215 double effort = libsumo::INVALID_DOUBLE_VALUE, double begSeconds = 0, double endSeconds = std::numeric_limits<double>::max());
216 static void rerouteTraveltime(const std::string& vehID, const bool currentTravelTimes = true);
217 static void rerouteEffort(const std::string& vehID);
218 static void setSignals(const std::string& vehID, int signals);
219 static void moveTo(const std::string& vehID, const std::string& laneID, double pos, int reason = libsumo::MOVE_AUTOMATIC);
220 static void moveToXY(const std::string& vehID, const std::string& edgeID, const int laneIndex, const double x, const double y, double angle = libsumo::INVALID_DOUBLE_VALUE, const int keepRoute = 1, double matchThreshold = 100);
221 static void remove(const std::string& vehID, char reason = libsumo::REMOVE_VAPORIZED);
222 static void setLine(const std::string& vehID, const std::string& line);
223 static void setVia(const std::string& vehID, const std::vector<std::string>& edgeList);
224 static void highlight(const std::string& vehID, 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);
225 static void dispatchTaxi(const std::string& vehID, const std::vector<std::string>& reservations);
227
229
231
232 static void subscribeLeader(const std::string& vehID, double dist = 0., double begin = libsumo::INVALID_DOUBLE_VALUE, double end = libsumo::INVALID_DOUBLE_VALUE);
233
234 static void addSubscriptionFilterLanes(const std::vector<int>& lanes, bool noOpposite = false, double downstreamDist = libsumo::INVALID_DOUBLE_VALUE, double upstreamDist = libsumo::INVALID_DOUBLE_VALUE);
235
237
238 static void addSubscriptionFilterDownstreamDistance(double dist);
239
240 static void addSubscriptionFilterUpstreamDistance(double dist);
241
242 static void addSubscriptionFilterCFManeuver(double downstreamDist = libsumo::INVALID_DOUBLE_VALUE, double upstreamDist = libsumo::INVALID_DOUBLE_VALUE);
243
244 static void addSubscriptionFilterLCManeuver(int direction = libsumo::INVALID_INT_VALUE, bool noOpposite = false, double downstreamDist = libsumo::INVALID_DOUBLE_VALUE, double upstreamDist = libsumo::INVALID_DOUBLE_VALUE);
245
246 static void addSubscriptionFilterLeadFollow(const std::vector<int>& lanes);
247
248 static void addSubscriptionFilterTurn(double downstreamDist = libsumo::INVALID_DOUBLE_VALUE, double foeDistToJunction = libsumo::INVALID_DOUBLE_VALUE);
249
250 static void addSubscriptionFilterVClass(const std::vector<std::string>& vClasses);
251
252 static void addSubscriptionFilterVType(const std::vector<std::string>& vTypes);
253
254 static void addSubscriptionFilterFieldOfVision(double openingAngle);
255
256 static void addSubscriptionFilterLateralDistance(double lateralDist, double downstreamDist = libsumo::INVALID_DOUBLE_VALUE, double upstreamDist = libsumo::INVALID_DOUBLE_VALUE);
257
258#ifndef LIBTRACI
259#ifndef SWIG
264 static void storeShape(const std::string& id, PositionVector& shape);
265
266 static std::shared_ptr<VariableWrapper> makeWrapper();
267
268 static bool handleVariable(const std::string& objID, const int variable, VariableWrapper* wrapper, tcpip::Storage* paramData);
269
270
271private:
272 static bool isVisible(const SUMOVehicle* veh);
273
274 static bool isOnInit(const std::string& vehID);
275
276private:
277 static SubscriptionResults mySubscriptionResults;
278 static ContextSubscriptionResults myContextSubscriptionResults;
279#endif
280#endif
281
283 Vehicle() = delete;
284};
285
286
287}
#define LIBSUMO_ID_PARAMETER_API
Definition TraCIDefs.h:117
#define LIBSUMO_SUBSCRIPTION_API
Definition TraCIDefs.h:62
#define LIBSUMO_VEHICLE_TYPE_GETTER
Definition VehicleType.h:27
#define LIBSUMO_VEHICLE_TYPE_SETTER
Definition VehicleType.h:56
static void updateBestLanes(const std::string &vehID)
static double getDrivingDistance(const std::string &vehID, const std::string &edgeID, double pos, int laneIndex=0)
static std::string getRouteID(const std::string &vehID)
static double getEffort(const std::string &vehID, double time, const std::string &edgeID)
static std::vector< std::string > getVia(const std::string &vehID)
static SubscriptionResults mySubscriptionResults
Definition Vehicle.h:277
Vehicle()=delete
invalidated standard constructor
static double getHCEmission(const std::string &vehID)
static void setStopParameter(const std::string &vehID, int nextStopIndex, const std::string &param, const std::string &value, bool customParam=false)
static int getStopState(const std::string &vehID)
static std::vector< libsumo::TraCIBestLanesData > getBestLanes(const std::string &vehID)
static double getAngle(const std::string &vehID)
static void addSubscriptionFilterVType(const std::vector< std::string > &vTypes)
static double getReferenceDistance(const std::string &vehID)
static double getPMxEmission(const std::string &vehID)
static void addSubscriptionFilterVClass(const std::vector< std::string > &vClasses)
static void changeLaneRelative(const std::string &vehID, int indexOffset, double duration)
static void changeSublane(const std::string &vehID, double latDist)
static void addSubscriptionFilterTurn(double downstreamDist=libsumo::INVALID_DOUBLE_VALUE, double foeDistToJunction=libsumo::INVALID_DOUBLE_VALUE)
static void setStop(const std::string &vehID, 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 std::vector< libsumo::TraCIConnection > getNextLinks(const std::string &vehID)
static double getDepartDelay(const std::string &vehID)
LIBSUMO_VEHICLE_TYPE_SETTER static LIBSUMO_SUBSCRIPTION_API void subscribeLeader(const std::string &vehID, double dist=0., double begin=libsumo::INVALID_DOUBLE_VALUE, double end=libsumo::INVALID_DOUBLE_VALUE)
static std::vector< std::string > getPersonIDList(const std::string &vehID)
static std::pair< int, int > getLaneChangeState(const std::string &vehID, int direction)
static double getLateralSpeed(const std::string &vehID)
static double getDistance(const std::string &vehID)
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, const std::string &departPosLat="", const std::string &arrivalPosLat="", double speedFactor=-1., const std::string &insertionChecks="")
static void rerouteParkingArea(const std::string &vehID, const std::string &parkingAreaID)
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 double getStopSpeed(const std::string &vehID, double speed, double gap)
static double getSlope(const std::string &vehID)
static std::pair< std::string, double > getLeader(const std::string &vehID, double dist=100.)
static int getRoutingMode(const std::string &vehID)
static double getNoiseEmission(const std::string &vehID)
static bool isOnInit(const std::string &vehID)
static void setEffort(const std::string &vehID, const std::string &edgeID, double effort=libsumo::INVALID_DOUBLE_VALUE, double begSeconds=0, double endSeconds=std::numeric_limits< double >::max())
static void setSpeed(const std::string &vehID, double speed)
static double getWaitingTime(const std::string &vehID)
static std::string getRoadID(const std::string &vehID)
static std::vector< std::pair< std::string, double > > getNeighbors(const std::string &vehID, const int mode)
static int getPersonNumber(const std::string &vehID)
static void setVia(const std::string &vehID, const std::vector< std::string > &edgeList)
static double getSecureGap(const std::string &vehID, double speed, double leaderSpeed, double leaderMaxDecel, const std::string &leaderID="")
static double getDeparture(const std::string &vehID)
static double getSpeedWithoutTraCI(const std::string &vehID)
static void setLaneChangeMode(const std::string &vehID, int laneChangeMode)
static std::string getTypeID(const std::string &vehID)
static double getDrivingDistance2D(const std::string &vehID, double x, double y)
static void addSubscriptionFilterNoOpposite()
static void setRoutingMode(const std::string &vehID, int routingMode)
static double getArrivalPos(const std::string &vehID)
static void setAcceleration(const std::string &vehID, double acceleration, double duration)
static void addSubscriptionFilterLeadFollow(const std::vector< int > &lanes)
static void deactivateGapControl(const std::string &vehID)
static double getAccumulatedWaitingTime(const std::string &vehID)
static std::string getStopParameter(const std::string &vehID, int nextStopIndex, const std::string &param, bool customParam=false)
static void moveTo(const std::string &vehID, const std::string &laneID, double pos, int reason=libsumo::MOVE_AUTOMATIC)
static std::vector< std::string > getTeleportingIDList()
static void insertStop(const std::string &vehID, 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, int teleport=0)
static void setAdaptedTraveltime(const std::string &vehID, const std::string &edgeID, double time=libsumo::INVALID_DOUBLE_VALUE, double begSeconds=0, double endSeconds=std::numeric_limits< double >::max())
static double getFuelConsumption(const std::string &vehID)
static double getTimeLoss(const std::string &vehID)
static double getStopArrivalDelay(const std::string &vehID)
static bool isVisible(const SUMOVehicle *veh)
static void setSignals(const std::string &vehID, int signals)
static std::vector< libsumo::TraCINextStopData > getStops(const std::string &vehID, int limit=0)
static std::vector< libsumo::TraCINextStopData > getNextStops(const std::string &vehID)
static double getSpeed(const std::string &vehID)
static void openGap(const std::string &vehID, double newTimeHeadway, double newSpaceHeadway, double duration, double changeRate, double maxDecel=-1, const std::string &referenceVehID="")
static void setRoute(const std::string &vehID, const std::string &edgeID)
static double getCOEmission(const std::string &vehID)
static void dispatchTaxi(const std::string &vehID, const std::vector< std::string > &reservations)
static void rerouteEffort(const std::string &vehID)
static void rerouteTraveltime(const std::string &vehID, const bool currentTravelTimes=true)
static double getCO2Emission(const std::string &vehID)
static std::vector< std::string > getRoute(const std::string &vehID)
static std::shared_ptr< VariableWrapper > makeWrapper()
static libsumo::TraCIPosition getPosition3D(const std::string &vehID)
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 std::vector< libsumo::TraCINextTLSData > getNextTLS(const std::string &vehID)
static double getStopDelay(const std::string &vehID)
static void setPreviousSpeed(const std::string &vehID, double prevSpeed, double prevAcceleration=libsumo::INVALID_DOUBLE_VALUE)
static std::vector< std::string > getTaxiFleet(int taxiState=0)
static void replaceStop(const std::string &vehID, 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, int teleport=0)
static ContextSubscriptionResults myContextSubscriptionResults
Definition Vehicle.h:278
static double getAcceleration(const std::string &vehID)
static std::string getSegmentID(const std::string &vehID)
static double getLateralLanePosition(const std::string &vehID)
static void addSubscriptionFilterFieldOfVision(double openingAngle)
static void setLine(const std::string &vehID, const std::string &line)
static std::vector< std::string > getLoadedIDList()
static int getSignals(const std::string &vehID)
static void setSpeedMode(const std::string &vehID, int speedMode)
static void requestToC(const std::string &vehID, double leadTime)
static double getFollowSpeed(const std::string &vehID, double speed, double gap, double leaderSpeed, double leaderMaxDecel, const std::string &leaderID="")
static void slowDown(const std::string &vehID, double speed, double duration)
static void remove(const std::string &vehID, char reason=libsumo::REMOVE_VAPORIZED)
static int getRouteIndex(const std::string &vehID)
static std::string getShadowLaneID(const std::string &vehID)
static void addSubscriptionFilterDownstreamDistance(double dist)
static void addSubscriptionFilterUpstreamDistance(double dist)
static double getElectricityConsumption(const std::string &vehID)
static bool handleVariable(const std::string &objID, const int variable, VariableWrapper *wrapper, tcpip::Storage *paramData)
static double getLastActionTime(const std::string &vehID)
static std::string getLine(const std::string &vehID)
static void changeLane(const std::string &vehID, int laneIndex, double duration)
static int getSpeedMode(const std::string &vehID)
static double getAdaptedTraveltime(const std::string &vehID, double time, const std::string &edgeID)
static void setRouteID(const std::string &vehID, const std::string &routeID)
static double getAllowedSpeed(const std::string &vehID)
static void moveToXY(const std::string &vehID, const std::string &edgeID, const int laneIndex, const double x, const double y, double angle=libsumo::INVALID_DOUBLE_VALUE, const int keepRoute=1, double matchThreshold=100)
static std::string getLaneID(const std::string &vehID)
static void setLateralLanePosition(const std::string &vehID, double posLat)
static bool isRouteValid(const std::string &vehID)
static std::vector< libsumo::TraCIJunctionFoe > getJunctionFoes(const std::string &vehID, double dist=0.)
static void addSubscriptionFilterLanes(const std::vector< int > &lanes, bool noOpposite=false, double downstreamDist=libsumo::INVALID_DOUBLE_VALUE, double upstreamDist=libsumo::INVALID_DOUBLE_VALUE)
static void addSubscriptionFilterCFManeuver(double downstreamDist=libsumo::INVALID_DOUBLE_VALUE, double upstreamDist=libsumo::INVALID_DOUBLE_VALUE)
static int getSegmentIndex(const std::string &vehID)
static void highlight(const std::string &vehID, 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 void setType(const std::string &vehID, const std::string &typeID)
static std::pair< std::string, double > getFollower(const std::string &vehID, double dist=0.)
static double getNOxEmission(const std::string &vehID)
static libsumo::TraCIPosition getPosition(const std::string &vehID, const bool includeZ=false)
static void changeTarget(const std::string &vehID, const std::string &edgeID)
static void resume(const std::string &vehID)
static double getLanePosition(const std::string &vehID)
static int getLaneIndex(const std::string &vehID)
static int getLaneChangeMode(const std::string &vehID)
A list of positions.
Representation of a vehicle.
Definition SUMOVehicle.h:63
TRACI_CONST double INVALID_DOUBLE_VALUE
TRACI_CONST int MOVE_AUTOMATIC
TRACI_CONST int STOP_DEFAULT
TRACI_CONST int INVALID_INT_VALUE
TRACI_CONST int REMOVE_VAPORIZED
A 2D or 3D-position, for 2D positions z == INVALID_DOUBLE_VALUE.
Definition TraCIDefs.h:184