![]() |
SUMO - Simulation of Urban MObility
|
Some methods which help to draw certain geometrical objects in openGL. More...
#include <GLHelper.h>
Static Public Member Functions | |
static void | debugVertices (const PositionVector &shape, double size, double layer=256) |
draw vertex numbers for the given shape (in a random color) More... | |
static void | drawBoxLine (const Position &beg, double rot, double visLength, double width, double offset=0) |
Draws a thick line. More... | |
static void | drawBoxLine (const Position &beg1, const Position &beg2, double rot, double visLength, double width) |
Draws a thick line using the mean of both given points as begin position. More... | |
static void | drawBoxLines (const PositionVector &geom, const std::vector< double > &rots, const std::vector< double > &lengths, double width, int cornerDetail=0, double offset=0) |
Draws thick lines. More... | |
static void | drawBoxLines (const PositionVector &geom, const std::vector< double > &rots, const std::vector< double > &lengths, const std::vector< RGBColor > &cols, double width, int cornerDetail=0, double offset=0) |
Draws thick lines with varying color. More... | |
static void | drawBoxLines (const PositionVector &geom1, const PositionVector &geom2, const std::vector< double > &rots, const std::vector< double > &lengths, double width) |
Draws thick lines using the mean of the points given in the point lists as begin positions. More... | |
static void | drawBoxLines (const PositionVector &geom, double width) |
Draws thick lines. More... | |
static void | drawFilledCircle (double width, int steps=8) |
Draws a filled circle around (0,0) More... | |
static void | drawFilledCircle (double width, int steps, double beg, double end) |
Draws a filled circle around (0,0) More... | |
static void | drawFilledPoly (const PositionVector &v, bool close) |
Draws a filled polygon described by the list of points. More... | |
static void | drawFilledPolyTesselated (const PositionVector &v, bool close) |
Draws a filled polygon described by the list of points. More... | |
static void | drawLine (const Position &beg, double rot, double visLength) |
Draws a thin line. More... | |
static void | drawLine (const Position &beg1, const Position &beg2, double rot, double visLength) |
Draws a thin line using the mean of both given points as begin position. More... | |
static void | drawLine (const PositionVector &v) |
Draws a thin line along the given position vector. More... | |
static void | drawLine (const PositionVector &v, const std::vector< RGBColor > &cols) |
Draws a thin line along the given position vector with variable color. More... | |
static void | drawLine (const Position &beg, const Position &end) |
Draws a thin line between the two points. More... | |
static void | drawOutlineCircle (double width, double iwidth, int steps=8) |
Draws an unfilled circle around (0,0) More... | |
static void | drawOutlineCircle (double width, double iwidth, int steps, double beg, double end) |
Draws an unfilled circle around (0,0) More... | |
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 void | drawTextAtEnd (const std::string &text, const PositionVector &shape, double x, double size, RGBColor color) |
draw text and the end of shape More... | |
static void | drawTextBox (const std::string &text, const Position &pos, const double layer, const double size, const RGBColor &txtColor=RGBColor::BLACK, const RGBColor &bgColor=RGBColor::WHITE, const RGBColor &borderColor=RGBColor::BLACK, const double angle=0) |
draw Text box with given parameters More... | |
static void | drawTriangleAtEnd (const Position &p1, const Position &p2, double tLength, double tWidth) |
Draws a triangle at the end of the given line. More... | |
static RGBColor | getColor () |
gets the gl-color More... | |
static void | resetFont () |
to be called when the font context is invalidated More... | |
static void | setColor (const RGBColor &c) |
Sets the gl-color to this value. More... | |
Static Private Member Functions | |
static int | angleLookup (double angleDeg) |
normalize angle for lookup in myCircleCoords More... | |
static bool | initFont () |
init myFont More... | |
static bool | rightTurn (double angle1, double angle2) |
whether the road makes a right turn (or goes straight) More... | |
Static Private Attributes | |
static std::vector< std::pair< double, double > > | myCircleCoords |
Storage for precomputed sin/cos-values describing a circle. More... | |
static struct FONScontext * | myFont = 0 |
Font context. More... | |
static double | myFontSize = 50.0 |
Some methods which help to draw certain geometrical objects in openGL.
This class offers some static methods for drawing primitives in openGL.
Definition at line 49 of file GLHelper.h.
|
staticprivate |
normalize angle for lookup in myCircleCoords
Definition at line 338 of file GLHelper.cpp.
References CIRCLE_RESOLUTION, and myCircleCoords.
Referenced by drawFilledCircle().
|
static |
draw vertex numbers for the given shape (in a random color)
Definition at line 556 of file GLHelper.cpp.
References drawText(), RGBColor::fromHSV(), RandHelper::rand(), and toString().
Referenced by GUIPolygon::drawGL(), GUIJunctionWrapper::drawGL(), and GUILane::drawGL().
|
static |
Draws a thick line.
The line is drawn as a GL_QUADS.
[in] | beg | The begin position of the line |
[in] | rot | The direction the line shall be drawn to (in radiants) |
[in] | visLength | The length of the line |
[in] | width | The width of the line |
[in] | offset | The orthogonal offset |
Definition at line 137 of file GLHelper.cpp.
References Position::x(), and Position::y().
Referenced by GUIBaseVehicle::drawAction_drawVehicleAsPoly(), GNELane::drawArrows(), GUILane::drawArrows(), drawBoxLines(), GNEDetectorExit::drawGL(), GNEDetectorEntry::drawGL(), GNEJunction::drawGL(), GUIBusStop::drawGL(), GUIE3Collector::MyWrapper::drawSingleCrossing(), and drawTextBox().
|
static |
Draws a thick line using the mean of both given points as begin position.
The line is drawn as a GL_QUADS.
[in] | beg1 | One of the begin positions of the line to use the mean of |
[in] | beg2 | One of the begin positions of the line to use the mean of |
[in] | rot | The direction the line shall be drawn to (in radiants) |
[in] | visLength | The length of the line |
[in] | width | The width of the line |
Definition at line 153 of file GLHelper.cpp.
References Position::x(), and Position::y().
|
static |
Draws thick lines.
Each line is drawn using drawBoxLine.
[in] | geom | The list of begin positions of the lines |
[in] | rots | The directions the lines shall be drawn to (in radiants) |
[in] | lengths | The lengths of the lines |
[in] | width | The width of the lines |
[in] | cornerDetail | Detail level for filling the corners between angled segments |
[in] | the | orthogonal offset |
Definition at line 183 of file GLHelper.cpp.
References drawBoxLine(), drawFilledCircle(), MIN2(), and rightTurn().
Referenced by GUIPerson::drawAction_drawWalkingareaPath(), GUIVehicle::drawBestLanes(), GNEContainerStop::drawGL(), GNEBusStop::drawGL(), GNEDetectorE2::drawGL(), GNEInternalLane::drawGL(), GNELane::drawGL(), GNEChargingStation::drawGL(), GNEConnection::drawGL(), GUIChargingStation::drawGL(), GUIContainerStop::drawGL(), GUIBusStop::drawGL(), GUIParkingArea::drawGL(), GNEPoly::drawGL(), GUIE2Collector::MyWrapper::drawGL(), GUILane::drawGL(), GUIPerson::drawGLAdditional(), GUILane::drawMarkings(), GNELane::drawMarkings(), GUIVehicle::drawRouteHelper(), GUIMEVehicle::drawRouteHelper(), and GUIPolygon::performTesselation().
|
static |
Draws thick lines with varying color.
Each line is drawn using drawBoxLine.
[in] | geom | The list of begin positions of the lines |
[in] | rots | The directions the lines shall be drawn to (in radiants) |
[in] | lengths | The lengths of the lines |
[in] | cols | The colors of the lines |
[in] | width | The width of the lines |
[in] | cornerDetail | Detail level for filling the corners between angled segments |
[in] | the | orthogonal offset |
Definition at line 225 of file GLHelper.cpp.
References drawBoxLine(), drawFilledCircle(), and setColor().
|
static |
Draws thick lines using the mean of the points given in the point lists as begin positions.
Each line is drawn using drawBoxLine.
[in] | geom1 | One of the lists to obtain the lines' begin positions to use the mean of |
[in] | geom2 | One of the lists to obtain the lines' begin positions to use the mean of |
[in] | rots | The directions the lines shall be drawn to (in radiants) |
[in] | lengths | The lengths of the lines |
[in] | width | The width of the lines |
Definition at line 249 of file GLHelper.cpp.
References drawBoxLine(), and MIN4().
|
static |
Draws thick lines.
Widths and length are computed internally by this method, each line is then drawn using drawBoxLine.
[in] | geom | The list of begin positions of the lines |
[in] | width | The width of the lines |
Definition at line 262 of file GLHelper.cpp.
References Position::distanceTo(), drawBoxLine(), RAD2DEG, Position::x(), and Position::y().
|
static |
Draws a filled circle around (0,0)
The circle is drawn by calling drawFilledCircle(width, steps, 0, 360).
[in] | width | The width of the circle |
[in] | steps | The number of steps to divide the circle into |
Definition at line 350 of file GLHelper.cpp.
Referenced by GUIPerson::drawAction_drawAsPoly(), drawAction_drawBlinker(), GUIBaseVehicle::drawAction_drawVehicleAsPoly(), GUIVehicle::drawAction_drawVehicleBlueLight(), GUIVehicle::drawAction_drawVehicleBrakeLight(), drawBoxLines(), GNEBusStop::drawGL(), GNEContainerStop::drawGL(), GNEJunction::drawGL(), GUITrafficLightLogicWrapper::drawGL(), GUILaneSpeedTrigger::drawGL(), GNEChargingStation::drawGL(), GUIPointOfInterest::drawGL(), GNEVariableSpeedSign::drawGL(), GUIChargingStation::drawGL(), GUIContainerStop::drawGL(), GUIBusStop::drawGL(), GUIParkingArea::drawGL(), GNEPoly::drawGL(), GNEEdge::drawGL(), GUITriggeredRerouter::GUITriggeredRerouterEdge::drawGL(), and GUIBaseVehicle::drawLinkItem().
|
static |
Draws a filled circle around (0,0)
The circle is drawn use GL_TRIANGLES.
[in] | width | The width of the circle |
[in] | steps | The number of steps to divide the circle into |
[in] | beg | The begin angle in degress |
[in] | end | The end angle in degress |
Definition at line 356 of file GLHelper.cpp.
References angleLookup(), CIRCLE_RESOLUTION, DEG2RAD, and myCircleCoords.
|
static |
Draws a filled polygon described by the list of points.
[in] | v | The polygon to draw |
[in] | close | Whether the first point shall be appended |
Definition at line 83 of file GLHelper.cpp.
References Position::x(), and Position::y().
Referenced by GNEJunction::drawGL(), GUIJunctionWrapper::drawGL(), and GUILane::drawGL().
|
static |
Draws a filled polygon described by the list of points.
[in] | v | The polygon to draw |
[in] | close | Whether the first point shall be appended |
Definition at line 102 of file GLHelper.cpp.
References combCallback().
Referenced by GNEJunction::drawGL(), GUIJunctionWrapper::drawGL(), and GUILane::drawGL().
|
static |
Draws a thin line.
The line is drawn as a GL_LINES.
[in] | beg | The begin position of the line |
[in] | rot | The direction the line shall be drawn to (in radiants) |
[in] | visLength | The length of the line |
Definition at line 276 of file GLHelper.cpp.
References Position::x(), and Position::y().
Referenced by GUILane::debugDrawFoeIntersections(), GNEViewNet::doPaintGL(), GUIVehicle::drawAction_drawPersonsAndContainers(), GUIVehicle::drawBestLanes(), GNEAdditional::drawChildConnections(), GNEInternalLane::drawGL(), GNELane::drawGL(), GNEConnection::drawGL(), GUIE2Collector::MyWrapper::drawGL(), GUILane::drawGL(), and GUIPolygon::performTesselation().
|
static |
Draws a thin line using the mean of both given points as begin position.
The line is drawn as a GL_LINES.
[in] | beg1 | One of the begin positions of the line to use the mean of |
[in] | beg2 | One of the begin positions of the line to use the mean of |
[in] | rot | The direction the line shall be drawn to (in radiants) |
[in] | visLength | The length of the line |
Definition at line 289 of file GLHelper.cpp.
References Position::x(), and Position::y().
|
static |
Draws a thin line along the given position vector.
The line is drawn as a GL_LINES.
[in] | v | The positions vector to use |
Definition at line 304 of file GLHelper.cpp.
|
static |
Draws a thin line along the given position vector with variable color.
The line is drawn as a GL_LINES.
[in] | v | The positions vector to use |
[in] | cols | vector with the color of every line |
Definition at line 316 of file GLHelper.cpp.
References setColor().
Draws a thin line between the two points.
The line is drawn as a GL_LINES.
[in] | beg | Begin of the line |
[in] | end | End of the line |
Definition at line 329 of file GLHelper.cpp.
References Position::x(), and Position::y().
|
static |
Draws an unfilled circle around (0,0)
The circle is drawn by calling drawOutlineCircle(width, iwidth, steps, 0, 360).
[in] | width | The (outer) width of the circle |
[in] | iwidth | The inner width of the circle |
[in] | steps | The number of steps to divide the circle into |
Definition at line 381 of file GLHelper.cpp.
Referenced by GNELane::drawArrows(), and GUIBaseVehicle::drawOnPos().
|
static |
Draws an unfilled circle around (0,0)
The circle is drawn use GL_TRIANGLES.
[in] | width | The (outer) width of the circle |
[in] | iwidth | The inner width of the circle |
[in] | steps | The number of steps to divide the circle into |
[in] | beg | The begin angle in degress |
[in] | end | The end angle in degress |
Definition at line 387 of file GLHelper.cpp.
References DEG2RAD, and myCircleCoords.
|
static |
Definition at line 487 of file GLHelper.cpp.
References RGBColor::alpha(), RGBColor::blue(), FONS_ALIGN_CENTER, FONS_ALIGN_MIDDLE, fonsDrawText(), fonsSetAlign(), fonsSetColor(), glfonsRGBA(), RGBColor::green(), initFont(), myFont, myFontSize, RGBColor::red(), Position::x(), and Position::y().
Referenced by debugVertices(), GUISUMOAbstractView::displayLegend(), GNEDetectorE1::drawGL(), GNEDetectorEntry::drawGL(), GNEDetectorExit::drawGL(), GNEBusStop::drawGL(), GNEContainerStop::drawGL(), GNEDetectorE2::drawGL(), GUIPolygon::drawGL(), GUILaneSpeedTrigger::drawGL(), GUICalibrator::drawGL(), GNEChargingStation::drawGL(), GUIPointOfInterest::drawGL(), GNEVariableSpeedSign::drawGL(), GNERerouter::drawGL(), GUIChargingStation::drawGL(), GUIContainerStop::drawGL(), GUIBusStop::drawGL(), GUIParkingArea::drawGL(), GNEPOI::drawGL(), GUIEdge::drawGL(), GNEPOILane::drawGL(), GNEPoly::drawGL(), GNEEdge::drawGL(), GNECalibrator::drawGL(), GUITriggeredRerouter::GUITriggeredRerouterEdge::drawGL(), GUIBaseVehicle::drawLinkItem(), GUIGlObject::drawName(), GUIBaseVehicle::drawOnPos(), GUIVehicle::drawRouteHelper(), drawTextAtEnd(), drawTextBox(), GUIParameterTracker::GUIParameterTrackerPanel::drawValue(), and GUITLLogicPhasesTrackerWindow::drawValues().
|
static |
draw text and the end of shape
Definition at line 543 of file GLHelper.cpp.
References drawText(), RAD2DEG, Position::x(), and Position::y().
Referenced by GNELane::drawLinkNo(), GUILane::drawLinkNo(), GNELane::drawTLSLinkNo(), and GUILane::drawTLSLinkNo().
|
static |
draw Text box with given parameters
Definition at line 511 of file GLHelper.cpp.
References Position::add(), drawBoxLine(), drawText(), fonsTextBounds(), initFont(), myFont, myFontSize, setColor(), and Position::sub().
Referenced by GUISUMOAbstractView::showToolTipFor().
|
static |
Draws a triangle at the end of the given line.
[in] | p1 | The start of the line at which end the triangle shall be drawn |
[in] | p2 | The end of the line at which end the triangle shall be drawn |
[in] | tLength | The length of the triangle |
[in] | tWidth | The width of the triangle |
Definition at line 428 of file GLHelper.cpp.
References Position::angleTo2D(), Position::distanceTo(), GeomHelper::naviDegree(), PositionVector::positionAtOffset(), Position::x(), and Position::y().
Referenced by GNELane::drawArrows(), GUILane::drawArrows(), GNEDetectorExit::drawGL(), GNEDetectorEntry::drawGL(), GNELane::drawLane2LaneConnections(), GUILane::drawLane2LaneConnections(), and GUIE3Collector::MyWrapper::drawSingleCrossing().
|
static |
gets the gl-color
Definition at line 455 of file GLHelper.cpp.
Referenced by GUIContainer::drawAction_drawAsPoly(), GUIPerson::drawAction_drawAsPoly(), GUIPerson::drawAction_drawAsTriangle(), GUIVehicle::drawAction_drawRailCarriages(), GUIBaseVehicle::drawAction_drawVehicleAsPoly(), GNELane::drawGL(), GNEConnection::drawGL(), GNEPoly::drawGL(), GUILane::drawGL(), and GUIPerson::drawGLAdditional().
|
staticprivate |
init myFont
Definition at line 473 of file GLHelper.cpp.
References data_font_Roboto_Medium_ttf, data_font_Roboto_Medium_ttf_len, FONS_ZERO_BOTTOMLEFT, fonsAddFontMem(), fonsSetFont(), fonsSetSize(), glfonsCreate(), myFont, and myFontSize.
Referenced by drawText(), and drawTextBox().
|
static |
to be called when the font context is invalidated
Definition at line 466 of file GLHelper.cpp.
References glfonsDelete(), and myFont.
Referenced by GUIApplicationWindow::closeAllWindows(), and GNEApplicationWindow::closeAllWindows().
|
staticprivate |
whether the road makes a right turn (or goes straight)
Definition at line 170 of file GLHelper.cpp.
Referenced by drawBoxLines().
|
static |
Sets the gl-color to this value.
Definition at line 449 of file GLHelper.cpp.
References RGBColor::alpha(), RGBColor::blue(), RGBColor::green(), and RGBColor::red().
Referenced by GNEViewNet::doPaintGL(), GUIContainer::drawAction_drawAsPoly(), GUIPerson::drawAction_drawAsPoly(), GUIPerson::drawAction_drawAsTriangle(), GUIVehicle::drawAction_drawRailCarriages(), GUIBaseVehicle::drawAction_drawVehicleAsPoly(), drawBoxLines(), GNEAdditional::drawChildConnections(), GNEDetectorE1::drawGL(), GNEDetectorExit::drawGL(), GNEDetectorEntry::drawGL(), GNEContainerStop::drawGL(), GNEBusStop::drawGL(), GNEDetectorE2::drawGL(), GNEVaporizer::drawGL(), GNEInternalLane::drawGL(), GUIPolygon::drawGL(), GNELane::drawGL(), GNERouteProbe::drawGL(), GNEChargingStation::drawGL(), GUIJunctionWrapper::drawGL(), GUIPointOfInterest::drawGL(), GNEConnection::drawGL(), GUIE3Collector::MyWrapper::drawGL(), GUIChargingStation::drawGL(), GUIContainerStop::drawGL(), GUIBusStop::drawGL(), GUIParkingArea::drawGL(), GNEPoly::drawGL(), GNEEdge::drawGL(), GNECalibrator::drawGL(), GUILane::drawGL(), GUIPerson::drawGLAdditional(), GUILane::drawLane2LaneConnections(), drawLine(), GUILane::drawLinkRule(), GNELane::drawMarkings(), drawTextBox(), GUITLLogicPhasesTrackerWindow::drawValues(), GUIContainer::setColor(), GUIPerson::setColor(), GNEJunction::setColor(), GUILane::setColor(), GUIBaseVehicle::setColor(), GUIContainer::setFunctionalColor(), GNELane::setFunctionalColor(), GUIPerson::setFunctionalColor(), GUILane::setFunctionalColor(), GUIBaseVehicle::setFunctionalColor(), and GNELane::setLaneColor().
|
staticprivate |
Storage for precomputed sin/cos-values describing a circle.
Definition at line 321 of file GLHelper.h.
Referenced by angleLookup(), drawFilledCircle(), and drawOutlineCircle().
|
staticprivate |
Font context.
Definition at line 324 of file GLHelper.h.
Referenced by drawText(), drawTextBox(), initFont(), and resetFont().
|
staticprivate |
Definition at line 325 of file GLHelper.h.
Referenced by drawText(), drawTextBox(), and initFont().