Eclipse SUMO - Simulation of Urban MObility
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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-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// 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// ===========================================================================
42class GNENet : public GUIGlObject {
43
44public:
46 GNENet(NBNetBuilder* netBuilder, const GNETagPropertiesDatabase* tagPropertiesDatabase);
47
49 ~GNENet();
50
53
56
59
62
65
68
71
74
77
85
94
101
103 void expandBoundary(const Boundary& newBoundary);
104
106 const Boundary& getZBoundary() const;
107
109 void addZValueInBoundary(const double z);
110
115 void drawGL(const GUIVisualizationSettings& s) const;
116
118
120 const Boundary& getBoundary() const;
121
127
129 const std::map<std::string, int>& getEdgesAndNumberOfLanes() const;
130
136 GNEJunction* createJunction(const Position& pos, GNEUndoList* undoList);
137
150 GNEEdge* createEdge(GNEJunction* src, GNEJunction* dest, GNEEdge* edgeTemplate, GNEUndoList* undoList,
151 const std::string& suggestedName = "", bool wasSplit = false, bool allowDuplicateGeom = false,
152 bool recomputeConnections = true);
153
158 void deleteNetworkElement(GNENetworkElement* networkElement, GNEUndoList* undoList);
159
164 void deleteJunction(GNEJunction* junction, GNEUndoList* undoList);
165
170 void deleteEdge(GNEEdge* edge, GNEUndoList* undoList, bool recomputeConnections);
171
177 void replaceIncomingEdge(GNEEdge* which, GNEEdge* by, GNEUndoList* undoList);
178
183 void deleteLane(GNELane* lane, GNEUndoList* undoList, bool recomputeConnections);
184
189 void deleteConnection(GNEConnection* connection, GNEUndoList* undoList);
190
195 void deleteCrossing(GNECrossing* crossing, GNEUndoList* undoList);
196
201 void deleteAdditional(GNEAdditional* additional, GNEUndoList* undoList);
202
207 void deleteTAZSourceSink(GNETAZSourceSink* TAZSourceSink, GNEUndoList* undoList);
208
213 void deleteDemandElement(GNEDemandElement* demandElement, GNEUndoList* undoList);
214
219 void deleteDataSet(GNEDataSet* dataSet, GNEUndoList* undoList);
220
225 void deleteDataInterval(GNEDataInterval* dataInterval, GNEUndoList* undoList);
226
231 void deleteGenericData(GNEGenericData* genericData, GNEUndoList* undoList);
232
237 void deleteMeanData(GNEMeanData* meanData, GNEUndoList* undoList);
238
243 void duplicateLane(GNELane* lane, GNEUndoList* undoList, bool recomputeConnections);
244
250 bool restrictLane(SUMOVehicleClass vclass, GNELane* lane, GNEUndoList* undoList);
251
258 bool addRestrictedLane(SUMOVehicleClass vclass, GNEEdge* edge, int index, GNEUndoList* undoList);
259
265 bool addGreenVergeLane(GNEEdge* edge, int index, GNEUndoList* undoList);
266
272 bool removeRestrictedLane(SUMOVehicleClass vclass, GNEEdge* edge, GNEUndoList* undoList);
273
279 std::pair<GNEJunction*, GNEEdge*> splitEdge(GNEEdge* edge, const Position& pos, GNEUndoList* undoList, GNEJunction* newJunction = 0);
280
286 void splitEdgesBidi(GNEEdge* edge, GNEEdge* oppositeEdge, const Position& pos, GNEUndoList* undoList);
287
291 void reverseEdge(GNEEdge* edge, GNEUndoList* undoList);
292
298 GNEEdge* addReversedEdge(GNEEdge* edge, const bool disconnected, GNEUndoList* undoList);
299
306 void mergeJunctions(GNEJunction* moved, const GNEJunction* target, GNEUndoList* undoList);
307
309 void selectRoundabout(GNEJunction* junction, GNEUndoList* undoList);
310
312 void createRoundabout(GNEJunction* junction, GNEUndoList* undoList);
313
315 void saveNetwork();
316
318 void savePlain(const std::string& prefix);
319
321 void saveJoined(const std::string& filename);
322
324 void setViewNet(GNEViewNet* viewNet);
325
328
331
333 void changeEdgeEndpoints(GNEEdge* edge, const std::string& newSourceID, const std::string& newDestID);
334
336 GNEViewNet* getViewNet() const;
337
340
343
345 void initGNEConnections();
346
348 void computeAndUpdate(OptionsCont& neteditOptions, bool volatileOptions);
349
355 void computeNetwork(GNEApplicationWindow* window, bool force = false, bool volatileOptions = false);
356
361
366
373 bool joinSelectedJunctions(GNEUndoList* undoList);
374
376 bool cleanInvalidCrossings(GNEUndoList* undoList);
377
379 void removeSolitaryJunctions(GNEUndoList* undoList);
380
382 void cleanUnusedRoutes(GNEUndoList* undoList);
383
385 void joinRoutes(GNEUndoList* undoList);
386
388 void adjustPersonPlans(GNEUndoList* undoList);
389
392
394 void replaceJunctionByGeometry(GNEJunction* junction, GNEUndoList* undoList);
395
397 void splitJunction(GNEJunction* junction, bool reconnect, GNEUndoList* undoList);
398
400 void clearJunctionConnections(GNEJunction* junction, GNEUndoList* undoList);
401
403 void resetJunctionConnections(GNEJunction* junction, GNEUndoList* undoList);
404
406 void clearAdditionalElements(GNEUndoList* undoList);
407
409 void clearDemandElements(GNEUndoList* undoList);
410
412 void clearDataElements(GNEUndoList* undoList);
413
415 void clearMeanDataElements(GNEUndoList* undoList);
416
420 void computeJunction(GNEJunction* junction);
421
423 void requireRecompute();
424
426 bool isNetRecomputed() const;
427
429 FXApp* getApp();
430
433
435 void addExplicitTurnaround(std::string id);
436
438 void removeExplicitTurnaround(std::string id);
439
441 bool saveAdditionals();
442
444 bool saveJuPedSimElements(const std::unordered_set<const GNEAttributeCarrier*>& ACs, const std::string& file);
445
447 bool saveDemandElements();
448
450 bool saveDataElements();
451
453 double getDataSetIntervalMinimumBegin() const;
454
456 double getDataSetIntervalMaximumEnd() const;
457
459 bool saveMeanDatas();
460
464 void saveTLSPrograms(const std::string& filename);
465
467 int getNumberOfTLSPrograms() const;
468
472 void saveEdgeTypes(const std::string& filename);
473
478
481
483 bool isUpdateGeometryEnabled() const;
484
486
490 void enableUpdateData();
491
493 void disableUpdateData();
494
496 bool isUpdateDataEnabled() const;
497
499
501 unsigned int& getJunctionIDCounter();
502
504 unsigned int& getEdgeIDCounter();
505
507 static const std::map<SumoXMLAttr, std::string> EMPTY_HEADER;
508
509protected:
512
515
518
521
524
527
530
533
536
539
542
544 // @{
545 unsigned int myJunctionIDCounter = 0;
546 unsigned int myEdgeIDCounter = 0;
547 // @}
548
550 std::set<std::string> myExplicitTurnarounds;
551
553 bool myNeedRecompute = true;
554
557
560
561private:
564
566 bool checkJunctionPosition(const Position& pos);
567
570
573
576
579
581 void writeAdditionalByType(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs,
582 const std::vector<SumoXMLTag> tags) const;
583
585 void writeDemandByType(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs, SumoXMLTag tag) const;
586
588 void writeRouteDistributions(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs) const;
589
591 void writeRoutes(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs, const bool additionalFile) const;
592
594 void writeVTypeDistributions(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs) const;
595
597 void writeVTypes(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs, const bool additionalFile) const;
598
600 void writeMeanDatas(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs, SumoXMLTag tag) const;
601
603 bool writeVTypeComment(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs, const bool additionalFile) const;
604
606 bool writeRouteComment(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs, const bool additionalFile) const;
607
609 bool writeRouteProbeComment(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs) const;
610
612 bool writeCalibratorComment(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs) const;
613
615 bool writeStoppingPlaceComment(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs) const;
616
618 bool writeDetectorComment(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs) const;
619
621 bool writeOtherAdditionalsComment(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs) const;
622
624 bool writeShapesComment(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs) const;
625
627 bool writeJuPedSimComment(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs) const;
628
630 bool writeTAZComment(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs) const;
631
633 bool writeWireComment(OutputDevice& device, const std::unordered_set<const GNEAttributeCarrier*>& ACs) const;
634
636 bool writeMeanDataEdgeComment(OutputDevice& device) const;
637
639 bool writeMeanDataLaneComment(OutputDevice& device) const;
640
642 static void replaceInListAttribute(GNEAttributeCarrier* ac, SumoXMLAttr key, const std::string& which, const std::string& by, GNEUndoList* undoList);
643
646
648 std::map<std::string, int> myEdgesAndNumberOfLanes;
649
651 static const double Z_INITIALIZED;
652
654 GNENet() = delete;
655
657 GNENet(const GNENet&) = delete;
658
660 GNENet& operator=(const GNENet&) = delete;
661};
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
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
A road/street connecting two junctions (netedit-version)
Definition GNEEdge.h:53
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition GNELane.h:46
modul for AC Templates
struct used for saving all attribute carriers of net, in different formats
modul for handling saving files
modul for Saving status
A NBNetBuilder extended by visualisation and editing capabilities.
Definition GNENet.h:42
void clearAdditionalElements(GNEUndoList *undoList)
clear additionals
Definition GNENet.cpp:2126
void removeSolitaryJunctions(GNEUndoList *undoList)
removes junctions that have no edges
Definition GNENet.cpp:1783
GNEPathManager * myDataPathManager
Data path manager.
Definition GNENet.h:541
void deleteEdge(GNEEdge *edge, GNEUndoList *undoList, bool recomputeConnections)
removes edge
Definition GNENet.cpp:460
const GNETagPropertiesDatabase * myTagPropertiesDatabase
pointer to tagProperties database
Definition GNENet.h:520
bool joinSelectedJunctions(GNEUndoList *undoList)
join selected junctions
Definition GNENet.cpp:1624
double getDataSetIntervalMaximumEnd() const
get maximum interval
Definition GNENet.cpp:2343
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
Definition GNENet.cpp:236
void deleteLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
removes lane
Definition GNENet.cpp:639
static const double Z_INITIALIZED
marker for whether the z-boundary is initialized
Definition GNENet.h:651
void deleteCrossing(GNECrossing *crossing, GNEUndoList *undoList)
remove crossing
Definition GNENet.cpp:696
SUMORTree & getGrid()
Returns the RTree used for visualisation speed-up.
Definition GNENet.cpp:195
GNEViewNet * myViewNet
The net to be notified of about changes.
Definition GNENet.h:517
void deleteAdditional(GNEAdditional *additional, GNEUndoList *undoList)
remove additional
Definition GNENet.cpp:714
bool saveMeanDatas()
save meanData elements of the network
Definition GNENet.cpp:2360
void disableUpdateGeometry()
disable update geometry of elements after inserting or removing an element in net
Definition GNENet.cpp:2917
void saveDemandElementsConfirmed()
save demand elements after confirming invalid objects
Definition GNENet.cpp:2439
void saveTLSPrograms(const std::string &filename)
save TLS Programs elements of the network
Definition GNENet.cpp:2864
void computeAndUpdate(OptionsCont &neteditOptions, bool volatileOptions)
recompute the network and update lane geometries
Definition GNENet.cpp:3021
NBNetBuilder * getNetBuilder() const
get net builder
Definition GNENet.cpp:1618
void saveAdditionalsConfirmed()
save additionals after confirming invalid objects
Definition GNENet.cpp:2369
void addGLObjectIntoGrid(GNEAttributeCarrier *AC)
add GL Object into net
Definition GNENet.cpp:1442
GNEPathManager * getDataPathManager()
get data path manager
Definition GNENet.cpp:182
bool writeMeanDataLaneComment(OutputDevice &device) const
write Wire comment
Definition GNENet.cpp:2854
void reverseEdge(GNEEdge *edge, GNEUndoList *undoList)
reverse edge
Definition GNENet.cpp:1116
void removeGLObjectFromGrid(GNEAttributeCarrier *AC)
add GL Object into net
Definition GNENet.cpp:1452
void saveJoined(const std::string &filename)
save log of joined junctions (and nothing else)
Definition GNENet.cpp:1416
NBTrafficLightLogicCont & getTLLogicCont()
returns the tllcont of the underlying netbuilder
Definition GNENet.cpp:2200
bool restrictLane(SUMOVehicleClass vclass, GNELane *lane, GNEUndoList *undoList)
transform lane to restricted lane
Definition GNENet.cpp:855
GNENetHelper::SavingStatus * getSavingStatus() const
get saving status
Definition GNENet.cpp:164
void enableUpdateData()
Definition GNENet.cpp:2929
void mergeJunctions(GNEJunction *moved, const GNEJunction *target, GNEUndoList *undoList)
merge the given junctions edges between the given junctions will be deleted
Definition GNENet.cpp:1170
void setViewNet(GNEViewNet *viewNet)
Set the net to be notified of network changes.
Definition GNENet.cpp:1424
bool writeCalibratorComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write calibrator comment
Definition GNENet.cpp:2742
bool myNeedRecompute
whether the net needs recomputation
Definition GNENet.h:553
void deleteDemandElement(GNEDemandElement *demandElement, GNEUndoList *undoList)
remove demand element
Definition GNENet.cpp:748
void duplicateLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
duplicates lane
Definition GNENet.cpp:839
const Boundary & getZBoundary() const
Returns the Z boundary (stored in the x() coordinate) values of 0 do not affect the boundary.
Definition GNENet.cpp:248
const Boundary & getBoundary() const
returns the bounder of the network
Definition GNENet.cpp:188
void writeAdditionalByType(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs, const std::vector< SumoXMLTag > tags) const
write additional element by type and sorted by ID
Definition GNENet.cpp:2549
void saveEdgeTypes(const std::string &filename)
save edgeTypes elements of the network
Definition GNENet.cpp:2883
GNENet(const GNENet &)=delete
Invalidated copy constructor.
void deleteNetworkElement(GNENetworkElement *networkElement, GNEUndoList *undoList)
delete network element
Definition GNENet.cpp:372
SUMORTree myGrid
the rtree which contains all GUIGlObjects (so named for historical reasons)
Definition GNENet.h:511
void clearDataElements(GNEUndoList *undoList)
clear data elements
Definition GNENet.cpp:2161
bool writeDetectorComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write detector comment
Definition GNENet.cpp:2766
void deleteDataInterval(GNEDataInterval *dataInterval, GNEUndoList *undoList)
remove data interval
Definition GNENet.cpp:787
bool saveDataElements()
save data set elements of the network
Definition GNENet.cpp:2314
void deleteConnection(GNEConnection *connection, GNEUndoList *undoList)
remove connection
Definition GNENet.cpp:681
void clearDemandElements(GNEUndoList *undoList)
clear demand elements
Definition GNENet.cpp:2139
GNEPathManager * getDemandPathManager()
get demand path manager
Definition GNENet.cpp:176
bool writeMeanDataEdgeComment(OutputDevice &device) const
write meanDataEdge comment
Definition GNENet.cpp:2844
void adjustPersonPlans(GNEUndoList *undoList)
adjust person plans
Definition GNENet.cpp:1889
GNENetHelper::ACTemplate * getACTemplates() const
get all attribute carriers templates used in this net
Definition GNENet.cpp:152
bool writeShapesComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write shape comment
Definition GNENet.cpp:2796
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:1462
void cleanInvalidDemandElements(GNEUndoList *undoList)
clean invalid demand elements
Definition GNENet.cpp:1934
bool myUpdateDataEnabled
Flag to enable or disable update data elements after inserting or removing element in net.
Definition GNENet.h:559
void cleanUnusedRoutes(GNEUndoList *undoList)
clean unused routes
Definition GNENet.cpp:1799
NBNetBuilder * myNetBuilder
The internal netbuilder.
Definition GNENet.h:514
void removeExplicitTurnaround(std::string id)
remove edge id from the list of explicit turnarounds
Definition GNENet.cpp:2218
void computeJunction(GNEJunction *junction)
trigger recomputation of junction shape and logic param[in] window The window to inform about delay
Definition GNENet.cpp:1582
void resetJunctionConnections(GNEJunction *junction, GNEUndoList *undoList)
reset junction's connections
Definition GNENet.cpp:2115
void deleteMeanData(GNEMeanData *meanData, GNEUndoList *undoList)
remove generic data
Definition GNENet.cpp:830
void replaceIncomingEdge(GNEEdge *which, GNEEdge *by, GNEUndoList *undoList)
replaces edge
Definition GNENet.cpp:546
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
Definition GNENet.cpp:229
void deleteGenericData(GNEGenericData *genericData, GNEUndoList *undoList)
remove generic data
Definition GNENet.cpp:800
std::pair< GNEJunction *, GNEEdge * > splitEdge(GNEEdge *edge, const Position &pos, GNEUndoList *undoList, GNEJunction *newJunction=0)
split edge at position by inserting a new junction
Definition GNENet.cpp:975
GNENetHelper::AttributeCarriers * getAttributeCarriers() const
get all attribute carriers used in this net
Definition GNENet.cpp:146
bool writeOtherAdditionalsComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write other additional comment
Definition GNENet.cpp:2778
GNEEdge * addReversedEdge(GNEEdge *edge, const bool disconnected, GNEUndoList *undoList)
add reversed edge
Definition GNENet.cpp:1132
void changeEdgeEndpoints(GNEEdge *edge, const std::string &newSourceID, const std::string &newDestID)
modifies endpoins of the given edge
Definition GNENet.cpp:2185
bool myUpdateGeometryEnabled
Flag to enable or disable update geometry of elements after inserting or removing element in net.
Definition GNENet.h:556
void writeMeanDatas(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs, SumoXMLTag tag) const
write meanData element by type and sorted by ID
Definition GNENet.cpp:2672
void initJunctionsAndEdges()
Init Junctions and edges.
Definition GNENet.cpp:2967
void splitEdgesBidi(GNEEdge *edge, GNEEdge *oppositeEdge, const Position &pos, GNEUndoList *undoList)
split all edges at position by inserting one new junction
Definition GNENet.cpp:1092
GNENetHelper::SavingStatus * mySavingStatus
saving status module
Definition GNENet.h:532
void clearMeanDataElements(GNEUndoList *undoList)
clear meanDatas
Definition GNENet.cpp:2172
void writeVTypeDistributions(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write vTypeDistributions sorted by ID
Definition GNENet.cpp:2629
unsigned int myEdgeIDCounter
Definition GNENet.h:546
void expandBoundary(const Boundary &newBoundary)
expand boundary
Definition GNENet.cpp:242
void disableUpdateData()
disable update data elements after inserting or removing an element in net
Definition GNENet.cpp:2940
void writeDemandByType(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs, SumoXMLTag tag) const
write demand element by type and sorted by ID
Definition GNENet.cpp:2572
bool removeRestrictedLane(SUMOVehicleClass vclass, GNEEdge *edge, GNEUndoList *undoList)
remove restricted lane
Definition GNENet.cpp:961
void deleteTAZSourceSink(GNETAZSourceSink *TAZSourceSink, GNEUndoList *undoList)
remove TAZSourceSink
Definition GNENet.cpp:739
~GNENet()
Destructor.
Definition GNENet.cpp:125
void writeVTypes(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs, const bool additionalFile) const
write vTypes sorted by ID
Definition GNENet.cpp:2645
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:279
std::set< std::string > myExplicitTurnarounds
list of edge ids for which turn-arounds must be added explicitly
Definition GNENet.h:550
GNENetHelper::SavingFilesHandler * getSavingFilesHandler() const
get saving files handler
Definition GNENet.cpp:158
bool saveAdditionals()
save additional elements
Definition GNENet.cpp:2224
const std::map< std::string, int > & getEdgesAndNumberOfLanes() const
et edges and number of lanes
Definition GNENet.cpp:200
void addZValueInBoundary(const double z)
add Z in net boundary
Definition GNENet.cpp:254
static const std::map< SumoXMLAttr, std::string > EMPTY_HEADER
variable used for write headers in additional, demand and data elements
Definition GNENet.h:507
bool isUpdateGeometryEnabled() const
check if update geometry after inserting or removing has to be updated
Definition GNENet.cpp:2923
bool addRestrictedLane(SUMOVehicleClass vclass, GNEEdge *edge, int index, GNEUndoList *undoList)
add restricted lane to edge
Definition GNENet.cpp:908
void saveNetwork()
save the network
Definition GNENet.cpp:1369
bool checkJunctionPosition(const Position &pos)
return true if there are already a Junction in the given position, false in other case
Definition GNENet.cpp:1357
bool addGreenVergeLane(GNEEdge *edge, int index, GNEUndoList *undoList)
add restricted lane to edge
Definition GNENet.cpp:944
const GNETagPropertiesDatabase * getTagPropertiesDatabase() const
get tag properties database
Definition GNENet.cpp:140
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
Definition GNENet.cpp:219
bool isNetRecomputed() const
check if net require recomputing
Definition GNENet.cpp:1606
GNENet & operator=(const GNENet &)=delete
Invalidated assignment operator.
GNEPathManager * myNetworkPathManager
Network path manager.
Definition GNENet.h:535
bool isUpdateDataEnabled() const
check if update data after inserting or removing has to be updated
Definition GNENet.cpp:2946
void deleteDataSet(GNEDataSet *dataSet, GNEUndoList *undoList)
remove data set
Definition GNENet.cpp:774
static void replaceInListAttribute(GNEAttributeCarrier *ac, SumoXMLAttr key, const std::string &which, const std::string &by, GNEUndoList *undoList)
replace in list attribute
Definition GNENet.cpp:3120
bool saveJuPedSimElements(const std::unordered_set< const GNEAttributeCarrier * > &ACs, const std::string &file)
save JuPedSim elements
Definition GNENet.cpp:2260
bool cleanInvalidCrossings(GNEUndoList *undoList)
clear invalid crossings
Definition GNENet.cpp:1741
bool writeStoppingPlaceComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write stoppingPlace comment
Definition GNENet.cpp:2754
GNEPathManager * getNetworkPathManager()
get network path manager
Definition GNENet.cpp:170
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:2018
void selectRoundabout(GNEJunction *junction, GNEUndoList *undoList)
select all roundabout edges and junctions for the current roundabout
Definition GNENet.cpp:1201
void joinRoutes(GNEUndoList *undoList)
join routes
Definition GNENet.cpp:1825
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
Definition GNENet.cpp:206
void writeRouteDistributions(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write route distributions sorted by ID
Definition GNENet.cpp:2586
void replaceJunctionByGeometry(GNEJunction *junction, GNEUndoList *undoList)
replace the selected junction by geometry node(s) and merge the edges
Definition GNENet.cpp:1973
bool writeRouteComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs, const bool additionalFile) const
write route comment
Definition GNENet.cpp:2713
GNENetHelper::SavingFilesHandler * mySavingFilesHandler
saving files handler module
Definition GNENet.h:529
void createRoundabout(GNEJunction *junction, GNEUndoList *undoList)
transform the given junction into a roundabout
Definition GNENet.cpp:1220
void requireRecompute()
inform the net about the need for recomputation
Definition GNENet.cpp:1600
bool writeJuPedSimComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write JuPedSim comment
Definition GNENet.cpp:2808
GNEJunction * createJunction(const Position &pos, GNEUndoList *undoList)
creates a new junction
Definition GNENet.cpp:263
bool writeRouteProbeComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write routeProbe comment
Definition GNENet.cpp:2730
bool writeTAZComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write TAZ comment
Definition GNENet.cpp:2820
unsigned int myJunctionIDCounter
Definition GNENet.h:545
std::map< std::string, int > myEdgesAndNumberOfLanes
map with the Edges and their number of lanes
Definition GNENet.h:648
GNEPathManager * myDemandPathManager
Demand path manager.
Definition GNENet.h:538
bool writeWireComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write Wire comment
Definition GNENet.cpp:2832
void writeRoutes(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs, const bool additionalFile) const
write route sorted by ID
Definition GNENet.cpp:2602
bool writeVTypeComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs, const bool additionalFile) const
write vType comment
Definition GNENet.cpp:2689
void saveMeanDatasConfirmed()
save meanDatas
Definition GNENet.cpp:2519
void addExplicitTurnaround(std::string id)
add edge id to the list of explicit turnarounds
Definition GNENet.cpp:2212
void initGNEConnections()
initialize GNEConnections
Definition GNENet.cpp:3008
void deleteJunction(GNEJunction *junction, GNEUndoList *undoList)
removes junction and all incident edges
Definition GNENet.cpp:413
NBEdgeCont & getEdgeCont()
returns the NBEdgeCont of the underlying netbuilder
Definition GNENet.cpp:2206
GNENet()=delete
Invalidated default constructor.
void savePlain(const std::string &prefix)
save plain xml representation of the network (and nothing else)
Definition GNENet.cpp:1407
unsigned int & getJunctionIDCounter()
Definition GNENet.cpp:2952
bool saveDemandElements()
save demand element elements of the network
Definition GNENet.cpp:2277
GNENetHelper::AttributeCarriers * myAttributeCarriers
attributeCarriers module
Definition GNENet.h:523
void computeDataElements(GNEApplicationWindow *window)
compute data elements param[in] window The window to inform about delay
Definition GNENet.cpp:1569
FXApp * getApp()
get pointer to the main App
Definition GNENet.cpp:1612
GNENetHelper::ACTemplate * myACTemplates
attributeCarriers templates
Definition GNENet.h:526
int getNumberOfTLSPrograms() const
get number of TLS Programs
Definition GNENet.cpp:2877
GNEViewNet * getViewNet() const
get view net
Definition GNENet.cpp:2194
void saveDataElementsConfirmed()
save data elements after confirming invalid objects
Definition GNENet.cpp:2491
void enableUpdateGeometry()
Definition GNENet.cpp:2911
void clearJunctionConnections(GNEJunction *junction, GNEUndoList *undoList)
clear junction's connections
Definition GNENet.cpp:2103
Boundary myZBoundary
the z boundary (stored in the x-coordinate), values of 0 are ignored
Definition GNENet.h:645
double getDataSetIntervalMinimumBegin() const
get minimum interval
Definition GNENet.cpp:2326
void computeDemandElements(GNEApplicationWindow *window)
compute demand elements param[in] window The window to inform about delay
Definition GNENet.cpp:1549
unsigned int & getEdgeIDCounter()
Definition GNENet.cpp:2958
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.
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.
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