66 #ifdef CHECK_MEMORY_LEAKS
68 #endif // CHECK_MEMORY_LEAKS
99 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 };
100 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 };
101 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 };
102 double vehiclePoly_PassengerSedanRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.77, -.47, 0.67, -.37, 0.45, -.37, 0.34, -.47, -10000 };
103 double vehiclePoly_PassengerSedanLeftGlass[] = { 0.36, .43, 0.34, .47, 0.77, .47, 0.67, .37, 0.45, .37, 0.34, .47, -10000 };
104 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 };
105 double vehiclePoly_PassengerHatchbackRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.94, -.47, 0.80, -.37, 0.45, -.37, 0.34, -.47, -10000 };
106 double vehiclePoly_PassengerHatchbackLeftGlass[] = { 0.36, .43, 0.34, .47, 0.94, .47, 0.80, .37, 0.45, .37, 0.34, .47, -10000 };
107 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 };
108 double vehiclePoly_PassengerWagonRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.94, -.47, 0.87, -.37, 0.45, -.37, 0.34, -.47, -10000 };
109 double vehiclePoly_PassengerWagonLeftGlass[] = { 0.36, .43, 0.34, .47, 0.94, .47, 0.87, .37, 0.45, .37, 0.34, .47, -10000 };
110 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 };
112 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 };
113 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 };
114 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 };
115 double vehiclePoly_PassengerVanRightGlass[] = { 0.36, -.43, 0.20, -.47, 0.98, -.47, 0.91, -.37, 0.31, -.37, 0.20, -.47, -10000 };
116 double vehiclePoly_PassengerVanLeftGlass[] = { 0.36, .43, 0.20, .47, 0.98, .47, 0.91, .37, 0.31, .37, 0.20, .47, -10000 };
117 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 };
119 double vehiclePoly_DeliveryMediumRightGlass[] = { 0.21, -.43, 0.20, -.47, 0.38, -.47, 0.38, -.37, 0.31, -.37, 0.20, -.47, -10000 };
120 double vehiclePoly_DeliveryMediumLeftGlass[] = { 0.21, .43, 0.20, .47, 0.38, .47, 0.38, .37, 0.31, .37, 0.20, .47, -10000 };
122 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 };
123 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 };
124 double vehiclePoly_TransportRightGlass[] = { 0.36, -.47, 0.10, -.48, 1.25, -.48, 1.25, -.4, 0.3, -.4, 0.10, -.48, -10000 };
125 double vehiclePoly_TransportLeftGlass[] = { 0.36, .47, 0.10, .48, 1.25, .48, 1.25, .4, 0.3, .4, 0.10, .48, -10000 };
127 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 };
128 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 };
130 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 };
132 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 };
133 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 };
134 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 };
136 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 };
150 GUIGlObject& o, std::map<GUISUMOAbstractView*, int>& additionalVisualizations)
151 :
GUIGLObjectPopupMenu(app, parent, o), myVehiclesAdditionalVisualizations(additionalVisualizations) {
161 if (!static_cast<GUIBaseVehicle*>(myObject)->hasActiveAddVisualisation(myParent,
VO_SHOW_ALL_ROUTES)) {
178 if (!static_cast<GUIBaseVehicle*>(myObject)->hasActiveAddVisualisation(myParent,
VO_SHOW_ROUTE)) {
195 if (!static_cast<GUIBaseVehicle*>(myObject)->hasActiveAddVisualisation(myParent,
VO_SHOW_BEST_LANES)) {
212 if (!static_cast<GUIBaseVehicle*>(myObject)->hasActiveAddVisualisation(myParent,
VO_TRACKED)) {
213 myParent->startTrack(static_cast<GUIBaseVehicle*>(myObject)->
getGlID());
223 myParent->stopTrack();
231 if (!static_cast<GUIBaseVehicle*>(myObject)->hasActiveAddVisualisation(myParent,
VO_SHOW_LFLINKITEMS)) {
260 myVType(vehicle.getVehicleType()) {
271 while (i->first->removeAdditionalGLVisualisation(
this));
308 new FXMenuSeparator(ret);
314 new FXMenuCommand(ret,
"Select Foes", 0, ret,
MID_SHOW_FOES);
316 new FXMenuSeparator(ret);
338 glBegin(GL_TRIANGLE_STRIP);
340 glVertex2d(-.5, .15);
358 glBegin(GL_TRIANGLES);
370 glTranslated(0, 0, offset * .1);
371 glPolygonOffset(0, (GLfloat) - offset);
372 glBegin(GL_TRIANGLE_FAN);
374 while (poses[i] > -999) {
375 glVertex2d(poses[i], poses[i + 1]);
392 glRotated(90, 0, 0, 1);
393 glScaled(length, width, 1.);
401 drawPoly(vehiclePoly_PassengerCarBodyFront, 4.5);
403 drawPoly(vehiclePoly_PassengerFrontGlass, 4.5);
406 glTranslated(0, 0, .045);
408 glTranslated(0, 0, -.045);
410 glTranslated(0, 0, .04);
413 glTranslated(0, 0, -.04);
423 glTranslated(0.4, 0, .5);
424 glScaled(0.1, 0.2, 1);
431 glTranslated(0.5, 0, .3);
432 glScaled(0.5, 0.05, 1);
437 glTranslated(0.25, 0, .3);
438 glScaled(0.02, 0.5, 1);
449 drawPoly(vehiclePoly_PassengerCarBodyFront, 4.5);
451 drawPoly(vehiclePoly_PassengerFrontGlass, 4.5);
454 drawPoly(vehiclePoly_PassengerVanBody, 4);
456 drawPoly(vehiclePoly_PassengerVanBodyFront, 4.5);
458 drawPoly(vehiclePoly_PassengerVanFrontGlass, 4.5);
459 drawPoly(vehiclePoly_PassengerVanRightGlass, 4.5);
460 drawPoly(vehiclePoly_PassengerVanLeftGlass, 4.5);
461 drawPoly(vehiclePoly_PassengerVanBackGlass, 4.5);
464 drawPoly(vehiclePoly_PassengerVanBody, 4);
466 drawPoly(vehiclePoly_PassengerVanBodyFront, 4.5);
468 drawPoly(vehiclePoly_PassengerVanFrontGlass, 4.5);
469 drawPoly(vehiclePoly_DeliveryMediumRightGlass, 4.5);
470 drawPoly(vehiclePoly_DeliveryMediumLeftGlass, 4.5);
475 glScaled(1. / (length), 1, 1.);
476 drawPoly(vehiclePoly_TransportBody, 4);
478 drawPoly(vehiclePoly_TransportFrontGlass, 4.5);
479 drawPoly(vehiclePoly_TransportRightGlass, 4.5);
480 drawPoly(vehiclePoly_TransportLeftGlass, 4.5);
486 glScaled(1. / (length), 1, 1.);
487 glTranslated(0, 0, .04);
488 glBegin(GL_TRIANGLE_FAN);
489 glVertex2d(ml / 2., 0);
492 glVertex2d(0 + .05, -.5);
493 glVertex2d(ml - .05, -.5);
494 glVertex2d(ml, -.45);
496 glVertex2d(ml - .05, .5);
497 glVertex2d(0 + .05, .5);
501 glTranslated(0, 0, -.04);
503 glTranslated(0, 0, .045);
506 glVertex2d(0 + .05, .48);
507 glVertex2d(0 + .05, -.48);
508 glVertex2d(0 + .15, -.48);
509 glVertex2d(0 + .15, .48);
511 glVertex2d(ml - .1, .45);
512 glVertex2d(ml - .1, -.45);
513 glVertex2d(ml - .05, -.45);
514 glVertex2d(ml - .05, .45);
516 glVertex2d(0 + .20, .49);
517 glVertex2d(0 + .20, .45);
518 glVertex2d(ml - .20, .45);
519 glVertex2d(ml - .20, .49);
521 glVertex2d(0 + .20, -.49);
522 glVertex2d(0 + .20, -.45);
523 glVertex2d(ml - .20, -.45);
524 glVertex2d(ml - .20, -.49);
527 glTranslated(0, 0, -.045);
537 drawPoly(vehiclePoly_EVehicleBody, 4);
539 drawPoly(vehiclePoly_EVehicleFrontGlass, 4.5);
540 glTranslated(0, 0, .048);
545 glVertex2d(.35, -.5);
548 glVertex2d(.3, -.05);
549 glVertex2d(.7, -.05);
555 glVertex2d(.65, -.5);
558 glTranslated(0, 0, -.048);
585 glTranslated(0, 0, 0.1);
587 glTranslated(.4, 0, 0);
589 glTranslated(.4, 0, 0);
600 drawPoly(vehiclePoly_ShipSuperStructure, 6);
605 drawPoly(vehiclePoly_PassengerVanBody, 4);
607 drawPoly(vehiclePoly_PassengerVanBodyFront, 4.5);
609 drawPoly(vehiclePoly_PassengerVanFrontGlass, 4.5);
610 drawPoly(vehiclePoly_DeliveryMediumRightGlass, 4.5);
611 drawPoly(vehiclePoly_DeliveryMediumLeftGlass, 4.5);
613 glTranslated(0.7, 0, 0);
614 glColor3d(.18, .55, .34);
615 drawPoly(vehiclePoly_EmergencySign, 4.5);
618 drawPoly(vehiclePoly_Emergency2, 5);
623 drawPoly(vehiclePoly_PassengerCarBodyFront, 4.5);
625 drawPoly(vehiclePoly_PassengerFrontGlass, 4.5);
635 glBegin(GL_TRIANGLE_FAN);
636 glVertex2d(1 / 2., 0);
639 glVertex2d(0 + .05, -.05);
640 glVertex2d(1 - .05, -.05);
643 glVertex2d(1 - .05, .05);
644 glVertex2d(0 + .05, .05);
652 glBegin(GL_TRIANGLE_FAN);
653 glVertex2d(1 / 2., 0);
656 glVertex2d(0 + .05, -.2);
657 glVertex2d(1 - .05, -.2);
660 glVertex2d(1 - .05, .2);
661 glVertex2d(0 + .05, .2);
668 drawPoly(vehiclePoly_PassengerSedanRightGlass, 4.5);
669 drawPoly(vehiclePoly_PassengerSedanLeftGlass, 4.5);
670 drawPoly(vehiclePoly_PassengerSedanBackGlass, 4.5);
673 drawPoly(vehiclePoly_PassengerHatchbackRightGlass, 4.5);
674 drawPoly(vehiclePoly_PassengerHatchbackLeftGlass, 4.5);
675 drawPoly(vehiclePoly_PassengerHatchbackBackGlass, 4.5);
678 drawPoly(vehiclePoly_PassengerWagonRightGlass, 4.5);
679 drawPoly(vehiclePoly_PassengerWagonLeftGlass, 4.5);
680 drawPoly(vehiclePoly_PassengerWagonBackGlass, 4.5);
703 glTranslated(0, 0, .1);
706 glTranslated(0, 0, .1);
726 drawPoly(vehiclePoly_PassengerSedanRightGlass, 4.5);
727 drawPoly(vehiclePoly_PassengerSedanLeftGlass, 4.5);
728 drawPoly(vehiclePoly_PassengerSedanBackGlass, 4.5);
836 glRotated(degAngle, 0, 0, 1);
841 glScaled(upscale, upscale, 1);
865 glTranslated(0, 0, .1);
882 glColor3d(0., 1., 0.);
885 glVertex2d(0., minGap);
886 glVertex2d(-.5, minGap);
887 glVertex2d(.5, minGap);
892 glColor3d(1., 0., 0.);
897 glTranslated(0, 0, .1);
966 glRotated(-degAngle, 0, 0, 1);
967 glScaled(1 / upscale, 1 / upscale, 1);
994 glTranslated(0, 0,
getType() - .1);
1004 for (
int i = noReroutePlus1 - 1; i >= 0; i--) {
1022 glTranslated(pos.
x(), pos.
y(), -.1);
1026 glTranslated(-pos.
x(), -pos.
y(), .1);
1041 switch (activeScheme) {
1082 SUMOReal hue = 180. + atan2(center.
x() - p.
x(), center.
y() - p.
y()) * 180. /
PI;
1091 SUMOReal hue = 180. + atan2(center.
x() - p.
x(), center.
y() - p.
y()) * 180. /
PI;
1100 SUMOReal hue = 180. + atan2(pb.
x() - pe.
x(), pb.
y() - pe.
y()) * 180. /
PI;
1108 const SUMOReal hue = (long)veh % 360;
1109 const SUMOReal sat = (((long)veh / 360) % 67) / 100.0 + 0.33;
1146 glGetDoublev(GL_CURRENT_COLOR, colors);
1147 colors[0] -= darken;
1148 if (colors[0] < 0) {
1151 colors[1] -= darken;
1152 if (colors[1] < 0) {
1155 colors[2] -= darken;
1156 if (colors[2] < 0) {
1159 colors[3] -= darken;
1160 if (colors[3] < 0) {
void setColor(const GUIVisualizationSettings &s) const
sets the color according to the currente settings
SUMOReal getExaggeration(const GUIVisualizationSettings &s, SUMOReal factor=20) const
return the drawing size including exaggeration and constantSize values
std::map< GUISUMOAbstractView *, int > myAdditionalVisualizations
Enabled visualisations, per view.
void drawAction_drawVehicleAsBoxPlus() const
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.
double vehiclePoly_PassengerVanRightGlass[]
MoveReminderCont myMoveReminders
Currently relevant move reminders.
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[]
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)
const Position & getSeatPosition(int personIndex) const
returns the seat position for the person with the given index
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[]
int getNumberReroutes() const
Returns the number of new routes this vehicle got.
virtual bool isOnRoad() const
Returns the information whether the vehicle is on a road (is simulated)
void buildCenterPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to center to the object.
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")
bool addAdditionalGLVisualisation(const GUIGlObject *const which)
Adds an object to call its additional visualisation method.
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
const Position geometryPositionAtOffset(SUMOReal offset, SUMOReal lateralOffset=0) const
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.
void buildShowTypeParamsPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to open the type parameter window.
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.
bool removeAdditionalGLVisualisation(const GUIGlObject *const which)
Removes an object from the list of objects that show additional things.
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)
virtual GUIGlID getTrackedID() const
get tracked id
GUIColorer vehicleColorer
The vehicle colorer.
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.
double vehiclePoly_PassengerCarBody[]
bool drawAction_drawVehicleAsImage(const GUIVisualizationSettings &s, SUMOReal length=-1) const
static const RGBColor GREEN
static const RGBColor GREY
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.
virtual void drawAction_drawVehicleBrakeLight(SUMOReal length, bool onlyOne=false) const
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
draw name of item
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.
static MSDevice_Vehroutes * buildVehicleDevices(SUMOVehicle &v, std::vector< MSDevice * > &into, int maxRoutes=INT_MAX)
Build devices for the given vehicle, if needed.
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[]
void drawOnPos(const GUIVisualizationSettings &s, const Position &pos, const SUMOReal angle) const
Draws the object on the specified position with the specified angle.
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[]
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
void add(SUMOReal x, SUMOReal y, SUMOReal z=0)
Makes the boundary include the given coordinate.
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.
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)
Show vehicle's current route.
double vehiclePoly_TransportFrontGlass[]
const RGBColor & getColor() const
Returns this type's color.
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.
virtual SUMOReal getColorValue(int activeScheme) const =0
gets the color value according to the current scheme index
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")
static bool setFunctionalColor(int activeScheme, const MSBaseVehicle *veh)
sets the color according to the current scheme index and some vehicle function
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")
static void drawTexturedBox(int which, SUMOReal size)
Draws a named texture as a box with the given size.
void drawAction_drawVehicleAsTrianglePlus() const
double vehiclePoly_PassengerVanBodyFront[]
double vehiclePoly_DeliveryMediumLeftGlass[]
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