SUMO - Simulation of Urban MObility
GNENet Class Reference

A NBNetBuilder extended by visualisation and editing capabilities. More...

#include <GNENet.h>

Inheritance diagram for GNENet:
Inheritance graph
Collaboration diagram for GNENet:
Collaboration graph

Public Member Functions

void addExplicitTurnaround (std::string id)
 add edge id to the list of explicit turnarounds More...
 
GNEEdgeaddReversedEdge (GNEEdge *edge, GNEUndoList *undoList)
 add reversed edge More...
 
void changeEdgeEndpoints (GNEEdge *edge, const std::string &newSourceID, const std::string &newDestID)
 modifies endpoins of the given edge More...
 
void computeAndUpdate (OptionsCont &oc)
 recompute the network and update lane geometries More...
 
void computeEverything (GNEApplicationWindow *window, bool force=false)
 
void computeJunction (GNEJunction *junction)
 
GNEEdgecreateEdge (GNEJunction *src, GNEJunction *dest, GNEEdge *tpl, GNEUndoList *undoList, const std::string &suggestedName="", bool wasSplit=false, bool allowDuplicateGeom=false)
 creates a new edge (unless an edge with the same geometry already exists) More...
 
GNEJunctioncreateJunction (const Position &pos, GNEUndoList *undoList)
 creates a new junction More...
 
void deleteEdge (GNEEdge *edge, GNEUndoList *undoList)
 removes edge More...
 
void deleteGeometryOrEdge (GNEEdge *edge, const Position &pos, GNEUndoList *undoList)
 removes geometry when pos is close to a geometry node, deletes the whole edge otherwise More...
 
void deleteJunction (GNEJunction *junction, GNEUndoList *undoList)
 removes junction and all incident edges More...
 
void deleteLane (GNELane *lane, GNEUndoList *undoList)
 removes lane More...
 
virtual void drawGLAdditional (GUISUMOAbstractView *const parent, const GUIVisualizationSettings &s) const
 Draws additional, user-triggered visualisations. More...
 
void drawName (const Position &pos, const SUMOReal scale, const GUIVisualizationTextSettings &settings, const SUMOReal angle=0) const
 
void duplicateLane (GNELane *lane, GNEUndoList *undoList)
 duplicates lane More...
 
void finishMoveSelection (GNEUndoList *undoList)
 register changes to junction and edge positions with the undoList More...
 
FXApp * getApp ()
 
const BoundarygetBoundary () const
 returns the bounder of the network More...
 
std::set< GUIGlIDgetGlIDs (GUIGlObjectType type=GLO_MAX)
 
ShapeContainergetShapeContainer ()
 
NBTrafficLightLogicContgetTLLogicCont ()
 returns the tllcont of the underlying netbuilder More...
 
SUMORTreegetVisualisationSpeedUp ()
 Returns the RTree used for visualisation speed-up. More...
 
const SUMORTreegetVisualisationSpeedUp () const
 Returns the RTree used for visualisation speed-up. More...
 
 GNENet (NBNetBuilder *netBuilder)
 Constructor. More...
 
void joinSelectedJunctions (GNEUndoList *undoList)
 
void mergeJunctions (GNEJunction *moved, GNEJunction *target, GNEUndoList *undoList)
 merge the given junctions edges between the given junctions will be deleted More...
 
void moveSelection (const Position &moveSrc, const Position &moveDest)
 
void refreshElement (GUIGlObject *o)
 refreshes boundary information for o and update More...
 
void removeExplicitTurnaround (std::string id)
 remove edge id from the list of explicit turnarounds More...
 
void removeSolitaryJunctions (GNEUndoList *undoList)
 
void renameEdge (GNEEdge *edge, const std::string &newID)
 updates the map and reserves new id More...
 
void renameJunction (GNEJunction *junction, const std::string &newID)
 updates the map and reserves new id More...
 
void replaceJunctionByGeometry (GNEJunction *junction, GNEUndoList *undoList)
 
void requireRecompute ()
 inform the net about the need for recomputation More...
 
std::vector< GNEAttributeCarrier * > retrieveAttributeCarriers (const std::set< GUIGlID > &ids, GUIGlObjectType type)
 get the attribute carriers based on GlIDs More...
 
GNEEdgeretrieveEdge (const std::string &id, bool failHard=true)
 get edge by id More...
 
std::vector< GNEEdge * > retrieveEdges (bool onlySelected=false)
 return all edges More...
 
GNEJunctionretrieveJunction (const std::string &id, bool failHard=true)
 get junction by id More...
 
std::vector< GNEJunction * > retrieveJunctions (bool onlySelected=false)
 return all junctions More...
 
std::vector< GNELane * > retrieveLanes (bool onlySelected=false)
 return all lanes More...
 
void reverseEdge (GNEEdge *edge, GNEUndoList *undoList)
 reverse edge More...
 
void save (OptionsCont &oc)
 save the network More...
 
void saveJoined (OptionsCont &oc)
 save log of joined junctions (and nothing else) More...
 
void savePlain (OptionsCont &oc)
 save plain xml representation of the network (and nothing else) More...
 
