Definition in file GUIVehicle.cpp.
#include <config.h>
#include <cmath>
#include <vector>
#include <string>
#include <utils/common/StringUtils.h>
#include <utils/common/SUMOVehicleParameter.h>
#include <microsim/MSVehicle.h>
#include "GUINet.h"
#include "GUIVehicle.h"
#include <gui/GUIApplicationWindow.h>
#include <utils/gui/windows/GUISUMOAbstractView.h>
#include <gui/GUIGlobals.h>
#include <utils/gui/div/GUIParameterTableWindow.h>
#include <utils/gui/windows/GUIAppEnum.h>
#include <microsim/logging/CastingFunctionBinding.h>
#include <microsim/logging/FunctionBinding.h>
#include <microsim/MSVehicleControl.h>
#include <utils/gui/div/GUIGlobalSelection.h>
#include <utils/common/RandHelper.h>
#include <microsim/MSAbstractLaneChangeModel.h>
#include <utils/gui/div/GLHelper.h>
#include <foreign/polyfonts/polyfonts.h>
Go to the source code of this file.
Defines | |
| #define | BLINKER_POS_BACK .5 |
| #define | BLINKER_POS_FRONT .5 |
Functions | |
| void | drawAction_drawVehicleAsBoxPlus (const GUIVehicle &veh, SUMOReal upscale) |
| void | drawAction_drawVehicleAsPoly (const GUIVehicle &veh, SUMOReal upscale) |
| void | drawAction_drawVehicleAsTrianglePlus (const GUIVehicle &veh, SUMOReal upscale) |
| void | drawAction_drawVehicleBlinker (const GUIVehicle &veh) |
| void | drawAction_drawVehicleName (const GUIVehicle &veh, SUMOReal size) |
| void | drawPoly (double *poses, SUMOReal offset) |
| FXDEFMAP (GUIVehicle::GUIVehiclePopupMenu) GUIVehiclePopupMenuMap[] | |
| FXIMPLEMENT (GUIVehicle::GUIVehiclePopupMenu, GUIGLObjectPopupMenu, GUIVehiclePopupMenuMap, ARRAYNUMBER(GUIVehiclePopupMenuMap)) double vehiclePoly_PassengerCarBody[] | |
Variables | |
| double | vehiclePoly_DeliveryMediumLeftGlass [] = { 0.21,.43, 0.20,.47, 0.38,.47, 0.38,.37, 0.31,.37, 0.20,.47, -10000 } |
| double | vehiclePoly_DeliveryMediumRightGlass [] = { 0.21,-.43, 0.20,-.47, 0.38,-.47, 0.38,-.37, 0.31,-.37, 0.20,-.47, -10000 } |
| 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 } |
| 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 } |
| 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 } |
| 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 } |
| 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 } |
| 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 } |
| double | vehiclePoly_PassengerHatchbackLeftGlass [] = { 0.36,.43, 0.34,.47, 0.94,.47, 0.80,.37, 0.45,.37, 0.34,.47, -10000 } |
| double | vehiclePoly_PassengerHatchbackRightGlass [] = { 0.36,-.43, 0.34,-.47, 0.94,-.47, 0.80,-.37, 0.45,-.37, 0.34,-.47, -10000 } |
| 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 } |
| double | vehiclePoly_PassengerSedanLeftGlass [] = { 0.36,.43, 0.34,.47, 0.77,.47, 0.67,.37, 0.45,.37, 0.34,.47, -10000 } |
| double | vehiclePoly_PassengerSedanRightGlass [] = { 0.36,-.43, 0.34,-.47, 0.77,-.47, 0.67,-.37, 0.45,-.37, 0.34,-.47, -10000 } |
| 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 } |
| 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 } |
| 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 } |
| 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 } |
| double | vehiclePoly_PassengerVanLeftGlass [] = { 0.36,.43, 0.20,.47, 0.98,.47, 0.91,.37, 0.31,.37, 0.20,.47, -10000 } |
| double | vehiclePoly_PassengerVanRightGlass [] = { 0.36,-.43, 0.20,-.47, 0.98,-.47, 0.91,-.37, 0.31,-.37, 0.20,-.47, -10000 } |
| 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 } |
| double | vehiclePoly_PassengerWagonLeftGlass [] = { 0.36,.43, 0.34,.47, 0.94,.47, 0.87,.37, 0.45,.37, 0.34,.47, -10000 } |
| double | vehiclePoly_PassengerWagonRightGlass [] = { 0.36,-.43, 0.34,-.47, 0.94,-.47, 0.87,-.37, 0.45,-.37, 0.34,-.47, -10000 } |
| 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 } |
| 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 } |
| double | vehiclePoly_TransportLeftGlass [] = { 0.36,.47, 0.10,.48, 1.25,.48, 1.25,.4, 0.3,.4, 0.10,.48, -10000 } |
| double | vehiclePoly_TransportRightGlass [] = { 0.36,-.47, 0.10,-.48, 1.25,-.48, 1.25,-.4, 0.3,-.4, 0.10,-.48, -10000 } |
| #define BLINKER_POS_BACK .5 |
| #define BLINKER_POS_FRONT .5 |
| void drawAction_drawVehicleAsBoxPlus | ( | const GUIVehicle & | veh, | |
| SUMOReal | upscale | |||
| ) | [inline] |
Definition at line 360 of file GUIVehicle.cpp.
References MSVehicleType::getGuiOffset(), MSVehicleType::getGuiWidth(), MSVehicleType::getLength(), MSVehicle::getVehicleType(), and SUMOReal.
Referenced by GUIVehicle::drawGL().
00360 { 00361 SUMOReal length = veh.getVehicleType().getLength(); 00362 SUMOReal offset = veh.getVehicleType().getGuiOffset(); 00363 glPushMatrix(); 00364 glRotated(90, 0, 0, 1); 00365 //glTranslated(veh.getVehicleType().getGuiOffset(), 0, 0); 00366 glScaled(1, veh.getVehicleType().getGuiWidth(), 1.); 00367 glScaled(upscale, upscale, 1); 00368 glBegin(GL_TRIANGLE_FAN); 00369 glVertex2d((length-offset)/2., 0); 00370 glVertex2d(offset, 0); 00371 glVertex2d(offset, -.4); 00372 glVertex2d(offset+.1, -.5); 00373 glVertex2d(length, -.5); 00374 glVertex2d(length, .5); 00375 glVertex2d(offset+.1, .5); 00376 glVertex2d(offset, .4); 00377 glVertex2d(offset, 0); 00378 glEnd(); 00379 glPopMatrix(); 00380 }
| void drawAction_drawVehicleAsPoly | ( | const GUIVehicle & | veh, | |
| SUMOReal | upscale | |||
| ) | [inline] |
Definition at line 400 of file GUIVehicle.cpp.
References GLHelper::drawBoxLine(), GLHelper::drawFilledCircle(), drawPoly(), MSVehicleType::getGuiOffset(), MSVehicleType::getGuiShape(), MSVehicleType::getGuiWidth(), MSVehicleType::getLength(), MSVehicle::getVehicleType(), SUMOReal, SVS_BICYCLE, SVS_BUS, SVS_BUS_CITY, SVS_BUS_CITY_FLEXIBLE, SVS_BUS_OVERLAND, SVS_DELIVERY, SVS_E_VEHICLE, SVS_MOTORCYCLE, SVS_PASSENGER, SVS_PASSENGER_HATCHBACK, SVS_PASSENGER_SEDAN, SVS_PASSENGER_VAN, SVS_PASSENGER_WAGON, SVS_PEDESTRIAN, SVS_RAIL, SVS_RAIL_CARGO, SVS_RAIL_CITY, SVS_RAIL_FAST, SVS_RAIL_LIGHT, SVS_RAIL_SLOW, SVS_TRANSPORT, SVS_TRANSPORT_1TRAILER, SVS_TRANSPORT_SEMITRAILER, and SVS_UNKNOWN.
Referenced by GUIVehicle::drawGL().
00400 { 00401 GLdouble current[4], lighter[4]; 00402 glGetDoublev(GL_CURRENT_COLOR, current); 00403 lighter[0] = current[0]+.2; 00404 if (lighter[0]>1) lighter[0] = 1; 00405 lighter[1] = current[1]+.2; 00406 if (lighter[1]>1) lighter[1] = 1; 00407 lighter[2] = current[2]+.2; 00408 if (lighter[2]>1) lighter[2] = 1; 00409 lighter[3] = current[3]+.2; 00410 if (lighter[3]>1) lighter[3] = 1; 00411 00412 00413 SUMOReal length = veh.getVehicleType().getLength(); 00414 glPushMatrix(); 00415 glRotated(90, 0, 0, 1); 00416 glTranslated(veh.getVehicleType().getGuiOffset(), 0, 0); 00417 glScaled(length-veh.getVehicleType().getGuiOffset(), veh.getVehicleType().getGuiWidth(), 1.); 00418 glScaled(upscale, upscale, 1); 00419 SUMOVehicleShape shape = veh.getVehicleType().getGuiShape(); 00420 switch (shape) { 00421 case SVS_UNKNOWN: 00422 drawPoly(vehiclePoly_PassengerCarBody, -4); 00423 glColor3dv(lighter); 00424 drawPoly(vehiclePoly_PassengerCarBodyFront, -4.5); 00425 glColor3d(0, 0, 0); 00426 drawPoly(vehiclePoly_PassengerFrontGlass, -4.5); 00427 break; 00428 case SVS_PEDESTRIAN: 00429 //glScaled(1./(length-veh.getVehicleType().getGuiOffset()), 1, 1.); 00430 glTranslated(0, 0, -.045); 00431 GLHelper::drawFilledCircle(1); 00432 glTranslated(0, 0, .045); 00433 glScaled(.7, 2, 1); 00434 glTranslated(0, 0, -.04); 00435 glColor3dv(lighter); 00436 GLHelper::drawFilledCircle(1); 00437 glTranslated(0, 0, .04); 00438 break; 00439 case SVS_BICYCLE: 00440 case SVS_MOTORCYCLE: { 00441 SUMOReal offset = 0; 00442 glPushMatrix(); 00443 glTranslated(.5, 0, 0); 00444 glScaled(.25/(length-veh.getVehicleType().getGuiOffset()), 1, 1.); 00445 glTranslated(0, 0, -.045); 00446 GLHelper::drawFilledCircle(1); 00447 glScaled(.7, 2, 1); 00448 glTranslated(0, 0, .045); 00449 glTranslated(0, 0, -.04); 00450 glColor3dv(lighter); 00451 GLHelper::drawFilledCircle(1); 00452 glTranslated(0, 0, .04); 00453 glPopMatrix(); 00454 } 00455 break; 00456 case SVS_PASSENGER: 00457 case SVS_PASSENGER_SEDAN: 00458 case SVS_PASSENGER_HATCHBACK: 00459 case SVS_PASSENGER_WAGON: 00460 drawPoly(vehiclePoly_PassengerCarBody, -4); 00461 glColor3dv(lighter); 00462 drawPoly(vehiclePoly_PassengerCarBodyFront, -4.5); 00463 glColor3d(0, 0, 0); 00464 drawPoly(vehiclePoly_PassengerFrontGlass, -4.5); 00465 break; 00466 case SVS_PASSENGER_VAN: 00467 drawPoly(vehiclePoly_PassengerVanBody, -4); 00468 glColor3dv(lighter); 00469 drawPoly(vehiclePoly_PassengerVanBodyFront, -4.5); 00470 glColor3d(0, 0, 0); 00471 drawPoly(vehiclePoly_PassengerVanFrontGlass, -4.5); 00472 drawPoly(vehiclePoly_PassengerVanRightGlass, -4.5); 00473 drawPoly(vehiclePoly_PassengerVanLeftGlass, -4.5); 00474 drawPoly(vehiclePoly_PassengerVanBackGlass, -4.5); 00475 break; 00476 case SVS_DELIVERY: 00477 drawPoly(vehiclePoly_PassengerVanBody, -4); 00478 glColor3dv(lighter); 00479 drawPoly(vehiclePoly_PassengerVanBodyFront, -4.5); 00480 glColor3d(0, 0, 0); 00481 drawPoly(vehiclePoly_PassengerVanFrontGlass, -4.5); 00482 drawPoly(vehiclePoly_DeliveryMediumRightGlass, -4.5); 00483 drawPoly(vehiclePoly_DeliveryMediumLeftGlass, -4.5); 00484 break; 00485 case SVS_TRANSPORT: 00486 case SVS_TRANSPORT_SEMITRAILER: 00487 case SVS_TRANSPORT_1TRAILER: 00488 glScaled(1./(length-veh.getVehicleType().getGuiOffset()), 1, 1.); 00489 drawPoly(vehiclePoly_TransportBody, -4); 00490 glColor3d(0, 0, 0); 00491 drawPoly(vehiclePoly_TransportFrontGlass, -4.5); 00492 drawPoly(vehiclePoly_TransportRightGlass, -4.5); 00493 drawPoly(vehiclePoly_TransportLeftGlass, -4.5); 00494 break; 00495 case SVS_BUS: 00496 case SVS_BUS_CITY: { 00497 SUMOReal ml = length - veh.getVehicleType().getGuiOffset(); 00498 glScaled(1./(length-veh.getVehicleType().getGuiOffset()), 1, 1.); 00499 glTranslated(0, 0, -.04); 00500 glBegin(GL_TRIANGLE_FAN); 00501 glVertex2d(ml/2., 0); 00502 glVertex2d(0, 0); 00503 glVertex2d(0, -.45); 00504 glVertex2d(0+.05, -.5); 00505 glVertex2d(ml-.05, -.5); 00506 glVertex2d(ml, -.45); 00507 glVertex2d(ml, .45); 00508 glVertex2d(ml-.05, .5); 00509 glVertex2d(0+.05, .5); 00510 glVertex2d(0, .45); 00511 glVertex2d(0, 0); 00512 glEnd(); 00513 glTranslated(0, 0, .04); 00514 00515 glTranslated(0, 0, -.045); 00516 glColor3d(0, 0, 0); 00517 glBegin(GL_QUADS); 00518 glVertex2d(0+.05, .48); 00519 glVertex2d(0+.05, -.48); 00520 glVertex2d(0+.15, -.48); 00521 glVertex2d(0+.15, .48); 00522 00523 glVertex2d(ml-.1, .45); 00524 glVertex2d(ml-.1, -.45); 00525 glVertex2d(ml-.05, -.45); 00526 glVertex2d(ml-.05, .45); 00527 00528 glVertex2d(0+.20, .49); 00529 glVertex2d(0+.20, .45); 00530 glVertex2d(ml-.20, .45); 00531 glVertex2d(ml-.20, .49); 00532 00533 glVertex2d(0+.20, -.49); 00534 glVertex2d(0+.20, -.45); 00535 glVertex2d(ml-.20, -.45); 00536 glVertex2d(ml-.20, -.49); 00537 00538 glEnd(); 00539 glTranslated(0, 0, .045); 00540 } 00541 break; 00542 case SVS_BUS_OVERLAND: 00543 glScaled(1./(length-veh.getVehicleType().getGuiOffset()), 1, 1.); 00544 glTranslated(0, 0, -.04); 00545 glBegin(GL_TRIANGLE_FAN); 00546 glVertex2d(length/2., 0); 00547 glVertex2d(0, 0); 00548 glVertex2d(0, -.45); 00549 glVertex2d(.05, -.5); 00550 glVertex2d(length-.05, -.5); 00551 glVertex2d(length, -.45); 00552 glVertex2d(length, .45); 00553 glVertex2d(length-.05, .5); 00554 glVertex2d(.05, .5); 00555 glVertex2d(0, .45); 00556 glVertex2d(0, 0); 00557 glEnd(); 00558 glTranslated(0, 0, .04); 00559 break; 00560 case SVS_RAIL: 00561 break; 00562 case SVS_RAIL_LIGHT: 00563 break; 00564 case SVS_RAIL_CITY: 00565 break; 00566 case SVS_RAIL_SLOW: 00567 break; 00568 case SVS_RAIL_FAST: 00569 break; 00570 case SVS_RAIL_CARGO: 00571 break; 00572 case SVS_E_VEHICLE: 00573 drawPoly(vehiclePoly_EVehicleBody, -4); 00574 glColor3d(0, 0, 0); 00575 drawPoly(vehiclePoly_EVehicleFrontGlass, -4.5); 00576 glTranslated(0, 0, -.048); 00577 glColor3dv(current); 00578 glBegin(GL_QUADS); 00579 glVertex2d(.3, .5); 00580 glVertex2d(.35, .5); 00581 glVertex2d(.35, -.5); 00582 glVertex2d(.3, -.5); 00583 00584 glVertex2d(.3, -.05); 00585 glVertex2d(.7, -.05); 00586 glVertex2d(.7, .05); 00587 glVertex2d(.3, .05); 00588 00589 glVertex2d(.7, .5); 00590 glVertex2d(.65, .5); 00591 glVertex2d(.65, -.5); 00592 glVertex2d(.7, -.5); 00593 glEnd(); 00594 glTranslated(0, 0, .048); 00595 //drawPoly(vehiclePoly_EVehicleBackGlass, -4.5); 00596 break; 00597 default: // same as passenger 00598 drawPoly(vehiclePoly_PassengerCarBody, -4); 00599 glColor3d(1, 1, 1); 00600 drawPoly(vehiclePoly_PassengerCarBodyFront, -4.5); 00601 glColor3d(0, 0, 0); 00602 drawPoly(vehiclePoly_PassengerFrontGlass, -4.5); 00603 break; 00604 } 00605 00606 switch (shape) { 00607 case SVS_PEDESTRIAN: 00608 break; 00609 case SVS_BICYCLE: 00610 //glScaled(length-veh.getVehicleType().getGuiOffset(), 1, 1.); 00611 glBegin(GL_TRIANGLE_FAN); 00612 glVertex2d(1/2., 0); 00613 glVertex2d(0, 0); 00614 glVertex2d(0, -.03); 00615 glVertex2d(0+.05, -.05); 00616 glVertex2d(1-.05, -.05); 00617 glVertex2d(1, -.03); 00618 glVertex2d(1, .03); 00619 glVertex2d(1-.05, .05); 00620 glVertex2d(0+.05, .05); 00621 glVertex2d(0, .03); 00622 glVertex2d(0, 0); 00623 glEnd(); 00624 break; 00625 case SVS_MOTORCYCLE: 00626 //glScaled(length-veh.getVehicleType().getGuiOffset(), 1, 1.); 00627 glBegin(GL_TRIANGLE_FAN); 00628 glVertex2d(1/2., 0); 00629 glVertex2d(0, 0); 00630 glVertex2d(0, -.03); 00631 glVertex2d(0+.05, -.2); 00632 glVertex2d(1-.05, -.2); 00633 glVertex2d(1, -.03); 00634 glVertex2d(1, .03); 00635 glVertex2d(1-.05, .2); 00636 glVertex2d(0+.05, .2); 00637 glVertex2d(0, .03); 00638 glVertex2d(0, 0); 00639 glEnd(); 00640 break; 00641 case SVS_PASSENGER: 00642 case SVS_PASSENGER_SEDAN: 00643 drawPoly(vehiclePoly_PassengerSedanRightGlass, -4.5); 00644 drawPoly(vehiclePoly_PassengerSedanLeftGlass, -4.5); 00645 drawPoly(vehiclePoly_PassengerSedanBackGlass, -4.5); 00646 break; 00647 case SVS_PASSENGER_HATCHBACK: 00648 drawPoly(vehiclePoly_PassengerHatchbackRightGlass, -4.5); 00649 drawPoly(vehiclePoly_PassengerHatchbackLeftGlass, -4.5); 00650 drawPoly(vehiclePoly_PassengerHatchbackBackGlass, -4.5); 00651 break; 00652 case SVS_PASSENGER_WAGON: 00653 drawPoly(vehiclePoly_PassengerWagonRightGlass, -4.5); 00654 drawPoly(vehiclePoly_PassengerWagonLeftGlass, -4.5); 00655 drawPoly(vehiclePoly_PassengerWagonBackGlass, -4.5); 00656 break; 00657 case SVS_PASSENGER_VAN: 00658 case SVS_DELIVERY: 00659 break; 00660 case SVS_TRANSPORT: 00661 glColor3dv(current); 00662 GLHelper::drawBoxLine(Position2D(2.3, 0), 90., length-veh.getVehicleType().getGuiOffset()-2.3, .5); 00663 break; 00664 case SVS_TRANSPORT_SEMITRAILER: 00665 glColor3dv(current); 00666 GLHelper::drawBoxLine(Position2D(2.8, 0), 90., length-veh.getVehicleType().getGuiOffset()-2.8, .5); 00667 break; 00668 case SVS_TRANSPORT_1TRAILER: { 00669 glColor3dv(current); 00670 SUMOReal l = length-veh.getVehicleType().getGuiOffset()-2.3; 00671 l = l/2.; 00672 GLHelper::drawBoxLine(Position2D(2.3, 0), 90., l, .5); 00673 GLHelper::drawBoxLine(Position2D(2.3+l+.5, 0), 90., l-.5, .5); 00674 break; 00675 } 00676 case SVS_BUS: 00677 case SVS_BUS_CITY: 00678 case SVS_BUS_CITY_FLEXIBLE: 00679 case SVS_BUS_OVERLAND: 00680 case SVS_RAIL: 00681 case SVS_RAIL_LIGHT: 00682 case SVS_RAIL_CITY: 00683 case SVS_RAIL_SLOW: 00684 case SVS_RAIL_FAST: 00685 case SVS_RAIL_CARGO: 00686 case SVS_E_VEHICLE: 00687 break; 00688 default: // same as passenger/sedan 00689 drawPoly(vehiclePoly_PassengerSedanRightGlass, -4.5); 00690 drawPoly(vehiclePoly_PassengerSedanLeftGlass, -4.5); 00691 drawPoly(vehiclePoly_PassengerSedanBackGlass, -4.5); 00692 break; 00693 } 00694 /* 00695 glBegin(GL_TRIANGLE_FAN); 00696 glVertex2d(.5,.5); // center - strip begin 00697 glVertex2d(0, .5); // center, front 00698 glVertex2d(0, .8); // ... clockwise ... (vehicle right side) 00699 glVertex2d(0.08, .94); 00700 glVertex2d(0.25, 1.); 00701 glVertex2d(0.95, 1.); 00702 glVertex2d(1., .9); 00703 glVertex2d(1., .1); // (vehicle left side) 00704 glVertex2d(0.95, 0.); 00705 glVertex2d(0.25, 0.); 00706 glVertex2d(0.08, .06); 00707 glVertex2d(0, .2); // 00708 glVertex2d(0, .5); // center, front (close) 00709 glEnd(); 00710 00711 glPolygonOffset(0, -4.5); 00712 glColor3d(1, 1, 1); // front 00713 glBegin(GL_TRIANGLE_FAN); 00714 glVertex2d(0.1,0.5); 00715 glVertex2d(0.025,0.5); 00716 glVertex2d(0.025,0.75); 00717 glVertex2d(0.27,0.9); 00718 glVertex2d(0.27,0.1); 00719 glVertex2d(0.025,0.25); 00720 glVertex2d(0.025,0.5); 00721 glEnd(); 00722 00723 glColor3d(0, 0, 0); // front glass 00724 glBegin(GL_TRIANGLE_FAN); 00725 glVertex2d(0.35,0.5); 00726 glVertex2d(0.3,0.5); 00727 glVertex2d(0.3,0.9); 00728 glVertex2d(0.43,0.8); 00729 glVertex2d(0.43,0.2); 00730 glVertex2d(0.3,0.1); 00731 glVertex2d(0.3,0.5); 00732 glEnd(); 00733 00734 glBegin(GL_TRIANGLE_FAN); // back glass 00735 glVertex2d(0.92,0.5); 00736 glVertex2d(0.90,0.5); 00737 glVertex2d(0.90,0.8); 00738 glVertex2d(0.95,0.9); 00739 glVertex2d(0.95,0.1); 00740 glVertex2d(0.90,0.2); 00741 glVertex2d(0.90,0.5); 00742 glEnd(); 00743 00744 glBegin(GL_TRIANGLE_FAN); // right glass 00745 glVertex2d(0.36,0.07); 00746 glVertex2d(0.34,0.03); 00747 glVertex2d(0.94,0.03); 00748 glVertex2d(0.87,0.13); 00749 glVertex2d(0.45,0.13); 00750 glVertex2d(0.34,0.03); 00751 glEnd(); 00752 00753 glBegin(GL_TRIANGLE_FAN); // left glass 00754 glVertex2d(0.36,1.-0.07); 00755 glVertex2d(0.34,1.-0.03); 00756 glVertex2d(0.94,1.-0.03); 00757 glVertex2d(0.87,1.-0.13); 00758 glVertex2d(0.45,1.-0.13); 00759 glVertex2d(0.34,1.-0.03); 00760 glEnd(); 00761 */ 00762 00763 glPopMatrix(); 00764 }
| void drawAction_drawVehicleAsTrianglePlus | ( | const GUIVehicle & | veh, | |
| SUMOReal | upscale | |||
| ) | [inline] |
Definition at line 332 of file GUIVehicle.cpp.
References MSVehicleType::getLength(), MSVehicle::getVehicleType(), and SUMOReal.
Referenced by GUIVehicle::drawGL().
00332 { 00333 SUMOReal length = veh.getVehicleType().getLength(); 00334 glPushMatrix(); 00335 glScaled(upscale, upscale, 1); 00336 if (length<8) { 00337 glScaled(1, length, 1); 00338 glBegin(GL_TRIANGLES); 00339 glVertex2d(0, 0); 00340 glVertex2d(0-1.25, 1); 00341 glVertex2d(0+1.25, 1); 00342 glEnd(); 00343 } else { 00344 glBegin(GL_TRIANGLES); 00345 glVertex2d(0, 0); 00346 glVertex2d(0-1.25, 0+2); 00347 glVertex2d(0+1.25, 0+2); 00348 glVertex2d(0-1.25, 2); 00349 glVertex2d(0-1.25, length); 00350 glVertex2d(0+1.25, length); 00351 glVertex2d(0+1.25, 2); 00352 glVertex2d(0-1.25, 2); 00353 glVertex2d(0+1.25, length); 00354 glEnd(); 00355 } 00356 glPopMatrix(); 00357 }
| void drawAction_drawVehicleBlinker | ( | const GUIVehicle & | veh | ) | [inline] |
Definition at line 771 of file GUIVehicle.cpp.
References BLINKER_POS_BACK, BLINKER_POS_FRONT, MSCORN::CORN_VEH_BLINKER, GLHelper::drawFilledCircle(), MSVehicle::getCORNIntValue(), MSVehicleType::getGuiOffset(), MSVehicleType::getGuiWidth(), MSVehicleType::getLength(), and MSVehicle::getVehicleType().
Referenced by GUIVehicle::drawGL().
00771 { 00772 double dir = (double) veh.getCORNIntValue(MSCORN::CORN_VEH_BLINKER)*veh.getVehicleType().getGuiWidth()*.5; 00773 if (dir==0) { 00774 return; 00775 } 00776 if (veh.getVehicleType().getGuiWidth()<.5) { 00777 return; 00778 } 00779 glColor3d(1.f, .8f, 0); 00780 glPushMatrix(); 00781 glTranslated(dir, BLINKER_POS_FRONT+veh.getVehicleType().getGuiOffset(), 0); 00782 GLHelper::drawFilledCircle(.5, 6); 00783 glPopMatrix(); 00784 glPushMatrix(); 00785 glTranslated(dir, veh.getVehicleType().getLength()-BLINKER_POS_BACK, 0); 00786 GLHelper::drawFilledCircle(.5, 6); 00787 glPopMatrix(); 00788 }
| void drawAction_drawVehicleName | ( | const GUIVehicle & | veh, | |
| SUMOReal | size | |||
| ) | [inline] |
Definition at line 792 of file GUIVehicle.cpp.
References MSVehicleType::getLength(), GUIVehicle::getMicrosimID(), MSVehicle::getVehicleType(), pfdkGetStringWidth(), pfDrawString(), pfSetPosition(), pfSetScale(), and SUMOReal.
Referenced by GUIVehicle::drawGL().
00792 { 00793 glPushMatrix(); 00794 glTranslated(0, veh.getVehicleType().getLength() / 2., 0); 00795 glTranslated(0, 0, -.07); 00796 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); 00797 pfSetPosition(0, 0); 00798 pfSetScale(size); 00799 SUMOReal w = pfdkGetStringWidth(veh.getMicrosimID().c_str()); 00800 glRotated(180, 0, 1, 0); 00801 glTranslated(-w/2., 0.4, 0); 00802 pfDrawString(veh.getMicrosimID().c_str()); 00803 glPopMatrix(); 00804 }
| void drawPoly | ( | double * | poses, | |
| SUMOReal | offset | |||
| ) |
Definition at line 384 of file GUIVehicle.cpp.
Referenced by drawAction_drawVehicleAsPoly().
00384 { 00385 glPushMatrix(); 00386 glTranslated(0, 0, offset*.01); 00387 glPolygonOffset(0, offset); 00388 glBegin(GL_TRIANGLE_FAN); 00389 int i = 0; 00390 while (poses[i]>-999) { 00391 glVertex2d(poses[i],poses[i+1]); 00392 i = i + 2; 00393 } 00394 glEnd(); 00395 glPopMatrix(); 00396 }
| FXDEFMAP | ( | GUIVehicle::GUIVehiclePopupMenu | ) |
| FXIMPLEMENT | ( | GUIVehicle::GUIVehiclePopupMenu | , | |
| GUIGLObjectPopupMenu | , | |||
| GUIVehiclePopupMenuMap | , | |||
| ARRAYNUMBER(GUIVehiclePopupMenuMap) | ||||
| ) |
| double vehiclePoly_DeliveryMediumLeftGlass[] = { 0.21,.43, 0.20,.47, 0.38,.47, 0.38,.37, 0.31,.37, 0.20,.47, -10000 } |
Definition at line 104 of file GUIVehicle.cpp.
| double vehiclePoly_DeliveryMediumRightGlass[] = { 0.21,-.43, 0.20,-.47, 0.38,-.47, 0.38,-.37, 0.31,-.37, 0.20,-.47, -10000 } |
Definition at line 103 of file GUIVehicle.cpp.
| 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 } |
Definition at line 114 of file GUIVehicle.cpp.
| 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 } |
Definition at line 111 of file GUIVehicle.cpp.
| 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 } |
Definition at line 112 of file GUIVehicle.cpp.
| 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 } |
Definition at line 84 of file GUIVehicle.cpp.
| 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 } |
Definition at line 85 of file GUIVehicle.cpp.
| 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 } |
Definition at line 91 of file GUIVehicle.cpp.
| double vehiclePoly_PassengerHatchbackLeftGlass[] = { 0.36,.43, 0.34,.47, 0.94,.47, 0.80,.37, 0.45,.37, 0.34,.47, -10000 } |
Definition at line 90 of file GUIVehicle.cpp.
| double vehiclePoly_PassengerHatchbackRightGlass[] = { 0.36,-.43, 0.34,-.47, 0.94,-.47, 0.80,-.37, 0.45,-.37, 0.34,-.47, -10000 } |
Definition at line 89 of file GUIVehicle.cpp.
| 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 } |
Definition at line 88 of file GUIVehicle.cpp.
| double vehiclePoly_PassengerSedanLeftGlass[] = { 0.36,.43, 0.34,.47, 0.77,.47, 0.67,.37, 0.45,.37, 0.34,.47, -10000 } |
Definition at line 87 of file GUIVehicle.cpp.
| double vehiclePoly_PassengerSedanRightGlass[] = { 0.36,-.43, 0.34,-.47, 0.77,-.47, 0.67,-.37, 0.45,-.37, 0.34,-.47, -10000 } |
Definition at line 86 of file GUIVehicle.cpp.
| 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 } |
Definition at line 101 of file GUIVehicle.cpp.
| 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 } |
Definition at line 96 of file GUIVehicle.cpp.
| 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 } |
Definition at line 97 of file GUIVehicle.cpp.
| 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 } |
Definition at line 98 of file GUIVehicle.cpp.
| double vehiclePoly_PassengerVanLeftGlass[] = { 0.36,.43, 0.20,.47, 0.98,.47, 0.91,.37, 0.31,.37, 0.20,.47, -10000 } |
Definition at line 100 of file GUIVehicle.cpp.
| double vehiclePoly_PassengerVanRightGlass[] = { 0.36,-.43, 0.20,-.47, 0.98,-.47, 0.91,-.37, 0.31,-.37, 0.20,-.47, -10000 } |
Definition at line 99 of file GUIVehicle.cpp.
| 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 } |
Definition at line 94 of file GUIVehicle.cpp.
| double vehiclePoly_PassengerWagonLeftGlass[] = { 0.36,.43, 0.34,.47, 0.94,.47, 0.87,.37, 0.45,.37, 0.34,.47, -10000 } |
Definition at line 93 of file GUIVehicle.cpp.
| double vehiclePoly_PassengerWagonRightGlass[] = { 0.36,-.43, 0.34,-.47, 0.94,-.47, 0.87,-.37, 0.45,-.37, 0.34,-.47, -10000 } |
Definition at line 92 of file GUIVehicle.cpp.
| 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 } |
Definition at line 106 of file GUIVehicle.cpp.
| 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 } |
Definition at line 107 of file GUIVehicle.cpp.
| double vehiclePoly_TransportLeftGlass[] = { 0.36,.47, 0.10,.48, 1.25,.48, 1.25,.4, 0.3,.4, 0.10,.48, -10000 } |
Definition at line 109 of file GUIVehicle.cpp.
| double vehiclePoly_TransportRightGlass[] = { 0.36,-.47, 0.10,-.48, 1.25,-.48, 1.25,-.4, 0.3,-.4, 0.10,-.48, -10000 } |
Definition at line 108 of file GUIVehicle.cpp.
1.5.6