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
82 friend class GNEChange_DataSet;
84 friend class GNEChange_Edge;
85 friend class GNEChange_EdgeType;
87 friend class GNEChange_Junction;
88 friend class GNEChange_MeanData;
89 friend class GNEChange_Shape;
92 friend class GNEDataHandler;
93 friend class GNEDataInterval;
94 friend class GNEDataSet;
96 friend class GNEEdge;
97 friend class GNEJunction;
98 friend class GNEMeanDataHandler;
99 friend class GNERouteHandler;
100 friend class GNETLSEditorFrame;
101
102 public:
105
108
111
113 bool isNetworkElementAroundTriangle(GNEAttributeCarrier* AC, const Triangle& triangle) const;
114
118 int getNumberOfNetworkElements() const;
119
121 int getNumberOfDemandElements() const;
122
124 int getNumberOfDataElements() const;
125
127
130
136 GNEAttributeCarrier* retrieveAttributeCarrier(const GUIGlID id, bool hardFail = true) const;
137
142 std::vector<GNEAttributeCarrier*> retrieveAttributeCarriers(SumoXMLTag tag = SUMO_TAG_NOTHING);
143
145 std::vector<GNEAttributeCarrier*> retrieveAttributeCarriers(Supermode supermode, const bool onlySelected);
146
148 std::vector<GNEAttributeCarrier*> getSelectedAttributeCarriers(const bool ignoreCurrentSupermode);
149
151
154
159 GNEJunction* retrieveJunction(const std::string& id, bool hardFail = true) const;
160
162 const std::map<std::string, GNEJunction*>& getJunctions() const;
163
165 std::vector<GNEJunction*> getSelectedJunctions() const;
166
169
171 void clearJunctions();
172
174 void addPrefixToJunctions(const std::string& prefix);
175
177 void updateJunctionID(GNEJunction* junction, const std::string& newID);
178
181
183
186
191 GNECrossing* retrieveCrossing(const GUIGlObject* glObject, bool hardFail = true) const;
192
194 const std::unordered_map<const GUIGlObject*, GNECrossing*>& getCrossings() const;
195
197 std::vector<GNECrossing*> getSelectedCrossings() const;
198
201
203
206
211 GNEWalkingArea* retrieveWalkingArea(const GUIGlObject* glObject, bool hardFail = true) const;
212
214 const std::unordered_map<const GUIGlObject*, GNEWalkingArea*>& getWalkingAreas() const;
215
217 std::vector<GNEWalkingArea*> getSelectedWalkingAreas() const;
218
221
223
226
231 GNEEdgeType* retrieveEdgeType(const std::string& id, bool hardFail = true) const;
232
235
237 const std::map<std::string, GNEEdgeType*>& getEdgeTypes() const;
238
240 void clearEdgeTypes();
241
243 void updateEdgeTypeID(GNEEdgeType* edgeType, const std::string& newID);
244
246 std::string generateEdgeTypeID() const;
247
249
252
257 GNEEdge* retrieveEdge(const std::string& id, bool hardFail = true) const;
258
264 std::vector<GNEEdge*> retrieveEdges(GNEJunction* from, GNEJunction* to) const;
265
267 const std::map<std::string, GNEEdge*>& getEdges() const;
268
272 std::vector<GNEEdge*> getSelectedEdges() const;
273
276
278 void clearEdges();
279
281 void addPrefixToEdges(const std::string& prefix);
282
284 std::string generateEdgeID() const;
285
287 void updateEdgeID(GNEEdge* edge, const std::string& newID);
288
290 int getNumberOfSelectedEdges() const;
291
293
296
302 GNELane* retrieveLane(const std::string& id, bool hardFail = true, bool checkVolatileChange = false) const;
303
309 GNELane* retrieveLane(const GUIGlObject* glObject, bool hardFail = true) const;
310
312 const std::unordered_map<const GUIGlObject*, GNELane*>& getLanes() const;
313
315 std::vector<GNELane*> getSelectedLanes() const;
316
318 int getNumberOfSelectedLanes() const;
319
321
324
329 GNEConnection* retrieveConnection(const std::string& id, bool hardFail = true) const;
330
336 GNEConnection* retrieveConnection(const GUIGlObject* glObject, bool hardFail = true) const;
337
339 const std::unordered_map<const GUIGlObject*, GNEConnection*>& getConnections() const;
340
342 std::vector<GNEConnection*> getSelectedConnections() const;
343
346
348
351
357 GNEInternalLane* retrieveInternalLane(const GUIGlObject* glObject, bool hardFail = true) const;
358
360
363
369 GNEAdditional* retrieveAdditional(SumoXMLTag type, const std::string& id, bool hardFail = true) const;
370
377 GNEAdditional* retrieveAdditionals(const std::vector<SumoXMLTag> types, const std::string& id, bool hardFail = true) const;
378
383 GNEAdditional* retrieveAdditional(const GUIGlObject* glObject, bool hardFail = true) const;
384
390 GNEAdditional* retrieveRerouterInterval(const std::string& rerouterID, const SUMOTime begin, const SUMOTime end) const;
391
393 const std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEAdditional*>, std::hash<int> >& getAdditionals() const;
394
396 std::vector<GNEAdditional*> getSelectedAdditionals() const;
397
399 std::vector<GNEAdditional*> getSelectedShapes() const;
400
402 int getNumberOfAdditionals() const;
403
405 void clearAdditionals();
406
408 void updateAdditionalID(GNEAdditional* additional, const std::string& newID);
409
411 std::string generateAdditionalID(SumoXMLTag type) const;
412
415
418
420 int getNumberOfSelectedPolygons() const;
421
424
427
429 int getNumberOfSelectedPOIs() const;
430
432 int getNumberOfSelectedTAZs() const;
433
435 int getNumberOfSelectedWires() const;
436
438 std::vector<std::string> getPOIParamKeys() const;
440
443
447 GNETAZSourceSink* retrieveTAZSourceSink(const GNEAttributeCarrier* sourceSink, bool hardFail = true) const;
448
450 const std::unordered_map<SumoXMLTag, std::unordered_map<const GNEAttributeCarrier*, GNETAZSourceSink*>, std::hash<int> >& getTAZSourceSinks() const;
451
453 int getNumberOfTAZSourceSinks() const;
454
456 void clearTAZSourceSinks();
457
459
462
467 GNEDemandElement* retrieveDemandElement(SumoXMLTag type, const std::string& id, bool hardFail = true) const;
468
474 GNEDemandElement* retrieveDemandElements(const std::vector<SumoXMLTag> types, const std::string& id, bool hardFail = true) const;
475
480 GNEDemandElement* retrieveDemandElement(const GUIGlObject* glObject, bool hardFail = true) const;
481
483 std::vector<GNEDemandElement*> getSelectedDemandElements() const;
484
486 const std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEDemandElement*>, std::hash<int> >& getDemandElements() const;
487
489 std::string generateDemandElementID(SumoXMLTag tag) const;
490
493
495 void clearDemandElements();
496
498 void updateDemandElementID(GNEDemandElement* demandElement, const std::string& newID);
499
501 void addDefaultVTypes();
502
504 int getStopIndex();
505
508
510 int getNumberOfSelectedRoutes() const;
511
513 int getNumberOfSelectedVehicles() const;
514
516 int getNumberOfSelectedPersons() const;
517
520
522 int getNumberOfSelectedWalks() const;
523
525 int getNumberOfSelectedRides() const;
526
529
532
535
537 int getNumberOfSelectedStops() const;
538
540
543
547 GNEDataSet* retrieveDataSet(const std::string& id, bool hardFail = true) const;
548
550 const std::map<const std::string, GNEDataSet*>& getDataSets() const;
551
553 std::string generateDataSetID() const;
554
556
559
563 GNEDataInterval* retrieveDataInterval(const GNEAttributeCarrier* AC, bool hardFail = true) const;
564
566 const std::unordered_map<const GNEAttributeCarrier*, GNEDataInterval*>& getDataIntervals() const;
567
569
572
576 GNEGenericData* retrieveGenericData(const GUIGlObject* glObject, bool hardFail = true) const;
577
579 std::vector<GNEGenericData*> getSelectedGenericDatas() const;
580
582 const std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEGenericData*>, std::hash<int> >& getGenericDatas() const;
583
585 std::vector<GNEGenericData*> retrieveGenericDatas(const SumoXMLTag genericDataTag, const double begin, const double end);
586
588 int getNumberOfGenericDatas() const;
589
592
595
598
600 std::set<std::string> retrieveGenericDataParameters(const std::string& genericDataTag, const double begin, const double end) const;
601
603 std::set<std::string> retrieveGenericDataParameters(const std::string& dataSetID, const std::string& genericDataTag,
604 const std::string& beginStr, const std::string& endStr) const;
605
607
610
616 GNEMeanData* retrieveMeanData(SumoXMLTag type, const std::string& id, bool hardFail = true) const;
617
619 const std::unordered_map<SumoXMLTag, std::map<const std::string, GNEMeanData*>, std::hash<int> >& getMeanDatas() const;
620
622 int getNumberOfMeanDatas() const;
623
625 void clearMeanDatas();
626
628 void updateMeanDataID(GNEMeanData* meanData, const std::string& newID);
629
631 std::string generateMeanDataID(SumoXMLTag type) const;
632
634
635 protected:
638
640 void insertJunction(GNEJunction* junction);
641
643 void deleteSingleJunction(GNEJunction* junction);
644
646
649
651 void insertEdgeType(GNEEdgeType* edgeType);
652
654 void deleteEdgeType(GNEEdgeType* edgeType);
655
657
661 void insertEdge(GNEEdge* edge);
662
664 void deleteSingleEdge(GNEEdge* edge);
665
667
670
672 void insertLane(GNELane* lane);
673
675 void deleteLane(GNELane* lane);
676
678
681
683 void insertCrossing(GNECrossing* crossing);
684
686 void deleteCrossing(GNECrossing* crossing);
687
689
692
694 void insertWalkingArea(GNEWalkingArea* walkingArea);
695
697 void deleteWalkingArea(GNEWalkingArea* walkingArea);
698
700
703
705 void insertConnection(GNEConnection* connection);
706
708 void deleteConnection(GNEConnection* connection);
709
711
714
716 void insertInternalLane(GNEInternalLane* internalLane);
717
719 void deleteInternalLane(GNEInternalLane* internalLane);
720
722
725
727 void insertAdditional(GNEAdditional* additional);
728
730 void deleteAdditional(GNEAdditional* additional);
731
733
736
738 void insertTAZSourceSink(GNETAZSourceSink* sourceSink);
739
741 void deleteTAZSourceSink(GNETAZSourceSink* sourceSink);
742
744
747
749 void insertDemandElement(GNEDemandElement* demandElement);
750
752 void deleteDemandElement(GNEDemandElement* demandElement, const bool updateFrames);
753
755
758
760 void insertDataSet(GNEDataSet* dataSet);
761
763 void deleteDataSet(GNEDataSet* dataSet);
764
766
769
771 void insertDataInterval(const GNEAttributeCarrier* AC, GNEDataInterval* dataInterval);
772
774 void deleteDataInterval(GNEDataInterval* dataInterval);
775
777
780
782 void insertGenericData(GNEGenericData* genericData);
783
785 void deleteGenericData(GNEGenericData* genericData);
786
788
791
793 void insertMeanData(GNEMeanData* meanData);
794
796 void deleteMeanData(GNEMeanData* meanData);
797
799
801 void updateDemandElementFrames(const GNETagProperties* tagProperty);
802
804 void retrieveAttributeCarriersRecursively(const GNETagProperties* tag, std::vector<GNEAttributeCarrier*>& ACs);
805
806 private:
809
812
815
818
821
824
826 std::map<std::string, GNEJunction*> myJunctions;
827
829 std::unordered_map<const GUIGlObject*, GNECrossing*> myCrossings;
830
832 std::unordered_map<const GUIGlObject*, GNEWalkingArea*> myWalkingAreas;
833
835 std::map<std::string, GNEEdgeType*> myEdgeTypes;
836
838 std::map<std::string, GNEEdge*> myEdges;
839
841 std::unordered_map<const GUIGlObject*, GNELane*> myLanes;
842
844 std::unordered_map<const GUIGlObject*, GNEConnection*> myConnections;
845
847 std::unordered_map<const GUIGlObject*, GNEInternalLane*> myInternalLanes;
848
850 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEAdditional*>, std::hash<int> > myAdditionalIDs;
851
853 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEAdditional*>, std::hash<int> > myAdditionals;
854
856 std::unordered_map<SumoXMLTag, std::unordered_map<const GNEAttributeCarrier*, GNETAZSourceSink*>, std::hash<int> > myTAZSourceSinks;
857
859 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEDemandElement*>, std::hash<int> > myDemandElementIDs;
860
862 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEDemandElement*>, std::hash<int> > myDemandElements;
863
865 std::map<const std::string, GNEDataSet*> myDataSets;
866
868 std::unordered_map<const GNEAttributeCarrier*, GNEDataInterval*> myDataIntervals;
869
871 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEGenericData*>, std::hash<int> > myGenericDatas;
872
874 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEMeanData*>, std::hash<int> > myMeanDatas;
875
878
881
884 };
885
888
889 public:
891 ACTemplate(GNENet* net);
892
894 void buildTemplates();
895
897 ~ACTemplate();
898
900 std::map<SumoXMLTag, GNEAttributeCarrier*> getACTemplates() const;
901
904
906 GNEAttributeCarrier* getTemplateAC(const std::string& selectorText) const;
907
908 private:
910 GNENet* myNet = nullptr;
911
913 std::map<SumoXMLTag, GNEAttributeCarrier*> myTemplates;
914
916 ACTemplate() = delete;
917
919 ACTemplate(const ACTemplate&) = delete;
920
922 ACTemplate& operator=(const ACTemplate& src) = delete;
923 };
924
927
928 public:
929 //struct FilenameReference
930
932 typedef std::map<std::string, std::unordered_set<const GNEAttributeCarrier*> > ACsbyFilename;
933
936
938 void updateNeteditConfig();
939
942
944 void addAdditionalFilename(const GNEAttributeCarrier* additionalElement);
945
947 void updateAdditionalEmptyFilenames(const std::string& file);
948
950 const std::vector<std::string>& getAdditionalFilenames() const;
951
954
956 bool existAdditionalFilename(const std::string& file) const;
957
959
962
964 void addDemandFilename(const GNEAttributeCarrier* demandElement);
965
967 void updateDemandEmptyFilenames(const std::string& file);
968
970 const std::vector<std::string>& getDemandFilenames() const;
971
974
976 bool existDemandFilename(const std::string& file) const;
977
979
982
984 void addDataFilename(const GNEAttributeCarrier* dataElement);
985
987 void updateDataEmptyFilenames(const std::string& file);
988
990 const std::vector<std::string>& getDataFilenames() const;
991
994
996 bool existDataFilename(const std::string& file) const;
997
999
1002
1004 void addMeanDataFilename(const GNEAttributeCarrier* meanDataElement);
1005
1007 void updateMeanDataEmptyFilenames(const std::string& file);
1008
1010 const std::vector<std::string>& getMeanDataFilenames() const;
1011
1014
1016 bool existMeanDataFilename(const std::string& file) const;
1017
1019
1020 private:
1023
1025 std::vector<std::string> myAdditionalElementsSavingFiles;
1026
1028 std::vector<std::string> myDemandElementsSavingFiles;
1029
1031 std::vector<std::string> myDataElementsSavingFiles;
1032
1034 std::vector<std::string> myMeanDataElementsSavingFiles;
1035
1037 std::string parsingSavingFiles(const std::vector<std::string>& savingFiles) const;
1038
1041
1044
1047 };
1048
1051
1052 public:
1054 SavingStatus(GNENet* net);
1055
1058
1060 void requireSaveSumoConfig();
1061
1063 void SumoConfigSaved();
1064
1066 bool isSumoConfigSaved() const;
1067
1069
1072
1075
1077 void neteditConfigSaved();
1078
1080 bool isNeteditConfigSaved() const;
1081
1083
1086
1088 void requireSaveNetwork();
1089
1091 void networkSaved();
1092
1094 bool isNetworkSaved() const;
1095
1097
1100
1102 void requireSaveTLS();
1103
1105 void TLSSaved();
1106
1108 bool isTLSSaved() const;
1109
1111
1114
1116 void requireSaveEdgeType();
1117
1119 void edgeTypeSaved();
1120
1122 bool isEdgeTypeSaved() const;
1123
1125
1128
1131
1133 void additionalsSaved();
1134
1136 bool isAdditionalsSaved() const;
1137
1139
1142
1145
1147 void demandElementsSaved();
1148
1150 bool isDemandElementsSaved() const;
1151
1153
1156
1159
1161 void dataElementsSaved();
1162
1164 bool isDataElementsSaved() const;
1165
1167
1170
1172 void requireSaveMeanDatas();
1173
1175 void meanDatasSaved();
1176
1178 bool isMeanDatasSaved() const;
1179
1181
1184
1187
1190
1193
1196
1199
1201
1202 private:
1205
1208
1211
1213 bool myNetworkSaved = true;
1214
1216 bool myTLSSaved = true;
1217
1219 bool myEdgeTypeSaved = true;
1220
1223
1226
1229
1232
1234 SavingStatus() = delete;
1235
1237 SavingStatus(const SavingStatus&) = delete;
1238
1241 };
1242
1245 FXDECLARE_ABSTRACT(GNEChange_ReplaceEdgeInTLS)
1246
1247 public:
1250
1253
1255 void undo();
1256
1258 void redo();
1259
1261 std::string undoName() const;
1262
1264 std::string redoName() const;
1265
1267 bool trueChange();
1268
1269 private:
1272
1275
1278 };
1279};
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