93 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 };
94 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 };
95 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 };
96 double vehiclePoly_PassengerSedanRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.77, -.47, 0.67, -.37, 0.45, -.37, 0.34, -.47, -10000 };
97 double vehiclePoly_PassengerSedanLeftGlass[] = { 0.36, .43, 0.34, .47, 0.77, .47, 0.67, .37, 0.45, .37, 0.34, .47, -10000 };
98 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 };
99 double vehiclePoly_PassengerHatchbackRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.94, -.47, 0.80, -.37, 0.45, -.37, 0.34, -.47, -10000 };
100 double vehiclePoly_PassengerHatchbackLeftGlass[] = { 0.36, .43, 0.34, .47, 0.94, .47, 0.80, .37, 0.45, .37, 0.34, .47, -10000 };
101 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 };
102 double vehiclePoly_PassengerWagonRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.94, -.47, 0.87, -.37, 0.45, -.37, 0.34, -.47, -10000 };
103 double vehiclePoly_PassengerWagonLeftGlass[] = { 0.36, .43, 0.34, .47, 0.94, .47, 0.87, .37, 0.45, .37, 0.34, .47, -10000 };
104 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 };
106 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 };
107 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 };
108 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 };
109 double vehiclePoly_PassengerVanRightGlass[] = { 0.36, -.43, 0.20, -.47, 0.98, -.47, 0.91, -.37, 0.31, -.37, 0.20, -.47, -10000 };
110 double vehiclePoly_PassengerVanLeftGlass[] = { 0.36, .43, 0.20, .47, 0.98, .47, 0.91, .37, 0.31, .37, 0.20, .47, -10000 };
111 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 };
113 double vehiclePoly_DeliveryMediumRightGlass[] = { 0.21, -.43, 0.20, -.47, 0.38, -.47, 0.38, -.37, 0.31, -.37, 0.20, -.47, -10000 };
114 double vehiclePoly_DeliveryMediumLeftGlass[] = { 0.21, .43, 0.20, .47, 0.38, .47, 0.38, .37, 0.31, .37, 0.20, .47, -10000 };
116 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 };
117 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 };
118 double vehiclePoly_TransportRightGlass[] = { 0.36, -.47, 0.10, -.48, 1.25, -.48, 1.25, -.4, 0.3, -.4, 0.10, -.48, -10000 };
119 double vehiclePoly_TransportLeftGlass[] = { 0.36, .47, 0.10, .48, 1.25, .48, 1.25, .4, 0.3, .4, 0.10, .48, -10000 };
121 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 };
122 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 };
124 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 };
126 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 };
127 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 };
128 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 };
130 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 };
151 GUIGlObject& o, std::map<GUISUMOAbstractView*, int>& additionalVisualizations)
152 :
GUIGLObjectPopupMenu(app, parent, o), myVehiclesAdditionalVisualizations(additionalVisualizations) {
269 if (i->first->getTrackedID() ==
getGlID()) {
270 i->first->stopTrack();
272 while (i->first->removeAdditionalGLVisualisation(
this));
309 new FXMenuSeparator(ret);
315 new FXMenuCommand(ret,
"Select Foes", 0, ret,
MID_SHOW_FOES);
317 new FXMenuSeparator(ret);
339 glBegin(GL_TRIANGLE_STRIP);
341 glVertex2d(-.5, .15);
358 glScaled(
getVType().getWidth(), length, 1.);
359 glBegin(GL_TRIANGLES);
371 glTranslated(0, 0, offset * .1);
372 glPolygonOffset(0, (GLfloat) - offset);
373 glBegin(GL_TRIANGLE_FAN);
375 while (poses[i] > -999) {
376 glVertex2d(poses[i], poses[i + 1]);
393 glRotated(90, 0, 0, 1);
394 glScaled(length, width, 1.);
396 bool drawCarriages =
false;
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);
537 drawCarriages =
true;
540 drawPoly(vehiclePoly_EVehicleBody, 4);
542 drawPoly(vehiclePoly_EVehicleFrontGlass, 4.5);
543 glTranslated(0, 0, .048);
548 glVertex2d(.35, -.5);
551 glVertex2d(.3, -.05);
552 glVertex2d(.7, -.05);
558 glVertex2d(.65, -.5);
561 glTranslated(0, 0, -.048);
588 glTranslated(0, 0, 0.1);
590 glTranslated(.4, 0, 0);
592 glTranslated(.4, 0, 0);
603 drawPoly(vehiclePoly_ShipSuperStructure, 6);
608 drawPoly(vehiclePoly_PassengerVanBody, 4);
610 drawPoly(vehiclePoly_PassengerVanBodyFront, 4.5);
612 drawPoly(vehiclePoly_PassengerVanFrontGlass, 4.5);
613 drawPoly(vehiclePoly_DeliveryMediumRightGlass, 4.5);
614 drawPoly(vehiclePoly_DeliveryMediumLeftGlass, 4.5);
616 glTranslated(0.7, 0, 0);
617 glColor3d(.18, .55, .34);
618 drawPoly(vehiclePoly_EmergencySign, 4.5);
621 drawPoly(vehiclePoly_Emergency2, 5);
625 drawPoly(vehiclePoly_PassengerVanBody, 4);
627 drawPoly(vehiclePoly_PassengerVanBodyFront, 4.5);
629 drawPoly(vehiclePoly_PassengerVanFrontGlass, 4.5);
630 drawPoly(vehiclePoly_DeliveryMediumRightGlass, 4.5);
631 drawPoly(vehiclePoly_DeliveryMediumLeftGlass, 4.5);
633 glTranslated(0.7, 0, 0);
635 drawPoly(vehiclePoly_EmergencySign, 4.5);
636 glColor3d(.5, .5, .5);
637 drawPoly(vehiclePoly_EmergencyLadder, 5);
638 drawPoly(vehiclePoly_EmergencyLadder2, 5);
639 drawPoly(vehiclePoly_EmergencyLadder3, 5);
640 drawPoly(vehiclePoly_EmergencyLadder4, 5);
641 drawPoly(vehiclePoly_EmergencyLadder5, 5);
642 drawPoly(vehiclePoly_EmergencyLadder6, 5);
643 drawPoly(vehiclePoly_EmergencyLadder7, 5);
646 glColor3d(.5, .5, .5);
649 drawPoly(vehiclePoly_PassengerCarBodyFront, 4.5);
651 drawPoly(vehiclePoly_PassengerFrontGlass, 4.5);
653 glTranslated(0.7, 0, 0);
655 drawPoly(vehiclePoly_EmergencySign, 4.5);
656 glColor3d(.5, .5, .5);
658 drawPoly(vehiclePoly_Emergency2, 5);
663 drawPoly(vehiclePoly_PassengerCarBodyFront, 4.5);
665 drawPoly(vehiclePoly_PassengerFrontGlass, 4.5);
675 glBegin(GL_TRIANGLE_FAN);
676 glVertex2d(1 / 2., 0);
679 glVertex2d(0 + .05, -.05);
680 glVertex2d(1 - .05, -.05);
683 glVertex2d(1 - .05, .05);
684 glVertex2d(0 + .05, .05);
692 glBegin(GL_TRIANGLE_FAN);
693 glVertex2d(1 / 2., 0);
696 glVertex2d(0 + .05, -.2);
697 glVertex2d(1 - .05, -.2);
700 glVertex2d(1 - .05, .2);
701 glVertex2d(0 + .05, .2);
708 drawPoly(vehiclePoly_PassengerSedanRightGlass, 4.5);
709 drawPoly(vehiclePoly_PassengerSedanLeftGlass, 4.5);
710 drawPoly(vehiclePoly_PassengerSedanBackGlass, 4.5);
713 drawPoly(vehiclePoly_PassengerHatchbackRightGlass, 4.5);
714 drawPoly(vehiclePoly_PassengerHatchbackLeftGlass, 4.5);
715 drawPoly(vehiclePoly_PassengerHatchbackBackGlass, 4.5);
718 drawPoly(vehiclePoly_PassengerWagonRightGlass, 4.5);
719 drawPoly(vehiclePoly_PassengerWagonLeftGlass, 4.5);
720 drawPoly(vehiclePoly_PassengerWagonBackGlass, 4.5);
735 double l = length - 2.3;
743 glTranslated(0, 0, .1);
746 glTranslated(0, 0, .1);
768 drawPoly(vehiclePoly_PassengerSedanRightGlass, 4.5);
769 drawPoly(vehiclePoly_PassengerSedanLeftGlass, 4.5);
770 drawPoly(vehiclePoly_PassengerSedanBackGlass, 4.5);
843 return drawCarriages;
871 const double degAngle =
RAD2DEG(angle +
M_PI / 2.);
879 glRotated(degAngle, 0, 0, 1);
884 glScaled(upscale, upscale, 1);
896 bool drawCarriages =
false;
908 glTranslated(0, 0, .1);
927 glColor3d(0., 1., 0.);
930 glVertex2d(0., minGap);
931 glVertex2d(-.5, minGap);
932 glVertex2d(.5, minGap);
937 glColor3d(1., 0., 0.);
942 glTranslated(0, 0, .1);
959 if (!drawCarriages) {
1014 glRotated(-degAngle, 0, 0, 1);
1015 glScaled(1 / upscale, 1 / upscale, 1);
1042 glTranslated(0, 0,
getType() - .1);
1052 for (
int i = noReroutePlus1 - 1; i >= 0; i--) {
1053 double darken = double(0.4) / double(noReroutePlus1) * double(i);
1070 glTranslated(pos.
x(), pos.
y(), -.1);
1074 glTranslated(-pos.
x(), -pos.
y(), .1);
1089 switch (activeScheme) {
1130 double hue = 180. + atan2(center.
x() - p.
x(), center.
y() - p.
y()) * 180. /
M_PI;
1139 double hue = 180. + atan2(center.
x() - p.
x(), center.
y() - p.
y()) * 180. /
M_PI;
1148 double hue = 180. + atan2(pb.
x() - pe.
x(), pb.
y() - pe.
y()) * 180. /
M_PI;
1151 double sat = pb.
distanceTo(pe) / minp.distanceTo(maxp);
1156 const double hue = (long)veh % 360;
1157 const double sat = (((long)veh / 360) % 67) / 100.0 + 0.33;
1194 glGetDoublev(GL_CURRENT_COLOR, colors);
1195 colors[0] -= darken;
1196 if (colors[0] < 0) {
1199 colors[1] -= darken;
1200 if (colors[1] < 0) {
1203 colors[2] -= darken;
1204 if (colors[2] < 0) {
1207 colors[3] -= darken;
1208 if (colors[3] < 0) {
void setColor(const GUIVisualizationSettings &s) const
sets the color according to the currente settings
static void drawTexturedBox(int which, double size)
Draws a named texture as a box with the given size.
std::map< GUISUMOAbstractView *, int > myAdditionalVisualizations
Enabled visualisations, per view.
void drawAction_drawVehicleAsBoxPlus() const
double xmax() const
Returns maximum x-coordinate.
bool wasSet(int what) const
Returns whether the given parameter was set.
double getMinGap() const
Get the free space in front of vehicles of this class.
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
void drawName(const Position &pos, const double scale, const GUIVisualizationTextSettings &settings, const double angle=0) const
draw name of item
double vehiclePoly_PassengerVanBody[]
double vehiclePoly_Emergency2[]
RGBColor color
The vehicle's color, TraCI may change this.
MSDevice * getDevice(const std::type_info &type) const
Returns a device of the given type if it exists or 0.
double scale
information about a lane's width (temporary, used for a single view)
bool drawAction_drawVehicleAsImage(const GUIVisualizationSettings &s, double length=-1) const
double vehiclePoly_PassengerVanRightGlass[]
double vehiclePoly_EmergencyLadder4[]
MoveReminderCont myMoveReminders
Currently relevant move reminders.
void drawOnPos(const GUIVisualizationSettings &s, const Position &pos, const double angle) const
Draws the object on the specified position with the specified angle.
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
double vehiclePoly_EVehicleFrontGlass[]
double vehiclePoly_PassengerSedanRightGlass[]
MFXMutex myLock
The mutex used to avoid concurrent updates of the vehicle buffer.
const MSVehicleType & getVType() const
A shortcut to myVehicle.myType.
static RGBColor fromHSV(double h, double s, double v)
Converts the given hsv-triplet to rgb.
void drawRoute(const GUIVisualizationSettings &s, int routeNo, double darken) const
Chooses the route to draw and draws it, darkening it as given.
double vehiclePoly_PassengerVanFrontGlass[]
double vehiclePoly_TransportLeftGlass[]
bool showBTRange
Information whether the communication range shall be drawn.
double ymax() const
Returns maximum y-coordinate.
Show vehicle's best lanes.
double x() const
Returns the x-position.
Stores the information about how to visualize structures.
render as a transport vehicle
render as a flexible city bus
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
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
MSDevice_Vehroutes * myRoutes
GUIVisualizationTextSettings vehicleName
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.
static double getRange()
Returns the configured range.
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 void drawText(const std::string &text, const Position &pos, const double layer, const double size, const RGBColor &col=RGBColor::BLACK, const double angle=0, int align=0, double width=-1)
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
double vehiclePoly_Emergency[]
double vehiclePoly_PassengerHatchbackLeftGlass[]
double vehiclePoly_PassengerVanBackGlass[]
double vehiclePoly_EmergencyLadder3[]
render as a sedan passenger vehicle ("Stufenheck")
bool addAdditionalGLVisualisation(const GUIGlObject *const which)
Adds an object to call its additional visualisation method.
static void drawLinkItem(const Position &pos, SUMOTime arrivalTime, SUMOTime leaveTime, double exagerate)
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.
virtual void drawRouteHelper(const GUIVisualizationSettings &s, const MSRoute &r) const =0
Draws the route.
double vehiclePoly_PassengerVanLeftGlass[]
virtual void stopTrack()
stop track
static void drawFilledCircle(double width, int steps=8)
Draws a filled circle around (0,0)
virtual void selectBlockingFoes() const =0
adds the blocking foes to the current selection
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.
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.
Hide all vehicle's routes.
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[]
GUIGlObjectType getType() const
Returns the type of the object as coded in GUIGlObjectType.
Show vehicle's current route.
double vehiclePoly_PassengerCarBody[]
virtual void drawAction_drawVehicleBrakeLight(double length, bool onlyOne=false) const
virtual void startTrack(int)
star track
static const RGBColor GREEN
static const RGBColor GREY
double getExaggeration(const GUIVisualizationSettings &s, double factor=20) const
return the drawing size including exaggeration and constantSize values
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
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.
Hide vehicle's current route.
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.
Show all vehicle's routes.
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)
double vehiclePoly_EmergencyLadder6[]
double y() const
Returns the y-position.
double vehiclePoly_EmergencyLadder[]
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
virtual double getColorValue(int activeScheme) const =0
gets the color value according to the current scheme index
const T getColor(const double value) const
render as a (city) rail without locomotive
static void drawOutlineCircle(double width, double iwidth, int steps=8)
Draws an unfilled circle around (0,0)
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.
Boundary & grow(double by)
extends the boundary by the given amount
double vehiclePoly_PassengerHatchbackRightGlass[]
virtual Position getPosition(const double offset=0) const =0
Return current position (x/y, cartesian)
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
render as a passenger vehicle
double getWidth() const
Get the width which vehicles of this class shall have when being drawn.
double vehiclePoly_TransportBody[]
const int VEHPARS_COLOR_SET
double distanceTo(const Position &p2) const
returns the euclidean distance in 3 dimension
std::string line
The vehicle's line (mainly for public transport)
SUMOVehicleShape getGuiShape() const
Get this vehicle type's shape.
static void removeObject(GUIGlObject &o)
Removes all instances that pass values from the object with the given id.
double vehiclePoly_PassengerSedanLeftGlass[]
void unlock()
release mutex lock
double vehiclePoly_PassengerHatchbackBackGlass[]
GUIBaseVehicle(MSBaseVehicle &vehicle)
double getLength() const
Get vehicle's length [m].
double vehiclePoly_PassengerCarBodyFront[]
bool hasActiveAddVisualisation(GUISUMOAbstractView *const parent, int which) const
Returns whether the named feature is enabled in the given view.
~GUIBaseVehicle()
destructor
Hide vehicle's best lanes.
static MSDevice_Vehroutes * buildVehicleDevices(SUMOVehicle &v, std::vector< MSDevice * > &into, int maxRoutes=std::numeric_limits< int >::max())
Build devices for the given vehicle, if needed.
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.
bool drawAction_drawVehicleAsPoly(const GUIVisualizationSettings &s) const
virtual void drawGLAdditional(GUISUMOAbstractView *const parent, const GUIVisualizationSettings &s) const
Draws additionally triggered visualisations.
virtual void drawAction_drawPersonsAndContainers(const GUIVisualizationSettings &) const
double vehiclePoly_EmergencyLadder5[]
double vehiclePoly_EVehicleBackGlass[]
double xmin() const
Returns minimum x-coordinate.
double vehiclePoly_EmergencySign[]
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 ...
const MSVehicleType & getVehicleType() const
Returns the vehicle's type definition.
show all vehicle's routes
virtual double getAngle() const =0
Returns the vehicle's direction in radians.
void buildSelectionPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to (de)select the object.
virtual Position getPosition(const double offset=0) const =0
Return current position (x/y, cartesian)
const SUMOVehicleParameter & getParameter() const
Returns the vehicle's parameter (including departure definition)
double ymin() const
Returns minimum y-coordinate.
double vehiclePoly_TransportFrontGlass[]
Start to track a vehicle.
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
static void drawPoly(double *poses, double offset)
int vehicleQuality
The quality of vehicle drawing.
static void drawBoxLine(const Position &beg, double rot, double visLength, double width, double offset=0)
Draws a thick line.
double vehiclePoly_TransportRightGlass[]
MSBaseVehicle & myVehicle
The vehicle to which all calls should be delegated.
void add(double x, double y, double z=0)
Makes the boundary include the given coordinate.
FXDEFMAP(GUIBaseVehicle::GUIBaseVehiclePopupMenu) GUIBaseVehiclePopupMenuMap[]
virtual void drawAction_drawVehicleBlueLight() const
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[]
void addActiveAddVisualisation(GUISUMOAbstractView *const parent, int which)
Adds the named visualisation feature to the given view.
double vehiclePoly_EmergencyLadder7[]
std::vector< MSDevice * > myDevices
The devices this vehicle has.
show vehicle's current route
const int VTYPEPARS_COLOR_SET
virtual void drawAction_drawVehicleBlinker(double) const
render as a semi-trailer transport vehicle ("Sattelschlepper")
void drawAction_drawVehicleAsTrianglePlus() const
double vehiclePoly_PassengerVanBodyFront[]
double vehiclePoly_DeliveryMediumLeftGlass[]
void buildPopupHeader(GUIGLObjectPopupMenu *ret, GUIMainWindow &app, bool addSeparator=true)
Builds the header.
double vehiclePoly_EmergencyLadder2[]
const MSRoute * getRoute(int index) const
Called on route retrieval.
static RGBColor getColor()
gets the gl-color