Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GUIVehicle.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3// Copyright (C) 2001-2025 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/****************************************************************************/
21// A MSVehicle extended by some values for usage within the gui
22/****************************************************************************/
23#pragma once
24#include <config.h>
25
26#include <vector>
27#include <string>
29#include <microsim/MSVehicle.h>
30#include "GUIBaseVehicle.h"
31
32
33// ===========================================================================
34// class declarations
35// ===========================================================================
37
38
39// ===========================================================================
40// class definitions
41// ===========================================================================
51class GUIVehicle : public MSVehicle, public GUIBaseVehicle {
52public:
61 MSVehicleType* type, const double speedFactor);
62
63
66
71 Position getPosition(const double offset = 0) const override {
72 return MSVehicle::getPosition(offset);
73 }
74
75 Position getVisualPosition(bool s2, const double offset = 0) const override;
76
81 double getAngle() const override {
82 return MSVehicle::getAngle();
83 }
84
89 double getVisualAngle(bool s2) const override;
90
94 void drawRouteHelper(const GUIVisualizationSettings& s, ConstMSRoutePtr r, bool future,
95 bool noLoop, const RGBColor& col) const override;
96
97 void drawAction_drawVehicleBlinker(double length) const override;
98 void drawAction_drawVehicleBrakeLight(double length, bool onlyOne = false) const override;
99 void drawAction_drawLinkItems(const GUIVisualizationSettings& s) const override;
100 void drawAction_drawVehicleBlueLight() const override;
101
106 double getLastLaneChangeOffset() const override;
107
109 void drawBestLanes() const override;
111
113 void selectBlockingFoes() const override;
114
116 double getColorValue(const GUIVisualizationSettings& s, int activeScheme) const override;
117
126
134
136 bool isSelected() const override;
137
139 double getRightSideOnEdge2() const {
140 return getRightSideOnEdge();
141 }
142
144 double getLeftSideOnEdge() const {
146 }
147
149 int getRightSublaneOnEdge() const;
150 int getLeftSublaneOnEdge() const;
151
153 std::string getLCStateRight() const;
154 std::string getLCStateLeft() const;
155 std::string getLCStateCenter() const;
156
158 std::string getLaneID() const;
159 std::string getBackLaneIDs() const;
160 std::string getShadowLaneID() const;
161 std::string getTargetLaneID() const;
162
163 std::string getDriveWays() const;
164
166 double getManeuverDist() const;
168 std::string getSpeedMode() const;
170 std::string getLaneChangeMode() const;
171
173 std::string getDynamicAlignment() const;
174
176 void rerouteDRTStop(MSStoppingPlace* busStop);
177
178protected:
180 void drawOutsideNetwork(bool add) override;
181
182private:
183 /* @brief draw train with individual carriages. The number of carriages is
184 * determined from defaultLength of carriages and vehicle length
185 * passengerSeats are computed beginning at firstPassengerCarriage */
186 void drawAction_drawCarriageClass(const GUIVisualizationSettings& s, double scaledLength, bool asImage) const override;
187
189 std::string getStopInfo() const override;
190};
std::shared_ptr< const MSRoute > ConstMSRoutePtr
Definition Route.h:32
A MSVehicle extended by some values for usage within the gui.
A window containing a gl-object's parameter.
A MSVehicle extended by some values for usage within the gui.
Definition GUIVehicle.h:51
void drawAction_drawVehicleBlueLight() const override
int getLeftSublaneOnEdge() const
Position getVisualPosition(bool s2, const double offset=0) const override
Return current position taking into account secondary shape.
std::string getDynamicAlignment() const
return the current lateral alignment as string
bool isSelected() const override
whether this vehicle is selected in the GUI
void drawOutsideNetwork(bool add) override
register vehicle for drawing while outside the network
double getLastLaneChangeOffset() const override
Returns the time since the last lane change in seconds.
double getAngle() const override
Return current angle.
Definition GUIVehicle.h:81
int getRightSublaneOnEdge() const
return the righmost sublane on the edge occupied by the vehicle
Position getPosition(const double offset=0) const override
Return current position (x/y, cartesian)
Definition GUIVehicle.h:71
void drawBestLanes() const override
Draws the vehicle's best lanes.
void drawAction_drawVehicleBlinker(double length) const override
std::string getBackLaneIDs() const
void drawRouteHelper(const GUIVisualizationSettings &s, ConstMSRoutePtr r, bool future, bool noLoop, const RGBColor &col) const override
Draws the route.
double getLeftSideOnEdge() const
return left vehicle side on current edge
Definition GUIVehicle.h:144
std::string getStopInfo() const override
retrieve information about the current stop state
std::string getShadowLaneID() const
double getManeuverDist() const
return the lane-change maneuver distance
double getRightSideOnEdge2() const
return right vehicle side on current edge (without argument)
Definition GUIVehicle.h:139
std::string getSpeedMode() const
return the speed mode as bit string
double getColorValue(const GUIVisualizationSettings &s, int activeScheme) const override
gets the color value according to the current scheme index
void rerouteDRTStop(MSStoppingPlace *busStop)
handle route to accomodate to given stop
void drawAction_drawLinkItems(const GUIVisualizationSettings &s) const override
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent) override
Returns an own parameter window.
std::string getLCStateRight() const
return the lanechange state
GUIParameterTableWindow * getTypeParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent) override
Returns an own type parameter window.
void drawAction_drawCarriageClass(const GUIVisualizationSettings &s, double scaledLength, bool asImage) const override
draws the given guiShape with distinct carriages/modules
std::string getLaneID() const
return vehicle lane id
void drawAction_drawVehicleBrakeLight(double length, bool onlyOne=false) const override
std::string getTargetLaneID() const
std::string getLCStateLeft() const
void selectBlockingFoes() const override
adds the blocking foes to the current selection
double getVisualAngle(bool s2) const override
Returns the vehicle's direction in radians taking into account secondary shape.
std::string getDriveWays() const
~GUIVehicle()
destructor
std::string getLCStateCenter() const
std::string getLaneChangeMode() const
return the lane change mode as bit string
Stores the information about how to visualize structures.
const MSVehicleType & getVehicleType() const
Returns the vehicle's type definition.
A lane area vehicles can halt at.
Representation of a vehicle in the micro simulation.
Definition MSVehicle.h:77
double getRightSideOnEdge(const MSLane *lane=0) const
Get the vehicle's lateral position on the edge of the given lane (or its current edge if lane == 0)
Position getPosition(const double offset=0) const
Return current position (x/y, cartesian)
double getAngle() const
Returns the vehicle's direction in radians.
Definition MSVehicle.h:735
The car-following model and parameter.
double getWidth() const
Get the width which vehicles of this class shall have when being drawn.
A point in 2D or 3D with translation and scaling methods.
Definition Position.h:37
Structure representing possible vehicle parameter.