SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GUIPointOfInterest.cpp
Go to the documentation of this file.
1 /****************************************************************************/
9 // The GUI-version of a point of interest
10 /****************************************************************************/
11 // SUMO, Simulation of Urban MObility; see http://sumo-sim.org/
12 // Copyright (C) 2001-2013 DLR (http://www.dlr.de/) and contributors
13 /****************************************************************************/
14 //
15 // This file is part of SUMO.
16 // SUMO is free software: you can redistribute it and/or modify
17 // it under the terms of the GNU General Public License as published by
18 // the Free Software Foundation, either version 3 of the License, or
19 // (at your option) any later version.
20 //
21 /****************************************************************************/
22 
23 
24 // ===========================================================================
25 // included modules
26 // ===========================================================================
27 #ifdef _MSC_VER
28 #include <windows_config.h>
29 #else
30 #include <config.h>
31 #endif
32 
41 #include <utils/gui/div/GLHelper.h>
44 #include "GUIPointOfInterest.h"
45 
46 #ifdef CHECK_MEMORY_LEAKS
47 #include <foreign/nvwa/debug_new.h>
48 #endif // CHECK_MEMORY_LEAKS
49 
50 
51 // ===========================================================================
52 // method definitions
53 // ===========================================================================
54 GUIPointOfInterest::GUIPointOfInterest(const std::string& id, const std::string& type,
55  const RGBColor& color, const Position& pos,
56  SUMOReal layer, SUMOReal angle, const std::string& imgFile,
57  SUMOReal width, SUMOReal height) :
58  PointOfInterest(id, type, color, pos, layer, angle, imgFile, width, height),
60 {}
61 
62 
64 
65 
68  GUISUMOAbstractView& parent) {
69 
70  GUIGLObjectPopupMenu* ret = new GUIGLObjectPopupMenu(app, parent, *this);
71  buildPopupHeader(ret, app, false);
72  FXString t(myType.c_str());
73  new FXMenuCommand(ret, "(" + t + ")", 0, 0, 0);
74  new FXMenuSeparator(ret);
78  buildPositionCopyEntry(ret, false);
79  return ret;
80 }
81 
82 
86  return 0;
87 }
88 
89 
92  Boundary b;
93  b.add(x(), y());
96  return b;
97 }
98 
99 
100 void
102  if (s.scale * (1.3 / 3.0) < s.minPOISize) {
103  return;
104  }
105  glPushName(getGlID());
106  glPushMatrix();
108  glTranslated(x(), y(), getLayer());
109  glRotated(getAngle(), 0, 0, 1);
110 
111  if (myImgFile != "") {
113  if (textureID > 0) {
117  }
118  } else {
119  // fallback if no image is defined
121  }
122  glPopMatrix();
123  drawName(Position(x() + 1.32 * s.poiExaggeration, y() + 1.32 * s.poiExaggeration),
124  s.scale, s.poiName);
125  glPopName();
126 }
127 /****************************************************************************/
128 
void growWidth(SUMOReal by)
Definition: Boundary.cpp:209
void buildNameCopyPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds entries which allow to copy the name / typed name into the clipboard.
GUIVisualizationTextSettings poiName
Stores the information about how to visualize structures.
float poiExaggeration
The additional shapes (upscale)
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
void buildCenterPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to center to the object.
SUMOReal x() const
Returns the x-position.
Definition: Position.h:63
void buildPositionCopyEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to copy the cursor position if geo projection is used, also builds an entry for copying the geo-position.
GUIGlID getGlID() const
Returns the numerical id of the object.
Definition: GUIGlObject.h:115
A class that stores a 2D geometrical boundary.
Definition: Boundary.h:48
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
SUMOReal scale
information about a lane&#39;s width (temporary, used for a single view)
std::string myType
The type of the Shape.
Definition: Shape.h:157
static void drawFilledCircle(SUMOReal width, int steps=8)
Draws a filled circle around (0,0)
Definition: GLHelper.cpp:196
SUMOReal myHalfImgWidth
The half width of the image when rendering this POI.
static void drawTexturedBox(unsigned int which, SUMOReal size)
Draws a named texture as a box with the given size.
static void setColor(const RGBColor &c)
Sets the gl-color to this value.
Definition: GLHelper.cpp:301
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:46
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
GUIPointOfInterest(const std::string &id, const std::string &type, const RGBColor &color, const Position &pos, SUMOReal layer, SUMOReal angle, const std::string &imgFile, SUMOReal width, SUMOReal height)
Constructor.
virtual ~GUIPointOfInterest()
Destructor.
void drawName(const Position &pos, const SUMOReal scale, const GUIVisualizationTextSettings &settings, const SUMOReal angle=0) const
const RGBColor & getColor() const
Returns the color of the Shape.
Definition: Shape.h:78
float minPOISize
The minimum size of shapes to let them be drawn.
void add(SUMOReal x, SUMOReal y)
Makes the boundary include the given coordinate.
Definition: Boundary.cpp:76
SUMOReal y() const
Returns the y-position.
Definition: Position.h:68
std::string myImgFile
The angle of the Shape.
Definition: Shape.h:169
The popup menu of a globject.
void buildSelectionPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to (de)select the object.
SUMOReal myHalfImgHeight
The half height of the image when rendering this POI.
#define SUMOReal
Definition: config.h:215
A point-of-interest.
void growHeight(SUMOReal by)
Definition: Boundary.cpp:216
SUMOReal getLayer() const
Returns the layer of the Shape.
Definition: Shape.h:86
Position()
default constructor
Definition: Position.h:49
A window containing a gl-object&#39;s parameter.
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
void buildPopupHeader(GUIGLObjectPopupMenu *ret, GUIMainWindow &app, bool addSeparator=true)
Builds the header.
SUMOReal getAngle() const
Returns the angle of the Shape.
Definition: Shape.h:93
static int getTextureID(const std::string &filename)
return texture id for the given filename (initialize on first use)