SUMO - Simulation of Urban MObility
GUIEdge Class Reference

A road/street connecting two junctions (gui-version) More...

#include <GUIEdge.h>

Inheritance diagram for GUIEdge:
MSEdge GUIGlObject

Data Structures

class  lane_wrapper_finder
 A class to find the matching lane wrapper. More...

Public Types

typedef std::map< const MSEdge
*, std::vector< MSLane * > * > 
AllowedLanesCont
 Suceeding edges (keys) and allowed lanes to reach these edges (values).
typedef std::map
< SUMOVehicleClass,
AllowedLanesCont
ClassedAllowedLanesCont
 Map from vehicle types to lanes that may be used to reach one of the next edges.
enum  EdgeBasicFunction {
  EDGEFUNCTION_UNKNOWN = -1, EDGEFUNCTION_NORMAL = 0, EDGEFUNCTION_CONNECTOR = 1, EDGEFUNCTION_INTERNAL = 2,
  EDGEFUNCTION_DISTRICT = 3
}
 Defines possible edge types. More...

Public Member Functions

virtual void changeLanes (SUMOTime t)
 Performs lane changing on this edge.
void closeBuilding ()
virtual void drawGLAdditional (GUISUMOAbstractView *const parent, const GUIVisualizationSettings &s) const
 Draws additional, user-triggered visualisations.
void drawName (const Position &pos, const SUMOReal scale, const GUIVisualizationTextSettings &settings, const SUMOReal angle=0) const
Boundary getBoundary () const
 Returns the street's geometry.
SUMOReal getCurrentTravelTime () const
 Computes and returns the current travel time for this edge.
SUMOReal getDistanceTo (const MSEdge *other) const
 optimistic distance heuristic for use in routing
MSLanegetLane (size_t laneNo)
 returns the enumerated lane (!!! why not private with a friend?)
GUILaneWrappergetLaneGeometry (size_t laneNo) const
 returns the enumerated lane's geometry (!!! why not private with a friend?)
GUILaneWrappergetLaneGeometry (const MSLane *lane) const
SUMOReal getLength () const
 return the length of the edge
SUMOReal getMaxSpeed () const
 return the maximum speed the edge
 GUIEdge (const std::string &id, unsigned int numericalID, const std::string &streetName)
 Constructor.
void initGeometry ()
 Builds lane wrappers for this edge's lanes.
void initialize (std::vector< MSLane * > *lanes, EdgeBasicFunction function)
 Initialize the edge.
bool prohibits (const SUMOVehicle *const vehicle) const
 Returns whether the vehicle (class) is not allowed on the edge.
void rebuildAllowedLanes ()
 ~GUIEdge ()
 Destructor.
inherited from GUIGlObject
virtual GUIGLObjectPopupMenugetPopUpMenu (GUIMainWindow &app, GUISUMOAbstractView &parent)
 Returns an own popup-menu.
virtual GUIParameterTableWindowgetParameterWindow (GUIMainWindow &app, GUISUMOAbstractView &parent)
 Returns an own parameter window.
Boundary getCenteringBoundary () const
 Returns the boundary to which the view shall be centered in order to show the object.
void drawGL (const GUIVisualizationSettings &s) const
 Draws the object.
Access to the edge's lanes
MSLaneleftLane (const MSLane *const lane) const
 Returns the lane left to the one given, 0 if the given lane is leftmost.
MSLanerightLane (const MSLane *const lane) const
 Returns the lane right to the one given, 0 if the given lane is rightmost.
const std::vector< MSLane * > & getLanes () const
 Returns this edge's lanes.
const std::vector< MSLane * > * allowedLanes (const MSEdge &destination, SUMOVehicleClass vclass=SVC_UNKNOWN) const
 Get the allowed lanes to reach the destination-edge.
const std::vector< MSLane * > * allowedLanes (SUMOVehicleClass vclass=SVC_UNKNOWN) const
 Get the allowed lanes for the given vehicle class.
Access to other edge attributes
const std::string & getID () const
 Returns the id of the edge.
EdgeBasicFunction getPurpose () const
 Returns the edge type (EdgeBasicFunction)
unsigned int getNumericalID () const
 Returns the numerical id of the edge.
const std::string & getStreetName () const
 Returns the street name of the edge.
Access to succeeding/predecessing edges
void addFollower (MSEdge *edge)
 Returns the list of edges which may be reached from this edge.
const std::vector< MSEdge * > & getIncomingEdges () const
 Returns the list of edges from which this edge may be reached.
unsigned int getNoFollowing () const
 Returns the number of edges that may be reached from this edge.
const MSEdgegetFollower (unsigned int n) const
 Returns the n-th of the following edges.
Access to vaporizing interface
bool isVaporizing () const
 Returns whether vehicles on this edge shall be vaporized.
SUMOTime incVaporization (SUMOTime t)
 Enables vaporization.
SUMOTime decVaporization (SUMOTime t)
 Disables vaporization.
Methods releated to vehicle insertion
bool insertVehicle (SUMOVehicle &v, SUMOTime time) const
 Tries to insert the given vehicle into the network.
MSLanegetFreeLane (const std::vector< MSLane * > *allowed, const SUMOVehicleClass vclass) const
 Finds the emptiest lane allowing the vehicle class.
