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.org/sumo
3// Copyright (C) 2001-2022 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:
49 GNENet(NBNetBuilder* netBuilder);
50
52 ~GNENet();
53
56
59
62
70
79
81 double getExaggeration(const GUIVisualizationSettings& s) const;
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
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 duplicateLane(GNELane* lane, GNEUndoList* undoList, bool recomputeConnections);
220
226 bool restrictLane(SUMOVehicleClass vclass, GNELane* lane, GNEUndoList* undoList);
227
234 bool addRestrictedLane(SUMOVehicleClass vclass, GNEEdge* edge, int index, GNEUndoList* undoList);
235
241 bool addGreenVergeLane(GNEEdge* edge, int index, GNEUndoList* undoList);
242
248 bool removeRestrictedLane(SUMOVehicleClass vclass, GNEEdge* edge, GNEUndoList* undoList);
249
255 GNEJunction* splitEdge(GNEEdge* edge, const Position& pos, GNEUndoList* undoList, GNEJunction* newJunction = 0);
256
262 void splitEdgesBidi(GNEEdge* edge, GNEEdge* oppositeEdge, const Position& pos, GNEUndoList* undoList);
263
267 void reverseEdge(GNEEdge* edge, GNEUndoList* undoList);
268
274 GNEEdge* addReversedEdge(GNEEdge* edge, const bool disconnected, GNEUndoList* undoList);
275
282 void mergeJunctions(GNEJunction* moved, GNEJunction* target, GNEUndoList* undoList);
283
285 void selectRoundabout(GNEJunction* junction, GNEUndoList* undoList);
286
288 void createRoundabout(GNEJunction* junction, GNEUndoList* undoList);
289
291 void requireSaveNet(bool value);
292
294 bool isNetSaved() const;
295
299 void saveNetwork(OptionsCont& oc);
300
304 void savePlain(OptionsCont& oc, const std::string& prefix);
305
309 void saveJoined(OptionsCont& oc, const std::string& filename);
310
312 void setViewNet(GNEViewNet* viewNet);
313
316
319
321 void changeEdgeEndpoints(GNEEdge* edge, const std::string& newSourceID, const std::string& newDestID);
322
324 GNEViewNet* getViewNet() const;
325
328
331
333 void initGNEConnections();
334
336 void computeAndUpdate(OptionsCont& oc, bool volatileOptions);
337
346 void computeNetwork(GNEApplicationWindow* window, bool force = false, bool volatileOptions = false, std::string additionalPath = "", std::string demandPath = "", std::string dataPath = "");
347
352
357
364 bool joinSelectedJunctions(GNEUndoList* undoList);
365
367 bool cleanInvalidCrossings(GNEUndoList* undoList);
368
370 void removeSolitaryJunctions(GNEUndoList* undoList);
371
373 void cleanUnusedRoutes(GNEUndoList* undoList);
374
376 void joinRoutes(GNEUndoList* undoList);
377
379 void adjustPersonPlans(GNEUndoList* undoList);
380
383
385 void replaceJunctionByGeometry(GNEJunction* junction, GNEUndoList* undoList);
386
388 void splitJunction(GNEJunction* junction, bool reconnect, GNEUndoList* undoList);
389
391 void clearJunctionConnections(GNEJunction* junction, GNEUndoList* undoList);
392
394 void resetJunctionConnections(GNEJunction* junction, GNEUndoList* undoList);
395
397 void clearAdditionalElements(GNEUndoList* undoList);
398
400 void clearDemandElements(GNEUndoList* undoList);
401
403 void clearDataElements(GNEUndoList* undoList);
404
408 void computeJunction(GNEJunction* junction);
409
411 void requireRecompute();
412
414 bool isNetRecomputed() const;
415
417 FXApp* getApp();
418
421
423 void addExplicitTurnaround(std::string id);
424
426 void removeExplicitTurnaround(std::string id);
427
429 void requireSaveAdditionals(bool value);
430
434 void saveAdditionals(const std::string& filename);
435
437 bool isAdditionalsSaved() const;
438
440 void requireSaveDemandElements(bool value);
441
445 void saveDemandElements(const std::string& filename);
446
448 bool isDemandElementsSaved() const;
449
451 void requireSaveDataElements(bool value);
452
456 void saveDataElements(const std::string& filename);
457
459 bool isDataElementsSaved() const;
460
462 double getDataSetIntervalMinimumBegin() const;
463
465 double getDataSetIntervalMaximumEnd() const;
466
469
473 void saveTLSPrograms(const std::string& filename);
474
476 int getNumberOfTLSPrograms() const;
477
481 void saveEdgeTypes(const std::string& filename);
482
487
490
492 bool isUpdateGeometryEnabled() const;
493
495
499 void enableUpdateData();
500
502 void disableUpdateData();
503
505 bool isUpdateDataEnabled() const;
506
508
509protected:
512
515
518
521
524
526 // @{
528 unsigned int myEdgeIDCounter;
529 // @}
530
532 std::set<std::string> myExplicitTurnarounds;
533
536
539
542
545
548
551
554
557
558private:
561
563 bool checkJunctionPosition(const Position& pos);
564
566 void saveAdditionalsConfirmed(const std::string& filename);
567
569 void saveDemandElementsConfirmed(const std::string& filename);
570
572 void saveDataElementsConfirmed(const std::string& filename);
573
575 void writeAdditionalByType(OutputDevice& device, const std::vector<SumoXMLTag> tags) const;
576
578 void writeDemandByType(OutputDevice& device, SumoXMLTag tag) const;
579
581 void writeRoutes(OutputDevice& device, const bool additionalFile) const;
582
584 void writeVTypes(OutputDevice& device, const bool additionalFile) const;
585
587 bool writeVTypeComment(OutputDevice& device, const bool additionalFile) const;
588
590 bool writeRouteComment(OutputDevice& device, const bool additionalFile) const;
591
593 bool writeRouteProbeComment(OutputDevice& device) const;
594
596 bool writeCalibratorComment(OutputDevice& device) const;
597
599 bool writeStoppingPlaceComment(OutputDevice& device) const;
600
602 bool writeDetectorComment(OutputDevice& device) const;
603
605 bool writeOtherAdditionalsComment(OutputDevice& device) const;
606
608 bool writeShapesComment(OutputDevice& device) const;
609
611 bool writeTAZComment(OutputDevice& device) const;
612
614 bool writeWireComment(OutputDevice& device) const;
615
617 static void replaceInListAttribute(GNEAttributeCarrier* ac, SumoXMLAttr key, const std::string& which, const std::string& by, GNEUndoList* undoList);
618
621
623 std::map<std::string, int> myEdgesAndNumberOfLanes;
624
626 static const double Z_INITIALIZED;
627
629 static const std::map<SumoXMLAttr, std::string> EMPTY_HEADER;
630
632 GNENet(const GNENet&) = delete;
633
635 GNENet& operator=(const GNENet&) = delete;
636};
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:48
The main window of the Netedit.
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
Definition: GNECrossing.h:42
An Element which don't belong to GNENet but has influence in the simulation.
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
struct used for saving all attribute carriers of net, in different formats
Definition: GNENetHelper.h:71
A NBNetBuilder extended by visualisation and editing capabilities.
Definition: GNENet.h:42
void clearAdditionalElements(GNEUndoList *undoList)
clear additionals
Definition: GNENet.cpp:1941
void removeSolitaryJunctions(GNEUndoList *undoList)
removes junctions that have no edges
Definition: GNENet.cpp:1589
void deleteEdge(GNEEdge *edge, GNEUndoList *undoList, bool recomputeConnections)
removes edge
Definition: GNENet.cpp:420
void saveJoined(OptionsCont &oc, const std::string &filename)
save log of joined junctions (and nothing else)
Definition: GNENet.cpp:1222
bool joinSelectedJunctions(GNEUndoList *undoList)
join selected junctions
Definition: GNENet.cpp:1400
double getDataSetIntervalMaximumEnd() const
get maximum interval
Definition: GNENet.cpp:2201
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
Definition: GNENet.cpp:194
void saveDemandElements(const std::string &filename)
save demand element elements of the network
Definition: GNENet.cpp:2096
void deleteLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
removes lane
Definition: GNENet.cpp:556
bool writeRouteProbeComment(OutputDevice &device) const
write routeProbe comment
Definition: GNENet.cpp:2445
static const double Z_INITIALIZED
marker for whether the z-boundary is initialized
Definition: GNENet.h:626
void deleteCrossing(GNECrossing *crossing, GNEUndoList *undoList)
remove crossing
Definition: GNENet.cpp:611
SUMORTree & getGrid()
Returns the RTree used for visualisation speed-up.
Definition: GNENet.cpp:151
GNEViewNet * myViewNet
The net to be notified of about changes.
Definition: GNENet.h:514
void deleteAdditional(GNEAdditional *additional, GNEUndoList *undoList)
remove additional
Definition: GNENet.cpp:629
bool myDataElementsSaved
Flag to check if data elements has to be saved.
Definition: GNENet.h:550
void disableUpdateGeometry()
disable update geometry of elements after inserting or removing an element in net
Definition: GNENet.cpp:2605
void saveTLSPrograms(const std::string &filename)
save TLS Programs elements of the network
Definition: GNENet.cpp:2550
NBNetBuilder * getNetBuilder() const
get net builder
Definition: GNENet.cpp:1394
void addGLObjectIntoGrid(GNEAttributeCarrier *AC)
add GL Object into net
Definition: GNENet.cpp:1245
void reverseEdge(GNEEdge *edge, GNEUndoList *undoList)
reverse edge
Definition: GNENet.cpp:994
bool writeTAZComment(OutputDevice &device) const
write TAZ comment
Definition: GNENet.cpp:2520
void removeGLObjectFromGrid(GNEAttributeCarrier *AC)
add GL Object into net
Definition: GNENet.cpp:1257
NBTrafficLightLogicCont & getTLLogicCont()
returns the tllcont of the underlying netbuilder
Definition: GNENet.cpp:1993
bool restrictLane(SUMOVehicleClass vclass, GNELane *lane, GNEUndoList *undoList)
transform lane to restricted lane
Definition: GNENet.cpp:752
bool isNetSaved() const
return if net has to be saved
Definition: GNENet.cpp:1185
bool myNetSaved
Flag to check if net has to be saved.
Definition: GNENet.h:538
bool myTLSProgramsSaved
Flag to check if shapes has to be saved.
Definition: GNENet.h:544
void enableUpdateData()
Definition: GNENet.cpp:2617
void savePlain(OptionsCont &oc, const std::string &prefix)
save plain xml representation of the network (and nothing else)
Definition: GNENet.cpp:1214
void requireSaveNet(bool value)
inform that net has to be saved
Definition: GNENet.cpp:1179
GNEJunction * splitEdge(GNEEdge *edge, const Position &pos, GNEUndoList *undoList, GNEJunction *newJunction=0)
split edge at position by inserting a new junction
Definition: GNENet.cpp:854
void setViewNet(GNEViewNet *viewNet)
Set the net to be notified of network changes.
Definition: GNENet.cpp:1230
bool writeCalibratorComment(OutputDevice &device) const
write calibrator comment
Definition: GNENet.cpp:2455
bool myNeedRecompute
whether the net needs recomputation
Definition: GNENet.h:535
void saveAdditionalsConfirmed(const std::string &filename)
save additionals after confirming invalid objects
Definition: GNENet.cpp:2218
void deleteDemandElement(GNEDemandElement *demandElement, GNEUndoList *undoList)
remove demand element
Definition: GNENet.cpp:650
void duplicateLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
duplicates lane
Definition: GNENet.cpp:736
const Boundary & getZBoundary() const
Returns the Z boundary (stored in the x() coordinate) values of 0 do not affect the boundary.
Definition: GNENet.cpp:206
const Boundary & getBoundary() const
returns the bounder of the network
Definition: GNENet.cpp:144
void saveEdgeTypes(const std::string &filename)
save edgeTypes elements of the network
Definition: GNENet.cpp:2571
GNENet(const GNENet &)=delete
Invalidated copy constructor.
void deleteNetworkElement(GNENetworkElement *networkElement, GNEUndoList *undoList)
delete network element
Definition: GNENet.cpp:334
void computeAndUpdate(OptionsCont &oc, bool volatileOptions)
recompute the network and update lane geometries
Definition: GNENet.cpp:2697
SUMORTree myGrid
the rtree which contains all GUIGlObjects (so named for historical reasons)
Definition: GNENet.h:511
void writeVTypes(OutputDevice &device, const bool additionalFile) const
write vTypes sorted by ID
Definition: GNENet.cpp:2365
void clearDataElements(GNEUndoList *undoList)
clear data elements
Definition: GNENet.cpp:1967
void deleteDataInterval(GNEDataInterval *dataInterval, GNEUndoList *undoList)
remove data interval
Definition: GNENet.cpp:693
void deleteConnection(GNEConnection *connection, GNEUndoList *undoList)
remove connection
Definition: GNENet.cpp:596
void clearDemandElements(GNEUndoList *undoList)
clear demand elements
Definition: GNENet.cpp:1954
void adjustPersonPlans(GNEUndoList *undoList)
adjust person plans
Definition: GNENet.cpp:1696
void requireSaveAdditionals(bool value)
inform that additionals has to be saved
Definition: GNENet.cpp:2017
void writeRoutes(OutputDevice &device, const bool additionalFile) const
write route sorted by ID
Definition: GNENet.cpp:2350
void cleanInvalidDemandElements(GNEUndoList *undoList)
clean invalid demand elements
Definition: GNENet.cpp:1741
bool myUpdateDataEnabled
Flag to enable or disable update data elements after inserting or removing element in net.
Definition: GNENet.h:556
void cleanUnusedRoutes(GNEUndoList *undoList)
clean unused routes
Definition: GNENet.cpp:1606
NBNetBuilder * myNetBuilder
The internal netbuilder.
Definition: GNENet.h:517
void removeExplicitTurnaround(std::string id)
remove edge id from the list of explicit turnarounds
Definition: GNENet.cpp:2011
void computeJunction(GNEJunction *junction)
trigger recomputation of junction shape and logic param[in] window The window to inform about delay
Definition: GNENet.cpp:1358
void resetJunctionConnections(GNEJunction *junction, GNEUndoList *undoList)
reset junction's connections
Definition: GNENet.cpp:1930
void replaceIncomingEdge(GNEEdge *which, GNEEdge *by, GNEUndoList *undoList)
replaces edge
Definition: GNENet.cpp:499
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
Definition: GNENet.cpp:182
void deleteGenericData(GNEGenericData *genericData, GNEUndoList *undoList)
remove generic data
Definition: GNENet.cpp:706
GNENetHelper::AttributeCarriers * getAttributeCarriers() const
get all attribute carriers used in this net
Definition: GNENet.cpp:132
void computeNetwork(GNEApplicationWindow *window, bool force=false, bool volatileOptions=false, std::string additionalPath="", std::string demandPath="", std::string dataPath="")
trigger full netbuild computation param[in] window The window to inform about delay param[in] force W...
Definition: GNENet.cpp:1269
GNEEdge * addReversedEdge(GNEEdge *edge, const bool disconnected, GNEUndoList *undoList)
add reversed edge
Definition: GNENet.cpp:1007
void changeEdgeEndpoints(GNEEdge *edge, const std::string &newSourceID, const std::string &newDestID)
modifies endpoins of the given edge
Definition: GNENet.cpp:1978
bool myUpdateGeometryEnabled
Flag to enable or disable update geometry of elements after inserting or removing element in net.
Definition: GNENet.h:553
bool isAdditionalsSaved() const
check if additionals are saved
Definition: GNENet.cpp:2077
void initJunctionsAndEdges()
Init Junctions and edges.
Definition: GNENet.cpp:2643
bool writeWireComment(OutputDevice &device) const
write Wire comment
Definition: GNENet.cpp:2530
void splitEdgesBidi(GNEEdge *edge, GNEEdge *oppositeEdge, const Position &pos, GNEUndoList *undoList)
split all edges at position by inserting one new junction
Definition: GNENet.cpp:971
void requireSaveTLSPrograms()
inform that TLS Programs has to be saved
Definition: GNENet.cpp:2540
unsigned int myEdgeIDCounter
Definition: GNENet.h:528
void expandBoundary(const Boundary &newBoundary)
expand boundary
Definition: GNENet.cpp:200
void disableUpdateData()
disable update data elements after inserting or removing an element in net
Definition: GNENet.cpp:2628
bool removeRestrictedLane(SUMOVehicleClass vclass, GNEEdge *edge, GNEUndoList *undoList)
remove restricted lane
Definition: GNENet.cpp:840
~GNENet()
Destructor.
Definition: GNENet.cpp:120
void mergeJunctions(GNEJunction *moved, GNEJunction *target, GNEUndoList *undoList)
merge the given junctions edges between the given junctions will be deleted
Definition: GNENet.cpp:1042
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:237
std::set< std::string > myExplicitTurnarounds
list of edge ids for which turn-arounds must be added explicitly
Definition: GNENet.h:532
const std::map< std::string, int > & getEdgesAndNumberOfLanes() const
et edges and number of lanes
Definition: GNENet.cpp:156
bool myAdditionalsSaved
Flag to check if additionals has to be saved.
Definition: GNENet.h:541
bool writeStoppingPlaceComment(OutputDevice &device) const
write stoppingPlace comment
Definition: GNENet.cpp:2467
void addZValueInBoundary(const double z)
add Z in net boundary
Definition: GNENet.cpp:212
static const std::map< SumoXMLAttr, std::string > EMPTY_HEADER
variable used for write headers in additional, demand and data elements
Definition: GNENet.h:629
bool isUpdateGeometryEnabled() const
check if update geometry after inserting or removing has to be updated
Definition: GNENet.cpp:2611
bool addRestrictedLane(SUMOVehicleClass vclass, GNEEdge *edge, int index, GNEUndoList *undoList)
add restricted lane to edge
Definition: GNENet.cpp:787
bool checkJunctionPosition(const Position &pos)
return true if there are already a Junction in the given position, false in other case
Definition: GNENet.cpp:1167
bool addGreenVergeLane(GNEEdge *edge, int index, GNEUndoList *undoList)
add restricted lane to edge
Definition: GNENet.cpp:823
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
Definition: GNENet.cpp:172
bool isNetRecomputed() const
check if net require recomputing
Definition: GNENet.cpp:1382
GNENet & operator=(const GNENet &)=delete
Invalidated assignment operator.
void writeAdditionalByType(OutputDevice &device, const std::vector< SumoXMLTag > tags) const
write additional element by type and sorted by ID
Definition: GNENet.cpp:2320
bool isUpdateDataEnabled() const
check if update data after inserting or removing has to be updated
Definition: GNENet.cpp:2634
bool writeShapesComment(OutputDevice &device) const
write shape comment
Definition: GNENet.cpp:2508
void deleteDataSet(GNEDataSet *dataSet, GNEUndoList *undoList)
remove data set
Definition: GNENet.cpp:680
static void replaceInListAttribute(GNEAttributeCarrier *ac, SumoXMLAttr key, const std::string &which, const std::string &by, GNEUndoList *undoList)
replace in list attribute
Definition: GNENet.cpp:2802
bool cleanInvalidCrossings(GNEUndoList *undoList)
clear invalid crossings
Definition: GNENet.cpp:1537
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:1834
void selectRoundabout(GNEJunction *junction, GNEUndoList *undoList)
select all roundabout edges and junctions for the current roundabout
Definition: GNENet.cpp:1075
void joinRoutes(GNEUndoList *undoList)
join routes
Definition: GNENet.cpp:1632
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
Definition: GNENet.cpp:162
bool writeRouteComment(OutputDevice &device, const bool additionalFile) const
write route comment
Definition: GNENet.cpp:2430
bool writeVTypeComment(OutputDevice &device, const bool additionalFile) const
write vType comment
Definition: GNENet.cpp:2398
void replaceJunctionByGeometry(GNEJunction *junction, GNEUndoList *undoList)
replace the selected junction by geometry node(s) and merge the edges
Definition: GNENet.cpp:1780
void requireSaveDemandElements(bool value)
inform that demand elements has to be saved
Definition: GNENet.cpp:2083
GNEPathManager * myPathManager
Path manager.
Definition: GNENet.h:523
bool writeDetectorComment(OutputDevice &device) const
write detector comment
Definition: GNENet.cpp:2479
GNEPathManager * getPathManager()
get path manager
Definition: GNENet.cpp:138
void createRoundabout(GNEJunction *junction, GNEUndoList *undoList)
transform the given junction into a roundabout
Definition: GNENet.cpp:1094
void writeDemandByType(OutputDevice &device, SumoXMLTag tag) const
write demand element by type and sorted by ID
Definition: GNENet.cpp:2338
void requireSaveDataElements(bool value)
inform that data sets has to be saved
Definition: GNENet.cpp:2150
void requireRecompute()
inform the net about the need for recomputation
Definition: GNENet.cpp:1376
GNEJunction * createJunction(const Position &pos, GNEUndoList *undoList)
creates a new junction
Definition: GNENet.cpp:221
unsigned int myJunctionIDCounter
Definition: GNENet.h:527
bool writeOtherAdditionalsComment(OutputDevice &device) const
write other additional comment
Definition: GNENet.cpp:2491
std::map< std::string, int > myEdgesAndNumberOfLanes
map with the Edges and their number of lanes
Definition: GNENet.h:623
double getExaggeration(const GUIVisualizationSettings &s) const
return exaggeration associated with this GLObject
Definition: GNENet.cpp:188
void addExplicitTurnaround(std::string id)
add edge id to the list of explicit turnarounds
Definition: GNENet.cpp:2005
void saveDataElements(const std::string &filename)
save data set elements of the network
Definition: GNENet.cpp:2163
void initGNEConnections()
initialize GNEConnections
Definition: GNENet.cpp:2684
void saveAdditionals(const std::string &filename)
save additional elements of the network
Definition: GNENet.cpp:2030
void deleteJunction(GNEJunction *junction, GNEUndoList *undoList)
removes junction and all incident edges
Definition: GNENet.cpp:375
NBEdgeCont & getEdgeCont()
returns the NBEdgeCont of the underlying netbuilder
Definition: GNENet.cpp:1999
void saveNetwork(OptionsCont &oc)
save the network
Definition: GNENet.cpp:1191
GNENetHelper::AttributeCarriers * myAttributeCarriers
AttributeCarriers of net.
Definition: GNENet.h:520
void computeDataElements(GNEApplicationWindow *window)
compute data elements param[in] window The window to inform about delay
Definition: GNENet.cpp:1345
FXApp * getApp()
get pointer to the main App
Definition: GNENet.cpp:1388
bool isDataElementsSaved() const
check if data sets are saved
Definition: GNENet.cpp:2178
void saveDataElementsConfirmed(const std::string &filename)
save data elements after confirming invalid objects
Definition: GNENet.cpp:2307
bool myDemandElementsSaved
Flag to check if demand elements has to be saved.
Definition: GNENet.h:547
int getNumberOfTLSPrograms() const
get number of TLS Programs
Definition: GNENet.cpp:2565
GNEViewNet * getViewNet() const
get view net
Definition: GNENet.cpp:1987
void saveDemandElementsConfirmed(const std::string &filename)
save demand elements after confirming invalid objects
Definition: GNENet.cpp:2270
GNENet(NBNetBuilder *netBuilder)
Constructor.
Definition: GNENet.cpp:87
void enableUpdateGeometry()
Definition: GNENet.cpp:2599
void clearJunctionConnections(GNEJunction *junction, GNEUndoList *undoList)
clear junction's connections
Definition: GNENet.cpp:1918
Boundary myZBoundary
the z boundary (stored in the x-coordinate), values of 0 are ignored
Definition: GNENet.h:620
double getDataSetIntervalMinimumBegin() const
get minimum interval
Definition: GNENet.cpp:2184
void computeDemandElements(GNEApplicationWindow *window)
compute demand elements param[in] window The window to inform about delay
Definition: GNENet.cpp:1325
bool isDemandElementsSaved() const
check if demand elements are saved
Definition: GNENet.cpp:2144
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