void setUpdateTarget (FXWindow *updateTarget)
 Set the target to be notified of network changes. More...
 
GNEJunctionsplitEdge (GNEEdge *edge, const Position &pos, GNEUndoList *undoList, GNEJunction *newJunction=0)
 split edge at position by inserting a new junction More...
 
void splitEdgesBidi (const std::set< GNEEdge * > &edges, const Position &pos, GNEUndoList *undoList)
 split all edges at position by inserting one new junction More...
 
 ~GNENet ()
 Destructor. More...
 
inherited from GUIGlObject
GUIGLObjectPopupMenugetPopUpMenu (GUIMainWindow &app, GUISUMOAbstractView &parent)
 Returns an own popup-menu. More...
 
GUIParameterTableWindowgetParameterWindow (GUIMainWindow &app, GUISUMOAbstractView &parent)
 Returns an own parameter window. More...
 
Boundary getCenteringBoundary () const
 Returns the boundary to which the view shall be centered in order to show the object. More...
 
const BoundarygetZBoundary () const
 Returns the Z boundary (stored in the x() coordinate) values of 0 do not affect the boundary. More...
 
void drawGL (const GUIVisualizationSettings &s) const
 Draws the object. More...
 
Atomar getter methods
const std::string & getFullName () const
 Returns the full name appearing in the tool tip. More...
 
virtual const std::string & getParentName () const
 Returns the name of the parent object (if any) More...
 
GUIGlID getGlID () const
 Returns the numerical id of the object. More...
 
interfaces to be implemented by derived classes
const std::string & getMicrosimID () const
 Returns the id of the object as known to microsim. More...
 
virtual void setMicrosimID (const std::string &newID)
 Changes the microsimID of the object (happens in NETEDIT) More...
 
GUIGlObjectType getType () const
 Returns the type of the object as coded in GUIGlObjectType. More...
 
Parameter table window I/O
void addParameterTable (GUIParameterTableWindow *w)
 Lets this object know a parameter window showing the object's values was opened. More...
 
void removeParameterTable (GUIParameterTableWindow *w)
 Lets this object know a parameter window showing the object's values was closed. More...
 

Static Public Attributes

static const RGBColor selectedLaneColor
 
static const RGBColor selectionColor
 
static StringBijection< GUIGlObjectTypeTypeNames
 associates object types with strings More...
 

Protected Member Functions

void setPrefix (const std::string &prefix)
 
helper methods for building popup-menus
void buildPopupHeader (GUIGLObjectPopupMenu *ret, GUIMainWindow &app, bool addSeparator=true)
 Builds the header. More...
 
void buildCenterPopupEntry (GUIGLObjectPopupMenu *ret, bool addSeparator=true)
 Builds an entry which allows to center to the object. More...
 
void buildNameCopyPopupEntry (GUIGLObjectPopupMenu *ret, bool addSeparator=true)
 Builds entries which allow to copy the name / typed name into the clipboard. More...
 
void buildSelectionPopupEntry (GUIGLObjectPopupMenu *ret, bool addSeparator=true)
 Builds an entry which allows to (de)select the object. More...
 
void buildShowParamsPopupEntry (GUIGLObjectPopupMenu *ret, bool addSeparator=true)
 Builds an entry which allows to open the parameter window. More...
 
void buildPositionCopyEntry (GUIGLObjectPopupMenu *ret, bool addSeparator=true)
 Builds an entry which allows to copy the cursor position if geo projection is used, also builds an entry for copying the geo-position. More...
 
void buildShowManipulatorPopupEntry (GUIGLObjectPopupMenu *ret, bool addSeparator=true)
 Builds an entry which allows to open the manipulator window. More...
 

Private Member Functions

void deleteSingleEdge (GNEEdge *edge)
 deletes a single edge More...
 
void deleteSingleJunction (GNEJunction *junction)
 deletes a single junction More...
 
void initDetectors ()
 Initialises the detector wrappers. More...
 
void initTLMap ()
 Initialises the tl-logic map and wrappers. More...
 
void insertEdge (GNEEdge *edge)
 inserts a single edge into the net and into the underlying More...
 
void insertJunction (GNEJunction *junction)
 inserts a single junction into the net and into the underlying More...
 
GNEEdgeregisterEdge (GNEEdge *edge)
 registers an edge with GNENet containers More...
 
GNEJunctionregisterJunction (GNEJunction *junction)
 registers a junction with GNENet containers More...
 
void remapEdge (GNEEdge *oldEdge, GNEJunction *from, GNEJunction *to, GNEUndoList *undoList, bool keepEndpoints=false)
 
void reserveEdgeID (const std::string &id)
 
void reserveJunctionID (const std::string &id)
 
void update ()
 notify myUpdateTarget More...
 

Private Attributes

std::set< std::string > myExplicitTurnarounds
 list of edge ids for which turn-arounds must be added explicitly More...
 
SUMORTree myGrid
 the rtree which contains all GUIGlObjects (so named for historical reasons) More...
 
bool myNeedRecompute
 whether the net needs recomputation More...
 
NBNetBuildermyNetBuilder
 The internal netbuilder. More...
 
GUIShapeContainer myShapeContainer
 the container for additional pois and polygons More...
 
