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 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 int getNumberOfAdditionals() const;
404
406 void clearAdditionals();
407
409 void updateAdditionalID(GNEAdditional* additional, const std::string& newID);
410
412 std::string generateAdditionalID(SumoXMLTag type) const;
413
416
419
421 int getNumberOfSelectedPolygons() const;
422
425
428
430 int getNumberOfSelectedPOIs() const;
431
433 int getNumberOfSelectedTAZs() const;
434
436 int getNumberOfSelectedWires() const;
437
439 std::vector<std::string> getPOIParamKeys() const;
441
444
448 GNETAZSourceSink* retrieveTAZSourceSink(const GNEAttributeCarrier* sourceSink, bool hardFail = true) const;
449
451 const std::unordered_map<SumoXMLTag, std::unordered_map<const GNEAttributeCarrier*, GNETAZSourceSink*>, std::hash<int> >& getTAZSourceSinks() const;
452
454 int getNumberOfTAZSourceSinks() const;
455
457 void clearTAZSourceSinks();
458
460
463
468 GNEDemandElement* retrieveDemandElement(SumoXMLTag type, const std::string& id, bool hardFail = true) const;
469
475 GNEDemandElement* retrieveDemandElements(const std::vector<SumoXMLTag> types, const std::string& id, bool hardFail = true) const;
476
481 GNEDemandElement* retrieveDemandElement(const GUIGlObject* glObject, bool hardFail = true) const;
482
484 std::vector<GNEDemandElement*> getSelectedDemandElements() const;
485
487 const std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEDemandElement*>, std::hash<int> >& getDemandElements() const;
488
490 std::string generateDemandElementID(SumoXMLTag tag) const;
491
494
496 void clearDemandElements();
497
499 void updateDemandElementID(GNEDemandElement* demandElement, const std::string& newID);
500
502 void addDefaultVTypes();
503
505 bool requireJunctionTazOption() const;
506
508 int getStopIndex();
509
512
514 int getNumberOfSelectedRoutes() const;
515
517 int getNumberOfSelectedVehicles() const;
518
520 int getNumberOfSelectedPersons() const;
521
524
526 int getNumberOfSelectedWalks() const;
527
529 int getNumberOfSelectedRides() const;
530
533
536
539
541 int getNumberOfSelectedStops() const;
542
544
547
551 GNEDataSet* retrieveDataSet(const std::string& id, bool hardFail = true) const;
552
554 const std::map<const std::string, GNEDataSet*>& getDataSets() const;
555
557 std::string generateDataSetID() const;
558
560
563
567 GNEDataInterval* retrieveDataInterval(const GNEAttributeCarrier* AC, bool hardFail = true) const;
568
570 const std::unordered_map<const GNEAttributeCarrier*, GNEDataInterval*>& getDataIntervals() const;
571
573
576
580 GNEGenericData* retrieveGenericData(const GUIGlObject* glObject, bool hardFail = true) const;
581
583 std::vector<GNEGenericData*> getSelectedGenericDatas() const;
584
586 const std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEGenericData*>, std::hash<int> >& getGenericDatas() const;
587
589 std::vector<GNEGenericData*> retrieveGenericDatas(const SumoXMLTag genericDataTag, const double begin, const double end);
590
592 int getNumberOfGenericDatas() const;
593
596
599
602
604 std::set<std::string> retrieveGenericDataParameters(const std::string& genericDataTag, const double begin, const double end) const;
605
607 std::set<std::string> retrieveGenericDataParameters(const std::string& dataSetID, const std::string& genericDataTag,
608 const std::string& beginStr, const std::string& endStr) const;
609
611
614
620 GNEMeanData* retrieveMeanData(SumoXMLTag type, const std::string& id, bool hardFail = true) const;
621
623 const std::unordered_map<SumoXMLTag, std::map<const std::string, GNEMeanData*>, std::hash<int> >& getMeanDatas() const;
624
626 int getNumberOfMeanDatas() const;
627
629 void clearMeanDatas();
630
632 void updateMeanDataID(GNEMeanData* meanData, const std::string& newID);
633
635 std::string generateMeanDataID(SumoXMLTag type) const;
636
638
639 protected:
642
644 void insertJunction(GNEJunction* junction);
645
647 void deleteSingleJunction(GNEJunction* junction);
648
650
653
655 void insertEdgeType(GNEEdgeType* edgeType);
656
658 void deleteEdgeType(GNEEdgeType* edgeType);
659
661
665 void insertEdge(GNEEdge* edge);
666
668 void deleteSingleEdge(GNEEdge* edge);
669
671
674
676 void insertLane(GNELane* lane);
677
679 void deleteLane(GNELane* lane);
680
682
685
687 void insertCrossing(GNECrossing* crossing);
688
690 void deleteCrossing(GNECrossing* crossing);
691
693
696
698 void insertWalkingArea(GNEWalkingArea* walkingArea);
699
701 void deleteWalkingArea(GNEWalkingArea* walkingArea);
702
704
707
709 void insertConnection(GNEConnection* connection);
710
712 void deleteConnection(GNEConnection* connection);
713
715
718
720 void insertInternalLane(GNEInternalLane* internalLane);
721
723 void deleteInternalLane(GNEInternalLane* internalLane);
724
726
729
731 void insertAdditional(GNEAdditional* additional);
732
734 void deleteAdditional(GNEAdditional* additional);
735
737
740
742 void insertTAZSourceSink(GNETAZSourceSink* sourceSink);
743
745 void deleteTAZSourceSink(GNETAZSourceSink* sourceSink);
746
748
751
753 void insertDemandElement(GNEDemandElement* demandElement);
754
756 void deleteDemandElement(GNEDemandElement* demandElement, const bool updateFrames);
757
759
762
764 void insertDataSet(GNEDataSet* dataSet);
765
767 void deleteDataSet(GNEDataSet* dataSet);
768
770
773
775 void insertDataInterval(const GNEAttributeCarrier* AC, GNEDataInterval* dataInterval);
776
778 void deleteDataInterval(GNEDataInterval* dataInterval);
779
781
784
786 void insertGenericData(GNEGenericData* genericData);
787
789 void deleteGenericData(GNEGenericData* genericData);
790
792
795
797 void insertMeanData(GNEMeanData* meanData);
798
800 void deleteMeanData(GNEMeanData* meanData);
801
803
805 void updateDemandElementFrames(const GNETagProperties* tagProperty);
806
808 void retrieveAttributeCarriersRecursively(const GNETagProperties* tag, std::vector<GNEAttributeCarrier*>& ACs);
809
810 private:
813
816
819
822
825
828
830 std::map<std::string, GNEJunction*> myJunctions;
831
833 std::unordered_map<const GUIGlObject*, GNECrossing*> myCrossings;
834
836 std::unordered_map<const GUIGlObject*, GNEWalkingArea*> myWalkingAreas;
837
839 std::map<std::string, GNEEdgeType*> myEdgeTypes;
840
842 std::map<std::string, GNEEdge*> myEdges;
843
845 std::unordered_map<const GUIGlObject*, GNELane*> myLanes;
846
848 std::unordered_map<const GUIGlObject*, GNEConnection*> myConnections;
849
851 std::unordered_map<const GUIGlObject*, GNEInternalLane*> myInternalLanes;
852
854 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEAdditional*>, std::hash<int> > myAdditionalIDs;
855
857 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEAdditional*>, std::hash<int> > myAdditionals;
858
860 std::unordered_map<SumoXMLTag, std::unordered_map<const GNEAttributeCarrier*, GNETAZSourceSink*>, std::hash<int> > myTAZSourceSinks;
861
863 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEDemandElement*>, std::hash<int> > myDemandElementIDs;
864
866 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEDemandElement*>, std::hash<int> > myDemandElements;
867
869 std::map<const std::string, GNEDataSet*> myDataSets;
870
872 std::unordered_map<const GNEAttributeCarrier*, GNEDataInterval*> myDataIntervals;
873
875 std::unordered_map<SumoXMLTag, std::unordered_map<const GUIGlObject*, GNEGenericData*>, std::hash<int> > myGenericDatas;
876
878 std::unordered_map<SumoXMLTag, std::map<const std::string, GNEMeanData*>, std::hash<int> > myMeanDatas;
879
882
885
888 };
889
892
893 public:
895 ACTemplate(GNENet* net);
896
898 void buildTemplates();
899
901 ~ACTemplate();
902
904 std::map<SumoXMLTag, GNEAttributeCarrier*> getACTemplates() const;
905
908
910 GNEAttributeCarrier* getTemplateAC(const std::string& selectorText) const;
911
914
916 const std::vector<std::pair<GNETagProperties*, GNEDemandElement*> >& getPlanTemplates(SumoXMLTag tag) const;
917
918 protected:
920 void fillPlanTemplates();
921
922 private:
924 GNENet* myNet = nullptr;
925
927 std::map<SumoXMLTag, GNEAttributeCarrier*> myTemplates;
928
930 std::map<SumoXMLTag, std::vector<std::pair<GNETagProperties*, GNEDemandElement*> > > myPlanTemplates;
931
934
936 ACTemplate() = delete;
937
939 ACTemplate(const ACTemplate&) = delete;
940
942 ACTemplate& operator=(const ACTemplate& src) = delete;
943 };
944
947
948 public:
950 SavingStatus(GNENet* net);
951
954
957
959 void SumoConfigSaved();
960
962 bool isSumoConfigSaved() const;
963
965
968
971
973 void neteditConfigSaved();
974
976 bool isNeteditConfigSaved() const;
977
979
982
984 void requireSaveNetwork();
985
987 void networkSaved();
988
990 bool isNetworkSaved() const;
991
993
996
998 void requireSaveTLS();
999
1001 void TLSSaved();
1002
1004 bool isTLSSaved() const;
1005
1007
1010
1012 void requireSaveEdgeType();
1013
1015 void edgeTypeSaved();
1016
1018 bool isEdgeTypeSaved() const;
1019
1021
1024
1027
1029 void additionalsSaved();
1030
1032 bool isAdditionalsSaved() const;
1033
1035
1038
1041
1043 void demandElementsSaved();
1044
1046 bool isDemandElementsSaved() const;
1047
1049
1052
1055
1057 void dataElementsSaved();
1058
1060 bool isDataElementsSaved() const;
1061
1063
1066
1068 void requireSaveMeanDatas();
1069
1071 void meanDatasSaved();
1072
1074 bool isMeanDatasSaved() const;
1075
1077
1080
1083
1086
1089
1092
1095
1097
1098 private:
1101
1104
1107
1109 bool myNetworkSaved = true;
1110
1112 bool myTLSSaved = true;
1113
1115 bool myEdgeTypeSaved = true;
1116
1119
1122
1125
1128
1130 SavingStatus() = delete;
1131
1133 SavingStatus(const SavingStatus&) = delete;
1134
1137 };
1138
1141 FXDECLARE_ABSTRACT(GNEChange_ReplaceEdgeInTLS)
1142
1143 public:
1146
1149
1151 void undo();
1152
1154 void redo();
1155
1157 std::string undoName() const;
1158
1160 std::string redoName() const;
1161
1163 bool trueChange();
1164
1165 private:
1168
1171
1174 };
1175};
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::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