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-2026 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 FileBucket;
57class GNEJunction;
58class GNELane;
59class GNELaneType;
60class GNEMeanData;
61class GNENet;
63class GNEPOI;
64class GNEPoly;
65class GNEUndoList;
66class GNEViewNet;
67class GNEWalkingArea;
68class NBNetBuilder;
69
70// ===========================================================================
71// class definitions
72// ===========================================================================
73
75
78
83 friend class GNEChange_DataSet;
85 friend class GNEChange_Edge;
86 friend class GNEChange_EdgeType;
88 friend class GNEChange_Junction;
89 friend class GNEChange_MeanData;
90 friend class GNEChange_Shape;
93 friend class GNEDataHandler;
94 friend class GNEDataInterval;
95 friend class GNEDataSet;
97 friend class GNEEdge;
98 friend class GNEJunction;
99 friend class GNEMeanDataHandler;
100 friend class GNERouteHandler;
101 friend class GNETLSEditorFrame;
102
103 public:
106
109
112
114 bool isNetworkElementAroundTriangle(GNEAttributeCarrier* AC, const Triangle& triangle) const;
115
119 int getNumberOfNetworkElements() const;
120
122 int getNumberOfDemandElements() const;
123
125 int getNumberOfDataElements() const;
126
128
131
137 GNEAttributeCarrier* retrieveAttributeCarrier(const GUIGlID id, bool hardFail = true) const;
138
143 std::vector<GNEAttributeCarrier*> retrieveAttributeCarriers(SumoXMLTag tag = SUMO_TAG_NOTHING);
144
146 std::vector<GNEAttributeCarrier*> retrieveAttributeCarriers(Supermode supermode, const bool onlySelected);
147
149 std::vector<GNEAttributeCarrier*> getSelectedAttributeCarriers(const bool ignoreCurrentSupermode);
150
152
155
160 GNEJunction* retrieveJunction(const std::string& id, bool hardFail = true) const;
161
163 const std::map<std::string, GNEJunction*>& getJunctions() const;
164
166 std::vector<GNEJunction*> getSelectedJunctions() const;
167
170
172 void clearJunctions();
173
175 void addPrefixToJunctions(const std::string& prefix);
176
178 void updateJunctionID(GNEJunction* junction, const std::string& newID);
179
182
184
187
192 GNECrossing* retrieveCrossing(const GUIGlObject* glObject, bool hardFail = true) const;
193
195 const std::unordered_map<const GUIGlObject*, GNECrossing*>& getCrossings() const;
196
198 std::vector<GNECrossing*> getSelectedCrossings() const;
199
202
204
207
212 GNEWalkingArea* retrieveWalkingArea(const GUIGlObject* glObject, bool hardFail = true) const;
213
215 const std::unordered_map<const GUIGlObject*, GNEWalkingArea*>& getWalkingAreas() const;
216
218 std::vector<GNEWalkingArea*> getSelectedWalkingAreas() const;
219
222
224
227
232 GNEEdgeType* retrieveEdgeType(const std::string& id, bool hardFail = true) const;
233
236
238 const std::map<std::string, GNEEdgeType*>& getEdgeTypes() const;
239
241 void clearEdgeTypes();
242
244 void updateEdgeTypeID(GNEEdgeType* edgeType, const std::string& newID);
245
247 std::string generateEdgeTypeID() const;
248
250
253
258 GNEEdge* retrieveEdge(const std::string& id, bool hardFail = true) const;
259
265 std::vector<GNEEdge*> retrieveEdges(GNEJunction* from, GNEJunction* to) const;
266
268 const std::map<std::string, GNEEdge*>& getEdges() const;
269
273 std::vector<GNEEdge*> getSelectedEdges() const;
274
277
279 void clearEdges();
280
282 void addPrefixToEdges(const std::string& prefix);
283
285 std::string generateEdgeID() const;
286
288 void updateEdgeID(GNEEdge* edge, const std::string& newID);
289
291 int getNumberOfSelectedEdges() const;
292
294
297
303 GNELane* retrieveLane(const std::string& id, bool hardFail = true, bool checkVolatileChange = false) const;
304
310 GNELane* retrieveLane(const GUIGlObject* glObject, bool hardFail = true) const;
311
313 const std::unordered_map<const GUIGlObject*, GNELane*>& getLanes() const;
314
316 std::vector<GNELane*> getSelectedLanes() const;
317
319 int getNumberOfSelectedLanes() const;
320
322
325
330 GNEConnection* retrieveConnection(const std::string& id, bool hardFail = true) const;
331
337 GNEConnection* retrieveConnection(const GUIGlObject* glObject, bool hardFail = true) const;
338
340 const std::unordered_map<const GUIGlObject*, GNEConnection*>& getConnections() const;
341
343 std::vector<GNEConnection*> getSelectedConnections() const;
344
347
349
352
358 GNEInternalLane* retrieveInternalLane(const GUIGlObject* glObject, bool hardFail = true) const;
359
361
364
370 GNEAdditional* retrieveAdditional(SumoXMLTag type, const std::string& id, bool hardFail = true) const;
371
378 GNEAdditional* retrieveAdditionals(const std::vector<SumoXMLTag> types, const std::string& id, bool hardFail = true) const;
379
384 GNEAdditional* retrieveAdditional(const GUIGlObject* glObject, bool hardFail = true) const;
385
391 GNEAdditional* retrieveRerouterInterval(const std::string& rerouterID, const SUMOTime begin, const SUMOTime end) const;
392
394 const std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEAdditional*>, std::hash<int> >& getAdditionals() const;
395
397 std::vector<GNEAdditional*> getSelectedAdditionals() const;
398
400 std::vector<GNEAdditional*> getSelectedShapes() const;
401
403 std::vector<GNEAdditional*> getUnselectedShapes() const;
404
406 int getNumberOfAdditionals() const;
407
409 void clearAdditionals();
410
412 void updateAdditionalID(GNEAdditional* additional, const std::string& newID);
413
415 std::string generateAdditionalID(SumoXMLTag type) const;
416
419
422
424 int getNumberOfSelectedPolygons() const;
425
428
431
433 int getNumberOfSelectedPOIs() const;
434
436 int getNumberOfSelectedTAZs() const;
437
439 int getNumberOfSelectedWires() const;
440
442 std::vector<std::string> getPOIParamKeys() const;
444
447
451 GNETAZSourceSink* retrieveTAZSourceSink(const GNEAttributeCarrier* sourceSink, bool hardFail = true) const;
452
454 const std::unordered_map<SumoXMLTag, std::unordered_map<const GNEAttributeCarrier*, GNETAZSourceSink*>, std::hash<int> >& getTAZSourceSinks() const;
455
457 int getNumberOfTAZSourceSinks() const;
458
460 void clearTAZSourceSinks();
461
463
466
471 GNEDemandElement* retrieveDemandElement(SumoXMLTag type, const std::string& id, bool hardFail = true) const;
472
478 GNEDemandElement* retrieveDemandElements(const std::vector<SumoXMLTag> types, const std::string& id, bool hardFail = true) const;
479
484 GNEDemandElement* retrieveDemandElement(const GUIGlObject* glObject, bool hardFail = true) const;
485
487 std::vector<GNEDemandElement*> getSelectedDemandElements() const;
488
490 const std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEDemandElement*>, std::hash<int> >& getDemandElements() const;
491
493 std::string generateDemandElementID(SumoXMLTag tag) const;
494
497
499 void clearDemandElements();
500
502 void updateDemandElementID(GNEDemandElement* demandElement, const std::string& newID);
503
505 void addDefaultVTypes();
506
508 bool requireJunctionTazOption() const;
509
511 int getStopIndex();
512
515
517 int getNumberOfSelectedRoutes() const;
518
520 int getNumberOfSelectedVehicles() const;
521
523 int getNumberOfSelectedPersons() const;
524
527
529 int getNumberOfSelectedWalks() const;
530
532 int getNumberOfSelectedRides() const;
533
536
539
542
544 int getNumberOfSelectedStops() const;
545
547
550
554 GNEDataSet* retrieveDataSet(const std::string& id, bool hardFail = true) const;
555
557 const std::map<const std::string, GNEDataSet*>& getDataSets() const;
558
560 std::string generateDataSetID() const;
561
563
566
570 GNEDataInterval* retrieveDataInterval(const GNEAttributeCarrier* AC, bool hardFail = true) const;
571
573 const std::unordered_map<const GNEAttributeCarrier*, GNEDataInterval*>& getDataIntervals() const;
574
576
579
583 GNEGenericData* retrieveGenericData(const GUIGlObject* glObject, bool hardFail = true) const;
584
586 std::vector<GNEGenericData*> getSelectedGenericDatas() const;
587
589 const std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEGenericData*>, std::hash<int> >& getGenericDatas() const;
590
592 std::vector<GNEGenericData*> retrieveGenericDatas(const SumoXMLTag genericDataTag, const double begin, const double end);
593
595 int getNumberOfGenericDatas() const;
596
599
602
605
607 std::set<std::string> retrieveGenericDataParameters(const std::string& genericDataTag, const double begin, const double end) const;
608
610 std::set<std::string> retrieveGenericDataParameters(const std::string& dataSetID, const std::string& genericDataTag,
611 const std::string& beginStr, const std::string& endStr) const;
612
614
617
623 GNEMeanData* retrieveMeanData(SumoXMLTag type, const std::string& id, bool hardFail = true) const;
624
626 const std::unordered_map<SumoXMLTag, std::map<const std::string, GNEMeanData*>, std::hash<int> >& getMeanDatas() const;
627
629 int getNumberOfMeanDatas() const;
630
632 void clearMeanDatas();
633
635 void updateMeanDataID(GNEMeanData* meanData, const std::string& newID);
636
638 std::string generateMeanDataID(SumoXMLTag type) const;
639
641
642 protected:
645
647 void insertJunction(GNEJunction* junction);
648
650 void deleteSingleJunction(GNEJunction* junction);
651
653
656
658 void insertEdgeType(GNEEdgeType* edgeType);
659
661 void deleteEdgeType(GNEEdgeType* edgeType);
662
664
668 void insertEdge(GNEEdge* edge);
669
671 void deleteSingleEdge(GNEEdge* edge);
672
674
677
679 void insertLane(GNELane* lane);
680
682 void deleteLane(GNELane* lane);
683
685
688
690 void insertCrossing(GNECrossing* crossing);
691
693 void deleteCrossing(GNECrossing* crossing);
694
696
699
701 void insertWalkingArea(GNEWalkingArea* walkingArea);
702
704 void deleteWalkingArea(GNEWalkingArea* walkingArea);
705
707
710
712 void insertConnection(GNEConnection* connection);
713
715 void deleteConnection(GNEConnection* connection);
716
718
721
723 void insertInternalLane(GNEInternalLane* internalLane);
724
726 void deleteInternalLane(GNEInternalLane* internalLane);
727
729
732
734 void insertAdditional(GNEAdditional* additional);
735
737 void deleteAdditional(GNEAdditional* additional);
738
740
743
745 void insertTAZSourceSink(GNETAZSourceSink* sourceSink);
746
748 void deleteTAZSourceSink(GNETAZSourceSink* sourceSink);
749
751
754
756 void insertDemandElement(GNEDemandElement* demandElement);
757
759 void deleteDemandElement(GNEDemandElement* demandElement, const bool updateFrames);
760
762
765
767 void insertDataSet(GNEDataSet* dataSet);
768
770 void deleteDataSet(GNEDataSet* dataSet);
771
773
776
778 void insertDataInterval(const GNEAttributeCarrier* AC, GNEDataInterval* dataInterval);
779
781 void deleteDataInterval(GNEDataInterval* dataInterval);
782
784
787
789 void insertGenericData(GNEGenericData* genericData);
790
792 void deleteGenericData(GNEGenericData* genericData);
793
795
798
800 void insertMeanData(GNEMeanData* meanData);
801
803 void deleteMeanData(GNEMeanData* meanData);
804
806
808 void updateDemandElementFrames(const GNETagProperties* tagProperty);
809
811 void retrieveAttributeCarriersRecursively(const GNETagProperties* tag, std::vector<GNEAttributeCarrier*>& ACs);
812
813 private:
816
819
822
825
828
831
833 std::map<std::string, GNEJunction*> myJunctions;
834
836 std::unordered_map<const GUIGlObject*, GNECrossing*> myCrossings;
837
839 std::unordered_map<const GUIGlObject*, GNEWalkingArea*> myWalkingAreas;
840
842 std::map<std::string, GNEEdgeType*> myEdgeTypes;
843
845 std::map<std::string, GNEEdge*> myEdges;
846
848 std::unordered_map<const GUIGlObject*, GNELane*> myLanes;
849
851 std::unordered_map<const GUIGlObject*, GNEConnection*> myConnections;
852
854 std::unordered_map<const GUIGlObject*, GNEInternalLane*> myInternalLanes;
855
857 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEAdditional*>, std::hash<int> > myAdditionalIDs;
858
860 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEAdditional*>, std::hash<int> > myAdditionals;
861
863 std::unordered_map<SumoXMLTag, std::unordered_map<const GNEAttributeCarrier*, GNETAZSourceSink*>, std::hash<int> > myTAZSourceSinks;
864
866 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEDemandElement*>, std::hash<int> > myDemandElementIDs;
867
869 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEDemandElement*>, std::hash<int> > myDemandElements;
870
872 std::map<const std::string, GNEDataSet*> myDataSets;
873
875 std::unordered_map<const GNEAttributeCarrier*, GNEDataInterval*> myDataIntervals;
876
878 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEGenericData*>, std::hash<int> > myGenericDatas;
879
881 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEMeanData*>, std::hash<int> > myMeanDatas;
882
885
888
891 };
892
895
896 public:
898 ACTemplate(GNENet* net);
899
901 void buildTemplates();
902
904 ~ACTemplate();
905
907 std::map<SumoXMLTag, GNEAttributeCarrier*> getACTemplates() const;
908
911
913 GNEAttributeCarrier* getTemplateAC(const std::string& selectorText) const;
914
917
919 const std::vector<std::pair<GNETagProperties*, GNEDemandElement*> >& getPlanTemplates(SumoXMLTag tag) const;
920
921 protected:
923 void fillPlanTemplates();
924
925 private:
927 GNENet* myNet = nullptr;
928
930 std::map<SumoXMLTag, GNEAttributeCarrier*> myTemplates;
931
933 std::map<SumoXMLTag, std::vector<std::pair<GNETagProperties*, GNEDemandElement*> > > myPlanTemplates;
934
937
939 ACTemplate() = delete;
940
942 ACTemplate(const ACTemplate&) = delete;
943
945 ACTemplate& operator=(const ACTemplate& src) = delete;
946 };
947
950
951 public:
953 SavingStatus(GNENet* net);
954
957
960
962 void SumoConfigSaved();
963
965 bool isSumoConfigSaved() const;
966
968
971
974
976 void neteditConfigSaved();
977
979 bool isNeteditConfigSaved() const;
980
982
985
987 void requireSaveNetwork();
988
990 void networkSaved();
991
993 bool isNetworkSaved() const;
994
996
999
1001 void requireSaveTLS();
1002
1004 void TLSSaved();
1005
1007 bool isTLSSaved() const;
1008
1010
1013
1015 void requireSaveEdgeType();
1016
1018 void edgeTypeSaved();
1019
1021 bool isEdgeTypeSaved() const;
1022
1024
1027
1030
1032 void additionalsSaved();
1033
1035 bool isAdditionalsSaved() const;
1036
1038
1041
1044
1046 void demandElementsSaved();
1047
1049 bool isDemandElementsSaved() const;
1050
1052
1055
1058
1060 void dataElementsSaved();
1061
1063 bool isDataElementsSaved() const;
1064
1066
1069
1071 void requireSaveMeanDatas();
1072
1074 void meanDatasSaved();
1075
1077 bool isMeanDatasSaved() const;
1078
1080
1083
1086
1089
1092
1095
1098
1100
1101 private:
1104
1107
1110
1112 bool myNetworkSaved = true;
1113
1115 bool myTLSSaved = true;
1116
1118 bool myEdgeTypeSaved = true;
1119
1122
1125
1128
1131
1133 SavingStatus() = delete;
1134
1136 SavingStatus(const SavingStatus&) = delete;
1137
1140 };
1141
1144 FXDECLARE_ABSTRACT(GNEChange_ReplaceEdgeInTLS)
1145
1146 public:
1149
1152
1154 void undo();
1155
1157 void redo();
1158
1160 std::string undoName() const;
1161
1163 std::string redoName() const;
1164
1166 bool trueChange();
1167
1168 private:
1171
1174
1177 };
1178};
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 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
GNEEdgeType * myEdgeType
edge type
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
std::map< SumoXMLTag, std::vector< std::pair< GNETagProperties *, GNEDemandElement * > > > myPlanTemplates
list with demand 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
const std::vector< std::pair< GNETagProperties *, GNEDemandElement * > > & getPlanTemplates(SumoXMLTag tag) const
get plan templates
void fillPlanTemplates()
fill plan templates
GNEEdgeType * getDefaultEdgeType() const
get default edge type
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::vector< GNEAdditional * > getUnselectedShapes() const
get unselected shapes
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
bool requireJunctionTazOption() const
check if we have elements that requires the option junction-taz
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 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
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