FXWindow * myUpdateTarget
 The window to be notofied of about changes. More...
 
Boundary myZBoundary
 the z boundary (stored in the x-coordinate), values of 0 are ignored More...
 
ID Suppliers for newly created edges and junctions
IDSupplier myEdgeIDSupplier
 
IDSupplier myJunctionIDSupplier
 

Static Private Attributes

static const SUMOReal Z_INITIALIZED = 1
 marker for whether the z-boundary is initialized More...
 

Friends

class GNEChange_Edge
 
class GNEChange_Junction
 

internal GNE components

typedef std::map< std::string, GNEEdge * > GNEEdges
 
typedef std::map< std::string, GNEJunction * > GNEJunctions
 
GNEEdges myEdges
 
GNEJunctions myJunctions
 

Detailed Description

A NBNetBuilder extended by visualisation and editing capabilities.

Definition at line 77 of file GNENet.h.

Member Typedef Documentation

typedef std::map<std::string, GNEEdge*> GNENet::GNEEdges
private

Definition at line 419 of file GNENet.h.

typedef std::map<std::string, GNEJunction*> GNENet::GNEJunctions
private

Definition at line 420 of file GNENet.h.

Constructor & Destructor Documentation

GNENet::~GNENet ( )

Destructor.

Definition at line 142 of file GNENet.cpp.

References myEdges, myJunctions, and myNetBuilder.

Member Function Documentation

void GNENet::addExplicitTurnaround ( std::string  id)

add edge id to the list of explicit turnarounds

Definition at line 845 of file GNENet.cpp.

References myExplicitTurnarounds.

Referenced by getApp(), and GNEJunction::setLogicValid().

void GUIGlObject::addParameterTable ( GUIParameterTableWindow w)
inherited

Lets this object know a parameter window showing the object's values was opened.

Parameters
[in]wThe opened parameter window

Definition at line 189 of file GUIGlObject.cpp.

References GUIGlObject::myParamWindows.

void GUIGlObject::buildShowManipulatorPopupEntry ( GUIGLObjectPopupMenu ret,
bool  addSeparator = true 
)
protectedinherited

Builds an entry which allows to open the manipulator window.

Parameters

Definition at line 180 of file GUIGlObject.cpp.

References GUIIconSubSys::getIcon(), ICON_MANIP, and MID_MANIP.

Referenced by GUILaneSpeedTrigger::getPopUpMenu(), and GUITriggeredRerouter::getPopUpMenu().

void GNENet::changeEdgeEndpoints ( GNEEdge edge,
const std::string &  newSourceID,
const std::string &  newDestID 
)

modifies endpoins of the given edge

Definition at line 826 of file GNENet.cpp.

References GNEEdge::getNBEdge(), GNEJunction::getNBNode(), NBEdge::reinitNodes(), requireRecompute(), retrieveJunction(), and update().

Referenced by GNEEdge::setAttribute(), and setUpdateTarget().

void GNENet::computeAndUpdate ( OptionsCont oc)

recompute the network and update lane geometries

Definition at line 1005 of file GNENet.cpp.

References NBNetBuilder::compute(), myEdges, myExplicitTurnarounds, myJunctions, myNeedRecompute, and myNetBuilder.

Referenced by computeEverything(), getTLLogicCont(), save(), saveJoined(), and savePlain().

GNEEdge * GNENet::createEdge ( GNEJunction src,
GNEJunction dest,
GNEEdge tpl,
GNEUndoList undoList,
const std::string &  suggestedName = "",
bool  wasSplit = false,
bool  allowDuplicateGeom = false 
)

creates a new edge (unless an edge with the same geometry already exists)

Parameters
[in]srcThe starting junction
[in]destThe ending junction
[in]tplThe template edge from which to copy attributes (including lane attrs)
[in]undoListThe undoList in which to mark changes
[in]suggestedName
[in]wasSplitWhether the edge was created from a split
[in]allowDuplicateGeomWhether to create the edge even though another edge with the same geometry exists
Returns
The newly created edge or 0 if no edge was created

Definition at line 219 of file GNENet.cpp.

References GNEEdge::getNBEdge(), GNEJunction::getNBNode(), IDSupplier::getNext(), NBNode::getOutgoingEdges(), GNEChange_Edge, myEdgeIDSupplier, myEdges, GNEUndoList::p_begin(), GNEUndoList::p_end(), requireRecompute(), reserveEdgeID(), retrieveEdge(), GNEJunction::setLogicValid(), SUMOReal, NBEdge::UNSPECIFIED_OFFSET, and NBEdge::UNSPECIFIED_WIDTH.

Referenced by addReversedEdge(), getVisualisationSpeedUp(), GNEViewNet::onLeftBtnPress(), remapEdge(), replaceJunctionByGeometry(), reverseEdge(), and splitEdge().

GNEJunction * GNENet::createJunction ( const Position pos,
GNEUndoList undoList 
)

creates a new junction

Parameters
[in]positionThe position of the new junction
[in]undoListThe undolist in which to mark changes
Returns
the new junction

Definition at line 208 of file GNENet.cpp.

