Eclipse SUMO - Simulation of Urban MObility
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
GNEViewNetHelper.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/****************************************************************************/
18// A file used to reduce the size of GNEViewNet.h grouping structs and classes
19/****************************************************************************/
20#pragma once
21#include <config.h>
22
23#include <unordered_set>
33
34// ===========================================================================
35// enum
36// ===========================================================================
37
39enum class Supermode {
41 NETWORK,
43 DEMAND,
45 DATA
46};
47
81
115
135
136// ===========================================================================
137// class declarations
138// ===========================================================================
139
141class GNEFrame;
142class GNENet;
144class GNEUndoList;
145class GNEViewNet;
146class GNEViewParent;
147// network elements
149class GNEJunction;
150class GNEEdge;
151class GNELane;
152class GNEConnection;
153class GNECrossing;
154class GNEWalkingArea;
155class GNEInternalLane;
156// additional elements
157class GNEAdditional;
158class GNEPoly;
159class GNEPOI;
160class GNETAZ;
161// demand elements
162class GNEDemandElement;
163// data elements
164class GNEDataSet;
165class GNEGenericData;
166class GNEEdgeData;
167class GNEEdgeRelData;
168class GNETAZRelData;
169
170// ===========================================================================
171// classes and structs definitions
172// ===========================================================================
173
175
178
179 public:
181 LockManager(GNEViewNet* viewNet);
182
184 ~LockManager();
185
187 bool isObjectLocked(GUIGlObjectType objectType, const bool selected) const;
188
190 void updateFlags();
191
193 void updateLockMenuBar();
194
195 private:
198
199 public:
202
204 OperationLocked(Supermode supermode);
205
208
210 Supermode getSupermode() const;
211
213 bool lock = false;
214
215 private:
218 };
219
222
224 std::map<GUIGlObjectType, OperationLocked> myLockedElements;
225
227 LockManager(const LockManager&) = delete;
228
231 };
232
235
236 public:
239
244
246 void inspectACs(const std::vector<GNEAttributeCarrier*>& ACs);
247
250
253
255
260
262 const std::unordered_set<GNEAttributeCarrier*>& getACs() const;
263
265
268 // @brief check if the given AC is inspected
269 bool isACInspected(GNEAttributeCarrier* AC) const;
270
271 // @brief check if the given constant AC is inspected
272 bool isACInspected(const GNEAttributeCarrier* AC) const;
273
275 bool isInspectingElements() const;
276
278 bool isInspectingSingleElement() const;
279
281 bool isInspectingMultipleElements() const;
282
284
285 private:
288
290 std::unordered_set<GNEAttributeCarrier*> myInspectedACs;
291
294
297 };
298
301
302 public:
305
307 void markAC(GNEAttributeCarrier* AC);
308
311
313 void unmarkAll();
314
316 const std::unordered_set<GNEAttributeCarrier*>& getACs() const;
317
318 private:
320 std::unordered_set<GNEAttributeCarrier*> myMarkedACs;
321
324
327 };
328
331
332 public:
335
337 void updateObjects();
338
341
344
346 void filterAllExcept(GUIGlObjectType exception);
347
349 void filterBySuperMode();
350
352 void filterJunctions();
353
355 void filterEdges();
356
358 void filterLanes();
359
361 void filterConnections();
362
364 void filterCrossings();
365
367 void filterWalkingAreas();
368
370 void filterShapes();
371
373 void filterAdditionals(const bool includeStoppigPlaces, const bool includeTAZs);
374
377
379 void filterDemandElements(const bool includeRoutes);
380
382 void filterDataElements();
383
385 void filterLockedElements(const std::vector<GUIGlObjectType> ignoreFilter = {});
386
388 const GUIGlObject* getGUIGlObjectFront() const;
389
392
395
398
401
404
407
409 GNEEdge* getEdgeFront() const;
410
412 GNELane* getLaneFront() const;
413
416
418 const std::vector<GNELane*>& getLanes() const;
419
422
425
428
431
433 GNETAZ* getTAZFront() const;
434
436 GNEPOI* getPOIFront() const;
437
439 GNEPoly* getPolyFront() const;
440
443
446
449
451 const std::vector<GUIGlObject*>& getGLObjects() const;
452
454 const std::vector<GNEAttributeCarrier*>& getAttributeCarriers() const;
455
457 const std::vector<GNEJunction*>& getJunctions() const;
458
460 const std::vector<GNEEdge*>& getEdges() const;
461
463 const std::vector<GNETAZ*>& getTAZs() const;
464
466 const std::vector<GNEAdditional*>& getAdditionals() const;
467
469 const std::vector<GNEDemandElement*>& getDemandElements() const;
470
472 const std::vector<const GNEJunction*>& getMergingJunctions() const;
473
474 protected:
477
478 public:
481
483 void clearElements();
484
486 void reserve(int size);
487
489 void filterElements(const std::vector<const GUIGlObject*>& objects);
490
492 std::vector<GUIGlObject*> GUIGlObjects;
493
495 std::vector<GNEAttributeCarrier*> attributeCarriers;
496
498 std::vector<GNENetworkElement*> networkElements;
499
501 std::vector<GNEAdditional*> additionals;
502
504 std::vector<GNEDemandElement*> demandElements;
505
507 std::vector<GNEGenericData*> genericDatas;
508
510 std::vector<GNEJunction*> junctions;
511
513 std::vector<GNEEdge*> edges;
514
516 std::vector<GNELane*> lanes;
517
519 std::vector<GNECrossing*> crossings;
520
522 std::vector<GNEWalkingArea*> walkingAreas;
523
525 std::vector<GNEConnection*> connections;
526
528 std::vector<GNEInternalLane*> internalLanes;
529
531 std::vector<GNETAZ*> TAZs;
532
534 std::vector<GNEPOI*> POIs;
535
537 std::vector<GNEPoly*> polys;
538
540 std::vector<GNEEdgeData*> edgeDatas;
541
543 std::vector<GNEEdgeRelData*> edgeRelDatas;
544
546 std::vector<GNETAZRelData*> TAZRelDatas;
547
548 private:
551
554 };
555
558
561
563 std::vector<const GNEJunction*> myMergingJunctions;
564
565 private:
567 void updateNetworkElements(ViewObjectsContainer& container, const GUIGlObject* glObject);
568
570 void updateAdditionalElements(ViewObjectsContainer& container, const GUIGlObject* glObject);
571
573 void updateShapeElements(ViewObjectsContainer& container, const GUIGlObject* glObject);
574
576 void updateTAZElements(ViewObjectsContainer& container, const GUIGlObject* glObject);
577
579 void updateDemandElements(ViewObjectsContainer& container, const GUIGlObject* glObject);
580
582 void updateGenericDataElements(ViewObjectsContainer& container, const GUIGlObject* glObject);
583
586
589
592
595 };
596
599
602
604 void update(void* eventData);
605
607 bool shiftKeyPressed() const;
608
610 bool controlKeyPressed() const;
611
613 bool altKeyPressed() const;
614
616 bool mouseLeftButtonPressed() const;
617
619 bool mouseRightButtonPressed() const;
620
621 private:
623 FXEvent* myEventInfo;
624
627
630 };
631
684
686 struct TimeFormat {
687
689 TimeFormat(GNEViewNet* viewNet);
690
693
695 void switchTimeFormat();
696
698 void updateButtonLabel();
699
700 private:
703
706
708 TimeFormat(const TimeFormat&) = delete;
709
711 TimeFormat& operator=(const TimeFormat&) = delete;
712 };
713
715 struct EditModes {
716
718 EditModes(GNEViewNet* viewNet);
719
721 ~EditModes();
722
725
727 void setSupermode(Supermode supermode, const bool force);
728
730 void setNetworkEditMode(NetworkEditMode networkMode, const bool force = false);
731
733 void setDemandEditMode(DemandEditMode demandMode, const bool force = false);
734
736 void setDataEditMode(DataEditMode dataMode, const bool force = false);
737
739 bool isCurrentSupermodeNetwork() const;
740
742 bool isCurrentSupermodeDemand() const;
743
745 bool isCurrentSupermodeData() const;
746
748 void setView(FXSelector sel);
749
751 bool isDefaultView() const;
752
754 bool isJuPedSimView() const;
755
758
761
764
767
770
773
776
777 private:
780
782 FXPopup* myNeteditViewsPopup = nullptr;
783
786
789
792
794 EditModes(const EditModes&) = delete;
795
797 EditModes& operator=(const EditModes&) = delete;
798 };
799
802
805
808
811
813 void getVisibleNetworkMenuCommands(std::vector<MFXCheckableButton*>& commands) const;
814
816 bool drawSpreadVehicles() const;
817
819 bool showDemandElements() const;
820
822 bool selectEdges() const;
823
825 bool showConnections() const;
826
828 bool showSubAdditionals() const;
829
831 bool showTAZElements() const;
832
834 bool editingElevation() const;
835
838
841
844
847
850
853
856
859
862
865
868
871
874
877
880
883
884 private:
887
890
893 };
894
897
900
903
906
908 void getVisibleDemandMenuCommands(std::vector<MFXCheckableButton*>& commands) const;
909
911 bool drawSpreadVehicles() const;
912
914 bool showNonInspectedDemandElements(const GNEDemandElement* demandElement) const;
915
917 bool showShapes() const;
918
920 bool showAllTrips() const;
921
923 bool showAllPersonPlans() const;
924
926 void lockPerson(const GNEDemandElement* person);
927
929 void unlockPerson();
930
932 const GNEDemandElement* getLockedPerson() const;
933
935 bool showAllContainerPlans() const;
936
938 void lockContainer(const GNEDemandElement* container);
939
941 void unlockContainer();
942
944 bool showOverlappedRoutes() const;
945
948
951
954
957
960
963
966
969
972
975
978
981
982 private:
985
988
991
994
997 };
998
1001
1003 DataViewOptions(GNEViewNet* viewNet);
1004
1007
1010
1012 void getVisibleDataMenuCommands(std::vector<MFXCheckableButton*>& commands) const;
1013
1015 bool showAdditionals() const;
1016
1018 bool showShapes() const;
1019
1021 bool showDemandElements() const;
1022
1024 bool TAZRelDrawing() const;
1025
1027 bool TAZDrawFill() const;
1028
1030 bool TAZRelOnlyFrom() const;
1031
1033 bool TAZRelOnlyTo() const;
1034
1037
1040
1043
1046
1049
1052
1055
1058
1059 private:
1062
1065
1068 };
1069
1072
1073 public:
1075 IntervalBar(GNEViewNet* viewNet);
1076
1079
1081 void showIntervalBar();
1082
1084 void hideIntervalBar();
1085
1087 void updateIntervalBar();
1088
1089 // @brief mark for update
1090 void markForUpdate();
1091
1094
1097
1099 GNEDataSet* getDataSet() const;
1100
1102 double getBegin() const;
1103
1105 double getEnd() const;
1106
1108 std::string getParameter() const;
1109
1111
1114
1116 void setGenericDataType();
1117
1119 void setDataSet();
1120
1122 void setInterval();
1123
1125 void setBegin();
1126
1128 void setEnd();
1129
1131 void setParameter();
1132
1134
1135 protected:
1137 void enableIntervalBar();
1138
1140 void disableIntervalBar();
1141
1142 private:
1145
1147 bool myUpdateInterval = true;
1148
1151
1154
1156 FXCheckButton* myIntervalCheckBox = nullptr;
1157
1159 FXTextField* myBeginTextField = nullptr;
1160
1162 FXTextField* myEndTextField = nullptr;
1163
1166
1168 std::vector<std::string> myDataSets;
1169
1171 std::set<std::string> myParameters;
1172
1174 IntervalBar(const IntervalBar&) = delete;
1175
1178 };
1179
1182
1185
1188
1191
1194
1196 void moveSingleElement(const bool mouseLeftButtonPressed);
1197
1200
1202 bool isCurrentlyMovingSingleElement() const;
1203
1206
1207 protected:
1209 const GNEMoveOffset calculateMoveOffset() const;
1210
1211 private:
1214
1217
1220
1223
1226 };
1227
1230
1233
1235 void beginMoveSelection();
1236
1238 void moveSelection(const bool mouseLeftButtonPressed);
1239
1241 void finishMoveSelection();
1242
1244 bool isMovingSelection() const;
1245
1247 bool isMovingSelectedEdge() const;
1248
1251
1253 double getEdgeOffset() const;
1254
1257
1258 protected:
1260 const GNEMoveOffset calculateMoveOffset() const;
1261
1264
1266 void calculateEdgeSelection(const GNEEdge* clickedEdge);
1267
1268 private:
1271
1274
1277
1280
1282 std::vector<GNEMoveOperation*> myMoveOperations;
1283
1286
1289 };
1290
1293
1295 VehicleOptions(GNEViewNet* viewNet);
1296
1299
1302
1303 private:
1306
1309
1312 };
1313
1316
1319
1322
1325
1326 private:
1329
1332
1335 };
1336
1340
1342 SelectingArea(GNEViewNet* viewNet);
1343
1346
1349
1352
1355
1357 std::vector<GNEEdge*> processEdgeRectangleSelection();
1358
1360 void drawRectangleSelection(const RGBColor& color) const;
1361
1364
1367
1368 private:
1370 void processBoundarySelection(const Boundary& boundary);
1371
1374
1377
1380
1383
1386 };
1387
1390
1392 TestingMode(GNEViewNet* viewNet);
1393
1395 void initTestingMode();
1396
1398 void drawTestingElements(GUIMainWindow* mainWindow);
1399
1400 private:
1403
1406
1409
1411 TestingMode(const TestingMode&) = delete;
1412
1415 };
1416
1457
1522
1587
1631
1666
1668 struct LockIcon {
1670 static void drawLockIcon(const GUIVisualizationSettings::Detail d, const GNEAttributeCarrier* AC, GUIGlObjectType type, const Position position,
1671 const double exaggeration, const double size = 0.5,
1672 const double offsetx = 0, const double offsety = 0);
1673
1676 GUIGlObjectType type, const double exaggeration);
1677 private:
1679 LockIcon();
1680
1682 LockIcon(const LockIcon&) = delete;
1683
1685 LockIcon& operator=(const LockIcon&) = delete;
1686 };
1687
1689 static const std::vector<RGBColor>& getRainbowScaledColors();
1690
1692 static const RGBColor& getRainbowScaledColor(const double min, const double max, const double value);
1693
1695 static std::vector<GUIGlObject*> filterElementsByLayer(const std::vector<GUIGlObject*>& GLObjects);
1696
1697private:
1699 static std::vector<RGBColor> myRainbowScaledColors;
1700};
DataEditMode
enum for data edit modes
@ DATA_MEANDATA
mode for create meanData elements
@ DATA_EDGERELDATA
mode for create edgeRelData elements
@ DATA_NONE
empty Data mode
@ DATA_SELECT
mode for selecting data elements
@ DATA_TAZRELDATA
mode for create TAZRelData elements
@ DATA_INSPECT
mode for inspecting data elements
@ DATA_EDGEDATA
mode for create edgeData elements
@ DATA_DELETE
mode for deleting data elements
Supermode
@brie enum for supermodes
@ NETWORK
Network mode (Edges, junctions, etc..)
@ DATA
Data mode (edgeData, LaneData etc..)
@ DEMAND
Demand mode (Routes, Vehicles etc..)
NetworkEditMode
@brie enum for network edit modes
@ NETWORK_SHAPE
Mode for editing Polygons.
@ NETWORK_DELETE
mode for deleting network elements
@ NETWORK_MOVE
mode for moving network elements
@ NETWORK_WIRE
Mode for editing wires.
@ NETWORK_ADDITIONAL
Mode for editing additionals.
@ NETWORK_TAZ
Mode for editing TAZ.
@ NETWORK_CREATE_EDGE
mode for creating new edges
@ NETWORK_TLS
mode for editing tls
@ NETWORK_CROSSING
Mode for editing crossing.
@ NETWORK_SELECT
mode for selecting network elements
@ NETWORK_INSPECT
mode for inspecting network elements
@ NETWORK_PROHIBITION
Mode for editing connection prohibitions.
@ NETWORK_NONE
empty Network mode
@ NETWORK_CONNECT
mode for connecting lanes
@ NETWORK_DECAL
Mode for editing decals.
DemandEditMode
@brie enum for demand edit modes
@ DEMAND_PERSONPLAN
Mode for editing person plan.
@ DEMAND_INSPECT
mode for inspecting demand elements
@ DEMAND_CONTAINER
Mode for editing container.
@ DEMAND_DELETE
mode for deleting demand elements
@ DEMAND_ROUTEDISTRIBUTION
Mode for editing route distributions.
@ DEMAND_NONE
empty Demand mode
@ DEMAND_PERSON
Mode for editing person.
@ DEMAND_TYPEDISTRIBUTION
Mode for editing type distributions.
@ DEMAND_SELECT
mode for selecting demand elements
@ DEMAND_ROUTE
Mode for editing routes.
@ DEMAND_VEHICLE
Mode for editing vehicles.
@ DEMAND_MOVE
mode for moving demand elements
@ DEMAND_STOP
Mode for editing stops.
@ DEMAND_CONTAINERPLAN
Mode for editing container plan.
@ DEMAND_TYPE
Mode for editing types.
GUIGlObjectType
SumoXMLTag
Numbers representing SUMO-XML - element names.
A class that stores a 2D geometrical boundary.
Definition Boundary.h:39
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
Definition GNECrossing.h:44
An Element which don't belong to GNENet but has influence in the simulation.
Definition GNEEdgeData.h:32
A road/street connecting two junctions (netedit-version)
Definition GNEEdge.h:53
An Element which don't belong to GNENet but has influence in the simulation.
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition GNELane.h:46
move element
move offset
move operation
A NBNetBuilder extended by visualisation and editing capabilities.
Definition GNENet.h:42
An Element which don't belong to GNENet but has influence in the simulation.
class used for group inspected elements
bool isInspectingElements() const
check if we're inspecting at least one element
void inspectAC(GNEAttributeCarrier *AC)
void inspectACs(const std::vector< GNEAttributeCarrier * > &ACs)
inspect multiple ACs
bool isACInspected(GNEAttributeCarrier *AC) const
InspectedElements(const InspectedElements &)=delete
Invalidated copy constructor.
InspectedElements & operator=(const InspectedElements &)=delete
Invalidated assignment operator.
std::unordered_set< GNEAttributeCarrier * > myInspectedACs
hash table with all inspected ACs (we use a set to make deletion of massive elements more quickly)
const std::unordered_set< GNEAttributeCarrier * > & getACs() const
get hash table with all inspected ACs
GNEAttributeCarrier * getFirstAC() const
void uninspectAC(GNEAttributeCarrier *AC)
uninspect AC
GNEAttributeCarrier * myFirstInspectedAC
first inspected element (usually the clicked element)
bool isInspectingSingleElement() const
check if we're inspecting exactly one element
bool isInspectingMultipleElements() const
check if we're inspecting more than one elements
void clearInspectedElements()
clear inspected AC
class used to group all variables related to interval bar
IntervalBar(const IntervalBar &)=delete
Invalidated copy constructor.
MFXComboBoxIcon * myParametersComboBox
combo box for filtered parameters
FXCheckButton * myIntervalCheckBox
checkbox for limit data elements by interval
IntervalBar & operator=(const IntervalBar &)=delete
Invalidated assignment operator.
FXTextField * myEndTextField
text field for interval end
std::string getParameter() const
get parameter
std::set< std::string > myParameters
current parameters
void hideIntervalBar()
hide all options menu checks
void setGenericDataType()
set generic data type
GNEViewNet * myViewNet
pointer to net
double getBegin() const
get begin
void showIntervalBar()
show interval option bar
void disableIntervalBar()
disable interval bar
FXTextField * myBeginTextField
text field for interval begin
void updateIntervalBar()
update interval bar
bool myUpdateInterval
flag for update interval bar
void buildIntervalBarElements()
build interval bar elements
GNEDataSet * getDataSet() const
get dataSet
MFXComboBoxIcon * myDataSetsComboBox
combo box for data sets
std::vector< std::string > myDataSets
current dataSets
void enableIntervalBar()
enable interval bar
MFXComboBoxIcon * myGenericDataTypesComboBox
combo box for generic data types
void setInterval()
update limit by interval
SumoXMLTag getGenericDataType() const
get generic data type
Supermode mySupermode
supermode associated with this operation locked
LockManager(const LockManager &)=delete
Invalidated copy constructor.
void updateLockMenuBar()
update lock inspect menuBar
bool isObjectLocked(GUIGlObjectType objectType, const bool selected) const
check if given GLObject is locked for inspect, select, delete and move
std::map< GUIGlObjectType, OperationLocked > myLockedElements
map with locked elements
LockManager & operator=(const LockManager &)=delete
Invalidated assignment operator.
GNEViewNet * myViewNet
pointer to viewNet
class used for group front elements
void unmarkAC(GNEAttributeCarrier *AC)
unmark AC for drawing front
std::unordered_set< GNEAttributeCarrier * > myMarkedACs
hash table with all marked ACs (we use a set to make deletion of massive elements more quickly)
MarkFrontElements(const MarkFrontElements &)=delete
Invalidated copy constructor.
void markAC(GNEAttributeCarrier *AC)
mark AC as drawing front
MarkFrontElements & operator=(const MarkFrontElements &)=delete
Invalidated assignment operator.
const std::unordered_set< GNEAttributeCarrier * > & getACs() const
get hash table with all fronted ACs
std::vector< GNEConnection * > connections
vector with the connections
std::vector< GNEGenericData * > genericDatas
vector with the generic datas
std::vector< GNEPOI * > POIs
vector with the POIs
std::vector< GNEInternalLane * > internalLanes
vector with the internal lanes
std::vector< GUIGlObject * > GUIGlObjects
vector with the GUIGlObjects
ViewObjectsContainer & operator=(const ViewObjectsContainer &)=delete
Invalidated assignment operator.
std::vector< GNELane * > lanes
vector with the lanes
std::vector< GNETAZRelData * > TAZRelDatas
vector with the TAZ relation datas
void reserve(int size)
reseve memory for all elements
std::vector< GNECrossing * > crossings
vector with the crossings
std::vector< GNEPoly * > polys
vector with the polys
std::vector< GNETAZ * > TAZs
vector with the TAZ elements
std::vector< GNEAdditional * > additionals
vector with the additional elements
std::vector< GNEAttributeCarrier * > attributeCarriers
vector with the attribute carriers
std::vector< GNENetworkElement * > networkElements
vector with the network elements
std::vector< GNEEdgeData * > edgeDatas
vector with the edge datas
std::vector< GNEEdgeRelData * > edgeRelDatas
vector with the edge relation datas
std::vector< GNEEdge * > edges
vector with the edges
void filterElements(const std::vector< const GUIGlObject * > &objects)
filter elements
std::vector< GNEJunction * > junctions
vector with the junctions
std::vector< GNEWalkingArea * > walkingAreas
vector with the walkingAreas
std::vector< GNEDemandElement * > demandElements
vector with the demand elements
ViewObjectsContainer(const ViewObjectsContainer &)=delete
Invalidated copy constructor.
class used to group all variables related with objects under cursor after a click over view
GNEEdgeRelData * getEdgeRelDataElementFront() const
get edge rel data element or a pointer to nullptr
void updateObjects()
update objects (using gViewObjectsHandler)
void filterConnections()
filter (remove) connections
void filterAllExcept(GUIGlObjectType exception)
filter all elements except the given GLO type
GNEEdgeData * getEdgeDataElementFront() const
get edge data element or a pointer to nullptr
const std::vector< const GNEJunction * > & getMergingJunctions() const
get merging junctions
void updateShapeElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update shape elements
void updateMergingJunctions()
update merging junctions
GNEConnection * getConnectionFront() const
get front connection or a pointer to nullptr
const std::vector< GNEAttributeCarrier * > & getAttributeCarriers() const
get vector with ACs
void filterEdges()
filter (remove) edges
GNEPoly * getPolyFront() const
get front Poly or a pointer to nullptr
void updateDemandElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update demand elements
void filterLockedElements(const std::vector< GUIGlObjectType > ignoreFilter={})
filter locked elements (except the ignoreFilter)
void filterCrossings()
filter (remove) crossings
GNEPOI * getPOIFront() const
get front POI or a pointer to nullptr
GNEInternalLane * getInternalLaneFront() const
get front internal lane or a pointer to nullptr
const GNEViewNet * myViewNet
pointer to viewNet
void filterNetworkElements()
filter (remove) network elements
void processGUIGlObjects(const GUIViewObjectsHandler::GLObjectsSortedContainer &objectsContainer)
process GL objects
std::vector< const GNEJunction * > myMergingJunctions
merging junctions
const std::vector< GNETAZ * > & getTAZs() const
get vector with TAZs
ViewObjectsContainer myViewObjects
objects container with selected objects
GNEWalkingArea * getWalkingAreaFront() const
get front walkingArea or a pointer to nullptr
void filterBySuperMode()
filter by supermode
GNEEdge * getEdgeFront() const
get front edge or a pointer to nullptr
GNEAttributeCarrier * getAttributeCarrierFront() const
get front attribute carrier or a pointer to nullptr
ViewObjectsSelector & operator=(const ViewObjectsSelector &)=delete
Invalidated assignment operator.
ViewObjectsSelector(const ViewObjectsSelector &)=delete
Invalidated copy constructor.
void updateAdditionalElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update additional elements
void updateGenericDataElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update generic data elements
void filterDemandElements(const bool includeRoutes)
filter (remove) demand elements
void updateTAZElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update TAZ elements
const std::vector< GNEDemandElement * > & getDemandElements() const
get vector with Demand Elements
void filterWalkingAreas()
filter (remove) walkingAreas
GNETAZ * getTAZFront() const
get front TAZ or a pointer to nullptr
void filterAdditionals(const bool includeStoppigPlaces, const bool includeTAZs)
filter (remove) additionals
GNELane * getLaneFront() const
get front lane or a pointer to nullptr
void updateNetworkElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update network elements
GNEGenericData * getGenericDataElementFront() const
get generic data element or a pointer to nullptr
void fillSumoBaseObject(CommonXMLStructure::SumoBaseObject *baseObjet) const
fill the given SUMO base object with the current single objects
GNEAdditional * getAdditionalFront() const
get front additional element or a pointer to nullptr
GNELane * getLaneFrontNonLocked() const
get front lane or a pointer to nullptr checking if is locked
const GUIGlObject * getGUIGlObjectFront() const
get front GUIGLObject or a pointer to nullptr
GNENetworkElement * getNetworkElementFront() const
get front network element or a pointer to nullptr
const std::vector< GNEEdge * > & getEdges() const
get vector with edges
GNECrossing * getCrossingFront() const
get front crossing or a pointer to nullptr
GNEJunction * getJunctionFront() const
get front junction or a pointer to nullptr
void filterLanes()
filter (remove) lanes
void filterJunctions()
filter (remove) junctions
GNETAZRelData * getTAZRelDataElementFront() const
get TAZ rel data element or a pointer to nullptr
const std::vector< GUIGlObject * > & getGLObjects() const
get vector with GL objects
void filterShapes()
filter (remove) polys and POIs
const std::vector< GNEJunction * > & getJunctions() const
get vector with junctions
GNEDemandElement * getDemandElementFront() const
get front demand element or a pointer to nullptr
void filterDataElements()
filter (remove) datga elements
const std::vector< GNELane * > & getLanes() const
get lanes
const std::vector< GNEAdditional * > & getAdditionals() const
get vector with additionals
A single child window which contains a view of the simulation area.
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
std::map< double, ObjectContainerLayer > GLObjectsSortedContainer
typedef for pack elements sorted by layer
A point in 2D or 3D with translation and scaling methods.
Definition Position.h:37
struct used to group all variables related with common checkable Buttons
void buildCommonCheckableButtons()
build checkable buttons
CommonCheckableButtons & operator=(const CommonCheckableButtons &)=delete
Invalidated assignment operator.
void updateCommonCheckableButtons()
update Common checkable buttons
void disableCommonCheckableButtons()
hide all options menu checks
CommonCheckableButtons(const CommonCheckableButtons &)=delete
Invalidated copy constructor.
MFXCheckableButton * selectButton
checkable button for edit mode select
void hideCommonCheckableButtons()
hide all Common Checkable Buttons
MFXCheckableButton * inspectButton
checkable button for edit mode inspect
void showCommonCheckableButtons()
show all Common Checkable Buttons
MFXCheckableButton * deleteButton
checkable button for edit mode delete
struct used to group all variables related with Data checkable Buttons
void hideDataCheckableButtons()
hide all Data Checkable Buttons
void showDataCheckableButtons()
show all Data Checkable Buttons
void disableDataCheckableButtons()
hide all options menu checks
void buildDataCheckableButtons()
build checkable buttons
DataCheckableButtons & operator=(const DataCheckableButtons &)=delete
Invalidated assignment operator.
void updateDataCheckableButtons()
update Data checkable buttons
MFXCheckableButton * edgeDataButton
checkable button for edit mode "edgeData"
MFXCheckableButton * edgeRelDataButton
checkable button for edit mode "edgeRelData"
MFXCheckableButton * TAZRelDataButton
checkable button for edit mode "TAZRelData"
DataCheckableButtons(const DataCheckableButtons &)=delete
Invalidated copy constructor.
MFXCheckableButton * meanDataButton
checkable button for edit mode "meanData"
struct used to group all variables related to view options in supermode Data
bool TAZRelOnlyTo() const
check if toggle TAZRel only to checkbox is enabled
void hideDataViewOptionsMenuChecks()
hide all options menu checks
bool showAdditionals() const
check if additionals has to be drawn
DataViewOptions & operator=(const DataViewOptions &)=delete
Invalidated assignment operator.
MFXCheckableButton * menuCheckToggleTAZDrawFill
menu check to toggle TAZ draw fill
bool showDemandElements() const
check if show demand elements checkbox is enabled
bool TAZRelOnlyFrom() const
check if toggle TAZRel only from checkbox is enabled
MFXCheckableButton * menuCheckShowAdditionals
menu check to show Additionals
bool TAZDrawFill() const
check if toggle TAZ draw fill checkbox is enabled
MFXCheckableButton * menuCheckShowShapes
menu check to show Shapes
MFXCheckableButton * menuCheckToggleTAZRelOnlyFrom
menu check to toggle TAZRel only from
GNEViewNet * myViewNet
pointer to net
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
void buildDataViewOptionsMenuChecks()
build menu checks
void getVisibleDataMenuCommands(std::vector< MFXCheckableButton * > &commands) const
get visible demand menu commands
MFXCheckableButton * menuCheckToggleTAZRelDrawing
menu check to toggle TAZ Rel drawing
MFXCheckableButton * menuCheckShowDemandElements
menu check to show Demand Elements
bool showShapes() const
check if shapes has to be drawn
DataViewOptions(const DataViewOptions &)=delete
Invalidated copy constructor.
bool TAZRelDrawing() const
check if toggle TAZRel drawing checkbox is enabled
MFXCheckableButton * menuCheckToggleTAZRelOnlyTo
menu check to toggle TAZRel only to
struct used to group all variables related with Demand checkable Buttons
MFXCheckableButton * routeDistributionButton
checkable button for edit mode create route distributions
MFXCheckableButton * containerButton
checkable button for edit mode create containers
void hideDemandCheckableButtons()
hide all Demand Checkable Buttons
MFXCheckableButton * moveDemandElementsButton
checkable button for edit mode "move demand elements"
MFXCheckableButton * typeButton
checkable button for edit mode create type
DemandCheckableButtons & operator=(const DemandCheckableButtons &)=delete
Invalidated assignment operator.
void buildDemandCheckableButtons()
build checkable buttons
MFXCheckableButton * vehicleButton
checkable button for edit mode create vehicles
MFXCheckableButton * containerPlanButton
checkable button for edit mode create container plans
MFXCheckableButton * routeButton
checkable button for edit mode create routes
void showDemandCheckableButtons()
show all Demand Checkable Buttons
MFXCheckableButton * stopButton
checkable button for edit mode create stops
MFXCheckableButton * personPlanButton
checkable button for edit mode create person plans
MFXCheckableButton * personButton
checkable button for edit mode create persons
DemandCheckableButtons(const DemandCheckableButtons &)=delete
Invalidated copy constructor.
void updateDemandCheckableButtons()
update Demand checkable buttons
MFXCheckableButton * typeDistributionButton
checkable button for edit mode create type distribution
void disableDemandCheckableButtons()
hide all options menu checks
struct used to group all variables related to view options in supermode Demand
MFXCheckableButton * menuCheckShowAllTrips
show all trips
void lockPerson(const GNEDemandElement *person)
lock person
bool showAllPersonPlans() const
check all person plans has to be show
MFXCheckableButton * menuCheckToggleGrid
menu check to show grid button
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
void lockContainer(const GNEDemandElement *container)
lock container
DemandViewOptions & operator=(const DemandViewOptions &)=delete
Invalidated assignment operator.
DemandViewOptions(const DemandViewOptions &)=delete
Invalidated copy constructor.
void buildDemandViewOptionsMenuChecks()
build menu checks
const GNEDemandElement * myLockedPerson
pointer to locked person
const GNEDemandElement * getLockedPerson() const
get locked person
MFXCheckableButton * menuCheckDrawSpreadVehicles
menu check to draw vehicles in begin position or spread in lane
MFXCheckableButton * menuCheckShowOverlappedRoutes
show overlapped routes
GNEViewNet * myViewNet
pointer to net
const GNEDemandElement * getLockedContainer() const
get locked container
bool showShapes() const
check if shapes has to be drawn
void hideDemandViewOptionsMenuChecks()
hide all options menu checks
bool showAllContainerPlans() const
check all container plans has to be show
MFXCheckableButton * menuCheckShowAllPersonPlans
show all person plans
const GNEDemandElement * myLockedContainer
pointer to locked container
MFXCheckableButton * menuCheckShowAllContainerPlans
show all container plans
MFXCheckableButton * menuCheckHideNonInspectedDemandElements
Hide non inspected demand elements.
MFXCheckableButton * menuCheckHideShapes
Hide shapes (Polygons and POIs)
bool drawSpreadVehicles() const
check if vehicles must be drawn spread
bool showNonInspectedDemandElements(const GNEDemandElement *demandElement) const
check if non inspected element has to be hidden
MFXCheckableButton * menuCheckLockPerson
Lock Person.
bool showOverlappedRoutes() const
show overlapped routes
void getVisibleDemandMenuCommands(std::vector< MFXCheckableButton * > &commands) const
get visible demand menu commands
bool showAllTrips() const
check if trips has to be drawn
MFXCheckableButton * menuCheckLockContainer
Lock Container.
struct used to group all variables related with Supermodes
DataEditMode dataEditMode
the current Data edit mode
void buildSuperModeButtons()
build checkable buttons
bool isDefaultView() const
check if default view is enabled
DemandEditMode demandEditMode
the current Demand edit mode
Supermode currentSupermode
the current supermode
EditModes & operator=(const EditModes &)=delete
Invalidated assignment operator.
FXPopup * myNeteditViewsPopup
The netedit views menu.
MFXMenuButtonTooltip * myNeteditViewsButton
The netedit views button.
NetworkEditMode networkEditMode
the current Network edit mode
bool isCurrentSupermodeDemand() const
@check if current supermode is Demand
void setDemandEditMode(DemandEditMode demandMode, const bool force=false)
set Demand edit mode
MFXCheckableButton * dataButton
checkable button for supermode Data
MFXButtonTooltip * myJuPedSimViewButton
The jupedsim view button.
bool isCurrentSupermodeData() const
@check if current supermode is Data
void setView(FXSelector sel)
set view
EditModes(const EditModes &)=delete
Invalidated copy constructor.
GNEViewNet * myViewNet
pointer to net
bool isCurrentSupermodeNetwork() const
@check if current supermode is Network
MFXCheckableButton * networkButton
checkable button for supermode Network
bool isJuPedSimView() const
check if default view is enabled
void setSupermode(Supermode supermode, const bool force)
set supermode
MFXCheckableButton * demandButton
checkable button for supermode Demand
void setNetworkEditMode(NetworkEditMode networkMode, const bool force=false)
set Network edit mode
void setDataEditMode(DataEditMode dataMode, const bool force=false)
set Data edit mode
MFXButtonTooltip * myDefaultViewButton
The default view button.
struct used to group all variables related with edit shapes of NetworkElements
GNENetworkElement * getEditedNetworkElement() const
pointer to edited network element
GNEViewNet * myViewNet
pointer to viewNet
EditNetworkElementShapes & operator=(const EditNetworkElementShapes &)=delete
Invalidated assignment operator.
NetworkEditMode myPreviousNetworkEditMode
the previous edit mode before edit NetworkElement's shapes
EditNetworkElementShapes(const EditNetworkElementShapes &)=delete
Invalidated copy constructor.
GNENetworkElement * myEditedNetworkElement
pointer to edited network element
void startEditCustomShape(GNENetworkElement *element)
start edit custom shape
struct for pack all variables and functions related with Block Icon
static bool checkDrawing(const GUIVisualizationSettings::Detail d, const GNEAttributeCarrier *AC, GUIGlObjectType type, const double exaggeration)
check if icon can be drawn
LockIcon & operator=(const LockIcon &)=delete
Invalidated assignment operator.
static void drawLockIcon(const GUIVisualizationSettings::Detail d, const GNEAttributeCarrier *AC, GUIGlObjectType type, const Position position, const double exaggeration, const double size=0.5, const double offsetx=0, const double offsety=0)
draw lock icon
LockIcon(const LockIcon &)=delete
Invalidated copy constructor.
class used to group all variables related with mouse buttons and key pressed after certain events
bool shiftKeyPressed() const
check if SHIFT is pressed during current event
bool altKeyPressed() const
check if ALT is pressed during current event
MouseButtonKeyPressed(const MouseButtonKeyPressed &)=delete
Invalidated copy constructor.
bool mouseRightButtonPressed() const
check if mouse right button is pressed during current event
MouseButtonKeyPressed & operator=(const MouseButtonKeyPressed &)=delete
Invalidated assignment operator.
bool controlKeyPressed() const
check if CONTROL is pressed during current event
FXEvent * myEventInfo
information of event (must be updated)
bool mouseLeftButtonPressed() const
check if mouse left button is pressed during current event
struct used to group all variables related with movement of groups of elements
void moveSelection(const bool mouseLeftButtonPressed)
move selection
void calculateEdgeSelection(const GNEEdge *clickedEdge)
calculate edge selection
const GNEMoveOffset calculateMoveOffset() const
calculate move offset
bool isCurrentlyMovingMultipleElements() const
check if there are moving elements
void finishMoveSelection()
finish moving selection
bool isMovingSelection() const
check if currently there is element being moved
bool myMovingSelectedEdge
flag for enable moving edge
void resetMovingSelectedEdge()
reset flag for moving edge
MoveMultipleElementModul(const MoveMultipleElementModul &)=delete
Invalidated copy constructor.
std::vector< GNEMoveOperation * > myMoveOperations
move operations
void calculateJunctionSelection()
calculate junction selection
MoveMultipleElementModul & operator=(const MoveMultipleElementModul &)=delete
Invalidated assignment operator.
bool isMovingSelectedEdge() const
flag for moving edge
Position myClickedPosition
original clicked position when moveSelection is called (used for calculate offset during moveSelectio...
struct used to group all variables related with movement of single elements
GNEMoveOperation * myMoveOperation
move operations
MoveSingleElementModul(const MoveSingleElementModul &)=delete
Invalidated copy constructor.
const GNEMoveOffset calculateMoveOffset() const
calculate offset
Position myRelativeClickedPosition
relative position of Clicked Position regarding to originalGeometryPointPosition (Used when user does...
bool beginMoveSingleElementDemandMode()
begin move single element in Demand mode
void moveSingleElement(const bool mouseLeftButtonPressed)
move single element in Network AND Demand mode
GNEMoveElement * getMovedElement() const
get moved element
bool isCurrentlyMovingSingleElement() const
check if there are moving elements
bool beginMoveSingleElementNetworkMode()
begin move single element in Network mode
bool beginMoveNetworkElementShape()
begin move network elementshape
MoveSingleElementModul & operator=(const MoveSingleElementModul &)=delete
Invalidated assignment operator.
void finishMoveSingleElement()
finish moving single elements in Network AND Demand mode
struct used to group all variables related with Network checkable Buttons
void updateNetworkCheckableButtons()
update network checkable buttons
MFXCheckableButton * trafficLightButton
checkable button for edit mode traffic light
NetworkCheckableButtons & operator=(const NetworkCheckableButtons &)=delete
Invalidated assignment operator.
NetworkCheckableButtons(const NetworkCheckableButtons &)=delete
Invalidated copy constructor.
MFXCheckableButton * moveNetworkElementsButton
checkable button for edit mode "move network elements"
void showNetworkCheckableButtons()
show all Network Checkable Buttons
MFXCheckableButton * additionalButton
checkable button for edit mode additional
MFXCheckableButton * crossingButton
checkable button for edit mode crossing
MFXCheckableButton * createEdgeButton
checkable button for edit mode create edge
MFXCheckableButton * prohibitionButton
checkable button for edit mode prohibition
void buildNetworkCheckableButtons()
build checkable buttons
MFXCheckableButton * shapeButton
checkable button for edit mode shape
MFXCheckableButton * connectionButton
checkable button for edit mode connection
void hideNetworkCheckableButtons()
hide all Network Checkable Buttons
MFXCheckableButton * TAZButton
checkable button for edit mode TAZ
void disableNetworkCheckableButtons()
hide all options menu checks
MFXCheckableButton * wireButton
checkable button for edit mode wires
MFXCheckableButton * decalButton
checkable button for edit mode decals
struct used to group all variables related to view options in supermode Network
MFXCheckableButton * menuCheckSelectEdges
checkable button to select only edges
MFXCheckableButton * menuCheckChainEdges
checkable button to the endpoint for a created edge should be set as the new source
MFXCheckableButton * menuCheckShowDemandElements
checkable button to show Demand Elements
bool showConnections() const
check if select show connections checkbox is enabled
MFXCheckableButton * menuCheckMoveElevation
checkable button to apply movement to elevation
NetworkViewOptions(const NetworkViewOptions &)=delete
Invalidated copy constructor.
MFXCheckableButton * menuCheckShowTAZElements
checkable button to show TAZ elements
bool drawSpreadVehicles() const
check if vehicles must be drawn spread
bool editingElevation() const
check if we're editing elevation
void getVisibleNetworkMenuCommands(std::vector< MFXCheckableButton * > &commands) const
get visible network menu commands
MFXCheckableButton * menuCheckAutoOppositeEdge
check checkable to create auto create opposite edge
bool showDemandElements() const
check if show demand elements checkbox is enabled
bool showSubAdditionals() const
check if show sub-additionals
MFXCheckableButton * menuCheckDrawSpreadVehicles
checkable button to draw vehicles in begin position or spread in lane
MFXCheckableButton * menuCheckShowConnections
checkable button to show connections
MFXCheckableButton * menuCheckHideConnections
checkable button to hide connections in connect mode
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
MFXCheckableButton * menuCheckToggleGrid
checkable button to show grid button
MFXCheckableButton * menuCheckMergeAutomatically
checkable button to we should't warn about merging junctions
bool selectEdges() const
check if select edges checkbox is enabled
MFXCheckableButton * menuCheckShowJunctionBubble
checkable button to show connection as bubble in "Move" mode.
bool showTAZElements() const
check if show TAZ Elements
void hideNetworkViewOptionsMenuChecks()
hide all options menu checks
MFXCheckableButton * menuCheckShowAdditionalSubElements
checkable button to show additional sub-elements
void buildNetworkViewOptionsMenuChecks()
build menu checks
MFXCheckableButton * menuCheckChangeAllPhases
checkable button to set change all phases
NetworkViewOptions & operator=(const NetworkViewOptions &)=delete
Invalidated assignment operator.
GNEViewNet * myViewNet
pointer to net
MFXCheckableButton * menuCheckExtendSelection
checkable button to extend to edge nodes
struct used to group all variables related with save elements
MFXButtonTooltip * mySaveMeanDataElements
checkable button for save meanData elements
MFXButtonTooltip * mySaveDataElements
checkable button for save genericdata elements
GNEViewNet * myViewNet
pointer to net
MFXButtonTooltip * mySaveNetwork
checkable button for save network
MFXButtonTooltip * mySaveAdditionalElements
checkable button for save additional elements
SaveElements(const SaveElements &)=delete
Invalidated copy constructor.
MFXButtonTooltip * mySaveSumoConfig
checkable button for save SUMO config
MFXButtonTooltip * mySaveDemandElements
checkable button for save demand elements
FXPopup * mySaveIndividualFilesPopup
The locator menu.
void setSaveIndividualFiles(bool value)
enable or disable save individual files
MFXButtonTooltip * mySaveNeteditConfig
checkable button for save netedit config
MFXMenuButtonTooltip * mySaveIndividualFiles
checkable button for save individual files
void buildSaveElementsButtons()
build save buttons
SaveElements & operator=(const SaveElements &)=delete
Invalidated assignment operator.
struct used to group all variables related with selecting using a square or polygon
void finishRectangleSelection()
finish rectangle selection
void drawRectangleSelection(const RGBColor &color) const
draw rectangle selection
Position selectionCorner1
first corner of the rectangle-selection
void beginRectangleSelection()
begin rectangle selection
bool selectingUsingRectangle
whether we have started rectangle-selection
void moveRectangleSelection()
move rectangle selection
GNEViewNet * myViewNet
pointer to net
void processBoundarySelection(const Boundary &boundary)
Process boundary Selection.
Position selectionCorner2
second corner of the rectangle-selection
bool startDrawing
whether we have started rectangle-selection
SelectingArea(const SelectingArea &)=delete
Invalidated copy constructor.
void processRectangleSelection()
process rectangle Selection
std::vector< GNEEdge * > processEdgeRectangleSelection()
process rectangle Selection (only limited to Edges)
SelectingArea & operator=(const SelectingArea &)=delete
Invalidated assignment operator.
struct used to group all variables related with testing
GNEViewNet * myViewNet
pointer to net
int myTestingHeight
Height of net in testing mode.
TestingMode & operator=(const TestingMode &)=delete
Invalidated assignment operator.
TestingMode(const TestingMode &)=delete
Invalidated copy constructor.
void drawTestingElements(GUIMainWindow *mainWindow)
draw testing element
int myTestingWidth
Width of net in testing mode.
void initTestingMode()
init testing mode
struct used to group all variables related with time format
void buildTimeFormatButtons()
build time format buttons
TimeFormat & operator=(const TimeFormat &)=delete
Invalidated assignment operator.
TimeFormat(const TimeFormat &)=delete
Invalidated copy constructor.
GNEViewNet * myViewNet
pointer to net
MFXButtonTooltip * mySwitchButton
checkable button for switch between timeSteps and HH:MM:SS
void switchTimeFormat()
switch time format
void updateButtonLabel()
update button label
struct used to group all variables related with movement of groups of elements
VehicleOptions(const VehicleOptions &)=delete
Invalidated copy constructor.
void buildVehicleOptionsMenuChecks()
build menu checks
VehicleOptions & operator=(const VehicleOptions &)=delete
Invalidated assignment operator.
void hideVehicleOptionsMenuChecks()
hide all options menu checks
GNEViewNet * myViewNet
pointer to net
struct used to group all variables related with movement of groups of elements
GNEViewNet * myViewNet
pointer to net
VehicleTypeOptions & operator=(const VehicleTypeOptions &)=delete
Invalidated assignment operator.
void buildVehicleTypeOptionsMenuChecks()
build menu checks
VehicleTypeOptions(const VehicleTypeOptions &)=delete
Invalidated copy constructor.
void hideVehicleTypeOptionsMenuChecks()
hide all options menu checks
static std::vector< RGBColor > myRainbowScaledColors
scale (rainbow) colors
static const RGBColor & getRainbowScaledColor(const double min, const double max, const double value)
get rainbow scaled color
static std::vector< GUIGlObject * > filterElementsByLayer(const std::vector< GUIGlObject * > &GLObjects)
filter elements based on the layer
static const std::vector< RGBColor > & getRainbowScaledColors()
get scaled rainbow colors