MSLanegetDepartLane (const MSVehicle &veh) const
 Finds a depart lane for the given vehicle parameters.
SUMOTime getLastFailedInsertionTime () const
 Returns the last time a vehicle could not be inserted.
void setLastFailedInsertionTime (SUMOTime time) const
 Sets the last time a vehicle could not be inserted.
Atomar getter methods
const std::string & getFullName () const
 Returns the full name appearing in the tool tip.
GUIGlID getGlID () const
 Returns the numerical id of the object.
interfaces to be implemented by derived classes
const std::string & getMicrosimID () const
 Returns the id of the object as known to microsim.
void setMicrosimID (const std::string &newID)
 Changes the microsimID of the object (happens in NETEDIT)
GUIGlObjectType getType () const
 Returns the type of the object as coded in GUIGlObjectType.
Parameter table window I/O
void addParameterTable (GUIParameterTableWindow *w)
 Lets this object know a parameter window showing the object's values was opened.
void removeParameterTable (GUIParameterTableWindow *w)
 Lets this object know a parameter window showing the object's values was closed.

Static Public Member Functions

static void clear ()
 Clears the dictionary.
static bool dictionary (const std::string &id, MSEdge *edge)
 Inserts edge into the static dictionary Returns true if the key id isn't already in the dictionary. Otherwise returns false.
static MSEdgedictionary (const std::string &id)
 Returns the MSEdge associated to the key id if exists, otherwise returns 0.
static MSEdgedictionary (size_t index)
 Returns the MSEdge at the index.
static size_t dictSize ()
 Returns the number of edges.
static void fill (std::vector< GUIEdge * > &netsWrappers)
static std::vector< GUIGlIDgetIDs (bool includeInternal)
static std::pair< SUMOReal,
SUMOReal
getLaneOffsets (SUMOReal x1, SUMOReal y1, SUMOReal x2, SUMOReal y2, SUMOReal prev, SUMOReal wanted)
static void insertIDs (std::vector< std::string > &into)
 Inserts IDs of all known edges into the given vector.
Static parser helper
static void parseEdgesList (const std::string &desc, std::vector< const MSEdge * > &into, const std::string &rid)
 Parses the given string assuming it contains a list of edge ids divided by spaces.
static void parseEdgesList (const std::vector< std::string > &desc, std::vector< const MSEdge * > &into, const std::string &rid)
 Parses the given string vector assuming it edge ids.

Static Public Attributes

static StringBijection
< GUIGlObjectType
TypeNames
 associates object types with strings

Protected Member Functions

const std::vector< MSLane * > * allowedLanes (const MSEdge *destination, SUMOVehicleClass vclass=SVC_UNKNOWN) const
 Get the allowed lanes to reach the destination-edge.
const std::vector< MSLane * > * getAllowedLanesWithDefault (const AllowedLanesCont &c, const MSEdge *dest) const
 lookup in map and return 0 if not found
void setPrefix (const std::string &prefix)
helper methods for building popup-menus
void buildPopupHeader (GUIGLObjectPopupMenu *ret, GUIMainWindow &app, bool addSeparator=true)
 Builds the header.
void buildCenterPopupEntry (GUIGLObjectPopupMenu *ret, bool addSeparator=true)
 Builds an entry which allows to center to the object.
void buildNameCopyPopupEntry (GUIGLObjectPopupMenu *ret, bool addSeparator=true)
 Builds entries which allow to copy the name / typed name into the clipboard.
void buildSelectionPopupEntry (GUIGLObjectPopupMenu *ret, bool addSeparator=true)
 Builds an entry which allows to (de)select the object.
void buildShowParamsPopupEntry (GUIGLObjectPopupMenu *ret, bool addSeparator=true)
 Builds an entry which allows to open the parameter window.
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.
void buildShowManipulatorPopupEntry (GUIGLObjectPopupMenu *ret, bool addSeparator=true)
 Builds an entry which allows to open the manipulator window.

Protected Attributes

EdgeBasicFunction myFunction
 the purpose of the edge
std::string myID
 Unique ID.
MSLaneChangermyLaneChanger
 This member will do the lane-change.
std::vector< MSLane * > * myLanes
 Container for the edge's lane; should be sorted: (right-hand-traffic) the more left the lane, the higher the container-index.
SUMOTime myLastFailedInsertionTime
 The time of last insertion failure.
unsigned int myNumericalID
 This edge's numerical id.
std::vector< MSEdge * > myPredeccesors
 The preceeding edges.
std::vector< MSEdge * > mySuccessors
 The succeeding edges.
int myVaporizationRequests
 Vaporizer counter.
Storages for allowed lanes (depending on vehicle classes)
AllowedLanesCont myAllowed
 Associative container from destination-edge to allowed-lanes.
ClassedAllowedLanesCont myClassedAllowed
 From vehicle class to lanes allowed to be used by it.
SVCPermissions myMinimumPermissions
 The intersection of lane permissions for this edge.
SVCPermissions myCombinedPermissions
 The union of lane permissions for this edge.
std::string myStreetName

Private Types

typedef std::vector
< GUILaneWrapper * > 
LaneWrapperVector
 Definition of the lane's positions vector.