References IDSupplier::getNext(), GNEChange_Junction, myJunctionIDSupplier, and myJunctions.

Referenced by addReversedEdge(), getVisualisationSpeedUp(), joinSelectedJunctions(), GNEViewNet::onLeftBtnPress(), and splitEdge().

void GNENet::deleteGeometryOrEdge ( GNEEdge edge,
const Position pos,
GNEUndoList undoList 
)

removes geometry when pos is close to a geometry node, deletes the whole edge otherwise

Parameters
[in]edgeThe edge to be removed
[in]posThe position that was clicked upon
[in]undoListThe undolist in which to mark changes

Definition at line 352 of file GNENet.cpp.

References deleteEdge(), and GNEEdge::deleteGeometry().

Referenced by getVisualisationSpeedUp(), and GNEViewNet::onLeftBtnPress().

void GNENet::drawGL ( const GUIVisualizationSettings s) const
virtual

Draws the object.

Parameters
[in]sThe settings for the current view (may influence drawing)
See also
GUIGlObject::drawGL

Implements GUIGlObject.

Definition at line 197 of file GNENet.cpp.

Referenced by getZBoundary().

virtual void GUIGlObject::drawGLAdditional ( GUISUMOAbstractView *const  parent,
const GUIVisualizationSettings s 
) const
inlinevirtualinherited

Draws additional, user-triggered visualisations.

Parameters
[in]parentThe view
[in]sThe settings for the current view (may influence drawing)

Reimplemented in GUIBaseVehicle, GUIPerson, and GUIContainer.

Definition at line 190 of file GUIGlObject.h.

References SUMOReal, and UNUSED_PARAMETER.

void GNENet::duplicateLane ( GNELane lane,
GNEUndoList undoList 
)

duplicates lane

Parameters
[in]laneThe lane to be duplicated
[in]undoListThe undolist in which to mark changes

Definition at line 340 of file GNENet.cpp.

References GNELane::getIndex(), NBEdge::getLaneStruct(), GNEEdge::getNBEdge(), GNELane::getParentEdge(), GNEUndoList::p_begin(), GNEUndoList::p_end(), and requireRecompute().

Referenced by getVisualisationSpeedUp(), and GNEViewNet::onCmdDuplicateLane().

void GNENet::finishMoveSelection ( GNEUndoList undoList)

register changes to junction and edge positions with the undoList

Definition at line 887 of file GNENet.cpp.

References GNEEdge::getAttribute(), GNEUndoList::p_begin(), GNEUndoList::p_end(), retrieveEdges(), retrieveJunctions(), GNEEdge::setAttribute(), and SUMO_ATTR_SHAPE.

Referenced by getApp(), and GNEViewNet::onLeftBtnRelease().

FXApp* GNENet::getApp ( )
inline
const Boundary & GNENet::getBoundary ( ) const

returns the bounder of the network

Definition at line 173 of file GNENet.cpp.

References myGrid.

Referenced by getCenteringBoundary(), and getZBoundary().

Boundary GNENet::getCenteringBoundary ( ) const
virtual

Returns the boundary to which the view shall be centered in order to show the object.

Returns
The boundary the object is within
See also
GUIGlObject::getCenteringBoundary

Implements GUIGlObject.

Definition at line 202 of file GNENet.cpp.

References getBoundary().

GUIGlID GUIGlObject::getGlID ( ) const
inlineinherited

Returns the numerical id of the object.

Returns
This object's gl-id

Definition at line 123 of file GUIGlObject.h.

