Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNENetHelper.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// Helper for GNENet
19//
20/****************************************************************************/
21#pragma once
22#include <config.h>
23
25#include <netbuild/NBEdge.h>
27#include <netbuild/NBVehicle.h>
33#include <utils/geom/Boundary.h>
35#include <utils/geom/Triangle.h>
41
42// ===========================================================================
43// class declarations
44// ===========================================================================
45
46class GNEAdditional;
49class GNEConnection;
50class GNECrossing;
51class GNEDataInterval;
52class GNEDataSet;
54class GNEEdge;
55class GNEEdgeType;
56class GNEJunction;
57class GNELane;
58class GNELaneType;
59class GNEMeanData;
60class GNENet;
62class GNEPOI;
63class GNEPoly;
64class GNEUndoList;
65class GNEViewNet;
66class GNEWalkingArea;
67class NBNetBuilder;
68
69// ===========================================================================
70// class definitions
71// ===========================================================================
72
74
77
80 friend class GNERouteHandler;
81 friend class GNEDataHandler;
82 friend class GNEMeanDataHandler;
83 friend class GNEJunction;
84 friend class GNEEdge;
85 friend class GNEDataSet;
86 friend class GNEDataInterval;
87 friend class GNEChange_Junction;
88 friend class GNEChange_EdgeType;
89 friend class GNEChange_Edge;
92 friend class GNEChange_Shape;
95 friend class GNEChange_DataSet;
98 friend class GNEChange_MeanData;
99 friend class GNETLSEditorFrame;
100
101 public:
104
107
110
112 bool isNetworkElementAroundTriangle(GNEAttributeCarrier* AC, const Triangle& triangle) const;
113
117 int getNumberOfNetworkElements() const;
118
120 int getNumberOfDemandElements() const;
121
123 int getNumberOfDataElements() const;
124
126
129
135 GNEAttributeCarrier* retrieveAttributeCarrier(const GUIGlID id, bool hardFail = true) const;
136
141 std::vector<GNEAttributeCarrier*> retrieveAttributeCarriers(SumoXMLTag tag = SUMO_TAG_NOTHING);
142
144 std::vector<GNEAttributeCarrier*> retrieveAttributeCarriers(Supermode supermode, const bool onlySelected);
145
147 std::vector<GNEAttributeCarrier*> getSelectedAttributeCarriers(const bool ignoreCurrentSupermode);
148
150
153
158 GNEJunction* retrieveJunction(const std::string& id, bool hardFail = true) const;
159
161 const std::map<std::string, GNEJunction*>& getJunctions() const;
162
164 std::vector<GNEJunction*> getSelectedJunctions() const;
165
168
170 void clearJunctions();
171
173 void addPrefixToJunctions(const std::string& prefix);
174
176 void updateJunctionID(GNEJunction* junction, const std::string& newID);
177
180
182
185
190 GNECrossing* retrieveCrossing(const GUIGlObject* glObject, bool hardFail = true) const;
191
193 const std::unordered_map<const GUIGlObject*, GNECrossing*>& getCrossings() const;
194
196 std::vector<GNECrossing*> getSelectedCrossings() const;
197
200
202
205
210 GNEWalkingArea* retrieveWalkingArea(const GUIGlObject* glObject, bool hardFail = true) const;
211
213 const std::unordered_map<const GUIGlObject*, GNEWalkingArea*>& getWalkingAreas() const;
214
216 std::vector<GNEWalkingArea*> getSelectedWalkingAreas() const;
217
220
222
225
230 GNEEdgeType* retrieveEdgeType(const std::string& id, bool hardFail = true) const;
231
234
236 const std::map<std::string, GNEEdgeType*>& getEdgeTypes() const;
237
239 void clearEdgeTypes();
240
242 void updateEdgeTypeID(GNEEdgeType* edgeType, const std::string& newID);
243
245 std::string generateEdgeTypeID() const;
246
248
251
256 GNEEdge* retrieveEdge(const std::string& id, bool hardFail = true) const;
257
263 std::vector<GNEEdge*> retrieveEdges(GNEJunction* from, GNEJunction* to) const;
264
266 const std::map<std::string, GNEEdge*>& getEdges() const;
267
271 std::vector<GNEEdge*> getSelectedEdges() const;
272
275
277 void clearEdges();
278
280 void addPrefixToEdges(const std::string& prefix);
281
283 std::string generateEdgeID() const;
284
286 void updateEdgeID(GNEEdge* edge, const std::string& newID);
287
289 int getNumberOfSelectedEdges() const;
290
292
295
301 GNELane* retrieveLane(const std::string& id, bool hardFail = true, bool checkVolatileChange = false) const;
302
308 GNELane* retrieveLane(const GUIGlObject* glObject, bool hardFail = true) const;
309
311 const std::unordered_map<const GUIGlObject*, GNELane*>& getLanes() const;
312
314 std::vector<GNELane*> getSelectedLanes() const;
315
317 int getNumberOfSelectedLanes() const;
318
320
323
328 GNEConnection* retrieveConnection(const std::string& id, bool hardFail = true) const;
329
335 GNEConnection* retrieveConnection(const GUIGlObject* glObject, bool hardFail = true) const;
336
338 const std::unordered_map<const GUIGlObject*, GNEConnection*>& getConnections() const;
339
341 std::vector<GNEConnection*> getSelectedConnections() const;
342
345
347
350
356 GNEInternalLane* retrieveInternalLane(const GUIGlObject* glObject, bool hardFail = true) const;
357
359
362
368 GNEAdditional* retrieveAdditional(SumoXMLTag type, const std::string& id, bool hardFail = true) const;
369
376 GNEAdditional* retrieveAdditionals(const std::vector<SumoXMLTag> types, const std::string& id, bool hardFail = true) const;
377
382 GNEAdditional* retrieveAdditional(const GUIGlObject* glObject, bool hardFail = true) const;
383
389 GNEAdditional* retrieveRerouterInterval(const std::string& rerouterID, const SUMOTime begin, const SUMOTime end) const;
390
392 const std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEAdditional*>, std::hash<int> >& getAdditionals() const;
393
395 std::vector<GNEAdditional*> getSelectedAdditionals() const;
396
398 std::vector<GNEAdditional*> getSelectedShapes() const;
399
401 int getNumberOfAdditionals() const;
402
404 void clearAdditionals();
405
407 void updateAdditionalID(GNEAdditional* additional, const std::string& newID);
408
410 std::string generateAdditionalID(SumoXMLTag type) const;
411
414
417
419 int getNumberOfSelectedPolygons() const;
420
423
426
428 int getNumberOfSelectedPOIs() const;
429
431 int getNumberOfSelectedTAZs() const;
432
434 int getNumberOfSelectedWires() const;
435
437 std::vector<std::string> getPOIParamKeys() const;
439
442
446 GNETAZSourceSink* retrieveTAZSourceSink(const GNEAttributeCarrier* sourceSink, bool hardFail = true) const;
447
449 const std::unordered_map<SumoXMLTag, std::unordered_map<const GNEAttributeCarrier*, GNETAZSourceSink*>, std::hash<int> >& getTAZSourceSinks() const;
450
452 int getNumberOfTAZSourceSinks() const;
453
455 void clearTAZSourceSinks();
456
458
461
466 GNEDemandElement* retrieveDemandElement(SumoXMLTag type, const std::string& id, bool hardFail = true) const;
467
473 GNEDemandElement* retrieveDemandElements(const std::vector<SumoXMLTag> types, const std::string& id, bool hardFail = true) const;
474
479 GNEDemandElement* retrieveDemandElement(const GUIGlObject* glObject, bool hardFail = true) const;
480
482 std::vector<GNEDemandElement*> getSelectedDemandElements() const;
483
485 const std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEDemandElement*>, std::hash<int> >& getDemandElements() const;
486
488 std::string generateDemandElementID(SumoXMLTag tag) const;
489
492
494 void clearDemandElements();
495
497 void updateDemandElementID(GNEDemandElement* demandElement, const std::string& newID);
498
500 void addDefaultVTypes();
501
503 int getStopIndex();
504
507
509 int getNumberOfSelectedRoutes() const;
510
512 int getNumberOfSelectedVehicles() const;
513
515 int getNumberOfSelectedPersons() const;
516
519
521 int getNumberOfSelectedWalks() const;
522
524 int getNumberOfSelectedRides() const;
525
528
531
534
536 int getNumberOfSelectedStops() const;
537
539
542
546 GNEDataSet* retrieveDataSet(const std::string& id, bool hardFail = true) const;
547
549 const std::map<const std::string, GNEDataSet*>& getDataSets() const;
550
552 std::string generateDataSetID() const;
553
555
558
562 GNEDataInterval* retrieveDataInterval(const GNEAttributeCarrier* AC, bool hardFail = true) const;
563
565 const std::unordered_map<const GNEAttributeCarrier*, GNEDataInterval*>& getDataIntervals() const;
566
568
571
575 GNEGenericData* retrieveGenericData(const GUIGlObject* glObject, bool hardFail = true) const;
576
578 std::vector<GNEGenericData*> getSelectedGenericDatas() const;
579
581 const std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEGenericData*>, std::hash<int> >& getGenericDatas() const;
582
584 std::vector<GNEGenericData*> retrieveGenericDatas(const SumoXMLTag genericDataTag, const double begin, const double end);
585
587 int getNumberOfGenericDatas() const;
588
591
594
597
599 std::set<std::string> retrieveGenericDataParameters(const std::string& genericDataTag, const double begin, const double end) const;
600
602 std::set<std::string> retrieveGenericDataParameters(const std::string& dataSetID, const std::string& genericDataTag,
603 const std::string& beginStr, const std::string& endStr) const;
604
606
609
615 GNEMeanData* retrieveMeanData(SumoXMLTag type, const std::string& id, bool hardFail = true) const;
616
618 const std::unordered_map<SumoXMLTag, std::map<const std::string, GNEMeanData*>, std::hash<int> >& getMeanDatas() const;
619
621 int getNumberOfMeanDatas() const;
622
624 void clearMeanDatas();
625
627 void updateMeanDataID(GNEMeanData* meanData, const std::string& newID);
628
630 std::string generateMeanDataID(SumoXMLTag type) const;
631
633
634 protected:
637
639 void insertJunction(GNEJunction* junction);
640
642 void deleteSingleJunction(GNEJunction* junction);
643
645
648
650 void insertEdgeType(GNEEdgeType* edgeType);
651
653 void deleteEdgeType(GNEEdgeType* edgeType);
654
656
660 void insertEdge(GNEEdge* edge);
661
663 void deleteSingleEdge(GNEEdge* edge);
664
666
669
671 void insertLane(GNELane* lane);
672
674 void deleteLane(GNELane* lane);
675
677
680
682 void insertCrossing(GNECrossing* crossing);
683
685 void deleteCrossing(GNECrossing* crossing);
686
688
691
693 void insertWalkingArea(GNEWalkingArea* walkingArea);
694
696 void deleteWalkingArea(GNEWalkingArea* walkingArea);
697
699
702
704 void insertConnection(GNEConnection* connection);
705
707 void deleteConnection(GNEConnection* connection);
708
710
713
715 void insertInternalLane(GNEInternalLane* internalLane);
716
718 void deleteInternalLane(GNEInternalLane* internalLane);
719
721
724
726 void insertAdditional(GNEAdditional* additional);
727
729 void deleteAdditional(GNEAdditional* additional);
730
732
735
737 void insertTAZSourceSink(GNETAZSourceSink* sourceSink);
738
740 void deleteTAZSourceSink(GNETAZSourceSink* sourceSink);
741
743
746
748 void insertDemandElement(GNEDemandElement* demandElement);
749
751 void deleteDemandElement(GNEDemandElement* demandElement, const bool updateFrames);
752
754
757
759 void insertDataSet(GNEDataSet* dataSet);
760
762 void deleteDataSet(GNEDataSet* dataSet);
763
765
768
770 void insertDataInterval(const GNEAttributeCarrier* AC, GNEDataInterval* dataInterval);
771
773 void deleteDataInterval(GNEDataInterval* dataInterval);
774
776
779
781 void insertGenericData(GNEGenericData* genericData);
782
784 void deleteGenericData(GNEGenericData* genericData);
785
787
790
792 void insertMeanData(GNEMeanData* meanData);
793
795 void deleteMeanData(GNEMeanData* meanData);
796
798
800 void updateDemandElementFrames(const GNETagProperties* tagProperty);
801
803 void retrieveAttributeCarriersRecursively(const GNETagProperties* tag, std::vector<GNEAttributeCarrier*>& ACs);
804
805 private:
808
811
814
817
820
823
825 std::map<std::string, GNEJunction*> myJunctions;
826
828 std::unordered_map<const GUIGlObject*, GNECrossing*> myCrossings;
829
831 std::unordered_map<const GUIGlObject*, GNEWalkingArea*> myWalkingAreas;
832
834 std::map<std::string, GNEEdgeType*> myEdgeTypes;
835
837 std::map<std::string, GNEEdge*> myEdges;
838
840 std::unordered_map<const GUIGlObject*, GNELane*> myLanes;
841
843 std::unordered_map<const GUIGlObject*, GNEConnection*> myConnections;
844
846 std::unordered_map<const GUIGlObject*, GNEInternalLane*> myInternalLanes;
847
849 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEAdditional*>, std::hash<int> > myAdditionalIDs;
850
852 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEAdditional*>, std::hash<int> > myAdditionals;
853
855 std::unordered_map<SumoXMLTag, std::unordered_map<const GNEAttributeCarrier*, GNETAZSourceSink*>, std::hash<int> > myTAZSourceSinks;
856
858 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEDemandElement*>, std::hash<int> > myDemandElementIDs;
859
861 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEDemandElement*>, std::hash<int> > myDemandElements;
862
864 std::map<const std::string, GNEDataSet*> myDataSets;
865
867 std::unordered_map<const GNEAttributeCarrier*, GNEDataInterval*> myDataIntervals;
868
870 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEGenericData*>, std::hash<int> > myGenericDatas;
871
873 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEMeanData*>, std::hash<int> > myMeanDatas;
874
877
880
883 };
884
887
888 public:
890 ACTemplate(GNENet* net);
891
893 void buildTemplates();
894
896 ~ACTemplate();
897
899 std::map<SumoXMLTag, GNEAttributeCarrier*> getACTemplates() const;
900
903
905 GNEAttributeCarrier* getTemplateAC(const std::string& selectorText) const;
906
907 private:
909 GNENet* myNet = nullptr;
910
912 std::map<SumoXMLTag, GNEAttributeCarrier*> myTemplates;
913
915 ACTemplate() = delete;
916
918 ACTemplate(const ACTemplate&) = delete;
919
921 ACTemplate& operator=(const ACTemplate& src) = delete;
922 };
923
926
927 public:
929 typedef std::map<std::string, std::unordered_set<const GNEAttributeCarrier*> > ACsbyFilename;
930
933
935 void updateNeteditConfig();
936
939
941 void addAdditionalFilename(const GNEAttributeCarrier* additionalElement);
942
944 void updateAdditionalEmptyFilenames(const std::string& file);
945
947 const std::vector<std::string>& getAdditionalFilenames() const;
948
951
953 bool existAdditionalFilename(const std::string& file) const;
954
956
959
961 void addDemandFilename(const GNEAttributeCarrier* demandElement);
962
964 void updateDemandEmptyFilenames(const std::string& file);
965
967 const std::vector<std::string>& getDemandFilenames() const;
968
971
973 bool existDemandFilename(const std::string& file) const;
974
976
979
981 void addDataFilename(const GNEAttributeCarrier* dataElement);
982
984 void updateDataEmptyFilenames(const std::string& file);
985
987 const std::vector<std::string>& getDataFilenames() const;
988
991
993 bool existDataFilename(const std::string& file) const;
994
996
999
1001 void addMeanDataFilename(const GNEAttributeCarrier* meanDataElement);
1002
1004 void updateMeanDataEmptyFilenames(const std::string& file);
1005
1007 const std::vector<std::string>& getMeanDataFilenames() const;
1008
1011
1013 bool existMeanDataFilename(const std::string& file) const;
1014
1016
1017 private:
1020
1022 std::vector<std::string> myAdditionalElementsSavingFiles;
1023
1025 std::vector<std::string> myDemandElementsSavingFiles;
1026
1028 std::vector<std::string> myDataElementsSavingFiles;
1029
1031 std::vector<std::string> myMeanDataElementsSavingFiles;
1032
1034 std::string parsingSavingFiles(const std::vector<std::string>& savingFiles) const;
1035
1038
1041
1044 };
1045
1048
1049 public:
1051 SavingStatus(GNENet* net);
1052
1055
1057 void requireSaveSumoConfig();
1058
1060 void SumoConfigSaved();
1061
1063 bool isSumoConfigSaved() const;
1064
1066
1069
1072
1074 void neteditConfigSaved();
1075
1077 bool isNeteditConfigSaved() const;
1078
1080
1083
1085 void requireSaveNetwork();
1086
1088 void networkSaved();
1089
1091 bool isNetworkSaved() const;
1092
1094
1097
1099 void requireSaveTLS();
1100
1102 void TLSSaved();
1103
1105 bool isTLSSaved() const;
1106
1108
1111
1113 void requireSaveEdgeType();
1114
1116 void edgeTypeSaved();
1117
1119 bool isEdgeTypeSaved() const;
1120
1122
1125
1128
1130 void additionalsSaved();
1131
1133 bool isAdditionalsSaved() const;
1134
1136
1139
1142
1144 void demandElementsSaved();
1145
1147 bool isDemandElementsSaved() const;
1148
1150
1153
1156
1158 void dataElementsSaved();
1159
1161 bool isDataElementsSaved() const;
1162
1164
1167
1169 void requireSaveMeanDatas();
1170
1172 void meanDatasSaved();
1173
1175 bool isMeanDatasSaved() const;
1176
1178
1181
1184
1187
1190
1193
1196
1198
1199 private:
1202
1205
1208
1210 bool myNetworkSaved = true;
1211
1213 bool myTLSSaved = true;
1214
1216 bool myEdgeTypeSaved = true;
1217
1220
1223
1226
1229
1231 SavingStatus() = delete;
1232
1234 SavingStatus(const SavingStatus&) = delete;
1235
1238 };
1239
1242 FXDECLARE_ABSTRACT(GNEChange_ReplaceEdgeInTLS)
1243
1244 public:
1247
1250
1252 void undo();
1253
1255 void redo();
1256
1258 std::string undoName() const;
1259
1261 std::string redoName() const;
1262
1264 bool trueChange();
1265
1266 private:
1269
1272
1275 };
1276};
Supermode
@brie enum for supermodes
long long int SUMOTime
Definition GUI.h:36
unsigned int GUIGlID
Definition GUIGlObject.h:44
SumoXMLTag
Numbers representing SUMO-XML - element names.
@ SUMO_TAG_NOTHING
invalid tag, must be the last one
The main window of Netedit.
the function-object for an editing operation (abstract base)
Definition GNEChange.h:56
Result
list of possible results when closing the dialog
Definition GNEDialog.h:70
modul for AC Templates
std::map< SumoXMLTag, GNEAttributeCarrier * > myTemplates
map with templates
GNENet * myNet
pointer to net
ACTemplate & operator=(const ACTemplate &src)=delete
Invalidated assignment operator.
std::map< SumoXMLTag, GNEAttributeCarrier * > getACTemplates() const
get all AC templates
void buildTemplates()
build templates
ACTemplate()=delete
Invalidated default constructor.
ACTemplate(const ACTemplate &)=delete
Invalidated copy constructor.
GNEAttributeCarrier * getTemplateAC(const SumoXMLTag tag) const
get template AC by tag
struct used for saving all attribute carriers of net, in different formats
std::vector< GNEEdge * > retrieveEdges(GNEJunction *from, GNEJunction *to) const
get all edges by from and to GNEJunction
const std::unordered_map< SumoXMLTag, std::unordered_map< const GUIGlObject *, GNEDemandElement * >, std::hash< int > > & getDemandElements() const
get demand elements
GNETAZSourceSink * retrieveTAZSourceSink(const GNEAttributeCarrier *sourceSink, bool hardFail=true) const
Returns the named sourceSink.
void insertWalkingArea(GNEWalkingArea *walkingArea)
insert walkingArea in container
GNEAttributeCarrier * retrieveAttributeCarrier(const GUIGlID id, bool hardFail=true) const
get a single attribute carrier based on a GLID
int getNumberOfSelectedAdditionals() const
get number of selected additionals (Including POIs, Polygons, TAZs and Wires)
const std::unordered_map< const GUIGlObject *, GNEConnection * > & getConnections() const
get connections
int getNumberOfSelectedJpsObstacles() const
get number of selected obstacles
int getNumberOfSelectedConnections() const
get number of selected connections
void deleteDataSet(GNEDataSet *dataSet)
delete data set of container
int myNumberOfDemandElements
number of demand elemements inserted in AttributeCarriers (excluding default vTypes)
std::unordered_map< SumoXMLTag, std::unordered_map< const GUIGlObject *, GNEGenericData * >, std::hash< int > > myGenericDatas
map with the tag and pointer to all generic datas
void addPrefixToJunctions(const std::string &prefix)
add prefix to all junctions
void insertLane(GNELane *lane)
insert lane in container
int getNumberOfSelectedEdgeRelDatas() const
get number of selected edge rel datas
int getNumberOfSelectedCrossings() const
get number of selected crossings
GNEEdgeType * registerEdgeType(GNEEdgeType *edgeType)
registers a edge in containers
std::vector< GNEAdditional * > getSelectedShapes() const
get selected shapes
GNELane * retrieveLane(const std::string &id, bool hardFail=true, bool checkVolatileChange=false) const
get lane by id
std::map< const std::string, GNEDataSet * > myDataSets
map with the ID and pointer to all datasets of net
void insertDataSet(GNEDataSet *dataSet)
Insert a data set in container.
int getNumberOfSelectedRides() const
get number of selected rides
void clearDemandElements()
clear demand elements
void clearTAZSourceSinks()
clear sourceSinks
std::unordered_map< const GUIGlObject *, GNEInternalLane * > myInternalLanes
map with internal lanes
const std::unordered_map< const GUIGlObject *, GNECrossing * > & getCrossings() const
get crossings
void insertGenericData(GNEGenericData *genericData)
insert generic data in container
GNEEdge * registerEdge(GNEEdge *edge)
registers an edge with containers
void deleteDemandElement(GNEDemandElement *demandElement, const bool updateFrames)
delete demand element of container
void insertDataInterval(const GNEAttributeCarrier *AC, GNEDataInterval *dataInterval)
insert data interval in container
const std::unordered_map< SumoXMLTag, std::unordered_map< const GUIGlObject *, GNEGenericData * >, std::hash< int > > & getGenericDatas() const
get all generic datas
int getNumberOfSelectedPersonTrips() const
get number of selected person trips
std::string generateDemandElementID(SumoXMLTag tag) const
generate demand element id
int getNumberOfMeanDatas() const
get number of meanDatas
GNECrossing * retrieveCrossing(const GUIGlObject *glObject, bool hardFail=true) const
get Crossing by AC
void addPrefixToEdges(const std::string &prefix)
add prefix to all edges
void remapJunctionAndEdgeIds()
remap junction and edge IDs
std::vector< GNEAttributeCarrier * > retrieveAttributeCarriers(SumoXMLTag tag=SUMO_TAG_NOTHING)
get the attribute carriers based on Type
AttributeCarriers()=delete
Invalidated default constructor.
void clearEdgeTypes()
clear edgeTypes
std::map< std::string, GNEJunction * > myJunctions
map with the ID and pointer to junctions of net
std::string generateEdgeID() const
generate edge ID
int getNumberOfSelectedTranships() const
get number of selected tranships
const std::unordered_map< SumoXMLTag, std::unordered_map< const GNEAttributeCarrier *, GNETAZSourceSink * >, std::hash< int > > & getTAZSourceSinks() const
get sourceSinks
int getNumberOfSelectedVehicles() const
get number of selected vehicles
int getNumberOfSelectedWalks() const
get number of selected walks
void deleteEdgeType(GNEEdgeType *edgeType)
delete edge type from container
int getNumberOfSelectedJpsWalkableAreas() const
get number of selected walkable areas
void deleteInternalLane(GNEInternalLane *internalLane)
delete internalLane from container
std::unordered_map< const GUIGlObject *, GNEConnection * > myConnections
map with connetions
void deleteConnection(GNEConnection *connection)
delete connection from container
void clearAdditionals()
clear additionals
GNEAdditional * retrieveAdditional(SumoXMLTag type, const std::string &id, bool hardFail=true) const
Returns the named additional.
std::vector< GNEGenericData * > retrieveGenericDatas(const SumoXMLTag genericDataTag, const double begin, const double end)
retrieve generic datas within the given interval
void insertInternalLane(GNEInternalLane *internalLane)
insert internalLane in container
int getStopIndex()
get (and update) stop index
std::set< std::string > retrieveGenericDataParameters(const std::string &genericDataTag, const double begin, const double end) const
return a set of parameters for the given data Interval
std::vector< GNEWalkingArea * > getSelectedWalkingAreas() const
return all selected walkingAreas
GNENet * myNet
pointer to net
void deleteSingleJunction(GNEJunction *junction)
delete junction from container
GNEMeanData * retrieveMeanData(SumoXMLTag type, const std::string &id, bool hardFail=true) const
Returns the named meanData.
GNEJunction * registerJunction(GNEJunction *junction)
registers a junction in containers
const std::unordered_map< SumoXMLTag, std::map< const std::string, GNEMeanData * >, std::hash< int > > & getMeanDatas() const
get meanDatas
int getNumberOfSelectedWalkingAreas() const
get number of selected walkingAreas
GNEWalkingArea * retrieveWalkingArea(const GUIGlObject *glObject, bool hardFail=true) const
get WalkingArea by GlObject
GNEJunction * retrieveJunction(const std::string &id, bool hardFail=true) const
get junction by id
const std::map< const std::string, GNEDataSet * > & getDataSets() const
get demand elements
int myNumberOfDataElements
number of data elemements inserted in AttributeCarriers
std::vector< GNEDemandElement * > getSelectedDemandElements() const
get selected demand elements
void updateJunctionID(GNEJunction *junction, const std::string &newID)
update junction ID in container
void deleteGenericData(GNEGenericData *genericData)
delete generic data of container
void insertCrossing(GNECrossing *crossing)
insert crossing in container
int getNumberOfSelectedWires() const
get number of selected Wires
std::string generateMeanDataID(SumoXMLTag type) const
generate meanData id
std::unordered_map< SumoXMLTag, std::map< const std::string, GNEMeanData * >, std::hash< int > > myMeanDatas
map with the tag and pointer to meanData elements of net
void insertMeanData(GNEMeanData *meanData)
Insert a meanData element in container.
GNEDataSet * retrieveDataSet(const std::string &id, bool hardFail=true) const
Returns the named data set.
int getNumberOfSelectedTAZs() const
get number of selected TAZs
void deleteWalkingArea(GNEWalkingArea *walkingArea)
delete walkingArea from container
int getNumberOfSelectedTransport() const
get number of selected transports
void updateMeanDataID(GNEMeanData *meanData, const std::string &newID)
update meanData ID in container
std::vector< GNELane * > getSelectedLanes() const
get selected lanes
void insertConnection(GNEConnection *connection)
insert connection in container
std::vector< GNEAdditional * > getSelectedAdditionals() const
get selected additionals
int getNumberOfSelectedJunctions() const
get number of selected junctions
const std::map< std::string, GNEEdge * > & getEdges() const
map with the ID and pointer to edges of net
std::unordered_map< SumoXMLTag, std::map< const std::string, GNEAdditional * >, std::hash< int > > myAdditionalIDs
map with the tag and pointer to additional elements of net, sorted by IDs
int getNumberOfDataElements() const
get number of current data elements saved in AttributeCarriers
int getNumberOfGenericDatas() const
Return the number of generic datas.
void updateAdditionalID(GNEAdditional *additional, const std::string &newID)
update additional ID in container
int getNumberOfSelectedDemandElements() const
get number of selected demand elements
std::unordered_map< SumoXMLTag, std::unordered_map< const GNEAttributeCarrier *, GNETAZSourceSink * >, std::hash< int > > myTAZSourceSinks
map with the tag and pointer to TAZSourceSinks elements of net
int getNumberOfSelectedPersons() const
get number of selected persons
int getNumberOfSelectedPureAdditionals() const
get number of selected pure additionals (Except POIs, Polygons, TAZs and Wires)
GNEEdgeType * retrieveEdgeType(const std::string &id, bool hardFail=true) const
get edge type by id
AttributeCarriers(const AttributeCarriers &)=delete
Invalidated copy constructor.
int myNumberOfNetworkElements
number of network elemements inserted in AttributeCarriers
void deleteMeanData(GNEMeanData *meanData)
delete meanData element of container
GNEAdditional * retrieveAdditionals(const std::vector< SumoXMLTag > types, const std::string &id, bool hardFail=true) const
Returns the named additional.
int getNumberOfSelectedRoutes() const
get number of selected routes
void addDefaultVTypes()
add default VTypes
int getNumberOfSelectedPOIs() const
get number of selected POIs
void deleteSingleEdge(GNEEdge *edge)
delete edge from container
GNEDemandElement * retrieveDemandElements(const std::vector< SumoXMLTag > types, const std::string &id, bool hardFail=true) const
Returns the named demand element.
std::string generateAdditionalID(SumoXMLTag type) const
generate additional id
void deleteAdditional(GNEAdditional *additional)
delete additional element of container
int getNumberOfDemandElements() const
get number of current demand elements saved in AttributeCarriers (default vTypes are NOT included)
int getNumberOfSelectedPolygons() const
get number of selected polygons
std::vector< GNEJunction * > getSelectedJunctions() const
return selected junctions
std::unordered_map< SumoXMLTag, std::unordered_map< const GUIGlObject *, GNEAdditional * >, std::hash< int > > myAdditionals
map with the tag and pointer to additional elements of net
int getNumberOfAdditionals() const
get number of additionals
std::unordered_map< SumoXMLTag, std::map< const std::string, GNEDemandElement * >, std::hash< int > > myDemandElementIDs
map with the tag and pointer to demand elements of net, sorted by IDs
void updateDemandElementID(GNEDemandElement *demandElement, const std::string &newID)
update demand element ID in container
bool isNetworkElementAroundTriangle(GNEAttributeCarrier *AC, const Triangle &triangle) const
check if shape of given AC (network element) is around the given triangle
void insertDemandElement(GNEDemandElement *demandElement)
Insert a demand element in container.
void insertTAZSourceSink(GNETAZSourceSink *sourceSink)
Insert a sourceSink element in container.
void updateEdgeID(GNEEdge *edge, const std::string &newID)
update edge ID in container
std::map< std::string, GNEEdgeType * > myEdgeTypes
map with the ID and pointer to edgeTypes of net
GNEDataInterval * retrieveDataInterval(const GNEAttributeCarrier *AC, bool hardFail=true) const
Returns the data interval.
std::vector< GNECrossing * > getSelectedCrossings() const
return all selected crossings
int getNumberOfSelectedLanes() const
get number of selected lanes
GNEAdditional * retrieveRerouterInterval(const std::string &rerouterID, const SUMOTime begin, const SUMOTime end) const
Returns the rerouter interval defined by given begin and end.
int getNumberOfSelectedEdgeDatas() const
get number of selected edge datas
void updateEdgeTypeID(GNEEdgeType *edgeType, const std::string &newID)
update edgeType ID in container
GNEInternalLane * retrieveInternalLane(const GUIGlObject *glObject, bool hardFail=true) const
get InternalLane by GUIGlObject
void updateDemandElementFrames(const GNETagProperties *tagProperty)
update demand element frames (called after insert/delete demand element)
void insertAdditional(GNEAdditional *additional)
Insert a additional element in container.
void retrieveAttributeCarriersRecursively(const GNETagProperties *tag, std::vector< GNEAttributeCarrier * > &ACs)
retrieve attribute carriers recursively
void insertEdgeType(GNEEdgeType *edgeType)
insert edge type in container
GNEEdge * retrieveEdge(const std::string &id, bool hardFail=true) const
get edge by id
const std::unordered_map< const GUIGlObject *, GNELane * > & getLanes() const
get lanes
const std::unordered_map< const GNEAttributeCarrier *, GNEDataInterval * > & getDataIntervals() const
get all data intervals of network
int getNumberOfSelectedEdgeTAZRel() const
get number of selected edge TAZ Rels
std::vector< GNEGenericData * > getSelectedGenericDatas() const
get selected generic datas
void deleteLane(GNELane *lane)
delete lane from container
void insertJunction(GNEJunction *junction)
insert junction in container
std::vector< GNEEdge * > getSelectedEdges() const
return all edges
int getNumberOfNetworkElements() const
functions related with number of elements sorted by categories
const std::map< std::string, GNEJunction * > & getJunctions() const
get junctions
int getNumberOfSelectedEdges() const
get number of selected edges
const std::map< std::string, GNEEdgeType * > & getEdgeTypes() const
map with the ID and pointer to edgeTypes of net
void clearMeanDatas()
clear meanDatas
std::unordered_map< const GUIGlObject *, GNELane * > myLanes
map with lanes
GNEDemandElement * retrieveDemandElement(SumoXMLTag type, const std::string &id, bool hardFail=true) const
Returns the named demand element.
std::vector< GNEConnection * > getSelectedConnections() const
get selected connections
std::unordered_map< SumoXMLTag, std::unordered_map< const GUIGlObject *, GNEDemandElement * >, std::hash< int > > myDemandElements
map with the tag and pointer to demand elements elements of net
void clearJunctions()
clear junctions
const std::unordered_map< const GUIGlObject *, GNEWalkingArea * > & getWalkingAreas() const
get walkingAreas
std::unordered_map< const GNEAttributeCarrier *, GNEDataInterval * > myDataIntervals
map with all data intervals of network
void deleteCrossing(GNECrossing *crossing)
delete crossing from container
std::unordered_map< const GUIGlObject *, GNEWalkingArea * > myWalkingAreas
set with walkingAreas
GNEDemandElement * getDefaultType() const
get default type
const std::unordered_map< SumoXMLTag, std::unordered_map< const GUIGlObject *, GNEAdditional * >, std::hash< int > > & getAdditionals() const
get additionals
std::map< std::string, GNEEdge * > myEdges
map with the ID and pointer to edges of net
std::vector< std::string > getPOIParamKeys() const
return list of available POI parameters
GNEGenericData * retrieveGenericData(const GUIGlObject *glObject, bool hardFail=true) const
Returns the generic data.
AttributeCarriers & operator=(const AttributeCarriers &)=delete
Invalidated assignment operator.
std::vector< GNEAttributeCarrier * > getSelectedAttributeCarriers(const bool ignoreCurrentSupermode)
get all selected attribute carriers (or only relative to current supermode
int getNumberOfSelectedStops() const
get number of selected stops
std::string generateEdgeTypeID() const
generate edgeType id
void deleteDataInterval(GNEDataInterval *dataInterval)
delete data interval of container
GNEConnection * retrieveConnection(const std::string &id, bool hardFail=true) const
get Connection by id
std::unordered_map< const GUIGlObject *, GNECrossing * > myCrossings
set with crossings
int myNumberOfMeanDataElements
number of mean data elemements inserted in AttributeCarriers
void deleteTAZSourceSink(GNETAZSourceSink *sourceSink)
delete sourceSink element of container
int getNumberOfSelectedContainers() const
get number of selected containers
std::string generateDataSetID() const
generate data set id
int getNumberOfTAZSourceSinks() const
get number of TAZSourceSinks
class for GNEChange_ReplaceEdgeInTLS
std::string undoName() const
undo name
NBTrafficLightLogicCont & myTllcont
container for traffic light logic
std::string redoName() const
get Redo name
bool trueChange()
wether original and new value differ
modul for handling saving files
std::vector< std::string > myDemandElementsSavingFiles
vector with demand elements saving files
bool existMeanDataFilename(const std::string &file) const
check if the given meanData file was already registered
ACsbyFilename getMeanDatasByFilename()
get meanDatas sorted by filenames (and also clear unused filenames)
std::string parsingSavingFiles(const std::vector< std::string > &savingFiles) const
parsing saving files
const std::vector< std::string > & getAdditionalFilenames() const
get vector with additional elements saving files (starting with default)
SavingFilesHandler(const SavingFilesHandler &)=delete
Invalidated copy constructor.
std::vector< std::string > myDataElementsSavingFiles
vector with data elements saving files
void addDataFilename(const GNEAttributeCarrier *dataElement)
data elements
std::vector< std::string > myAdditionalElementsSavingFiles
vector with additional elements saving files
void updateMeanDataEmptyFilenames(const std::string &file)
update meanData elements with empty filenames with the given file
void addMeanDataFilename(const GNEAttributeCarrier *meanDataElement)
meanData elements
ACsbyFilename getDatasByFilename()
get datas sorted by filenames (and also clear unused filenames)
void updateAdditionalEmptyFilenames(const std::string &file)
update additional elements with empty filenames with the given file
const std::vector< std::string > & getDemandFilenames() const
get vector with demand elements saving files (starting with default)
bool existAdditionalFilename(const std::string &file) const
check if the given additional file was already registered
void updateDataEmptyFilenames(const std::string &file)
update data elements with empty filenames with the given file
std::vector< std::string > myMeanDataElementsSavingFiles
vector with mean data elements saving files
bool existDataFilename(const std::string &file) const
check if the given data file was already registered
void updateNeteditConfig()
update netedit config
ACsbyFilename getAdditionalsByFilename()
get additionals sorted by filenames (and also clear unused filenames)
ACsbyFilename getDemandsByFilename()
get demands sorted by filenames (and also clear unused filenames)
SavingFilesHandler & operator=(const SavingFilesHandler &)=delete
Invalidated assignment operator.
void updateDemandEmptyFilenames(const std::string &file)
update demand elements with empty filenames with the given file
const std::vector< std::string > & getMeanDataFilenames() const
get vector with meanData elements saving files (starting with default)
const std::vector< std::string > & getDataFilenames() const
get vector with data elements saving files (starting with default)
std::map< std::string, std::unordered_set< const GNEAttributeCarrier * > > ACsbyFilename
typedef used for group ACs by filename
GNENet * myNet
pointer to net
void addDemandFilename(const GNEAttributeCarrier *demandElement)
demand elements
SavingFilesHandler()=delete
Invalidated default constructor.
bool existDemandFilename(const std::string &file) const
check if the given demand file was already registered
void addAdditionalFilename(const GNEAttributeCarrier *additionalElement)
additional elements
modul for Saving status
void requireSaveTLS()
inform that TLS has to be saved
GNEDialog::Result askSaveMeanDataElements(GNEDialog::Result &commonResult) const
warns about unsaved changes in meanData elements and gives the user the option to abort
void dataElementsSaved()
mark demand elements as saved
SavingStatus & operator=(const SavingStatus &)=delete
Invalidated assignment operator.
bool isEdgeTypeSaved() const
check if edgeType are saved
bool myNetworkSaved
flag for network saved
GNEDialog::Result askSaveDemandElements(GNEDialog::Result &commonResult) const
warns about unsaved changes in demand elements and gives the user the option to abort
void requireSaveNetwork()
inform that network has to be saved
void requireSaveEdgeType()
inform that edgeType has to be saved
bool isTLSSaved() const
check if TLS are saved
void demandElementsSaved()
mark demand elements as saved
bool myAdditionalSaved
flag for additional elements saved
bool myTLSSaved
flag for TLS saved
bool myNeteditConfigSaved
flag for netedit config saved
bool myDataElementSaved
flag for data elements saved
void SumoConfigSaved()
mark SumoConfig as saved
bool myEdgeTypeSaved
flag for edgeType saved
void additionalsSaved()
mark additionals as saved
void requireSaveNeteditConfig()
inform that netedit config has to be saved
void requireSaveSumoConfig()
inform that SumoConfig has to be saved
bool mySumoConfigSaved
flag for SumoConfigSumoConfig saved
SavingStatus(const SavingStatus &)=delete
Invalidated copy constructor.
void TLSSaved()
mark TLS as saved
bool myMeanDataElementSaved
flag for meanData elements saved
bool isSumoConfigSaved() const
check if SumoConfig is saved
void neteditConfigSaved()
mark netedit config as saved
void requireSaveMeanDatas()
inform that mean data elements has to be saved
void meanDatasSaved()
mark mean data elements as saved
bool isDemandElementsSaved() const
check if demand elements are saved
GNEDialog::Result askSaveAdditionalElements(GNEDialog::Result &commonResult) const
warns about unsaved changes in additionals and gives the user the option to abort
void requireSaveAdditionals()
inform that additionals has to be saved
bool myDemandElementSaved
flag for demand elements saved
bool isDataElementsSaved() const
check if data elements are saved
bool isNetworkSaved() const
check if network is saved
bool isMeanDatasSaved() const
check if mean data elements are saved
void requireSaveDataElements()
inform that data elements has to be saved
bool isNeteditConfigSaved() const
check if netedit config is saved
GNENet * myNet
pointer to net
void networkSaved()
mark network as saved
GNEDialog::Result askSaveNetwork(GNEDialog::Result &commonResult) const
warns about unsaved changes in network and gives the user the option to abort
bool isAdditionalsSaved() const
check if additionals are saved
SavingStatus()=delete
invalidate default constructor
void requireSaveDemandElements()
inform that demand elements has to be saved
void edgeTypeSaved()
mark edgeType as saved
GNEDialog::Result askSaveDataElements(GNEDialog::Result &commonResult) const
warns about unsaved changes in data elements and gives the user the option to abort
A NBNetBuilder extended by visualisation and editing capabilities.
Definition GNENet.h:42
The representation of a single edge during network building.
Definition NBEdge.h:92
Instance responsible for building networks.
A container for traffic light definitions and built programs.
A simple triangle defined in 3D.
Definition Triangle.h:35