Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
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
100 Boundary getCenteringBoundary() const override;
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 override;
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.
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
void clearAdditionalElements(GNEUndoList *undoList)
clear additionals
Definition GNENet.cpp:2125
void removeSolitaryJunctions(GNEUndoList *undoList)
removes junctions that have no edges
Definition GNENet.cpp:1782
GNEPathManager * myDataPathManager
Data path manager.
Definition GNENet.h:541
void deleteEdge(GNEEdge *edge, GNEUndoList *undoList, bool recomputeConnections)
removes edge
Definition GNENet.cpp:458
const GNETagPropertiesDatabase * myTagPropertiesDatabase
pointer to tagProperties database
Definition GNENet.h:520
bool joinSelectedJunctions(GNEUndoList *undoList)
join selected junctions
Definition GNENet.cpp:1622
double getDataSetIntervalMaximumEnd() const
get maximum interval
Definition GNENet.cpp:2327
void deleteLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
removes lane
Definition GNENet.cpp:637
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:694
SUMORTree & getGrid()
Returns the RTree used for visualisation speed-up.
Definition GNENet.cpp:193
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:712
bool saveMeanDatas()
save meanData elements of the network
Definition GNENet.cpp:2344
void disableUpdateGeometry()
disable update geometry of elements after inserting or removing an element in net
Definition GNENet.cpp:2873
void saveDemandElementsConfirmed()
save demand elements after confirming invalid objects
Definition GNENet.cpp:2423
void saveTLSPrograms(const std::string &filename)
save TLS Programs elements of the network
Definition GNENet.cpp:2820
void computeAndUpdate(OptionsCont &neteditOptions, bool volatileOptions)
recompute the network and update lane geometries
Definition GNENet.cpp:2977
NBNetBuilder * getNetBuilder() const
get net builder
Definition GNENet.cpp:1616
void saveAdditionalsConfirmed()
save additionals after confirming invalid objects
Definition GNENet.cpp:2353
void addGLObjectIntoGrid(GNEAttributeCarrier *AC)
add GL Object into net
Definition GNENet.cpp:1440
GNEPathManager * getDataPathManager()
get data path manager
Definition GNENet.cpp:180
bool writeMeanDataLaneComment(OutputDevice &device) const
write Wire comment
Definition GNENet.cpp:2810
void reverseEdge(GNEEdge *edge, GNEUndoList *undoList)
reverse edge
Definition GNENet.cpp:1114
void removeGLObjectFromGrid(GNEAttributeCarrier *AC)
add GL Object into net
Definition GNENet.cpp:1450
void saveJoined(const std::string &filename)
save log of joined junctions (and nothing else)
Definition GNENet.cpp:1414
NBTrafficLightLogicCont & getTLLogicCont()
returns the tllcont of the underlying netbuilder
Definition GNENet.cpp:2199
bool restrictLane(SUMOVehicleClass vclass, GNELane *lane, GNEUndoList *undoList)
transform lane to restricted lane
Definition GNENet.cpp:853
GNENetHelper::SavingStatus * getSavingStatus() const
get saving status
Definition GNENet.cpp:162
void enableUpdateData()
Definition GNENet.cpp:2885
void mergeJunctions(GNEJunction *moved, const GNEJunction *target, GNEUndoList *undoList)
merge the given junctions edges between the given junctions will be deleted
Definition GNENet.cpp:1168
void setViewNet(GNEViewNet *viewNet)
Set the net to be notified of network changes.
Definition GNENet.cpp:1422
bool writeCalibratorComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write calibrator comment
Definition GNENet.cpp:2698
bool myNeedRecompute
whether the net needs recomputation
Definition GNENet.h:553
void deleteDemandElement(GNEDemandElement *demandElement, GNEUndoList *undoList)
remove demand element
Definition GNENet.cpp:746
void duplicateLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
duplicates lane
Definition GNENet.cpp:837
const Boundary & getZBoundary() const
Returns the Z boundary (stored in the x() coordinate) values of 0 do not affect the boundary.
Definition GNENet.cpp:246
const Boundary & getBoundary() const
returns the bounder of the network
Definition GNENet.cpp:186
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:2533
void saveEdgeTypes(const std::string &filename)
save edgeTypes elements of the network
Definition GNENet.cpp:2839
GNENet(const GNENet &)=delete
Invalidated copy constructor.
void deleteNetworkElement(GNENetworkElement *networkElement, GNEUndoList *undoList)
delete network element
Definition GNENet.cpp:370
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:2160
bool writeDetectorComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write detector comment
Definition GNENet.cpp:2722
void deleteDataInterval(GNEDataInterval *dataInterval, GNEUndoList *undoList)
remove data interval
Definition GNENet.cpp:785
bool saveDataElements()
save data set elements of the network
Definition GNENet.cpp:2298
void deleteConnection(GNEConnection *connection, GNEUndoList *undoList)
remove connection
Definition GNENet.cpp:679
void clearDemandElements(GNEUndoList *undoList)
clear demand elements
Definition GNENet.cpp:2138
GNEPathManager * getDemandPathManager()
get demand path manager
Definition GNENet.cpp:174
bool writeMeanDataEdgeComment(OutputDevice &device) const
write meanDataEdge comment
Definition GNENet.cpp:2800
void adjustPersonPlans(GNEUndoList *undoList)
adjust person plans
Definition GNENet.cpp:1888
GNENetHelper::ACTemplate * getACTemplates() const
get all attribute carriers templates used in this net
Definition GNENet.cpp:150
bool writeShapesComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write shape comment
Definition GNENet.cpp:2752
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:1460
void cleanInvalidDemandElements(GNEUndoList *undoList)
clean invalid demand elements
Definition GNENet.cpp:1933
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:1798
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:2217
void computeJunction(GNEJunction *junction)
trigger recomputation of junction shape and logic param[in] window The window to inform about delay
Definition GNENet.cpp:1580
void resetJunctionConnections(GNEJunction *junction, GNEUndoList *undoList)
reset junction's connections
Definition GNENet.cpp:2114
void deleteMeanData(GNEMeanData *meanData, GNEUndoList *undoList)
remove generic data
Definition GNENet.cpp:828
GNENet(NBNetBuilder *netBuilder, const GNETagPropertiesDatabase *tagPropertiesDatabase)
constructor
Definition GNENet.cpp:95
void replaceIncomingEdge(GNEEdge *which, GNEEdge *by, GNEUndoList *undoList)
replaces edge
Definition GNENet.cpp:544
void deleteGenericData(GNEGenericData *genericData, GNEUndoList *undoList)
remove generic data
Definition GNENet.cpp:798
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:973
Boundary getCenteringBoundary() const override
Returns the boundary to which the view shall be centered in order to show the object.
Definition GNENet.cpp:234
GNENetHelper::AttributeCarriers * getAttributeCarriers() const
get all attribute carriers used in this net
Definition GNENet.cpp:144
bool writeOtherAdditionalsComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write other additional comment
Definition GNENet.cpp:2734
GNEEdge * addReversedEdge(GNEEdge *edge, const bool disconnected, GNEUndoList *undoList)
add reversed edge
Definition GNENet.cpp:1130
void changeEdgeEndpoints(GNEEdge *edge, const std::string &newSourceID, const std::string &newDestID)
modifies endpoins of the given edge
Definition GNENet.cpp:2184
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:2628
void initJunctionsAndEdges()
Init Junctions and edges.
Definition GNENet.cpp:2923
void splitEdgesBidi(GNEEdge *edge, GNEEdge *oppositeEdge, const Position &pos, GNEUndoList *undoList)
split all edges at position by inserting one new junction
Definition GNENet.cpp:1090
GNENetHelper::SavingStatus * mySavingStatus
saving status module
Definition GNENet.h:532
void clearMeanDataElements(GNEUndoList *undoList)
clear meanDatas
Definition GNENet.cpp:2171
void writeVTypeDistributions(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write vTypeDistributions sorted by ID
Definition GNENet.cpp:2599
unsigned int myEdgeIDCounter
Definition GNENet.h:546
void expandBoundary(const Boundary &newBoundary)
expand boundary
Definition GNENet.cpp:240
void disableUpdateData()
disable update data elements after inserting or removing an element in net
Definition GNENet.cpp:2896
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:2556
bool removeRestrictedLane(SUMOVehicleClass vclass, GNEEdge *edge, GNEUndoList *undoList)
remove restricted lane
Definition GNENet.cpp:959
void deleteTAZSourceSink(GNETAZSourceSink *TAZSourceSink, GNEUndoList *undoList)
remove TAZSourceSink
Definition GNENet.cpp:737
~GNENet()
Destructor.
Definition GNENet.cpp:123
void writeVTypes(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs, const bool additionalFile) const
write vTypes sorted by ID
Definition GNENet.cpp:2614
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:277
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:156
bool saveAdditionals()
save additional elements
Definition GNENet.cpp:2223
const std::map< std::string, int > & getEdgesAndNumberOfLanes() const
et edges and number of lanes
Definition GNENet.cpp:198
void addZValueInBoundary(const double z)
add Z in net boundary
Definition GNENet.cpp:252
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:2879
bool addRestrictedLane(SUMOVehicleClass vclass, GNEEdge *edge, int index, GNEUndoList *undoList)
add restricted lane to edge
Definition GNENet.cpp:906
void saveNetwork()
save the network
Definition GNENet.cpp:1367
bool checkJunctionPosition(const Position &pos)
return true if there are already a Junction in the given position, false in other case
Definition GNENet.cpp:1355
bool addGreenVergeLane(GNEEdge *edge, int index, GNEUndoList *undoList)
add restricted lane to edge
Definition GNENet.cpp:942
const GNETagPropertiesDatabase * getTagPropertiesDatabase() const
get tag properties database
Definition GNENet.cpp:138
bool isNetRecomputed() const
check if net require recomputing
Definition GNENet.cpp:1604
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:2902
void deleteDataSet(GNEDataSet *dataSet, GNEUndoList *undoList)
remove data set
Definition GNENet.cpp:772
static void replaceInListAttribute(GNEAttributeCarrier *ac, SumoXMLAttr key, const std::string &which, const std::string &by, GNEUndoList *undoList)
replace in list attribute
Definition GNENet.cpp:3076
bool saveJuPedSimElements(const std::unordered_set< const GNEAttributeCarrier * > &ACs, const std::string &file)
save JuPedSim elements
Definition GNENet.cpp:2250
bool cleanInvalidCrossings(GNEUndoList *undoList)
clear invalid crossings
Definition GNENet.cpp:1740
bool writeStoppingPlaceComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write stoppingPlace comment
Definition GNENet.cpp:2710
GNEPathManager * getNetworkPathManager()
get network path manager
Definition GNENet.cpp:168
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:2017
void selectRoundabout(GNEJunction *junction, GNEUndoList *undoList)
select all roundabout edges and junctions for the current roundabout
Definition GNENet.cpp:1199
void joinRoutes(GNEUndoList *undoList)
join routes
Definition GNENet.cpp:1824
void writeRouteDistributions(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write route distributions sorted by ID
Definition GNENet.cpp:2570
void replaceJunctionByGeometry(GNEJunction *junction, GNEUndoList *undoList)
replace the selected junction by geometry node(s) and merge the edges
Definition GNENet.cpp:1972
bool writeRouteComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs, const bool additionalFile) const
write route comment
Definition GNENet.cpp:2669
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:1218
void requireRecompute()
inform the net about the need for recomputation
Definition GNENet.cpp:1598
bool writeJuPedSimComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write JuPedSim comment
Definition GNENet.cpp:2764
GNEJunction * createJunction(const Position &pos, GNEUndoList *undoList)
creates a new junction
Definition GNENet.cpp:261
bool writeRouteProbeComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write routeProbe comment
Definition GNENet.cpp:2686
bool writeTAZComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs) const
write TAZ comment
Definition GNENet.cpp:2776
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:2788
void writeRoutes(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs, const bool additionalFile) const
write route sorted by ID
Definition GNENet.cpp:2585
bool writeVTypeComment(OutputDevice &device, const std::unordered_set< const GNEAttributeCarrier * > &ACs, const bool additionalFile) const
write vType comment
Definition GNENet.cpp:2645
void saveMeanDatasConfirmed()
save meanDatas
Definition GNENet.cpp:2503
void addExplicitTurnaround(std::string id)
add edge id to the list of explicit turnarounds
Definition GNENet.cpp:2211
void initGNEConnections()
initialize GNEConnections
Definition GNENet.cpp:2964
void deleteJunction(GNEJunction *junction, GNEUndoList *undoList)
removes junction and all incident edges
Definition GNENet.cpp:411
NBEdgeCont & getEdgeCont()
returns the NBEdgeCont of the underlying netbuilder
Definition GNENet.cpp:2205
GNENet()=delete
Invalidated default constructor.
void savePlain(const std::string &prefix)
save plain xml representation of the network (and nothing else)
Definition GNENet.cpp:1405
unsigned int & getJunctionIDCounter()
Definition GNENet.cpp:2908
bool saveDemandElements()
save demand element elements of the network
Definition GNENet.cpp:2267
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:1567
FXApp * getApp()
get pointer to the main App
Definition GNENet.cpp:1610
GNENetHelper::ACTemplate * myACTemplates
attributeCarriers templates
Definition GNENet.h:526
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent) override
Returns an own parameter window.
Definition GNENet.cpp:217
void drawGL(const GUIVisualizationSettings &s) const override
Draws the object.
Definition GNENet.cpp:227
int getNumberOfTLSPrograms() const
get number of TLS Programs
Definition GNENet.cpp:2833
GNEViewNet * getViewNet() const
get view net
Definition GNENet.cpp:2193
void saveDataElementsConfirmed()
save data elements after confirming invalid objects
Definition GNENet.cpp:2475
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent) override
Returns an own popup-menu.
Definition GNENet.cpp:204
void enableUpdateGeometry()
Definition GNENet.cpp:2867
void clearJunctionConnections(GNEJunction *junction, GNEUndoList *undoList)
clear junction's connections
Definition GNENet.cpp:2102
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:2310
void computeDemandElements(GNEApplicationWindow *window)
compute demand elements param[in] window The window to inform about delay
Definition GNENet.cpp:1547
unsigned int & getEdgeIDCounter()
Definition GNENet.cpp:2914
The popup menu of a globject.
GUIGlObject(GUIGlObjectType type, const std::string &microsimID, FXIcon *icon)
Constructor.
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