Private Member Functions

 GUIEdge (const GUIEdge &s)
 invalidated copy constructor
GUIEdgeoperator= (const GUIEdge &s)
 invalidated assignment operator

Private Attributes

LaneWrapperVector myLaneGeoms
 List of the edge's lanes geometrical information.

Static edge container

typedef std::map< std::string,
MSEdge * > 
DictType
 definition of the static dictionary type
static DictType myDict
 Static dictionary to associate string-ids with objects.
static std::vector< MSEdge * > myEdges
 Static list of edges.

Detailed Description

A road/street connecting two junctions (gui-version)

See also:
MSEdge

Definition at line 52 of file GUIEdge.h.


Member Typedef Documentation

typedef std::map< const MSEdge*, std::vector<MSLane*>* > MSEdge::AllowedLanesCont [inherited]

Suceeding edges (keys) and allowed lanes to reach these edges (values).

Definition at line 94 of file MSEdge.h.

Map from vehicle types to lanes that may be used to reach one of the next edges.

Definition at line 97 of file MSEdge.h.

typedef std::map< std::string, MSEdge* > MSEdge::DictType [protected, inherited]

definition of the static dictionary type

Definition at line 535 of file MSEdge.h.

typedef std::vector<GUILaneWrapper*> GUIEdge::LaneWrapperVector [private]

Definition of the lane's positions vector.

Definition at line 163 of file GUIEdge.h.


Member Enumeration Documentation

enum MSEdge::EdgeBasicFunction [inherited]

Defines possible edge types.

For different purposes, it is necessary to know whether the edge is a normal street or something special.

Enumerator:
EDGEFUNCTION_UNKNOWN 

The purpose of the edge is not known.

EDGEFUNCTION_NORMAL 

The edge is a normal street.

EDGEFUNCTION_CONNECTOR 

The edge is a macroscopic connector (source/sink)

EDGEFUNCTION_INTERNAL 

The edge is an internal edge.

EDGEFUNCTION_DISTRICT 

The edge is a district edge.

Definition at line 79 of file MSEdge.h.


Constructor & Destructor Documentation

GUIEdge::GUIEdge ( const std::string &  id,
unsigned int  numericalID,
const std::string &  streetName 
)

Constructor.

Parameters:
[in]idThe id of the edge
[in]numericalIDThe numerical id (index) of the edge
See also:
MSEdge

Definition at line 69 of file GUIEdge.cpp.

Destructor.

Definition at line 74 of file GUIEdge.cpp.

References myLaneGeoms.

GUIEdge::GUIEdge ( const GUIEdge s) [private]

invalidated copy constructor


Member Function Documentation

void MSEdge::addFollower ( MSEdge edge) [inline, inherited]

Returns the list of edges which may be reached from this edge.

Returns:
Edges reachable from this edge

Definition at line 228 of file MSEdge.h.

References MSEdge::mySuccessors.

Referenced by NLHandler::addDistrict(), and NLHandler::addDistrictEdge().

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

Parameters:
[in]wThe opened parameter window

Definition at line 191 of file GUIGlObject.cpp.

References GUIGlObject::myParamWindows.

const std::vector< MSLane * > * MSEdge::allowedLanes ( const MSEdge destination,
SUMOVehicleClass  vclass = SVC_UNKNOWN 
) const [inherited]

Get the allowed lanes to reach the destination-edge.

If there is no such edge, get 0. Then you are on the wrong edge.

Parameters:
[in]destinationThe edge to reach
[in]vclassThe vehicle class for which this information shall be returned
Returns:
The lanes that may be used to reach the given edge, 0 if no such lanes exist

Definition at line 175 of file MSEdge.cpp.

Referenced by MSEdge::allowedLanes(), MSVehicleTransfer::checkInsertions(), MSVehicle::getBestLanes(), MSEdge::getDepartLane(), MSEdge::getFreeLane(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), MSLane::by_connections_to_sorter::operator()(), and MSLane::succLinkSec().

const std::vector< MSLane * > * MSEdge::allowedLanes ( SUMOVehicleClass  vclass = SVC_UNKNOWN) const [inherited]

Get the allowed lanes for the given vehicle class.

If there is no such edge, get 0. Then you are on the wrong edge.

Parameters:
[in]vclassThe vehicle class for which this information shall be returned
Returns:
The lanes that may be used by the given vclass

Definition at line 181 of file MSEdge.cpp.

References MSEdge::allowedLanes().

const std::vector< MSLane * > * MSEdge::allowedLanes ( const MSEdge destination,
SUMOVehicleClass  vclass = SVC_UNKNOWN 
) const [protected, inherited]

Get the allowed lanes to reach the destination-edge.

If there is no such edge, get 0. Then you are on the wrong edge.

Parameters:
[in]destinationThe edge to reach
[in]vclassThe vehicle class for which this information shall be returned
Returns:
The lanes that may be used to reach the given edge, 0 if no such lanes exist

Definition at line 197 of file MSEdge.cpp.

References MSEdge::getAllowedLanesWithDefault(), MSEdge::myAllowed, MSEdge::myClassedAllowed, and MSEdge::myMinimumPermissions.

void GUIGlObject::buildCenterPopupEntry ( GUIGLObjectPopupMenu ret,
bool  addSeparator = true 
) [protected, inherited]
void GUIGlObject::buildNameCopyPopupEntry ( GUIGLObjectPopupMenu ret,
bool  addSeparator = true 
) [protected, inherited]

Builds entries which allow to copy the name / typed name into the clipboard.

Parameters:
in,filled]ret The popup menu to add the entry to
[in]addSeparatorWhether a separator shall be added, too

Definition at line 138 of file GUIGlObject.cpp.

References MID_COPY_NAME, and MID_COPY_TYPED_NAME.

Referenced by GUIDetectorWrapper::getPopUpMenu(), GUITrafficLightLogicWrapper::getPopUpMenu(), GUIPolygon::getPopUpMenu(), GUIPointOfInterest::getPopUpMenu(), GUITriggeredRerouter::getPopUpMenu(), GUILaneSpeedTrigger::getPopUpMenu(), GUIJunctionWrapper::getPopUpMenu(), GUILaneWrapper::getPopUpMenu(), GUIVehicle::getPopUpMenu(), GUIBusStop::getPopUpMenu(), and getPopUpMenu().

void GUIGlObject::buildPositionCopyEntry ( GUIGLObjectPopupMenu ret,
bool  addSeparator = true 
) [protected, inherited]

Builds an entry which allows to copy the cursor position if geo projection is used, also builds an entry for copying the geo-position.

Parameters:
in,filled]ret The popup menu to add the entry to
[in]addSeparatorWhether a separator shall be added, too

Definition at line 170 of file GUIGlObject.cpp.

References GeoConvHelper::getFinal(), MID_COPY_CURSOR_GEOPOSITION, and MID_COPY_CURSOR_POSITION.

Referenced by GUIDetectorWrapper::getPopUpMenu(), GUITrafficLightLogicWrapper::getPopUpMenu(), GUIPolygon::getPopUpMenu(), GUIPointOfInterest::getPopUpMenu(), GUITriggeredRerouter::getPopUpMenu(), GUILaneSpeedTrigger::getPopUpMenu(), GUIJunctionWrapper::getPopUpMenu(), GUILaneWrapper::getPopUpMenu(), GUIVehicle::getPopUpMenu(), GUIBusStop::getPopUpMenu(), getPopUpMenu(), and GUINet::getPopUpMenu().

void GUIGlObject::buildShowManipulatorPopupEntry ( GUIGLObjectPopupMenu ret,
bool  addSeparator = true 
) [protected, inherited]

Builds an entry which allows to open the manipulator window.

Parameters:
in,filled]ret The popup menu to add the entry to
[in]addSeparatorWhether a separator shall be added, too

Definition at line 182 of file GUIGlObject.cpp.

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

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

void GUIGlObject::buildShowParamsPopupEntry ( GUIGLObjectPopupMenu ret,
bool  addSeparator = true 
) [protected, inherited]

Builds an entry which allows to open the parameter window.

Parameters:
in,filled]ret The popup menu to add the entry to
[in]addSeparatorWhether a separator shall be added, too

Definition at line 161 of file GUIGlObject.cpp.

References GUIIconSubSys::getIcon(), ICON_APP_TABLE, and MID_SHOWPARS.

Referenced by GUIDetectorWrapper::getPopUpMenu(), GUILaneSpeedTrigger::getPopUpMenu(), GUILaneWrapper::getPopUpMenu(), GUIVehicle::getPopUpMenu(), getPopUpMenu(), and GUINet::getPopUpMenu().

void MSEdge::changeLanes ( SUMOTime  t) [virtual, inherited]

Performs lane changing on this edge.

Definition at line 365 of file MSEdge.cpp.

References MSEdge::EDGEFUNCTION_INTERNAL, MSLaneChanger::laneChange(), MSEdge::myFunction, and MSEdge::myLaneChanger.

Referenced by MSEdgeControl::changeLanes().

void MSEdge::clear ( ) [static, inherited]

Clears the dictionary.

Definition at line 465 of file MSEdge.cpp.

References MSEdge::myDict.

Referenced by MSNet::clearAll().

void MSEdge::closeBuilding ( ) [inherited]
Todo:
Has to be called after all edges were built and all connections were set...; Still, is not very nice

Definition at line 104 of file MSEdge.cpp.

References MSLane::getEdge(), MSEdge::myAllowed, MSEdge::myLanes, MSEdge::myPredeccesors, MSEdge::mySuccessors, and MSEdge::rebuildAllowedLanes().

Disables vaporization.

The internal vaporization counter is decreased what disables the vaporization if it was only once enabled. Called from the event handler.

Parameters:
[in]tThe current time (unused)
Returns:
Time to next call (always 0)
Exceptions:
ProcessErrornot thrown by this method, just derived

Definition at line 243 of file MSEdge.cpp.

References MSEdge::myVaporizationRequests.

Referenced by NLTriggerBuilder::buildVaporizer().

MSEdge * MSEdge::dictionary ( const std::string &  id) [static, inherited]

Returns the MSEdge associated to the key id if exists, otherwise returns 0.

Definition at line 441 of file MSEdge.cpp.

References MSEdge::myDict.

MSEdge * MSEdge::dictionary ( size_t  index) [static, inherited]

Returns the MSEdge at the index.

Definition at line 452 of file MSEdge.cpp.

References MSEdge::myEdges.

virtual void GUIGlObject::drawGLAdditional ( GUISUMOAbstractView *const  parent,
const GUIVisualizationSettings s 
) const [inline, virtual, inherited]

Draws additional, user-triggered visualisations.

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

Reimplemented in GUIVehicle.

Definition at line 182 of file GUIGlObject.h.

References UNUSED_PARAMETER.

void GUIEdge::fill ( std::vector< GUIEdge * > &  netsWrappers) [static]

Definition at line 148 of file GUIEdge.cpp.

References MSEdge::dictSize(), MSEdge::EDGEFUNCTION_DISTRICT, and MSEdge::myDict.

Referenced by GUINet::initGUIStructures().

const std::vector< MSLane * > * MSEdge::getAllowedLanesWithDefault ( const AllowedLanesCont c,
const MSEdge dest 
) const [protected, inherited]

lookup in map and return 0 if not found

Definition at line 187 of file MSEdge.cpp.

Referenced by MSEdge::allowedLanes().

Returns the street's geometry.

Definition at line 134 of file GUIEdge.cpp.

References Boundary::add(), Boundary::grow(), myLaneGeoms, and PositionVector::size().

Referenced by getCenteringBoundary(), and GUINet::getEdgeBoundary().

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 GUIEdge.cpp.

References getBoundary(), and Boundary::grow().

SUMOReal MSEdge::getCurrentTravelTime ( ) const [inherited]

Computes and returns the current travel time for this edge.

The mean travel time of all lanes is summed and divided by the number of lanes. If the result is zero, 1000000. (a very large number) is returned, otherwise the edge's length divided by this speed.

Returns:
The current effort (travel time) to pass the edge

Definition at line 395 of file MSEdge.cpp.

References MSEdge::getLength(), MSGlobals::gUseMesoSim, MSEdge::myLanes, and SUMOReal.

Referenced by MSVehicleTransfer::addVeh(), MSVehicleTransfer::checkInsertions(), and TraCIServerAPI_Edge::processGet().

MSLane * MSEdge::getDepartLane ( const MSVehicle veh) const [inherited]

Finds a depart lane for the given vehicle parameters.

Depending on the depart lane procedure a depart lane is chosen. Repeated calls with the same vehicle may return different results if the procedure is "random" or "free". In case no appropriate lane was found, 0 is returned.

Parameters:
[in]vehThe vehicle to get the depart lane for
Returns:
a possible/chosen depart lane, 0 if no lane can be used

Definition at line 269 of file MSEdge.cpp.

References MSEdge::allowedLanes(), MSRoute::begin(), DEPART_LANE_ALLOWED_FREE, DEPART_LANE_BEST_FREE, DEPART_LANE_DEFAULT, DEPART_LANE_FREE, DEPART_LANE_GIVEN, DEPART_LANE_RANDOM, SUMOVehicleParameter::departLane, SUMOVehicleParameter::departLaneProcedure, MSVehicle::getBestLanes(), MSEdge::getFreeLane(), MSBaseVehicle::getParameter(), RandHelper::getRandomFrom(), MSBaseVehicle::getRoute(), MSVehicleType::getVehicleClass(), MSBaseVehicle::getVehicleType(), MSEdge::myLanes, MSRoute::size(), and SUMOReal.

Referenced by MSEdge::insertVehicle().

SUMOReal MSEdge::getDistanceTo ( const MSEdge other) const [inherited]

optimistic distance heuristic for use in routing

Definition at line 505 of file MSEdge.cpp.

References MSEdge::getLanes().

const MSEdge* MSEdge::getFollower ( unsigned int  n) const [inline, inherited]

Returns the n-th of the following edges.

Parameters:
[in]nThe index within following edges of the edge to return
Returns:
The n-th of the following edges

Definition at line 252 of file MSEdge.h.

References MSEdge::mySuccessors.

Referenced by MSRouteHandler::myStartElement().

MSLane * MSEdge::getFreeLane ( const std::vector< MSLane * > *  allowed,
const SUMOVehicleClass  vclass 
) const [inherited]

Finds the emptiest lane allowing the vehicle class.

The emptiest lane is the one with the fewest vehicles on. If there is more than one, the first according to its index in the lane container is chosen.

If allowed==0, the lanes allowed for the given vehicle class will be used.

Parameters:
[in]allowedThe lanes to choose from
[in]vclassThe vehicle class to look for
Returns:
the least occupied lane
See also:
allowedLanes

Definition at line 250 of file MSEdge.cpp.

References MSEdge::allowedLanes(), and MSLane::getVehicleNumber().

Referenced by MSVehicleTransfer::checkInsertions(), and MSEdge::getDepartLane().

std::vector< GUIGlID > GUIEdge::getIDs ( bool  includeInternal) [static]
const std::vector<MSEdge*>& MSEdge::getIncomingEdges ( ) const [inline, inherited]

Returns the list of edges from which this edge may be reached.

Returns:
Edges from which this edge may be reached

Definition at line 236 of file MSEdge.h.

References MSEdge::myPredeccesors.

Referenced by MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), and MSLane::getLogicalPredecessorLane().

MSLane & GUIEdge::getLane ( size_t  laneNo)

returns the enumerated lane (!!! why not private with a friend?)

Definition at line 96 of file GUIEdge.cpp.

GUILaneWrapper & GUIEdge::getLaneGeometry ( size_t  laneNo) const

returns the enumerated lane's geometry (!!! why not private with a friend?)

Definition at line 103 of file GUIEdge.cpp.

References myLaneGeoms.

Referenced by GUIVehicle::draw(), GUITriggeredRerouter::drawGL(), GUITriggeredRerouter::GUITriggeredRerouter(), GUISUMOViewParent::isSelected(), and GUI_E2_ZS_CollectorOverLanes::MyWrapper::MyWrapper().

GUILaneWrapper & GUIEdge::getLaneGeometry ( const MSLane lane) const

Definition at line 110 of file GUIEdge.cpp.

References myLaneGeoms.

static std::pair<SUMOReal, SUMOReal> GUIEdge::getLaneOffsets ( SUMOReal  x1,
SUMOReal  y1,
SUMOReal  x2,
SUMOReal  y2,
SUMOReal  prev,
SUMOReal  wanted 
) [static]

returns the position on the line given by the coordinates where "prev" is the length of the line and "wanted" the distance from the begin !!! should be within another class

SUMOTime MSEdge::getLastFailedInsertionTime ( ) const [inline, inherited]

Returns the last time a vehicle could not be inserted.

Returns:
The current value

Definition at line 359 of file MSEdge.h.

References MSEdge::myLastFailedInsertionTime.

SUMOReal MSEdge::getLength ( ) const [inherited]
SUMOReal MSEdge::getMaxSpeed ( ) const [inherited]

return the maximum speed the edge

Definition at line 517 of file MSEdge.cpp.

References MSEdge::getLanes().

Referenced by MSMeanData::writeEdge().

const std::string& GUIGlObject::getMicrosimID ( ) const [inline, inherited]

Returns the id of the object as known to microsim.

Returns:
The id of the object

Definition at line 146 of file GUIGlObject.h.

References GUIGlObject::myMicrosimID.

Referenced by GUIGlObject::createFullName(), GUIGlObject::drawName(), GUIDialog_GLObjChooser::GUIDialog_GLObjChooser(), and GUIGLObjectPopupMenu::onCmdCopyName().

unsigned int MSEdge::getNoFollowing ( ) const [inline, inherited]

Returns the number of edges that may be reached from this edge.

Returns:
The number of following edges

Definition at line 244 of file MSEdge.h.

References MSEdge::mySuccessors.

Referenced by MSRouteHandler::myStartElement().

unsigned int MSEdge::getNumericalID ( ) const [inline, inherited]

Returns the numerical id of the edge.

Returns:
This edge's numerical id

Definition at line 208 of file MSEdge.h.

References MSEdge::myNumericalID.

Referenced by MSEdgeControl::changeLanes(), and MSEdge::dictionary().

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 176 of file GUIEdge.cpp.

References GUIParameterTableWindow::closeBuilding(), MSEdge::getLength(), GUIParameterTableWindow::mkItem(), MSEdge::myLanes, and UNUSED_PARAMETER.

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 161 of file GUIEdge.cpp.

References GUIGlObject::buildCenterPopupEntry(), GUIGlObject::buildNameCopyPopupEntry(), GUIGlObject::buildPopupHeader(), GUIGlObject::buildPositionCopyEntry(), GUIGlObject::buildSelectionPopupEntry(), GUIGlObject::buildShowParamsPopupEntry(), and MSGlobals::gUseMesoSim.

EdgeBasicFunction MSEdge::getPurpose ( ) const [inline, inherited]

Returns the edge type (EdgeBasicFunction)

Returns:
This edge's EdgeBasicFunction
See also:
EdgeBasicFunction

Definition at line 200 of file MSEdge.h.

References MSEdge::myFunction.

Referenced by MSLane::appropriate(), MSVehicle::checkRewindLinkLanes(), GUILaneWrapper::drawGL(), MSVehicle::enterLaneAtMove(), MSVehicle::getBestLanesContinuation(), getIDs(), and MSVehicle::vsafeCriticalCont().

const std::string& MSEdge::getStreetName ( ) const [inline, inherited]

Returns the street name of the edge.

Definition at line 215 of file MSEdge.h.

References MSEdge::myStreetName.

Referenced by drawGL().

Enables vaporization.

The internal vaporization counter is increased enabling the vaporization. Called from the event handler.

Parameters:
[in]tThe current time (unused)
Returns:
Time to next call (always 0)
Exceptions:
ProcessErrornot thrown by this method, just derived

Definition at line 236 of file MSEdge.cpp.

References MSEdge::myVaporizationRequests.

Referenced by NLTriggerBuilder::buildVaporizer().

Builds lane wrappers for this edge's lanes.

Definition at line 82 of file GUIEdge.cpp.

References myLaneGeoms, and MSEdge::myLanes.

void MSEdge::initialize ( std::vector< MSLane * > *  lanes,
EdgeBasicFunction  function 
) [inherited]

Initialize the edge.

Parameters:
[in]allowedInformation which edges may be reached from which lanes
[in]lanesList of this edge's lanes
[in]functionA basic type of the edge

Definition at line 93 of file MSEdge.cpp.

References MSEdge::EDGEFUNCTION_DISTRICT, MSEdge::EDGEFUNCTION_INTERNAL, OptionsCont::getOptions(), MSEdge::myFunction, MSEdge::myLaneChanger, and MSEdge::myLanes.

Referenced by NLHandler::addDistrict(), and NLEdgeControlBuilder::closeEdge().

void MSEdge::insertIDs ( std::vector< std::string > &  into) [static, inherited]

Inserts IDs of all known edges into the given vector.

Definition at line 474 of file MSEdge.cpp.

References MSEdge::myDict.

Referenced by TraCIServerAPI_Edge::processGet().

bool MSEdge::insertVehicle ( SUMOVehicle v,
SUMOTime  time 
) const [inherited]

Tries to insert the given vehicle into the network.

The procedure for choosing the proper lane is determined, first. In dependance to this, the proper lane is chosen.

Insertion itself is done by calling the chose lane's "insertVehicle" method.

Parameters:
[in]vThe vehicle to insert
[in]timeThe current simulation time
Returns:
Whether the vehicle could be inserted
See also:
MSLane::insertVehicle

Definition at line 316 of file MSEdge.cpp.

References DEPART_POS_FREE, DEPART_POS_GIVEN, DEPART_POS_RANDOM, DEPART_POS_RANDOM_FREE, SUMOVehicleParameter::departPos, SUMOVehicleParameter::departPosProcedure, MSEdge::getDepartLane(), SUMOVehicle::getID(), MSEdge::getLength(), SUMOVehicle::getParameter(), MSGlobals::gUseMesoSim, MSLane::insertVehicle(), MSEdge::isVaporizing(), RandHelper::rand(), SUMOReal, toString(), and WRITE_WARNING.

bool MSEdge::isVaporizing ( ) const [inline, inherited]

Returns whether vehicles on this edge shall be vaporized.

Returns:
Whether no vehicle shall be on this edge

Definition at line 265 of file MSEdge.h.

References MSEdge::myVaporizationRequests.

Referenced by MSEdge::insertVehicle(), MSVehicle::moveChecked(), and MSLane::setCritical().

MSLane * MSEdge::leftLane ( const MSLane *const  lane) const [inherited]

Returns the lane left to the one given, 0 if the given lane is leftmost.

Parameters:
[in]laneThe lane right to the one to be returned
Returns:
The lane left to the given, 0 if no such lane exists
Todo:
This method searches for the given in the container; probably, this could be done faster

Definition at line 155 of file MSEdge.cpp.

References MSEdge::myLanes.

Referenced by MSLane::getLeftLane().

GUIEdge& GUIEdge::operator= ( const GUIEdge s) [private]

invalidated assignment operator

void MSEdge::parseEdgesList ( const std::string &  desc,
std::vector< const MSEdge * > &  into,
const std::string &  rid 
) [static, inherited]

Parses the given string assuming it contains a list of edge ids divided by spaces.

Splits the string at spaces, uses polymorph method to generate edge vector.

Parameters:
[in]descThe string containing space-separated edge ids
[out]intoThe vector to fill
[in]ridThe id of the route these description belongs to; used for error message generation
Exceptions:
ProcessErrorIf one of the strings contained is not a known edge id

Definition at line 482 of file MSEdge.cpp.

References StringTokenizer::getVector().

Referenced by MSRouteHandler::myStartElement(), MSRouteHandler::openRoute(), and TraCIServerAPI_Vehicle::processSet().

void MSEdge::parseEdgesList ( const std::vector< std::string > &  desc,
std::vector< const MSEdge * > &  into,
const std::string &  rid 
) [static, inherited]

Parses the given string vector assuming it edge ids.

Parameters:
[in]descThe string vector containing edge ids
[out]intoThe vector to fill
[in]ridThe id of the route these description belongs to; used for error message generation
Exceptions:
ProcessErrorIf one of the strings contained is not a known edge id

Definition at line 490 of file MSEdge.cpp.

References MSEdge::dictionary().

bool MSEdge::prohibits ( const SUMOVehicle *const  vehicle) const [inline, inherited]

Returns whether the vehicle (class) is not allowed on the edge.

Definition at line 383 of file MSEdge.h.

References MSVehicleType::getVehicleClass(), SUMOVehicle::getVehicleType(), and MSEdge::myCombinedPermissions.

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

Parameters:
[in]wThe closed parameter window

Definition at line 197 of file GUIGlObject.cpp.

References GUIGlObject::myParamWindows.

Referenced by GUIParameterTableWindow::~GUIParameterTableWindow().

MSLane * MSEdge::rightLane ( const MSLane *const  lane) const [inherited]

Returns the lane right to the one given, 0 if the given lane is rightmost.

Parameters:
[in]laneThe lane left to the one to be returned
Returns:
The lane right to the given, 0 if no such lane exists
Todo:
This method searches for the given in the container; probably, this could be done faster

Definition at line 165 of file MSEdge.cpp.

References MSEdge::myLanes.

Referenced by MSLane::getRightLane().