Referenced by addReversedEdge(), GUIMessageWindow::appendMsg(), GUIGlObject::buildSelectionPopupEntry(), GUINet::createTLWrapper(), deleteEdge(), deleteJunction(), deleteLane(), GNECrossing::drawGL(), GNEInternalLane::drawGL(), GUIContainer::drawGL(), GUIPerson::drawGL(), GUIPolygon::drawGL(), GUIInstantInductLoop::MyWrapper::drawGL(), GUILaneSpeedTrigger::drawGL(), GUICalibrator::drawGL(), GUIPointOfInterest::drawGL(), GNEJunction::drawGL(), GUIJunctionWrapper::drawGL(), GNEEdge::drawGL(), GUIE3Collector::MyWrapper::drawGL(), GNELane::drawGL(), GUI_E2_ZS_Collector::MyWrapper::drawGL(), GUIContainerStop::drawGL(), GUIBusStop::drawGL(), GUIChargingStation::drawGL(), GNEPoly::drawGL(), GUIEdge::drawGL(), GUIBaseVehicle::drawGL(), GUIInductLoop::MyWrapper::drawGL(), GUITriggeredRerouter::GUITriggeredRerouterEdge::drawGL(), GUILane::drawGL(), GUIContainer::drawGLAdditional(), GUIPerson::drawGLAdditional(), GUIBaseVehicle::drawGLAdditional(), GUILane::drawLinkRule(), GUIVehicle::getColorValue(), GUIJunctionWrapper::getColorValue(), GUIContainer::getColorValue(), GNELane::getColorValue(), GUIPerson::getColorValue(), GUILane::getColorValue(), GNEJunction::getColorValue(), GUIEdge::getIDs(), GNEEdge::getLaneGlIDs(), GUISUMOAbstractView::getObjectAtPosition(), GUISUMOAbstractView::getObjectsAtPosition(), GUIPerson::getPopUpMenu(), GNELane::getPopUpMenu(), GUIBaseVehicle::getPopUpMenu(), GUILane::getScaleValue(), GUIDialog_GLObjChooser::GUIDialog_GLObjChooser(), GNESelector::handleIDs(), GNETLSEditor::handleMultiChange(), GUIGlChildWindow::isSelected(), GNEViewParent::isSelected(), GUISUMOViewParent::isSelected(), GUISelectedStorage::loadIDs(), GNEViewNet::mergeJunctions(), GUIViewTraffic::onCmdAddRerouter(), GUIGLObjectPopupMenu::onCmdAddSelected(), GUIGLObjectPopupMenu::onCmdCenter(), GUIViewTraffic::onCmdCloseEdge(), GUIViewTraffic::onCmdCloseLane(), GNEViewNet::onCmdDuplicateLane(), GUIApplicationWindow::onCmdEditChosen(), GUIGLObjectPopupMenu::onCmdRemoveSelected(), GNEConnector::onCmdSelectDeadStarts(), GNEConnector::onCmdSelectPass(), GUIPerson::GUIPersonPopupMenu::onCmdStartTrack(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdStartTrack(), GNEViewNet::onCmdStraightenEdges(), GNEViewNet::onLeftBtnPress(), GUISUMOAbstractView::removeAdditionalGLVisualisation(), GLObjectValuePassConnector< std::pair< SUMOTime, MSPhaseDefinition > >::removeObject(), GUIVehicle::selectBlockingFoes(), GNEJunction::setColor(), GUIMessageWindow::setCursorPos(), and GUIGlObject::~GUIGlObject().

GUIParameterTableWindow * GNENet::getParameterWindow ( GUIMainWindow app,
GUISUMOAbstractView parent 
)
virtual

Returns an own parameter window.

Parameters
[in]appThe application needed to build the parameter window
[in]parentThe parent window needed to build the parameter window
Returns
The built parameter window
See also
GUIGlObject::getParameterWindow

Implements GUIGlObject.

Definition at line 191 of file GNENet.cpp.

virtual const std::string& GUIGlObject::getParentName ( ) const
inlinevirtualinherited

Returns the name of the parent object (if any)

Returns
This object's parent id

Reimplemented in GUILane, and GNELane.

Definition at line 115 of file GUIGlObject.h.

References StringUtils::emptyString.

Referenced by GUIGLObjectPopupMenu::onCmdCopyEdgeName().

GUIGLObjectPopupMenu * GNENet::getPopUpMenu ( GUIMainWindow app,
GUISUMOAbstractView parent 
)
virtual

Returns an own popup-menu.

Parameters
[in]appThe application needed to build the popup-menu
[in]parentThe parent window needed to build the popup-menu
Returns
The built popup-menu
See also
GUIGlObject::getPopUpMenu

Implements GUIGlObject.

Definition at line 180 of file GNENet.cpp.

References GUIGlObject::buildCenterPopupEntry(), GUIGlObject::buildPopupHeader(), and GUIGlObject::buildPositionCopyEntry().

ShapeContainer& GNENet::getShapeContainer ( )
inline

Definition at line 402 of file GNENet.h.

References myShapeContainer.

Referenced by GNEApplicationWindow::onCmdOpenShapes(), and GNEViewNet::onLeftBtnPress().

GUIGlObjectType GUIGlObject::getType ( ) const
inlineinherited

Returns the type of the object as coded in GUIGlObjectType.

Returns
The type of the object
See also
GUIGlObjectType

Definition at line 167 of file GUIGlObject.h.

Referenced by GUIGlObject::buildSelectionPopupEntry(), GUIVehicle::drawAction_drawRailCarriages(), GUIPerson::drawAction_drawWalkingareaPath(), GUIContainer::drawGL(), GUIPerson::drawGL(), GUIInstantInductLoop::MyWrapper::drawGL(), GUILaneSpeedTrigger::drawGL(), GUICalibrator::drawGL(), GNEJunction::drawGL(), GUIJunctionWrapper::drawGL(), GUIE3Collector::MyWrapper::drawGL(), GNELane::drawGL(), GUI_E2_ZS_Collector::MyWrapper::drawGL(), GUIContainerStop::drawGL(), GUIBusStop::drawGL(), GUIChargingStation::drawGL(), GUIEdge::drawGL(), GUIBaseVehicle::drawGL(), GUIInductLoop::MyWrapper::drawGL(), GUITriggeredRerouter::GUITriggeredRerouterEdge::drawGL(), GUILane::drawGL(), GUIPerson::drawGLAdditional(), GUIBaseVehicle::drawGLAdditional(), GUIJunctionWrapper::getColorValue(), GNELane::getColorValue(), GUILane::getColorValue(), GNEJunction::getColorValue(), GNEViewNet::getEdgeAtCursorPosition(), GNEViewNet::getEdgesAtCursorPosition(), GNEViewNet::getJunctionAtCursorPosition(), GNEViewNet::getLaneAtCurserPosition(), GUISUMOAbstractView::getObjectAtPosition(), GUISUMOAbstractView::getObjectsAtPosition(), GUILane::getScaleValue(), GNESelector::handleIDs(), GUIGlChildWindow::isSelected(), GNEViewParent::isSelected(), GUISUMOViewParent::isSelected(), GUISelectedStorage::loadIDs(), GNEViewNet::mergeJunctions(), GUITrafficLightLogicWrapper::GUITrafficLightLogicWrapperPopupMenu::onCmdBegin2TrackPhases(), GNEConnector::onCmdClearSelectedConnections(), GUIGLObjectPopupMenu::onCmdCopyEdgeName(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideAllRoutes(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideBestLanes(), GUIPerson::GUIPersonPopupMenu::onCmdHideCurrentRoute(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideCurrentRoute(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideLFLinkItems(), GUIPerson::GUIPersonPopupMenu::onCmdHideWalkingareaPath(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowAllRoutes(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowBestLanes(), GUIPerson::GUIPersonPopupMenu::onCmdShowCurrentRoute(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowCurrentRoute(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowFoes(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowLFLinkItems(), GUITrafficLightLogicWrapper::GUITrafficLightLogicWrapperPopupMenu::onCmdShowPhases(), GUIPerson::GUIPersonPopupMenu::onCmdShowWalkingareaPath(), GUIPerson::GUIPersonPopupMenu::onCmdStartTrack(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdStartTrack(), GUIPerson::GUIPersonPopupMenu::onCmdStopTrack(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdStopTrack(), GUITrafficLightLogicWrapper::GUITrafficLightLogicWrapperPopupMenu::onCmdSwitchTLS2Off(), GUITrafficLightLogicWrapper::GUITrafficLightLogicWrapperPopupMenu::onCmdSwitchTLSLogic(), GNEViewNet::onLeftBtnPress(), LayeredRTree::selectLayer(), GNEJunction::setColor(), and GUISelectedStorage::toggleSelection().

SUMORTree& GNENet::getVisualisationSpeedUp ( )
inline

Returns the RTree used for visualisation speed-up.

Returns
The visualisation speed-up

Definition at line 154 of file GNENet.h.

References myGrid.

Referenced by GNEConnector::buildIinternalLanes(), GNETLSEditor::buildIinternalLanes(), GNEViewNet::onCmdNodeShape(), and GNEViewNet::removeCurrentPoly().

const Boundary& GNENet::getZBoundary ( ) const
inline

Returns the Z boundary (stored in the x() coordinate) values of 0 do not affect the boundary.

Definition at line 134 of file GNENet.h.

References drawGL(), getBoundary(), and myZBoundary.

void GNENet::initDetectors ( )
private

Initialises the detector wrappers.

void GNENet::initTLMap ( )
private

Initialises the tl-logic map and wrappers.

void GNENet::insertEdge ( GNEEdge edge)
private
void GNENet::insertJunction ( GNEJunction junction)
private

inserts a single junction into the net and into the underlying

Definition at line 913 of file GNENet.cpp.

References GNEJunction::getNBNode(), NBNetBuilder::getNodeCont(), NBNodeCont::insert(), myNetBuilder, and registerJunction().

Referenced by GNEChange_Junction::redo(), and GNEChange_Junction::undo().

void GNENet::mergeJunctions ( GNEJunction moved,
GNEJunction target,
GNEUndoList undoList 
)

merge the given junctions edges between the given junctions will be deleted

Parameters
[in]movedThe junction that will be eliminated
[in]targetThe junction that will be enlarged
[in]undoListThe undo list with which to register changes

Definition at line 469 of file GNENet.cpp.

References deleteJunction(), GNEEdge::getDest(), NBNode::getIncomingEdges(), GNEJunction::getNBNode(), NBNode::getOutgoingEdges(), NBNode::getPosition(), GNEEdge::getSource(), GNEJunction::move(), myEdges, GNEUndoList::p_begin(), GNEUndoList::p_end(), GNEJunction::registerMove(), and remapEdge().

Referenced by getVisualisationSpeedUp(), and GNEViewNet::mergeJunctions().

void GNENet::moveSelection ( const Position moveSrc,
const Position moveDest 
)
GNEEdge * GNENet::registerEdge ( GNEEdge edge)
private
void GNENet::remapEdge ( GNEEdge oldEdge,
GNEJunction from,
GNEJunction to,
GNEUndoList undoList,
bool  keepEndpoints = false 
)
private
void GNENet::removeExplicitTurnaround ( std::string  id)

remove edge id from the list of explicit turnarounds

Definition at line 851 of file GNENet.cpp.

References myExplicitTurnarounds.

Referenced by getApp(), and GNEEdge::removeConnection().

void GUIGlObject::removeParameterTable ( GUIParameterTableWindow w)
inherited

Lets this object know a parameter window showing the object's values was closed.

Parameters
[in]wThe closed parameter window

Definition at line 195 of file GUIGlObject.cpp.

References GUIGlObject::myParamWindows.

Referenced by GUIParameterTableWindow::~GUIParameterTableWindow().

void GNENet::removeSolitaryJunctions ( GNEUndoList undoList)
void GNENet::renameEdge ( GNEEdge edge,
const std::string &  newID 
)

updates the map and reserves new id

Definition at line 817 of file GNENet.cpp.

References NBNetBuilder::getEdgeCont(), Named::getID(), GNEEdge::getNBEdge(), myEdges, myNetBuilder, NBEdgeCont::rename(), and GNEEdge::setMicrosimID().

Referenced by GNEEdge::setAttribute(), and setUpdateTarget().

void GNENet::renameJunction ( GNEJunction junction,
const std::string &  newID 
)
void GNENet::requireRecompute ( )
inline

inform the net about the need for recomputation

Definition at line 379 of file GNENet.h.

References myNeedRecompute.

Referenced by changeEdgeEndpoints(), createEdge(), deleteEdge(), deleteLane(), duplicateLane(), and GNEJunction::invalidateShape().

void GNENet::reserveEdgeID ( const std::string &  id)
private

Definition at line 993 of file GNENet.cpp.

References IDSupplier::avoid(), and myEdgeIDSupplier.

Referenced by createEdge().

void GNENet::reserveJunctionID ( const std::string &  id)
private

Definition at line 999 of file GNENet.cpp.

References IDSupplier::avoid(), and myJunctionIDSupplier.

std::vector< GNEAttributeCarrier * > GNENet::retrieveAttributeCarriers ( const std::set< GUIGlID > &  ids,
GUIGlObjectType  type 
)

get the attribute carriers based on GlIDs

Parameters
[in]idsThe set of ids for which to retrive the ACs
[in]typeThe GUI-type of the objects with the given ids
Exceptions
InvalidArgumentif any given id does not match the declared type

Definition at line 600 of file GNENet.cpp.

References GUIGlObject::getMicrosimID(), GUIGlObjectStorage::getObjectBlocking(), GUIGlObjectStorage::gIDStorage, GLO_EDGE, GLO_JUNCTION, GLO_LANE, and GUIGlObjectStorage::unblockObject().

Referenced by getVisualisationSpeedUp(), and GNEViewNet::onLeftBtnPress().

GNEEdge * GNENet::retrieveEdge ( const std::string &  id,
bool  failHard = true 
)

get edge by id

Parameters
[in]idThe id of the desired edge
[in]failHardWhether attempts to retrieve a nonexisting junction should result in an exception
Exceptions
UnknownElement

Definition at line 541 of file GNENet.cpp.

References myEdges.

Referenced by GNEEdge::addConnection(), createEdge(), GNEApplicationWindow::GNEShapeHandler::getLanePos(), getVisualisationSpeedUp(), GNEConnector::initTargets(), GNEEdge::isValid(), GNEJunction::move(), GNEConnector::onCmdSelectConflicts(), GNEConnector::onCmdSelectDeadStarts(), GNEEdge::removeConnection(), and GNEJunction::setLogicValid().

std::vector< GNEEdge * > GNENet::retrieveEdges ( bool  onlySelected = false)
GNEJunction * GNENet::retrieveJunction ( const std::string &  id,
bool  failHard = true 
)

get junction by id

Parameters
[in]idThe id of the desired junction
[in]failHardWhether attempts to retrieve a nonexisting junction should result in an exception
Exceptions
UnknownElement

Definition at line 529 of file GNENet.cpp.

References myJunctions.

Referenced by changeEdgeEndpoints(), GNEEdge::getDest(), GNEEdge::getSource(), getVisualisationSpeedUp(), GNEConnector::handleLaneClick(), GNEJunction::invalidateTLS(), GNEJunction::isValid(), GNEEdge::isValid(), and GNEEdge::setAttribute().

std::vector< GNEJunction * > GNENet::retrieveJunctions ( bool  onlySelected = false)

return all junctions

Parameters
[in]onlySelectedWhether to return only selected junctions

Definition at line 580 of file GNENet.cpp.

References GLO_JUNCTION, gSelected, GUISelectedStorage::isSelected(), and myJunctions.

Referenced by GNEViewNet::deleteSelectedJunctions(), finishMoveSelection(), getVisualisationSpeedUp(), joinSelectedJunctions(), moveSelection(), and GNEConnector::onCmdSelectDeadStarts().

std::vector< GNELane * > GNENet::retrieveLanes ( bool  onlySelected = false)

return all lanes

Parameters
[in]onlySelectedWhether to return only selected lanes

Definition at line 565 of file GNENet.cpp.

References GLO_LANE, gSelected, GUISelectedStorage::isSelected(), and myEdges.

Referenced by GNEViewNet::deleteSelectedEdges(), getVisualisationSpeedUp(), GNETLSEditor::handleMultiChange(), and GNEViewNet::onCmdDuplicateLane().

void GNENet::save ( OptionsCont oc)

save the network

Parameters
[in]ocThe OptionsCont which knows how and where to save

Definition at line 508 of file GNENet.cpp.

References computeAndUpdate(), myNetBuilder, and NWFrame::writeNetwork().

Referenced by getVisualisationSpeedUp(), and GNEApplicationWindow::onCmdSaveNetwork().

void GNENet::saveJoined ( OptionsCont oc)

save log of joined junctions (and nothing else)

Parameters
[in]ocThe OptionsCont which knows how and where to save

Definition at line 522 of file GNENet.cpp.

References computeAndUpdate(), NBNetBuilder::getNodeCont(), myNetBuilder, and NWWriter_XML::writeJoinedJunctions().

Referenced by getVisualisationSpeedUp(), and GNEApplicationWindow::onCmdSaveJoined().

void GNENet::savePlain ( OptionsCont oc)

save plain xml representation of the network (and nothing else)

Parameters
[in]ocThe OptionsCont which knows how and where to save

Definition at line 515 of file GNENet.cpp.

References computeAndUpdate(), myNetBuilder, and NWWriter_XML::writeNetwork().

Referenced by getVisualisationSpeedUp(), and GNEApplicationWindow::onCmdSaveAsPlainXML().

void GUIGlObject::setMicrosimID ( const std::string &  newID)
virtualinherited

Changes the microsimID of the object (happens in NETEDIT)

Reimplemented in GNEEdge.

Definition at line 110 of file GUIGlObject.cpp.

References GUIGlObject::createFullName(), GUIGlObject::myFullName, and GUIGlObject::myMicrosimID.

Referenced by renameJunction(), GNELane::setIndex(), and GNEEdge::setMicrosimID().

void GUIGlObject::setPrefix ( const std::string &  prefix)
protectedinherited
void GNENet::setUpdateTarget ( FXWindow *  updateTarget)
inline

Set the target to be notified of network changes.

Definition at line 320 of file GNENet.h.

References changeEdgeEndpoints(), myUpdateTarget, refreshElement(), renameEdge(), and renameJunction().

GNEJunction * GNENet::splitEdge ( GNEEdge edge,
const Position pos,
GNEUndoList undoList,
GNEJunction newJunction = 0 
)
void GNENet::splitEdgesBidi ( const std::set< GNEEdge * > &  edges,
const Position pos,
GNEUndoList undoList 
)

split all edges at position by inserting one new junction

Parameters
[in]edgesThe edges to be split
[in]posThe position on which to insert the new junction

Definition at line 414 of file GNENet.cpp.

References GNEUndoList::p_begin(), GNEUndoList::p_end(), and splitEdge().

Referenced by getVisualisationSpeedUp(), and GNEViewNet::onCmdSplitEdgeBidi().

void GNENet::update ( )
private

Friends And Related Function Documentation

friend class GNEChange_Edge
friend

Definition at line 80 of file GNENet.h.

Referenced by createEdge(), and deleteEdge().

friend class GNEChange_Junction
friend

Definition at line 79 of file GNENet.h.

Referenced by createJunction(), and deleteJunction().

Field Documentation

IDSupplier GNENet::myEdgeIDSupplier
private

Definition at line 427 of file GNENet.h.

Referenced by createEdge(), and reserveEdgeID().

std::set<std::string> GNENet::myExplicitTurnarounds
private

list of edge ids for which turn-arounds must be added explicitly

Definition at line 435 of file GNENet.h.

Referenced by addExplicitTurnaround(), computeAndUpdate(), and removeExplicitTurnaround().

SUMORTree GNENet::myGrid
private

the rtree which contains all GUIGlObjects (so named for historical reasons)

Definition at line 408 of file GNENet.h.

Referenced by deleteSingleEdge(), deleteSingleJunction(), getBoundary(), getVisualisationSpeedUp(), GNENet(), refreshElement(), registerEdge(), and registerJunction().

IDSupplier GNENet::myJunctionIDSupplier
private

Definition at line 428 of file GNENet.h.

Referenced by createJunction(), and reserveJunctionID().

bool GNENet::myNeedRecompute
private

whether the net needs recomputation

Definition at line 438 of file GNENet.h.

Referenced by computeAndUpdate(), computeEverything(), and requireRecompute().

GUIShapeContainer GNENet::myShapeContainer
private

the container for additional pois and polygons

Definition at line 432 of file GNENet.h.

Referenced by getShapeContainer().

FXWindow* GNENet::myUpdateTarget
private

The window to be notofied of about changes.

Definition at line 411 of file GNENet.h.

Referenced by getApp(), setUpdateTarget(), and update().

Boundary GNENet::myZBoundary
private

the z boundary (stored in the x-coordinate), values of 0 are ignored

Definition at line 482 of file GNENet.h.

Referenced by getZBoundary(), GNENet(), and registerJunction().

const RGBColor GNENet::selectedLaneColor
static

Definition at line 84 of file GNENet.h.

Referenced by GNELane::drawGL().

const RGBColor GNENet::selectionColor
static
StringBijection< GUIGlObjectType > GUIGlObject::TypeNames
staticinherited

associates object types with strings

Definition at line 100 of file GUIGlObject.h.

const SUMOReal GNENet::Z_INITIALIZED = 1
staticprivate

marker for whether the z-boundary is initialized

Definition at line 485 of file GNENet.h.

Referenced by GNENet(), and registerJunction().


The documentation for this class was generated from the following files: