Eclipse SUMO - Simulation of Urban MObility
GNENet.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-2024 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 // The lop level container for GNE-network-components such as GNEEdge and
19 // GNEJunction. Contains an internal instances of NBNetBuilder GNE components
20 // wrap netbuild-components of this underlying NBNetBuilder and supply
21 // visualisation and editing capabilities (adapted from GUINet)
22 //
23 // WorkrouteFlow (rough draft)
24 // wrap NB-components
25 // do netedit stuff
26 // call NBNetBuilder::buildLoaded to save results
27 //
28 /****************************************************************************/
29 #pragma once
30 #include <config.h>
31 
32 #include "GNENetHelper.h"
33 #include "GNEPathManager.h"
34 
35 // ===========================================================================
36 // class definitions
37 // ===========================================================================
42 class GNENet : public GUIGlObject {
43 
44 public:
49  GNENet(NBNetBuilder* netBuilder);
50 
52  ~GNENet();
53 
56 
59 
62 
65 
73 
82 
89 
91  void expandBoundary(const Boundary& newBoundary);
92 
94  const Boundary& getZBoundary() const;
95 
97  void addZValueInBoundary(const double z);
98 
103  void drawGL(const GUIVisualizationSettings& s) const;
104 
106 
108  const Boundary& getBoundary() const;
109 
114  SUMORTree& getGrid();
115 
117  const std::map<std::string, int>& getEdgesAndNumberOfLanes() const;
118 
124  GNEJunction* createJunction(const Position& pos, GNEUndoList* undoList);
125 
138  GNEEdge* createEdge(GNEJunction* src, GNEJunction* dest, GNEEdge* edgeTemplate, GNEUndoList* undoList,
139  const std::string& suggestedName = "", bool wasSplit = false, bool allowDuplicateGeom = false,
140  bool recomputeConnections = true);
141 
146  void deleteNetworkElement(GNENetworkElement* networkElement, GNEUndoList* undoList);
147 
152  void deleteJunction(GNEJunction* junction, GNEUndoList* undoList);
153 
158  void deleteEdge(GNEEdge* edge, GNEUndoList* undoList, bool recomputeConnections);
159 
165  void replaceIncomingEdge(GNEEdge* which, GNEEdge* by, GNEUndoList* undoList);
166 
171  void deleteLane(GNELane* lane, GNEUndoList* undoList, bool recomputeConnections);
172 
177  void deleteConnection(GNEConnection* connection, GNEUndoList* undoList);
178 
183  void deleteCrossing(GNECrossing* crossing, GNEUndoList* undoList);
184 
189  void deleteAdditional(GNEAdditional* additional, GNEUndoList* undoList);
190 
195  void deleteDemandElement(GNEDemandElement* demandElement, GNEUndoList* undoList);
196 
201  void deleteDataSet(GNEDataSet* dataSet, GNEUndoList* undoList);
202 
207  void deleteDataInterval(GNEDataInterval* dataInterval, GNEUndoList* undoList);
208 
213  void deleteGenericData(GNEGenericData* genericData, GNEUndoList* undoList);
214 
219  void deleteMeanData(GNEMeanData* meanData, GNEUndoList* undoList);
220 
225  void duplicateLane(GNELane* lane, GNEUndoList* undoList, bool recomputeConnections);
226 
232  bool restrictLane(SUMOVehicleClass vclass, GNELane* lane, GNEUndoList* undoList);
233 
240  bool addRestrictedLane(SUMOVehicleClass vclass, GNEEdge* edge, int index, GNEUndoList* undoList);
241 
247  bool addGreenVergeLane(GNEEdge* edge, int index, GNEUndoList* undoList);
248 
254  bool removeRestrictedLane(SUMOVehicleClass vclass, GNEEdge* edge, GNEUndoList* undoList);
255 
261  GNEJunction* splitEdge(GNEEdge* edge, const Position& pos, GNEUndoList* undoList, GNEJunction* newJunction = 0);
262 
268  void splitEdgesBidi(GNEEdge* edge, GNEEdge* oppositeEdge, const Position& pos, GNEUndoList* undoList);
269 
273  void reverseEdge(GNEEdge* edge, GNEUndoList* undoList);
274 
280  GNEEdge* addReversedEdge(GNEEdge* edge, const bool disconnected, GNEUndoList* undoList);
281 
288  void mergeJunctions(GNEJunction* moved, GNEJunction* target, GNEUndoList* undoList);
289 
291  void selectRoundabout(GNEJunction* junction, GNEUndoList* undoList);
292 
294  void createRoundabout(GNEJunction* junction, GNEUndoList* undoList);
295 
297  void saveNetwork();
298 
300  void savePlain(const std::string& prefix);
301 
303  void saveJoined(const std::string& filename);
304 
306  void setViewNet(GNEViewNet* viewNet);
307 
310 
313 
315  void changeEdgeEndpoints(GNEEdge* edge, const std::string& newSourceID, const std::string& newDestID);
316 
318  GNEViewNet* getViewNet() const;
319 
322 
325 
327  void initGNEConnections();
328 
330  void computeAndUpdate(OptionsCont& neteditOptions, bool volatileOptions);
331 
337  void computeNetwork(GNEApplicationWindow* window, bool force = false, bool volatileOptions = false);
338 
343 
348 
355  bool joinSelectedJunctions(GNEUndoList* undoList);
356 
358  bool cleanInvalidCrossings(GNEUndoList* undoList);
359 
361  void removeSolitaryJunctions(GNEUndoList* undoList);
362 
364  void cleanUnusedRoutes(GNEUndoList* undoList);
365 
367  void joinRoutes(GNEUndoList* undoList);
368 
370  void adjustPersonPlans(GNEUndoList* undoList);
371 
373  void cleanInvalidDemandElements(GNEUndoList* undoList);
374 
376  void replaceJunctionByGeometry(GNEJunction* junction, GNEUndoList* undoList);
377 
379  void splitJunction(GNEJunction* junction, bool reconnect, GNEUndoList* undoList);
380 
382  void clearJunctionConnections(GNEJunction* junction, GNEUndoList* undoList);
383 
385  void resetJunctionConnections(GNEJunction* junction, GNEUndoList* undoList);
386 
388  void clearAdditionalElements(GNEUndoList* undoList);
389 
391  void clearDemandElements(GNEUndoList* undoList);
392 
394  void clearDataElements(GNEUndoList* undoList);
395 
397  void clearMeanDataElements(GNEUndoList* undoList);
398 
402  void computeJunction(GNEJunction* junction);
403 
405  void requireRecompute();
406 
408  bool isNetRecomputed() const;
409 
411  FXApp* getApp();
412 
414  NBNetBuilder* getNetBuilder() const;
415 
417  void addExplicitTurnaround(std::string id);
418 
420  void removeExplicitTurnaround(std::string id);
421 
423  void saveAdditionals();
424 
426  void saveJuPedSimElements(const std::string& file);
427 
429  void saveDemandElements();
430 
432  void saveDataElements();
433 
435  double getDataSetIntervalMinimumBegin() const;
436 
438  double getDataSetIntervalMaximumEnd() const;
439 
441  void saveMeanDatas();
442 
446  void saveTLSPrograms(const std::string& filename);
447 
449  int getNumberOfTLSPrograms() const;
450 
454  void saveEdgeTypes(const std::string& filename);
455 
459  void enableUpdateGeometry();
460 
462  void disableUpdateGeometry();
463 
465  bool isUpdateGeometryEnabled() const;
466 
468 
472  void enableUpdateData();
473 
475  void disableUpdateData();
476 
478  bool isUpdateDataEnabled() const;
479 
481 
483  static const std::map<SumoXMLAttr, std::string> EMPTY_HEADER;
484 
485 protected:
488 
491 
493  GNEViewNet* myViewNet = nullptr;
494 
497 
500 
503 
505  // @{
506  unsigned int myJunctionIDCounter = 0;
507  unsigned int myEdgeIDCounter = 0;
508  // @}
509 
511  std::set<std::string> myExplicitTurnarounds;
512 
514  bool myNeedRecompute = true;
515 
518 
520  bool myUpdateDataEnabled = true;
521 
522 private:
524  void initJunctionsAndEdges();
525 
527  bool checkJunctionPosition(const Position& pos);
528 
531 
534 
537 
539  void saveMeanDatasConfirmed();
540 
542  void writeAdditionalByType(OutputDevice& device, const std::vector<SumoXMLTag> tags) const;
543 
545  void writeDemandByType(OutputDevice& device, SumoXMLTag tag) const;
546 
548  void writeRouteDistributions(OutputDevice& device, const bool additionalFile) const;
549 
551  void writeRoutes(OutputDevice& device, const bool additionalFile) const;
552 
554  void writeVTypeDistributions(OutputDevice& device, const bool additionalFile) const;
555 
557  void writeVTypes(OutputDevice& device, const bool additionalFile) const;
558 
560  void writeMeanDatas(OutputDevice& device, SumoXMLTag tag) const;
561 
563  bool writeVTypeComment(OutputDevice& device, const bool additionalFile) const;
564 
566  bool writeRouteComment(OutputDevice& device, const bool additionalFile) const;
567 
569  bool writeRouteProbeComment(OutputDevice& device) const;
570 
572  bool writeCalibratorComment(OutputDevice& device) const;
573 
575  bool writeStoppingPlaceComment(OutputDevice& device) const;
576 
578  bool writeDetectorComment(OutputDevice& device) const;
579 
581  bool writeOtherAdditionalsComment(OutputDevice& device) const;
582 
584  bool writeShapesComment(OutputDevice& device) const;
585 
587  bool writeJuPedSimComment(OutputDevice& device) const;
588 
590  bool writeTAZComment(OutputDevice& device) const;
591 
593  bool writeWireComment(OutputDevice& device) const;
594 
596  bool writeMeanDataEdgeComment(OutputDevice& device) const;
597 
599  bool writeMeanDataLaneComment(OutputDevice& device) const;
600 
602  static void replaceInListAttribute(GNEAttributeCarrier* ac, SumoXMLAttr key, const std::string& which, const std::string& by, GNEUndoList* undoList);
603 
606 
608  std::map<std::string, int> myEdgesAndNumberOfLanes;
609 
611  static const double Z_INITIALIZED;
612 
614  GNENet(const GNENet&) = delete;
615 
617  GNENet& operator=(const GNENet&) = delete;
618 };
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
SumoXMLTag
Numbers representing SUMO-XML - element names.
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
A class that stores a 2D geometrical boundary.
Definition: Boundary.h:39
An Element which don't belong to GNENet but has influence in the simulation.
Definition: GNEAdditional.h:49
The main window of Netedit.
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
Definition: GNECrossing.h:44
An Element which don't belong to GNENet but has influence in the simulation.
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:53
An Element which don't belong to GNENet but has influence in the simulation.
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition: GNELane.h:46
An Element which don't belong to GNENet but has influence in the simulation.
Definition: GNEMeanData.h:33
struct used for saving all attribute carriers of net, in different formats
Definition: GNENetHelper.h:75
modul for Saving status
Definition: GNENetHelper.h:821
A NBNetBuilder extended by visualisation and editing capabilities.
Definition: GNENet.h:42
void clearAdditionalElements(GNEUndoList *undoList)
clear additionals
Definition: GNENet.cpp:1997
void removeSolitaryJunctions(GNEUndoList *undoList)
removes junctions that have no edges
Definition: GNENet.cpp:1646
void deleteEdge(GNEEdge *edge, GNEUndoList *undoList, bool recomputeConnections)
removes edge
Definition: GNENet.cpp:413
void writeMeanDatas(OutputDevice &device, SumoXMLTag tag) const
write meanData element by type and sorted by ID
Definition: GNENet.cpp:2465
bool joinSelectedJunctions(GNEUndoList *undoList)
join selected junctions
Definition: GNENet.cpp:1457
void writeVTypeDistributions(OutputDevice &device, const bool additionalFile) const
write vTypeDistributions sorted by ID
Definition: GNENet.cpp:2430
double getDataSetIntervalMaximumEnd() const
get maximum interval
Definition: GNENet.cpp:2211
bool writeJuPedSimComment(OutputDevice &device) const
write JuPedSim comment
Definition: GNENet.cpp:2594
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
Definition: GNENet.cpp:187
void deleteLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
removes lane
Definition: GNENet.cpp:577
bool writeRouteProbeComment(OutputDevice &device) const
write routeProbe comment
Definition: GNENet.cpp:2517
static const double Z_INITIALIZED
marker for whether the z-boundary is initialized
Definition: GNENet.h:611
void deleteCrossing(GNECrossing *crossing, GNEUndoList *undoList)
remove crossing
Definition: GNENet.cpp:632
SUMORTree & getGrid()
Returns the RTree used for visualisation speed-up.
Definition: GNENet.cpp:146
GNEViewNet * myViewNet
The net to be notified of about changes.
Definition: GNENet.h:493
void deleteAdditional(GNEAdditional *additional, GNEUndoList *undoList)
remove additional
Definition: GNENet.cpp:650
void disableUpdateGeometry()
disable update geometry of elements after inserting or removing an element in net
Definition: GNENet.cpp:2701
void saveDemandElementsConfirmed()
save demand elements after confirming invalid objects
Definition: GNENet.cpp:2296
void saveTLSPrograms(const std::string &filename)
save TLS Programs elements of the network
Definition: GNENet.cpp:2646
void computeAndUpdate(OptionsCont &neteditOptions, bool volatileOptions)
recompute the network and update lane geometries
Definition: GNENet.cpp:2793
NBNetBuilder * getNetBuilder() const
get net builder
Definition: GNENet.cpp:1451
void saveAdditionalsConfirmed()
save additionals after confirming invalid objects
Definition: GNENet.cpp:2236
void addGLObjectIntoGrid(GNEAttributeCarrier *AC)
add GL Object into net
Definition: GNENet.cpp:1281
bool writeMeanDataLaneComment(OutputDevice &device) const
write Wire comment
Definition: GNENet.cpp:2636
void reverseEdge(GNEEdge *edge, GNEUndoList *undoList)
reverse edge
Definition: GNENet.cpp:1024
bool writeTAZComment(OutputDevice &device) const
write TAZ comment
Definition: GNENet.cpp:2606
void removeGLObjectFromGrid(GNEAttributeCarrier *AC)
add GL Object into net
Definition: GNENet.cpp:1290
void saveJoined(const std::string &filename)
save log of joined junctions (and nothing else)
Definition: GNENet.cpp:1255
NBTrafficLightLogicCont & getTLLogicCont()
returns the tllcont of the underlying netbuilder
Definition: GNENet.cpp:2062
bool restrictLane(SUMOVehicleClass vclass, GNELane *lane, GNEUndoList *undoList)
transform lane to restricted lane
Definition: GNENet.cpp:782
GNENetHelper::SavingStatus * getSavingStatus() const
get saving status
Definition: GNENet.cpp:127
void enableUpdateData()
Definition: GNENet.cpp:2713
GNEJunction * splitEdge(GNEEdge *edge, const Position &pos, GNEUndoList *undoList, GNEJunction *newJunction=0)
split edge at position by inserting a new junction
Definition: GNENet.cpp:884
void setViewNet(GNEViewNet *viewNet)
Set the net to be notified of network changes.
Definition: GNENet.cpp:1263
bool writeCalibratorComment(OutputDevice &device) const
write calibrator comment
Definition: GNENet.cpp:2527
bool myNeedRecompute
whether the net needs recomputation
Definition: GNENet.h:514
void deleteDemandElement(GNEDemandElement *demandElement, GNEUndoList *undoList)
remove demand element
Definition: GNENet.cpp:671
void duplicateLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
duplicates lane
Definition: GNENet.cpp:766
const Boundary & getZBoundary() const
Returns the Z boundary (stored in the x() coordinate) values of 0 do not affect the boundary.
Definition: GNENet.cpp:199
const Boundary & getBoundary() const
returns the bounder of the network
Definition: GNENet.cpp:139
void saveEdgeTypes(const std::string &filename)
save edgeTypes elements of the network
Definition: GNENet.cpp:2667
GNENet(const GNENet &)=delete
Invalidated copy constructor.
void deleteNetworkElement(GNENetworkElement *networkElement, GNEUndoList *undoList)
delete network element
Definition: GNENet.cpp:327
void saveAdditionals()
save additional elements
Definition: GNENet.cpp:2086
SUMORTree myGrid
the rtree which contains all GUIGlObjects (so named for historical reasons)
Definition: GNENet.h:487
void writeVTypes(OutputDevice &device, const bool additionalFile) const
write vTypes sorted by ID
Definition: GNENet.cpp:2448
void clearDataElements(GNEUndoList *undoList)
clear data elements
Definition: GNENet.cpp:2023
GNENet & operator=(const GNENet &)=delete
Invalidated assignment operator.
void deleteDataInterval(GNEDataInterval *dataInterval, GNEUndoList *undoList)
remove data interval
Definition: GNENet.cpp:714
void deleteConnection(GNEConnection *connection, GNEUndoList *undoList)
remove connection
Definition: GNENet.cpp:617
void clearDemandElements(GNEUndoList *undoList)
clear demand elements
Definition: GNENet.cpp:2010
bool writeMeanDataEdgeComment(OutputDevice &device) const
write meanDataEdge comment
Definition: GNENet.cpp:2626
void adjustPersonPlans(GNEUndoList *undoList)
adjust person plans
Definition: GNENet.cpp:1752
void computeNetwork(GNEApplicationWindow *window, bool force=false, bool volatileOptions=false)
trigger full netbuild computation param[in] window The window to inform about delay param[in] force W...
Definition: GNENet.cpp:1299
void writeRoutes(OutputDevice &device, const bool additionalFile) const
write route sorted by ID
Definition: GNENet.cpp:2415
void cleanInvalidDemandElements(GNEUndoList *undoList)
clean invalid demand elements
Definition: GNENet.cpp:1797
bool myUpdateDataEnabled
Flag to enable or disable update data elements after inserting or removing element in net.
Definition: GNENet.h:520
void cleanUnusedRoutes(GNEUndoList *undoList)
clean unused routes
Definition: GNENet.cpp:1662
NBNetBuilder * myNetBuilder
The internal netbuilder.
Definition: GNENet.h:490
void removeExplicitTurnaround(std::string id)
remove edge id from the list of explicit turnarounds
Definition: GNENet.cpp:2080
void computeJunction(GNEJunction *junction)
trigger recomputation of junction shape and logic param[in] window The window to inform about delay
Definition: GNENet.cpp:1415
void resetJunctionConnections(GNEJunction *junction, GNEUndoList *undoList)
reset junction's connections
Definition: GNENet.cpp:1986
void deleteMeanData(GNEMeanData *meanData, GNEUndoList *undoList)
remove generic data
Definition: GNENet.cpp:757
void replaceIncomingEdge(GNEEdge *which, GNEEdge *by, GNEUndoList *undoList)
replaces edge
Definition: GNENet.cpp:486
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
Definition: GNENet.cpp:180
void deleteGenericData(GNEGenericData *genericData, GNEUndoList *undoList)
remove generic data
Definition: GNENet.cpp:727
GNENetHelper::AttributeCarriers * getAttributeCarriers() const
get all attribute carriers used in this net
Definition: GNENet.cpp:121
GNEEdge * addReversedEdge(GNEEdge *edge, const bool disconnected, GNEUndoList *undoList)
add reversed edge
Definition: GNENet.cpp:1037
void changeEdgeEndpoints(GNEEdge *edge, const std::string &newSourceID, const std::string &newDestID)
modifies endpoins of the given edge
Definition: GNENet.cpp:2047
bool myUpdateGeometryEnabled
Flag to enable or disable update geometry of elements after inserting or removing element in net.
Definition: GNENet.h:517
void initJunctionsAndEdges()
Init Junctions and edges.
Definition: GNENet.cpp:2739
bool writeWireComment(OutputDevice &device) const
write Wire comment
Definition: GNENet.cpp:2616
void splitEdgesBidi(GNEEdge *edge, GNEEdge *oppositeEdge, const Position &pos, GNEUndoList *undoList)
split all edges at position by inserting one new junction
Definition: GNENet.cpp:1001
GNENetHelper::SavingStatus * mySavingStatus
AttributeCarriers of net.
Definition: GNENet.h:499
void saveDemandElements()
save demand element elements of the network
Definition: GNENet.cpp:2141
void clearMeanDataElements(GNEUndoList *undoList)
clear meanDatas
Definition: GNENet.cpp:2034
unsigned int myEdgeIDCounter
Definition: GNENet.h:507
void expandBoundary(const Boundary &newBoundary)
expand boundary
Definition: GNENet.cpp:193
void disableUpdateData()
disable update data elements after inserting or removing an element in net
Definition: GNENet.cpp:2724
bool removeRestrictedLane(SUMOVehicleClass vclass, GNEEdge *edge, GNEUndoList *undoList)
remove restricted lane
Definition: GNENet.cpp:870
void saveDataElements()
save data set elements of the network
Definition: GNENet.cpp:2183
~GNENet()
Destructor.
Definition: GNENet.cpp:107
void mergeJunctions(GNEJunction *moved, GNEJunction *target, GNEUndoList *undoList)
merge the given junctions edges between the given junctions will be deleted
Definition: GNENet.cpp:1075
GNEEdge * createEdge(GNEJunction *src, GNEJunction *dest, GNEEdge *edgeTemplate, GNEUndoList *undoList, const std::string &suggestedName="", bool wasSplit=false, bool allowDuplicateGeom=false, bool recomputeConnections=true)
creates a new edge (unless an edge with the same geometry already exists)
Definition: GNENet.cpp:230
std::set< std::string > myExplicitTurnarounds
list of edge ids for which turn-arounds must be added explicitly
Definition: GNENet.h:511
void saveJuPedSimElements(const std::string &file)
save JuPedSim elements
Definition: GNENet.cpp:2127
const std::map< std::string, int > & getEdgesAndNumberOfLanes() const
et edges and number of lanes
Definition: GNENet.cpp:151
bool writeStoppingPlaceComment(OutputDevice &device) const
write stoppingPlace comment
Definition: GNENet.cpp:2539
void addZValueInBoundary(const double z)
add Z in net boundary
Definition: GNENet.cpp:205
static const std::map< SumoXMLAttr, std::string > EMPTY_HEADER
variable used for write headers in additional, demand and data elements
Definition: GNENet.h:483
void writeRouteDistributions(OutputDevice &device, const bool additionalFile) const
write route distributions sorted by ID
Definition: GNENet.cpp:2397
bool isUpdateGeometryEnabled() const
check if update geometry after inserting or removing has to be updated
Definition: GNENet.cpp:2707
bool addRestrictedLane(SUMOVehicleClass vclass, GNEEdge *edge, int index, GNEUndoList *undoList)
add restricted lane to edge
Definition: GNENet.cpp:817
void saveNetwork()
save the network
Definition: GNENet.cpp:1212
bool checkJunctionPosition(const Position &pos)
return true if there are already a Junction in the given position, false in other case
Definition: GNENet.cpp:1200
bool addGreenVergeLane(GNEEdge *edge, int index, GNEUndoList *undoList)
add restricted lane to edge
Definition: GNENet.cpp:853
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
Definition: GNENet.cpp:170
bool isNetRecomputed() const
check if net require recomputing
Definition: GNENet.cpp:1439
void writeAdditionalByType(OutputDevice &device, const std::vector< SumoXMLTag > tags) const
write additional element by type and sorted by ID
Definition: GNENet.cpp:2367
bool isUpdateDataEnabled() const
check if update data after inserting or removing has to be updated
Definition: GNENet.cpp:2730
bool writeShapesComment(OutputDevice &device) const
write shape comment
Definition: GNENet.cpp:2580
void deleteDataSet(GNEDataSet *dataSet, GNEUndoList *undoList)
remove data set
Definition: GNENet.cpp:701
static void replaceInListAttribute(GNEAttributeCarrier *ac, SumoXMLAttr key, const std::string &which, const std::string &by, GNEUndoList *undoList)
replace in list attribute
Definition: GNENet.cpp:2902
bool cleanInvalidCrossings(GNEUndoList *undoList)
clear invalid crossings
Definition: GNENet.cpp:1593
void splitJunction(GNEJunction *junction, bool reconnect, GNEUndoList *undoList)
replace the selected junction by a list of junctions for each unique edge endpoint
Definition: GNENet.cpp:1890
void selectRoundabout(GNEJunction *junction, GNEUndoList *undoList)
select all roundabout edges and junctions for the current roundabout
Definition: GNENet.cpp:1108
void joinRoutes(GNEUndoList *undoList)
join routes
Definition: GNENet.cpp:1688
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
Definition: GNENet.cpp:157
bool writeRouteComment(OutputDevice &device, const bool additionalFile) const
write route comment
Definition: GNENet.cpp:2502
bool writeVTypeComment(OutputDevice &device, const bool additionalFile) const
write vType comment
Definition: GNENet.cpp:2480
void replaceJunctionByGeometry(GNEJunction *junction, GNEUndoList *undoList)
replace the selected junction by geometry node(s) and merge the edges
Definition: GNENet.cpp:1836
GNEPathManager * myPathManager
Path manager.
Definition: GNENet.h:502
bool writeDetectorComment(OutputDevice &device) const
write detector comment
Definition: GNENet.cpp:2551
GNEPathManager * getPathManager()
get path manager
Definition: GNENet.cpp:133
void createRoundabout(GNEJunction *junction, GNEUndoList *undoList)
transform the given junction into a roundabout
Definition: GNENet.cpp:1127
void writeDemandByType(OutputDevice &device, SumoXMLTag tag) const
write demand element by type and sorted by ID
Definition: GNENet.cpp:2385
void requireRecompute()
inform the net about the need for recomputation
Definition: GNENet.cpp:1433
GNEJunction * createJunction(const Position &pos, GNEUndoList *undoList)
creates a new junction
Definition: GNENet.cpp:214
unsigned int myJunctionIDCounter
Definition: GNENet.h:506
bool writeOtherAdditionalsComment(OutputDevice &device) const
write other additional comment
Definition: GNENet.cpp:2563
std::map< std::string, int > myEdgesAndNumberOfLanes
map with the Edges and their number of lanes
Definition: GNENet.h:608
void saveMeanDatasConfirmed()
save meanDatas
Definition: GNENet.cpp:2349
void addExplicitTurnaround(std::string id)
add edge id to the list of explicit turnarounds
Definition: GNENet.cpp:2074
void initGNEConnections()
initialize GNEConnections
Definition: GNENet.cpp:2780
void deleteJunction(GNEJunction *junction, GNEUndoList *undoList)
removes junction and all incident edges
Definition: GNENet.cpp:368
NBEdgeCont & getEdgeCont()
returns the NBEdgeCont of the underlying netbuilder
Definition: GNENet.cpp:2068
void savePlain(const std::string &prefix)
save plain xml representation of the network (and nothing else)
Definition: GNENet.cpp:1246
GNENetHelper::AttributeCarriers * myAttributeCarriers
AttributeCarriers of net.
Definition: GNENet.h:496
void computeDataElements(GNEApplicationWindow *window)
compute data elements param[in] window The window to inform about delay
Definition: GNENet.cpp:1402
FXApp * getApp()
get pointer to the main App
Definition: GNENet.cpp:1445
int getNumberOfTLSPrograms() const
get number of TLS Programs
Definition: GNENet.cpp:2661
GNEViewNet * getViewNet() const
get view net
Definition: GNENet.cpp:2056
void saveDataElementsConfirmed()
save data elements after confirming invalid objects
Definition: GNENet.cpp:2334
GNENet(NBNetBuilder *netBuilder)
Constructor.
Definition: GNENet.cpp:87
void enableUpdateGeometry()
Definition: GNENet.cpp:2695
void clearJunctionConnections(GNEJunction *junction, GNEUndoList *undoList)
clear junction's connections
Definition: GNENet.cpp:1974
void saveMeanDatas()
save meanData elements of the network
Definition: GNENet.cpp:2228
Boundary myZBoundary
the z boundary (stored in the x-coordinate), values of 0 are ignored
Definition: GNENet.h:605
double getDataSetIntervalMinimumBegin() const
get minimum interval
Definition: GNENet.cpp:2194
void computeDemandElements(GNEApplicationWindow *window)
compute demand elements param[in] window The window to inform about delay
Definition: GNENet.cpp:1382
The popup menu of a globject.
A window containing a gl-object's parameter.
Stores the information about how to visualize structures.
Storage for edges, including some functionality operating on multiple edges.
Definition: NBEdgeCont.h:59
Instance responsible for building networks.
Definition: NBNetBuilder.h:107
A container for traffic light definitions and built programs.
A storage for options typed value containers)
Definition: OptionsCont.h:89
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:61
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:37
A RT-tree for efficient storing of SUMO's GL-objects.
Definition: SUMORTree.h:66