void MSEdge::setLastFailedInsertionTime ( SUMOTime  time) const [inline, inherited]

Sets the last time a vehicle could not be inserted.

Parameters:
[in]timethe new value

Definition at line 367 of file MSEdge.h.

References MSEdge::myLastFailedInsertionTime.

void GUIGlObject::setMicrosimID ( const std::string &  newID) [inherited]

Changes the microsimID of the object (happens in NETEDIT)

Definition at line 112 of file GUIGlObject.cpp.

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

void GUIGlObject::setPrefix ( const std::string &  prefix) [protected, inherited]

Field Documentation

AllowedLanesCont MSEdge::myAllowed [protected, inherited]

Associative container from destination-edge to allowed-lanes.

Definition at line 515 of file MSEdge.h.

Referenced by MSEdge::allowedLanes(), MSEdge::closeBuilding(), and MSEdge::~MSEdge().

ClassedAllowedLanesCont MSEdge::myClassedAllowed [mutable, protected, inherited]

From vehicle class to lanes allowed to be used by it.

Definition at line 519 of file MSEdge.h.

Referenced by MSEdge::allowedLanes(), MSEdge::rebuildAllowedLanes(), and MSEdge::~MSEdge().

The union of lane permissions for this edge.

Definition at line 524 of file MSEdge.h.

Referenced by MSEdge::prohibits(), and MSEdge::rebuildAllowedLanes().

MSEdge::DictType MSEdge::myDict [static, protected, inherited]

Static dictionary to associate string-ids with objects.

Deprecated:
Move to MSEdgeControl, make non-static

Definition at line 540 of file MSEdge.h.

Referenced by MSEdge::clear(), MSEdge::dictionary(), MSEdge::dictSize(), fill(), getIDs(), and MSEdge::insertIDs().

std::vector< MSEdge * > MSEdge::myEdges [static, protected, inherited]

Static list of edges.

Deprecated:
Move to MSEdgeControl, make non-static

Definition at line 545 of file MSEdge.h.

Referenced by MSEdge::dictionary().

EdgeBasicFunction MSEdge::myFunction [protected, inherited]

the purpose of the edge

Definition at line 495 of file MSEdge.h.

Referenced by MSEdge::changeLanes(), drawGL(), MSEdge::getPurpose(), and MSEdge::initialize().

std::string MSEdge::myID [protected, inherited]

Unique ID.

Definition at line 483 of file MSEdge.h.

Referenced by MSEdge::getID().

MSLaneChanger* MSEdge::myLaneChanger [protected, inherited]

This member will do the lane-change.

Definition at line 492 of file MSEdge.h.

Referenced by MSEdge::changeLanes(), MSEdge::initialize(), and MSEdge::~MSEdge().

List of the edge's lanes geometrical information.

Definition at line 166 of file GUIEdge.h.

Referenced by drawGL(), getBoundary(), getLaneGeometry(), initGeometry(), and ~GUIEdge().

std::vector<MSLane*>* MSEdge::myLanes [protected, inherited]

Container for the edge's lane; should be sorted: (right-hand-traffic) the more left the lane, the higher the container-index.

Definition at line 489 of file MSEdge.h.

Referenced by MSEdge::closeBuilding(), MSEdge::getCurrentTravelTime(), MSEdge::getDepartLane(), MSEdge::getLanes(), getParameterWindow(), initGeometry(), MSEdge::initialize(), MSEdge::leftLane(), MSEdge::rebuildAllowedLanes(), MSEdge::rightLane(), and MSEdge::~MSEdge().

SUMOTime MSEdge::myLastFailedInsertionTime [mutable, protected, inherited]

The time of last insertion failure.

Definition at line 501 of file MSEdge.h.

Referenced by MSEdge::getLastFailedInsertionTime(), and MSEdge::setLastFailedInsertionTime().

The intersection of lane permissions for this edge.

Definition at line 522 of file MSEdge.h.

Referenced by MSEdge::allowedLanes(), and MSEdge::rebuildAllowedLanes().

unsigned int MSEdge::myNumericalID [protected, inherited]

This edge's numerical id.

Definition at line 486 of file MSEdge.h.

Referenced by MSEdge::getNumericalID().

std::vector<MSEdge*> MSEdge::myPredeccesors [protected, inherited]

The preceeding edges.

Definition at line 507 of file MSEdge.h.

Referenced by MSEdge::closeBuilding(), and MSEdge::getIncomingEdges().

std::string MSEdge::myStreetName [protected, inherited]

Definition at line 526 of file MSEdge.h.

Referenced by drawGL(), and MSEdge::getStreetName().

std::vector<MSEdge*> MSEdge::mySuccessors [protected, inherited]

The succeeding edges.

Definition at line 504 of file MSEdge.h.

Referenced by MSEdge::addFollower(), MSEdge::closeBuilding(), MSEdge::getFollower(), and MSEdge::getNoFollowing().

int MSEdge::myVaporizationRequests [protected, inherited]

Vaporizer counter.

Definition at line 498 of file MSEdge.h.

Referenced by MSEdge::decVaporization(), MSEdge::incVaporization(), and MSEdge::isVaporizing().

associates object types with strings

Definition at line 99 of file GUIGlObject.h.


The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines