68 #ifdef CHECK_MEMORY_LEAKS 70 #endif // CHECK_MEMORY_LEAKS 101 double
vehiclePoly_PassengerCarBody[] = { .5, 0, 0, 0, 0, .3, 0.08, .44, 0.25, .5, 0.95, .5, 1., .4, 1., -.4, 0.95, -.5, 0.25, -.5, 0.08, -.44, 0, -.3, 0, 0, -10000 };
102 double vehiclePoly_PassengerCarBodyFront[] = { 0.1, 0, 0.025, 0, 0.025, 0.25, 0.27, 0.4, 0.27, -.4, 0.025, -0.25, 0.025, 0, -10000 };
103 double vehiclePoly_PassengerFrontGlass[] = { 0.35, 0, 0.3, 0, 0.3, 0.4, 0.43, 0.3, 0.43, -0.3, 0.3, -0.4, 0.3, 0, -10000 };
104 double vehiclePoly_PassengerSedanRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.77, -.47, 0.67, -.37, 0.45, -.37, 0.34, -.47, -10000 };
105 double vehiclePoly_PassengerSedanLeftGlass[] = { 0.36, .43, 0.34, .47, 0.77, .47, 0.67, .37, 0.45, .37, 0.34, .47, -10000 };
106 double vehiclePoly_PassengerSedanBackGlass[] = { 0.80, 0, 0.70, 0, 0.70, 0.3, 0.83, 0.4, 0.83, -.4, 0.70, -.3, 0.70, 0, -10000 };
107 double vehiclePoly_PassengerHatchbackRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.94, -.47, 0.80, -.37, 0.45, -.37, 0.34, -.47, -10000 };
108 double vehiclePoly_PassengerHatchbackLeftGlass[] = { 0.36, .43, 0.34, .47, 0.94, .47, 0.80, .37, 0.45, .37, 0.34, .47, -10000 };
109 double vehiclePoly_PassengerHatchbackBackGlass[] = { 0.92, 0, 0.80, 0, 0.80, 0.3, 0.95, 0.4, 0.95, -.4, 0.80, -.3, 0.80, 0, -10000 };
110 double vehiclePoly_PassengerWagonRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.94, -.47, 0.87, -.37, 0.45, -.37, 0.34, -.47, -10000 };
111 double vehiclePoly_PassengerWagonLeftGlass[] = { 0.36, .43, 0.34, .47, 0.94, .47, 0.87, .37, 0.45, .37, 0.34, .47, -10000 };
112 double vehiclePoly_PassengerWagonBackGlass[] = { 0.92, 0, 0.90, 0, 0.90, 0.3, 0.95, 0.4, 0.95, -.4, 0.90, -.3, 0.90, 0, -10000 };
114 double vehiclePoly_PassengerVanBody[] = { .5, 0, 0, 0, 0, .4, 0.1, .5, 0.97, .5, 1., .47, 1., -.47, 0.97, -.5, 0.1, -.5, 0, -.4, 0, 0, -10000 };
115 double vehiclePoly_PassengerVanBodyFront[] = { 0.1, 0, 0.025, 0, 0.025, 0.25, 0.13, 0.4, 0.13, -.4, 0.025, -0.25, 0.025, 0, -10000 };
116 double vehiclePoly_PassengerVanFrontGlass[] = { 0.21, 0, 0.16, 0, 0.16, 0.4, 0.29, 0.3, 0.29, -0.3, 0.16, -0.4, 0.16, 0, -10000 };
117 double vehiclePoly_PassengerVanRightGlass[] = { 0.36, -.43, 0.20, -.47, 0.98, -.47, 0.91, -.37, 0.31, -.37, 0.20, -.47, -10000 };
118 double vehiclePoly_PassengerVanLeftGlass[] = { 0.36, .43, 0.20, .47, 0.98, .47, 0.91, .37, 0.31, .37, 0.20, .47, -10000 };
119 double vehiclePoly_PassengerVanBackGlass[] = { 0.95, 0, 0.94, 0, 0.94, 0.3, 0.98, 0.4, 0.98, -.4, 0.94, -.3, 0.94, 0, -10000 };
121 double vehiclePoly_DeliveryMediumRightGlass[] = { 0.21, -.43, 0.20, -.47, 0.38, -.47, 0.38, -.37, 0.31, -.37, 0.20, -.47, -10000 };
122 double vehiclePoly_DeliveryMediumLeftGlass[] = { 0.21, .43, 0.20, .47, 0.38, .47, 0.38, .37, 0.31, .37, 0.20, .47, -10000 };
124 double vehiclePoly_TransportBody[] = { .5, 0, 0, 0, 0, .45, 0.05, .5, 2.25, .5, 2.25, -.5, 0.05, -.5, 0, -.45, 0, 0, -10000 };
125 double vehiclePoly_TransportFrontGlass[] = { 0.1, 0, 0.05, 0, 0.05, 0.45, 0.25, 0.4, 0.25, -.4, 0.05, -0.45, 0.05, 0, -10000 };
126 double vehiclePoly_TransportRightGlass[] = { 0.36, -.47, 0.10, -.48, 1.25, -.48, 1.25, -.4, 0.3, -.4, 0.10, -.48, -10000 };
127 double vehiclePoly_TransportLeftGlass[] = { 0.36, .47, 0.10, .48, 1.25, .48, 1.25, .4, 0.3, .4, 0.10, .48, -10000 };
129 double vehiclePoly_EVehicleBody[] = { .5, 0, 0, 0, 0, .3, 0.08, .44, 0.25, .5, 0.75, .5, .92, .44, 1, .3, 1, -.3, .92, -.44, .75, -.5, .25, -.5, 0.08, -.44, 0, -.3, 0, 0, -1000 };
130 double vehiclePoly_EVehicleFrontGlass[] = { .5, 0, 0.05, .05, 0.05, .25, 0.13, .39, 0.3, .45, 0.70, .45, .87, .39, .95, .25, .95, -.25, .87, -.39, .70, -.45, .3, -.45, 0.13, -.39, 0.05, -.25, 0.05, 0.05, -1000 };
132 double vehiclePoly_EVehicleBackGlass[] = { 0.65, 0, 0.9, 0, 0.9, 0.4, 0.57, 0.3, 0.57, -0.3, 0.9, -0.4, 0.9, 0, -10000 };
134 double vehiclePoly_Ship[] = { 0.25, 0, 0, 0, 0.1, 0.25, 0.2, 0.45, 0.25, 0.5, 0.95, 0.5, 1.0, 0.45, 1.0, -0.45, 0.95, -0.5, 0.25, -0.5, 0.2, -0.45, 0.1, -0.25, 0, 0, -10000 };
135 double vehiclePoly_ShipDeck[] = { 0.5, 0, 0.25, 0.4, 0.95, 0.4, 0.95, -0.4, 0.25, -0.4, 0.25, 0.4, -10000 };
136 double vehiclePoly_ShipSuperStructure[] = { 0.8, 0, 0.5, 0.3, 0.85, 0.3, 0.85, -0.3, 0.5, -0.3, 0.5, 0.3, -10000 };
138 double vehiclePoly_Cyclist[] = { 0.5, 0, 0.25, 0.45, 0.25, 0.5, 0.8, 0.15, 0.8, -0.15, 0.25, -0.5, 0.25, -0.45, -10000 };
152 GUIGlObject& o, std::map<GUISUMOAbstractView*, int>& additionalVisualizations)
153 :
GUIGLObjectPopupMenu(app, parent, o), myVehiclesAdditionalVisualizations(additionalVisualizations) {
262 myVType(vehicle.getVehicleType()) {
273 while (i->first->removeAdditionalGLVisualisation(
this));
310 new FXMenuSeparator(ret);
312 if (trackedID < 0 || (
size_t)trackedID !=
getGlID()) {
317 new FXMenuCommand(ret,
"Select Foes", 0, ret,
MID_SHOW_FOES);
319 new FXMenuSeparator(ret);
340 glBegin(GL_TRIANGLE_STRIP);
342 glVertex2d(-.5, .15);
360 glBegin(GL_TRIANGLES);
372 glTranslated(0, 0, offset * .1);
373 glPolygonOffset(0, offset * -1);
374 glBegin(GL_TRIANGLE_FAN);
376 while (poses[i] > -999) {
377 glVertex2d(poses[i], poses[i + 1]);
394 glRotated(90, 0, 0, 1);
395 glScaled(length, width, 1.);
403 drawPoly(vehiclePoly_PassengerCarBodyFront, 4.5);
405 drawPoly(vehiclePoly_PassengerFrontGlass, 4.5);
408 glTranslated(0, 0, .045);
410 glTranslated(0, 0, -.045);
412 glTranslated(0, 0, .04);
415 glTranslated(0, 0, -.04);
425 glTranslated(0.4, 0, .5);
426 glScaled(0.1, 0.2, 1);
433 glTranslated(0.5, 0, .3);
434 glScaled(0.5, 0.05, 1);
439 glTranslated(0.25, 0, .3);
440 glScaled(0.02, 0.5, 1);
451 drawPoly(vehiclePoly_PassengerCarBodyFront, 4.5);
453 drawPoly(vehiclePoly_PassengerFrontGlass, 4.5);
456 drawPoly(vehiclePoly_PassengerVanBody, 4);
458 drawPoly(vehiclePoly_PassengerVanBodyFront, 4.5);
460 drawPoly(vehiclePoly_PassengerVanFrontGlass, 4.5);
461 drawPoly(vehiclePoly_PassengerVanRightGlass, 4.5);
462 drawPoly(vehiclePoly_PassengerVanLeftGlass, 4.5);
463 drawPoly(vehiclePoly_PassengerVanBackGlass, 4.5);
466 drawPoly(vehiclePoly_PassengerVanBody, 4);
468 drawPoly(vehiclePoly_PassengerVanBodyFront, 4.5);
470 drawPoly(vehiclePoly_PassengerVanFrontGlass, 4.5);
471 drawPoly(vehiclePoly_DeliveryMediumRightGlass, 4.5);
472 drawPoly(vehiclePoly_DeliveryMediumLeftGlass, 4.5);
477 glScaled(1. / (length), 1, 1.);
478 drawPoly(vehiclePoly_TransportBody, 4);
480 drawPoly(vehiclePoly_TransportFrontGlass, 4.5);
481 drawPoly(vehiclePoly_TransportRightGlass, 4.5);
482 drawPoly(vehiclePoly_TransportLeftGlass, 4.5);
488 glScaled(1. / (length), 1, 1.);
489 glTranslated(0, 0, .04);
490 glBegin(GL_TRIANGLE_FAN);
491 glVertex2d(ml / 2., 0);
494 glVertex2d(0 + .05, -.5);
495 glVertex2d(ml - .05, -.5);
496 glVertex2d(ml, -.45);
498 glVertex2d(ml - .05, .5);
499 glVertex2d(0 + .05, .5);
503 glTranslated(0, 0, -.04);
505 glTranslated(0, 0, .045);
508 glVertex2d(0 + .05, .48);
509 glVertex2d(0 + .05, -.48);
510 glVertex2d(0 + .15, -.48);
511 glVertex2d(0 + .15, .48);
513 glVertex2d(ml - .1, .45);
514 glVertex2d(ml - .1, -.45);
515 glVertex2d(ml - .05, -.45);
516 glVertex2d(ml - .05, .45);
518 glVertex2d(0 + .20, .49);
519 glVertex2d(0 + .20, .45);
520 glVertex2d(ml - .20, .45);
521 glVertex2d(ml - .20, .49);
523 glVertex2d(0 + .20, -.49);
524 glVertex2d(0 + .20, -.45);
525 glVertex2d(ml - .20, -.45);
526 glVertex2d(ml - .20, -.49);
529 glTranslated(0, 0, -.045);
539 drawPoly(vehiclePoly_EVehicleBody, 4);
541 drawPoly(vehiclePoly_EVehicleFrontGlass, 4.5);
542 glTranslated(0, 0, .048);
547 glVertex2d(.35, -.5);
550 glVertex2d(.3, -.05);
551 glVertex2d(.7, -.05);
557 glVertex2d(.65, -.5);
560 glTranslated(0, 0, -.048);
587 glTranslated(0, 0, 0.1);
589 glTranslated(.4, 0, 0);
591 glTranslated(.4, 0, 0);
602 drawPoly(vehiclePoly_ShipSuperStructure, 6);
607 drawPoly(vehiclePoly_PassengerVanBody, 4);
609 drawPoly(vehiclePoly_PassengerVanBodyFront, 4.5);
611 drawPoly(vehiclePoly_PassengerVanFrontGlass, 4.5);
612 drawPoly(vehiclePoly_DeliveryMediumRightGlass, 4.5);
613 drawPoly(vehiclePoly_DeliveryMediumLeftGlass, 4.5);
615 glTranslated(0.7, 0, 0);
616 glColor3d(.18, .55, .34);
617 drawPoly(vehiclePoly_EmergencySign, 4.5);
620 drawPoly(vehiclePoly_Emergency2, 5);
625 drawPoly(vehiclePoly_PassengerCarBodyFront, 4.5);
627 drawPoly(vehiclePoly_PassengerFrontGlass, 4.5);
637 glBegin(GL_TRIANGLE_FAN);
638 glVertex2d(1 / 2., 0);
641 glVertex2d(0 + .05, -.05);
642 glVertex2d(1 - .05, -.05);
645 glVertex2d(1 - .05, .05);
646 glVertex2d(0 + .05, .05);
654 glBegin(GL_TRIANGLE_FAN);
655 glVertex2d(1 / 2., 0);
658 glVertex2d(0 + .05, -.2);
659 glVertex2d(1 - .05, -.2);
662 glVertex2d(1 - .05, .2);
663 glVertex2d(0 + .05, .2);
670 drawPoly(vehiclePoly_PassengerSedanRightGlass, 4.5);
671 drawPoly(vehiclePoly_PassengerSedanLeftGlass, 4.5);
672 drawPoly(vehiclePoly_PassengerSedanBackGlass, 4.5);
675 drawPoly(vehiclePoly_PassengerHatchbackRightGlass, 4.5);
676 drawPoly(vehiclePoly_PassengerHatchbackLeftGlass, 4.5);
677 drawPoly(vehiclePoly_PassengerHatchbackBackGlass, 4.5);
680 drawPoly(vehiclePoly_PassengerWagonRightGlass, 4.5);
681 drawPoly(vehiclePoly_PassengerWagonLeftGlass, 4.5);
682 drawPoly(vehiclePoly_PassengerWagonBackGlass, 4.5);
705 glTranslated(0, 0, .1);
708 glTranslated(0, 0, .1);
728 drawPoly(vehiclePoly_PassengerSedanRightGlass, 4.5);
729 drawPoly(vehiclePoly_PassengerSedanLeftGlass, 4.5);
730 drawPoly(vehiclePoly_PassengerSedanBackGlass, 4.5);
838 glRotated(angle, 0, 0, 1);
843 glScaled(upscale, upscale, 1);
867 glTranslated(0, 0, .1);
884 glColor3d(0., 1., 0.);
887 glVertex2d(0., minGap);
888 glVertex2d(-.5, minGap);
889 glVertex2d(.5, minGap);
894 glColor3d(1., 0., 0.);
899 glTranslated(0, 0, .1);
963 glRotated(-angle, 0, 0, 1);
964 glScaled(1 / upscale, 1 / upscale, 1);
982 glTranslated(0, 0,
getType() - .1);
992 for (
int i = noReroutePlus1 - 1; i >= 0; i--) {
1010 glTranslated(pos.
x(), pos.
y(), -.1);
1014 glTranslated(-pos.
x(), -pos.
y(), .1);
1029 switch (activeScheme) {
1070 SUMOReal hue = 180. + atan2(center.
x() - p.
x(), center.
y() - p.
y()) * 180. /
PI;
1079 SUMOReal hue = 180. + atan2(center.
x() - p.
x(), center.
y() - p.
y()) * 180. /
PI;
1088 SUMOReal hue = 180. + atan2(pb.
x() - pe.
x(), pb.
y() - pe.
y()) * 180. /
PI;
1096 const SUMOReal hue = (long)veh % 360;
1097 const SUMOReal sat = (((long)veh / 360) % 67) / 100.0 + 0.33;
1134 glGetDoublev(GL_CURRENT_COLOR, colors);
1135 colors[0] -= darken;
1136 if (colors[0] < 0) {
1139 colors[1] -= darken;
1140 if (colors[1] < 0) {
1143 colors[2] -= darken;
1144 if (colors[2] < 0) {
1147 colors[3] -= darken;
1148 if (colors[3] < 0) {
void setColor(const GUIVisualizationSettings &s) const
sets the color according to the currente settings
std::map< GUISUMOAbstractView *, int > myAdditionalVisualizations
Enabled visualisations, per view.
void drawAction_drawVehicleAsBoxPlus() const
virtual void startTrack(int)
bool wasSet(int what) const
Returns whether the given parameter was set.
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
double vehiclePoly_PassengerVanBody[]
double vehiclePoly_Emergency2[]
RGBColor color
The vehicle's color.
MSDevice * getDevice(const std::type_info &type) const
Returns a device of the given type if it exists or 0.
unsigned int getNumberReroutes() const
Returns the number of new routes this vehicle got.
double vehiclePoly_PassengerVanRightGlass[]
MoveReminderCont myMoveReminders
Current lane's move reminder.
static RGBColor fromHSV(SUMOReal h, SUMOReal s, SUMOReal v)
Converts the given hsv-triplet to rgb.
bool showBlinker
Information whether vehicle blinkers shall be drawn.
void buildNameCopyPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds entries which allow to copy the name / typed name into the clipboard.
Position getCenter() const
Returns the center of the boundary.
virtual void drawAction_drawLinkItems(const GUIVisualizationSettings &) const
double vehiclePoly_PassengerWagonLeftGlass[]
GUIVisualizationTextSettings personName
Show all vehicle's routes.
double vehiclePoly_EVehicleFrontGlass[]
const Position geometryPositionAtOffset(SUMOReal offset) const
double vehiclePoly_PassengerSedanRightGlass[]
MFXMutex myLock
The mutex used to avoid concurrent updates of the vehicle buffer.
double vehiclePoly_PassengerVanFrontGlass[]
double vehiclePoly_TransportLeftGlass[]
bool showBTRange
Information whether the communication range shall be drawn.
SUMOReal ymin() const
Returns minimum y-coordinate.
Stores the information about how to visualize structures.
render as a transport vehicle
render as a flexible city bus
virtual SUMOReal getPositionOnLane() const =0
Get the vehicle's position along the lane.
Start to track a vehicle.
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
static void drawOutlineCircle(SUMOReal width, SUMOReal iwidth, int steps=8)
Draws an unfilled circle around (0,0)
bool drawLaneChangePreference
Information whether the lane change preference shall be drawn.
show vehicle's best lanes
SUMOReal xmin() const
Returns minimum x-coordinate.
MSDevice_Vehroutes * myRoutes
GUIVisualizationTextSettings vehicleName
SUMOReal getLength() const
Get vehicle's length [m].
double vehiclePoly_EVehicleBody[]
virtual MSLane * getLane() const =0
Returns the lane the vehicle is on.
double vehiclePoly_PassengerFrontGlass[]
void buildCenterPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to center to the object.
bool addAdditionalGLVisualisation(GUIGlObject *const which)
Adds an object to call its additional visualisation method.
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
const MSRoute & getRoute() const
Returns the current route.
render as a delivery vehicle
static void drawBoxLine(const Position &beg, SUMOReal rot, SUMOReal visLength, SUMOReal width, SUMOReal offset=0)
Draws a thick line.
double vehiclePoly_Emergency[]
virtual Position getPosition(const SUMOReal offset=0) const =0
Return current position (x/y, cartesian)
double vehiclePoly_PassengerHatchbackLeftGlass[]
double vehiclePoly_PassengerVanBackGlass[]
virtual SUMOReal getAngle() const =0
Returns the vehicle's direction in radians.
render as a sedan passenger vehicle ("Stufenheck")
SUMOReal distanceTo(const Position &p2) const
returns the euclidean distance in 3 dimension
static void drawText(const std::string &text, const Position &pos, const SUMOReal layer, const SUMOReal size, const RGBColor &col=RGBColor::BLACK, const SUMOReal angle=0)
draw Text with given parameters
double vehiclePoly_PassengerSedanBackGlass[]
void buildShowParamsPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to open the parameter window.
The base class for microscopic and mesoscopic vehicles.
double vehiclePoly_PassengerVanLeftGlass[]
void drawAction_drawVehicleAsPoly(const GUIVisualizationSettings &s) const
virtual void selectBlockingFoes() const =0
adds the blocking foes to the current selection
SUMOReal x() const
Returns the x-position.
void buildPositionCopyEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to copy the cursor position if geo projection is used, also builds an entry for copying the geo-position.
GUIGlID getGlID() const
Returns the numerical id of the object.
SUMOReal xmax() const
Returns maximum x-coordinate.
A class that stores a 2D geometrical boundary.
SUMOReal scale
information about a lane's width (temporary, used for a single view)
PositionVector mySeatPositions
positions of seats in the vehicle (updated at every drawing step)
GUIColorer vehicleColorer
The vehicle colorer.
virtual int getTrackedID() const
double vehiclePoly_ShipDeck[]
static void drawFilledCircle(SUMOReal width, int steps=8)
Draws a filled circle around (0,0)
static void drawPoly(double *poses, SUMOReal offset)
GUIGlObjectType getType() const
Returns the type of the object as coded in GUIGlObjectType.
bool removeAdditionalGLVisualisation(GUIGlObject *const which)
Removes an object from the list of objects that show additional things.
double vehiclePoly_PassengerCarBody[]
bool drawAction_drawVehicleAsImage(const GUIVisualizationSettings &s, SUMOReal length=-1) const
static const RGBColor GREEN
static const RGBColor GREY
static void drawTexturedBox(unsigned int which, SUMOReal size)
Draws a named texture as a box with the given size.
static void setColor(const RGBColor &c)
Sets the gl-color to this value.
render as a hatchback passenger vehicle ("Fliessheck")
virtual void drawBestLanes() const
Draws the vehicle's best lanes.
SUMOReal getMinGap() const
Get the free space in front of vehicles of this class.
bool wasSet(int what) const
Returns whether the given parameter was set.
double vehiclePoly_PassengerWagonRightGlass[]
A point in 2D or 3D with translation and scaling methods.
double vehiclePoly_ShipSuperStructure[]
bool drawMinGap
Information whether the minimum gap shall be drawn.
static const RGBColor DEFAULT_COLOR
The default color (for vehicle types and vehicles)
Hide all vehicle's routes.
double vehiclePoly_Ship[]
static int getTextureID(const std::string &filename, const bool mirrorX=false)
return texture id for the given filename (initialize on first use)
const ConstMSEdgeVector & getEdges() const
const T getColor(const SUMOReal value) const
render as a (city) rail without locomotive
RGBColor changedBrightness(int change, int toChange=3) const
Returns a new color with altered brightness.
A MSVehicle extended by some values for usage within the gui.
double vehiclePoly_PassengerHatchbackRightGlass[]
SUMOReal myCarriageLength
Variable to set with the length of the last drawn carriage or the vehicle length. ...
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
render as a passenger vehicle
void drawName(const Position &pos, const SUMOReal scale, const GUIVisualizationTextSettings &settings, const SUMOReal angle=0) const
double vehiclePoly_TransportBody[]
std::string toString(const T &t, std::streamsize accuracy=OUTPUT_ACCURACY)
const int VEHPARS_COLOR_SET
void drawRoute(const GUIVisualizationSettings &s, int routeNo, SUMOReal darken) const
Chooses the route to draw and draws it, darkening it as given.
std::string line
The vehicle's line (mainly for public transport)
SUMOVehicleShape getGuiShape() const
Get this vehicle type's shape.
Show vehicle's best lanes.
static void removeObject(GUIGlObject &o)
Removes all instances that pass values from the object with the given id.
double vehiclePoly_PassengerSedanLeftGlass[]
virtual SUMOReal getColorValue(size_t activeScheme) const =0
gets the color value according to the current scheme index
void unlock()
release mutex lock
double vehiclePoly_PassengerHatchbackBackGlass[]
GUIBaseVehicle(MSBaseVehicle &vehicle)
SUMOReal getWidth() const
Get the width which vehicles of this class shall have when being drawn.
virtual void drawAction_drawVehicleBlinker(SUMOReal) const
double vehiclePoly_PassengerCarBodyFront[]
void add(SUMOReal x, SUMOReal y)
Makes the boundary include the given coordinate.
Boundary & grow(SUMOReal by)
extends the boundary by the given amount
bool hasActiveAddVisualisation(GUISUMOAbstractView *const parent, int which) const
Returns whether the named feature is enabled in the given view.
~GUIBaseVehicle()
destructor
void removeActiveAddVisualisation(GUISUMOAbstractView *const parent, int which)
Adds the named visualisation feature to the given view.
SUMOVehicleShape
Definition of vehicle classes to differ between different appearences.
render as a arbitrary ship
A MSNet extended by some values for usage within the gui.
virtual void drawGLAdditional(GUISUMOAbstractView *const parent, const GUIVisualizationSettings &s) const
Draws additionally triggered visualisations.
Hide vehicle's current route.
virtual void drawAction_drawPersonsAndContainers(const GUIVisualizationSettings &) const
static bool setFunctionalColor(size_t activeScheme, const MSBaseVehicle *veh)
sets the color according to the current scheme index and some vehicle function
double vehiclePoly_EVehicleBackGlass[]
static void drawLinkItem(const Position &pos, SUMOTime arrivalTime, SUMOTime leaveTime, SUMOReal exagerate)
double vehiclePoly_EmergencySign[]
SUMOReal y() const
Returns the y-position.
virtual bool drawAction_drawCarriageClass(const GUIVisualizationSettings &s, SUMOVehicleShape guiShape, bool asImage) const =0
draws the given guiShape if it has distinc carriages/modules and eturns true if so ...
virtual void drawRouteHelper(const MSRoute &r, SUMOReal exaggeration) const =0
Draws the route.
const MSVehicleType & getVehicleType() const
Returns the vehicle's type definition.
static MSDevice_Vehroutes * buildVehicleDevices(SUMOVehicle &v, std::vector< MSDevice * > &into, unsigned int maxRoutes=INT_MAX)
Build devices for the given vehicle, if needed.
show all vehicle's routes
void buildSelectionPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to (de)select the object.
const SUMOVehicleParameter & getParameter() const
Returns the vehicle's parameter (including departure definition)
virtual void drawAction_drawVehicleBrakeLight(SUMOReal) const
Show vehicle's current route.
double vehiclePoly_TransportFrontGlass[]
const RGBColor & getColor() const
Returns this type's color.
const Position & getSeatPosition(size_t personIndex) const
returns the seat position for the person with the given index
double vehiclePoly_PassengerWagonBackGlass[]
render as an emergency vehicle
render as a (futuristic) e-vehicle
double vehiclePoly_DeliveryMediumRightGlass[]
const RGBColor & getColor() const
Returns the color.
std::string getImgFile() const
Get this vehicle type's raster model file name.
GUIVisualizationSizeSettings vehicleSize
SUMOReal ymax() const
Returns maximum y-coordinate.
int vehicleQuality
The quality of vehicle drawing.
static SUMOReal getRange()
Returns the configured range.
double vehiclePoly_TransportRightGlass[]
MSBaseVehicle & myVehicle
The vehicle to which all calls should be delegated.
FXDEFMAP(GUIBaseVehicle::GUIBaseVehiclePopupMenu) GUIBaseVehiclePopupMenuMap[]
virtual void drawAction_drawVehicleBlueLight() const
Hide vehicle's best lanes.
render as a transport vehicle with one trailer
render as a wagon passenger vehicle ("Combi")
double vehiclePoly_Cyclist[]
const MSVehicleType & myVType
A shortcut to myVehicle.myType.
void addActiveAddVisualisation(GUISUMOAbstractView *const parent, int which)
Adds the named visualisation feature to the given view.
std::vector< MSDevice * > myDevices
The devices this vehicle has.
show vehicle's current route
const int VTYPEPARS_COLOR_SET
render as a semi-trailer transport vehicle ("Sattelschlepper")
void drawAction_drawVehicleAsTrianglePlus() const
double vehiclePoly_PassengerVanBodyFront[]
double vehiclePoly_DeliveryMediumLeftGlass[]
SUMOReal getExaggeration(const GUIVisualizationSettings &s) const
return the drawing size including exaggeration and constantSize values
void buildPopupHeader(GUIGLObjectPopupMenu *ret, GUIMainWindow &app, bool addSeparator=true)
Builds the header.
const MSRoute * getRoute(int index) const
Called on route retrieval.
static RGBColor getColor()
gets the gl-color