Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GUISUMOAbstractView.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.
4// This program and the accompanying materials are made available under the
5// terms of the Eclipse Public License 2.0 which is available at
6// https://www.eclipse.org/legal/epl-2.0/
7// This Source Code may also be made available under the following Secondary
8// Licenses when the conditions for such availability set forth in the Eclipse
9// Public License 2.0 are satisfied: GNU General Public License, version 2
10// or later which is available at
11// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13/****************************************************************************/
21// The base class for a view
22/****************************************************************************/
23#pragma once
24#include <config.h>
25
26#include <string>
27#include <vector>
28#include <map>
30// fx3d includes windows.h so we need to guard against macro pollution
31#ifdef WIN32
32#define NOMINMAX
33#endif
34#include <fx3d.h>
35#ifdef WIN32
36#undef NOMINMAX
37#endif
38
39#include <utils/geom/Boundary.h>
40#include <utils/geom/Position.h>
45
46
47// ===========================================================================
48// class declarations
49// ===========================================================================
51class GUIVehicle;
53class GUIMainWindow;
55class GUIGlObject;
59class GUILane;
60
63 bool operator()(const GUIGlObject* const a, const GUIGlObject* const b) const {
64 if (a->getClickPriority() == b->getClickPriority()) {
65 // sorty by GUIGlID as second criterion to simplify
66 // duplicate removal
67 return a->getGlID() > b->getGlID();
68 } else {
69 return a->getClickPriority() > b->getClickPriority();
70 }
71 }
72};
73
74// ===========================================================================
75// class definitions
76// ===========================================================================
83class GUISUMOAbstractView : public FXGLCanvas {
84 FXDECLARE(GUISUMOAbstractView)
85
86public:
88 GUISUMOAbstractView(FXComposite* p, GUIMainWindow& app, GUIGlChildWindow* parent, const SUMORTree& grid, FXGLVisual* glVis, FXGLCanvas* share);
89
91 virtual ~GUISUMOAbstractView();
92
94 virtual void recalculateBoundaries() { };
95
98
100 virtual void recenterView();
101
108 virtual void centerTo(GUIGlID id, bool applyZoom, double zoomDist = 20);
109
116 virtual void centerTo(const Position& pos, bool applyZoom, double zoomDist = 20);
117
119 void centerTo(const Boundary& bound);
120
122 virtual void setViewportFromToRot(const Position& lookFrom, const Position& lookAt, double rotation);
123
125 virtual void copyViewportTo(GUISUMOAbstractView* view);
126
128 double m2p(double meter) const;
129
131 double p2m(double pixel) const;
132
135
138
140 void setWindowCursorPosition(FXint x, FXint y);
141
143 FXbool makeCurrent();
144
146 bool isInEditMode();
147
150
153
155 virtual bool is3DView() const;
156
158 virtual void zoom2Pos(Position& camera, Position& lookAt, double zoom);
159
161
162 virtual long onConfigure(FXObject*, FXSelector, void*);
163 virtual long onPaint(FXObject*, FXSelector, void*);
164 virtual long onLeftBtnPress(FXObject*, FXSelector, void*);
165 virtual long onLeftBtnRelease(FXObject*, FXSelector, void*);
166 virtual long onMiddleBtnPress(FXObject*, FXSelector, void*);
167 virtual long onMiddleBtnRelease(FXObject*, FXSelector, void*);
168 virtual long onRightBtnPress(FXObject*, FXSelector, void*);
169 virtual long onRightBtnRelease(FXObject*, FXSelector, void*);
170 virtual long onDoubleClicked(FXObject*, FXSelector, void*);
171 virtual long onMouseWheel(FXObject*, FXSelector, void*);
172 virtual long onMouseMove(FXObject*, FXSelector, void*);
173 virtual long onMouseLeft(FXObject*, FXSelector, void*);
175
177
178 virtual long onKeyPress(FXObject* o, FXSelector sel, void* data);
179 virtual long onKeyRelease(FXObject* o, FXSelector sel, void* data);
181
183 virtual long onCmdCloseLane(FXObject*, FXSelector, void*);
184 virtual long onCmdCloseEdge(FXObject*, FXSelector, void*);
185 virtual long onCmdAddRerouter(FXObject*, FXSelector, void*);
186
188 virtual long onCmdShowReachability(FXObject*, FXSelector, void*);
189
191 virtual long onVisualizationChange(FXObject*, FXSelector, void*);
192
194 std::vector<GUIGlObject*> filterContextObjects(const std::vector<GUIGlObject*>& objects);
195
197 virtual void openObjectDialogAtCursor(const FXEvent* ev);
198
200 void openObjectDialog(const std::vector<GUIGlObject*>& objects, const bool filter = true);
201
203 void updateToolTip();
204
207
213 void addSnapshot(SUMOTime time, const std::string& file, const int w = -1, const int h = -1);
214
224 std::string makeSnapshot(const std::string& destFile, const int w = -1, const int h = -1);
225
227 virtual void saveFrame(const std::string& destFile, FXColor* buf);
228
230 virtual void endSnapshot() {}
231
233 virtual void checkSnapshots();
234
235 void waitForSnapshots(const SUMOTime snapshotTime);
236
238 virtual SUMOTime getCurrentTimeStep() const;
239
241
244
246 virtual void updateViewportValues();
247
249 virtual void showViewportEditor();
250
253
255 virtual bool setColorScheme(const std::string&);
256
259
262
264 virtual void buildColorRainbow(const GUIVisualizationSettings& /*s*/, GUIColorScheme& /*scheme*/, int /*active*/, GUIGlObjectType /*objectType*/,
265 const GUIVisualizationRainbowSettings& /*rs*/) {
266 }
267
269 virtual std::vector<std::string> getEdgeDataAttrs() const {
270 return std::vector<std::string>();
271 }
272
274 virtual std::vector<std::string> getMeanDataIDs() const {
275 return std::vector<std::string>();
276 }
277
279 virtual std::vector<std::string> getMeanDataAttrs(const std::string& meanDataID) const {
280 UNUSED_PARAMETER(meanDataID);
281 return std::vector<std::string>();
282 }
283
285 virtual std::vector<std::string> getRelDataAttrs() const {
286 return std::vector<std::string>();
287 }
288
290 virtual std::vector<std::string> getEdgeLaneParamKeys(bool /*edgeKeys*/) const {
291 return std::vector<std::string>();
292 }
293
295 virtual std::vector<std::string> getVehicleParamKeys(bool /*vTypeKeys*/) const {
296 return std::vector<std::string>();
297 }
298
300 virtual std::vector<std::string> getPOIParamKeys() const {
301 return std::vector<std::string>();
302 }
303
306
309
311 // @todo: check why this is here
312 double getGridWidth() const;
313
315 // @todo: check why this is here
316 double getGridHeight() const;
317
319 virtual void startTrack(int /*id*/);
320
322 virtual void stopTrack();
323
325 virtual GUIGlID getTrackedID() const;
326
328 virtual void onGamingClick(Position /*pos*/);
329 virtual void onGamingRightClick(Position /*pos*/);
330
333
339 bool addAdditionalGLVisualisation(GUIGlObject* const which);
340
347
352 bool isAdditionalGLVisualisationEnabled(GUIGlObject* const which) const;
353
355
358
360 const Position& getPopupPosition() const;
361
363 void destroyPopup();
364
367
370 struct Decal {
371
373 Decal() {};
374
376 std::string filename;
377
379 double centerX = 0;
380
382 double centerY = 0;
383
385 double centerZ = 0;
386
388 double width = 0;
389
391 double height = 0;
392
394 double altitude = 0;
395
397 double rot = 0;
398
400 double tilt = 0;
401
403 double roll = 0;
404
406 double layer = 0;
407
409 bool initialised = false;
410
412 bool skip2D = false;
413
415 bool screenRelative = false;
416
418 int glID = -1;
419
421 FXImage* image = nullptr;
422 };
423
425 std::vector<Decal>& getDecals();
426
428 FXMutex& getDecalsLockMutex();
429
432
434 virtual Position getPositionInformation() const;
435
439 Position snapToActiveGrid(const Position& pos, bool snapXY = true) const;
440
442 Position screenPos2NetPos(int x, int y) const;
443
445 void addDecals(const std::vector<Decal>& decals);
446
448 double getDelay() const;
449
451 void setDelay(double delay);
452
454 void setBreakpoints(const std::vector<SUMOTime>& breakpoints);
455
457 virtual const std::vector<SUMOTime> retrieveBreakpoints() const {
458 return std::vector<SUMOTime>();
459 }
460
462 double getFPS() const;
463
466
469 virtual void drawPedestrianNetwork(const GUIVisualizationSettings& /*s*/) const { };
470
473 virtual void changePedestrianNetworkColor(const GUIVisualizationSettings& /*s*/) const { };
474
475protected:
477 FOX_CONSTRUCTOR(GUISUMOAbstractView)
478
479
480 void paintGL();
481
483 virtual void updatePositionInformationLabel() const;
484
486 virtual int doPaintGL(int /*mode*/, const Boundary& /*boundary*/);
487
489 virtual void doInit();
490
492 void paintGLGrid() const;
493
495 void displayLegend();
496
498 void displayLegends();
499
501 void displayColorLegend(const GUIColorScheme& scheme, bool leftSide, const std::string& key);
502
504 void drawFPS();
505
507 virtual GUILane* getLaneUnderCursor();
508
510 virtual GUIGlID getToolTipID();
511
513 GUIGlID getObjectUnderCursor(double sensitivity = SENSITIVITY);
514
516 std::vector<GUIGlID> getObjectsUnderCursor();
517
519 std::vector<GUIGlObject*> getGUIGlObjectsUnderCursor();
520
522 std::vector<GUIGlObject*> getGUIGlObjectsUnderSnappedCursor();
523
525 GUIGlID getObjectAtPosition(Position pos, double sensitivity = SENSITIVITY);
526
528 std::vector<GUIGlID> getObjectsAtPosition(Position pos, double radius);
529
531 std::vector<GUIGlObject*> getGUIGlObjectsAtPosition(Position pos, double radius);
532
534 std::vector<GUIGlID> getObjectsInBoundary(Boundary bound);
535
537 std::vector<GUIGlObject*> filterInternalLanes(const std::vector<GUIGlObject*>& objects) const;
538
540 bool showToolTipFor(const GUIGlID idToolTip);
541
543 void drawDecals();
544
546 void openPopupDialog();
547
549 void buildMinMaxRainbow(const GUIVisualizationSettings& s, GUIColorScheme& scheme, const GUIVisualizationRainbowSettings& rs, double minValue, double maxValue, bool hasMissingData);
550
554 Boundary applyGLTransform(bool fixRatio = true);
555
557 FXImage* checkGDALImage(Decal& d);
558
561
564
567
570
572 bool myPanning = false;
573
575 bool myInEditMode = false;
576
579
582
585
588
590 std::vector<GUIGlObject*> myCurrentObjectsDialog;
591
594
596 bool myAmInitialised = false;
597
600
603
606
609
611 std::vector<Decal> myDecals;
612
615
617
619 std::map<SUMOTime, std::vector<std::tuple<std::string, int, int> > > mySnapshots;
620
623
626
628 mutable FXMutex myPolyDrawLock;
629
631 std::map<GUIGlObject*, int> myAdditionallyDrawn;
632
635
636 // @brief sensitivity for "<>AtPosition(...) functions
637 static const double SENSITIVITY;
638
639private:
641 struct LayerObject : public std::pair<double, std::pair<GUIGlObjectType, std::string> > {
642
643 public:
645 LayerObject(double layer, GUIGlObject* object);
646
648 LayerObject(GUIGlObject* object);
649
651 GUIGlObject* getGLObject() const;
652
653 private:
656 };
657
658};
long long int SUMOTime
Definition GUI.h:36
unsigned int GUIGlID
Definition GUIGlObject.h:44
GUIGlObjectType
GUIPropertyScheme< RGBColor > GUIColorScheme
A class that stores a 2D geometrical boundary.
Definition Boundary.h:39
A dialog to change the viewport.
The dialog to change the view (gui) settings.
The popup menu of a globject.
Representation of a lane in the micro simulation (gui-version).
Definition GUILane.h:60
MFXComboBoxIcon * getColoringSchemesCombo()
get coloring schemes combo
bool myAmInitialised
Internal information whether doInit() was called.
Position snapToActiveGrid(const Position &pos, bool snapXY=true) const
Returns a position that is mapped to the closest grid point if the grid is active.
std::vector< GUIGlObject * > myCurrentObjectsDialog
vector with current objects dialog
std::string makeSnapshot(const std::string &destFile, const int w=-1, const int h=-1)
Takes a snapshots and writes it into the given file.
void updateToolTip()
A method that updates the tooltip.
void addDecals(const std::vector< Decal > &decals)
add decals
virtual void checkSnapshots()
Checks whether it is time for a snapshot.
void showViewschemeEditor()
show viewsscheme editor
GUISUMOAbstractView(FXComposite *p, GUIMainWindow &app, GUIGlChildWindow *parent, const SUMORTree &grid, FXGLVisual *glVis, FXGLCanvas *share)
constructor
static const double SENSITIVITY
virtual long onLeftBtnRelease(FXObject *, FXSelector, void *)
void displayLegend()
Draws a line with ticks, and the length information.
virtual long onVisualizationChange(FXObject *, FXSelector, void *)
hook to react on change in visualization settings
std::vector< GUIGlObject * > getGUIGlObjectsUnderCursor()
returns the GUIGlObject under the cursor using GL_SELECT (including overlapped objects)
long myFrameDrawTime
counter for measuring rendering time
void replacePopup(GUIGLObjectPopupMenu *popUp)
replace PopUp
std::vector< GUIGlID > getObjectsAtPosition(Position pos, double radius)
returns the ids of the object at position within the given (rectangular) radius using GL_SELECT
virtual void endSnapshot()
Ends a video snapshot.
const SUMORTree * myGrid
The visualization speed-up.
void openObjectDialog(const std::vector< GUIGlObject * > &objects, const bool filter=true)
open object dialog for the given object
virtual void saveFrame(const std::string &destFile, FXColor *buf)
Adds a frame to a video snapshot which will be initialized if necessary.
virtual void recenterView()
recenters the view
virtual SUMOTime getCurrentTimeStep() const
get the current simulation time
void paintGLGrid() const
paints a grid
FXbool makeCurrent()
A reimplementation due to some internal reasons.
Position myClickedPopupPosition
clicked poup position
virtual void buildColorRainbow(const GUIVisualizationSettings &, GUIColorScheme &, int, GUIGlObjectType, const GUIVisualizationRainbowSettings &)
recalibrate color scheme according to the current value range
int myMouseHotspotX
Offset to the mouse-hotspot from the mouse position.
GUIMainWindow * getMainWindow() const
get main window
bool isInEditMode()
returns true, if the edit button was pressed
void buildMinMaxRainbow(const GUIVisualizationSettings &s, GUIColorScheme &scheme, const GUIVisualizationRainbowSettings &rs, double minValue, double maxValue, bool hasMissingData)
helper function for buildColorRainbow
virtual long onMiddleBtnRelease(FXObject *, FXSelector, void *)
virtual long onMouseMove(FXObject *, FXSelector, void *)
bool myPanning
Panning flag.
bool isAdditionalGLVisualisationEnabled(GUIGlObject *const which) const
Check if an object is added in the additional GL visualitation.
FXMutex myDecalsLockMutex
The mutex to use before accessing the decals list in order to avoid thread conflicts.
FXCondition mySnapshotCondition
the semaphore when waiting for snapshots to finish
virtual GUIGlID getToolTipID()
returns the id of object under cursor to show their tooltip
Position myPopupPosition
The current popup-menu position.
virtual void doInit()
doInit
std::vector< GUIGlObject * > filterContextObjects(const std::vector< GUIGlObject * > &objects)
filter out duplicate and forbidden objects
GUIGlID getObjectUnderCursor(double sensitivity=SENSITIVITY)
returns the id of the front object under the cursor using GL_SELECT
virtual long onCmdCloseEdge(FXObject *, FXSelector, void *)
virtual int doPaintGL(int, const Boundary &)
paint GL
virtual void buildViewToolBars(GUIGlChildWindow *)
builds the view toolbars
virtual void showViewportEditor()
show viewport editor
const GUIVisualizationSettings & getVisualisationSettings() const
get visualization settings (read only)
virtual std::vector< std::string > getMeanDataAttrs(const std::string &meanDataID) const
return list of available attributes for the given meanData id
void setDelay(double delay)
Sets the delay of the parent application.
Boundary getVisibleBoundary() const
get visible boundary
FXMutex myPolyDrawLock
poly draw lock
Position screenPos2NetPos(int x, int y) const
Translate screen position to network position.
void addSnapshot(SUMOTime time, const std::string &file, const int w=-1, const int h=-1)
Sets the snapshot time to file map.
GUIPerspectiveChanger & getChanger() const
get changer
virtual void centerTo(GUIGlID id, bool applyZoom, double zoomDist=20)
centers to the chosen artifact
GUIMainWindow * myApp
The application.
GUIDialog_EditViewport * getViewportEditor()
get the viewport and create it on first access
virtual void zoom2Pos(Position &camera, Position &lookAt, double zoom)
zoom interface for 3D view
GUIGlID getObjectAtPosition(Position pos, double sensitivity=SENSITIVITY)
returns the id of the object at position using GL_SELECT
std::vector< GUIGlID > getObjectsInBoundary(Boundary bound)
returns the ids of all objects in the given boundary
virtual long onCmdCloseLane(FXObject *, FXSelector, void *)
interaction with the simulation
void drawFPS()
Draws frames-per-second indicator.
virtual long onMouseWheel(FXObject *, FXSelector, void *)
double getGridWidth() const
get grid width
std::vector< Decal > & getDecals()
The list of decals to show.
bool removeAdditionalGLVisualisation(GUIGlObject *const which)
Removes an object from the list of objects that show additional things.
GUIGlChildWindow * myGlChildWindowParent
The parent window.
GUIGlChildWindow * getGUIGlChildWindow()
get GUIGlChildWindow
double getDelay() const
Returns the delay of the parent application.
virtual void updatePositionInformationLabel() const
update position information labels
std::vector< GUIGlObject * > getGUIGlObjectsAtPosition(Position pos, double radius)
returns the GUIGlObjects at position within the given (rectangular) radius using GL_SELECT
virtual long onLeftBtnPress(FXObject *, FXSelector, void *)
virtual void setViewportFromToRot(const Position &lookFrom, const Position &lookAt, double rotation)
applies the given viewport settings
double p2m(double pixel) const
pixels-to-meters conversion method
std::vector< Decal > myDecals
The list of decals to show.
const Position & getPopupPosition() const
get position of current popup
double m2p(double meter) const
meter-to-pixels conversion method
virtual GUILane * getLaneUnderCursor()
returns the GUILane at cursor position (implementation depends on view)
virtual void openObjectDialogAtCursor(const FXEvent *ev)
open object dialog at the cursor position
virtual std::vector< std::string > getEdgeLaneParamKeys(bool) const
return list of available edge parameters
virtual void onGamingClick(Position)
on gaming click
bool myInEditMode
Information whether too-tip informations shall be generated.
GUIVisualizationSettings * editVisualisationSettings() const
edit visualization settings (allow modify VisualizationSetings, use carefully)
GUIVisualizationSettings * myVisualizationSettings
visualization settings
void destroyPopup()
destroys the popup
Position getWindowCursorPosition() const
return windows cursor position
virtual long onKeyPress(FXObject *o, FXSelector sel, void *data)
keyboard functions
GUIDialog_EditViewport * myGUIDialogEditViewport
viewport chooser
void displayColorLegend(const GUIColorScheme &scheme, bool leftSide, const std::string &key)
Draws a legend for the given scheme.
virtual long onMiddleBtnPress(FXObject *, FXSelector, void *)
virtual std::vector< std::string > getVehicleParamKeys(bool) const
return list of available vehicle parameters
void paintGL()
FOX needs this.
virtual void drawPedestrianNetwork(const GUIVisualizationSettings &) const
Draw (or not) the JuPedSim pedestrian network.
virtual void stopTrack()
stop track
virtual Position getPositionInformation() const
Returns the cursor's x/y position within the network.
virtual std::vector< std::string > getMeanDataIDs() const
return list of loaded edgeData ids (being computed in the current simulation)
std::vector< GUIGlObject * > getGUIGlObjectsUnderSnappedCursor()
returns the GUIGlObject under the gripped cursor using GL_SELECT (including overlapped objects)
bool showToolTipFor(const GUIGlID idToolTip)
invokes the tooltip for the given object
virtual long onKeyRelease(FXObject *o, FXSelector sel, void *data)
GUIDialog_ViewSettings * myGUIDialogViewSettings
Visualization changer.
virtual void onGamingRightClick(Position)
virtual void recalculateBoundaries()
recalculate boundaries
void setWindowCursorPosition(FXint x, FXint y)
Returns the gl-id of the object under the given coordinates.
double getFPS() const
retrieve FPS
virtual long onCmdShowReachability(FXObject *, FXSelector, void *)
highlight edges according to reachability
std::map< GUIGlObject *, int > myAdditionallyDrawn
List of objects for which GUIGlObject::drawGLAdditional is called.
void drawDecals()
Draws the stored decals.
std::vector< GUIGlID > getObjectsUnderCursor()
returns the id of the objects under the cursor using GL_SELECT (including overlapped objects)
Boundary applyGLTransform(bool fixRatio=true)
applies gl-transformations to fit the Boundary given by myChanger onto the canvas....
virtual void updateViewportValues()
update the viewport chooser with the current view values
FXImage * checkGDALImage(Decal &d)
check whether we can read image data or position with gdal
double getGridHeight() const
get grid height
virtual void startTrack(int)
star track
virtual long onDoubleClicked(FXObject *, FXSelector, void *)
FXMutex & getDecalsLockMutex()
The mutex to use before accessing the decals list in order to avoid thread conflicts.
virtual bool is3DView() const
return whether this is a 3D view
virtual std::vector< std::string > getPOIParamKeys() const
return list of available vehicle parameters
void displayLegends()
Draws the configured legends.
FXMutex mySnapshotsMutex
The mutex to use before accessing the decals list in order to avoid thread conflicts.
virtual long onMouseLeft(FXObject *, FXSelector, void *)
virtual long onRightBtnRelease(FXObject *, FXSelector, void *)
FXint myWindowCursorPositionX
Position of the cursor relative to the window.
GUIPerspectiveChanger * myChanger
The perspective changer.
GUIGLObjectPopupMenu * myPopup
The current popup-menu.
virtual void copyViewportTo(GUISUMOAbstractView *view)
copy the viewport to the given view
virtual void changePedestrianNetworkColor(const GUIVisualizationSettings &) const
Change the color of the JuPedSim pedestrian network.
void setBreakpoints(const std::vector< SUMOTime > &breakpoints)
Sets the breakpoints of the parent application.
void waitForSnapshots(const SUMOTime snapshotTime)
bool addAdditionalGLVisualisation(GUIGlObject *const which)
Adds an object to call its additional visualisation method.
virtual bool setColorScheme(const std::string &)
set color scheme
GUIGLObjectPopupMenu * getPopup() const
ge the current popup-menu
virtual long onCmdAddRerouter(FXObject *, FXSelector, void *)
virtual std::vector< std::string > getRelDataAttrs() const
return list of loaded edgeRelation and tazRelation attributes
std::vector< GUIGlObject * > filterInternalLanes(const std::vector< GUIGlObject * > &objects) const
filter internal lanes in Objects under cursor
virtual long onPaint(FXObject *, FXSelector, void *)
virtual long onRightBtnPress(FXObject *, FXSelector, void *)
virtual ~GUISUMOAbstractView()
destructor
virtual long onConfigure(FXObject *, FXSelector, void *)
mouse functions
std::map< SUMOTime, std::vector< std::tuple< std::string, int, int > > > mySnapshots
Snapshots.
virtual const std::vector< SUMOTime > retrieveBreakpoints() const
retrieve breakpoints if provided by the application
void remove(GUIDialog_EditViewport *)
remove viewport
virtual GUIGlID getTrackedID() const
get tracked id
void openPopupDialog()
open popup dialog
virtual std::vector< std::string > getEdgeDataAttrs() const
return list of loaded edgeData attributes
A MSVehicle extended by some values for usage within the gui.
Definition GUIVehicle.h:51
Stores the information about how to visualize structures.
A point in 2D or 3D with translation and scaling methods.
Definition Position.h:37
static const Position INVALID
used to indicate that a position is valid
Definition Position.h:323
A RT-tree for efficient storing of SUMO's GL-objects.
Definition SUMORTree.h:66
#define UNUSED_PARAMETER(x)
comparator for resolving clicks
bool operator()(const GUIGlObject *const a, const GUIGlObject *const b) const
double tilt
The tilt of the image to the ground plane (in degrees).
double centerX
The center of the image in x-direction (net coordinates, in m).
double height
The height of the image (net coordinates in y-direction, in m).
bool skip2D
Whether this image should be skipped in 2D-views.
double width
The width of the image (net coordinates in x-direction, in m).
bool initialised
Whether this image was initialised (inserted as a texture).
FXImage * image
The image pointer for later cleanup.
double rot
The rotation of the image in the ground plane (in degrees).
double layer
The layer of the image.
double altitude
The altitude of the image (net coordinates in z-direction, in m).
double centerY
The center of the image in y-direction (net coordinates, in m).
double centerZ
The center of the image in z-direction (net coordinates, in m).
std::string filename
The path to the file the image is located at.
int glID
whether the decal shall be drawn in screen coordinates, rather than network coordinates
double roll
The roll of the image to the ground plane (in degrees).
bool screenRelative
Whether this image should be skipped in 2D-views.
GUIGlObject * getGLObject() const
get GLObject
LayerObject(double layer, GUIGlObject *object)
constructor for shapes