 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
116 NBEdge*
retrieve(
const std::string&
id,
bool retrieveExtracted =
false)
const;
184 std::map<std::string, NBEdge*>::const_iterator
begin()
const {
192 std::map<std::string, NBEdge*>::const_iterator
end()
const {
270 const std::string& firstEdgeName,
const std::string& secondEdgeName,
271 int noLanesFirstEdge,
int noLanesSecondEdge,
272 const double speed = -1.,
const int changedLeft = 0);
291 const std::string& firstEdgeName,
const std::string& secondEdgeName,
292 int noLanesFirstEdge,
int noLanesSecondEdge,
293 const double speed = -1.,
const int changedLeft = 0);
360 void checkGeometries(
const double maxAngle,
const double minRadius,
bool fix,
bool fixRailways,
bool silent =
false);
418 void appendTurnarounds(
bool noTLSControlled,
bool onlyDeadends,
bool noGeometryLike);
538 void addPostProcessConnection(
const std::string& from,
int fromLane,
const std::string& to,
int toLane,
bool mayDefinitelyPass,
539 bool keepClear,
double contPos,
double visibility,
double speed,
584 void checkOverlap(
double threshold,
double zThreshold)
const;
626 bool mayDefinitelyPass_,
bool keepClear_,
double contPos_,
double visibility_,
double speed_,
Sorts splits by their position (increasing)
bool wasRemoved(std::string id) const
Returns whether the edge with the id was deleted explicitly.
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
const SVCPermissions SVC_UNSPECIFIED
permissions not specified
NBTypeCont & myTypeCont
The network builder; used to obtain type information.
std::set< std::string > myIgnoredEdges
The ids of ignored edges.
int offsetFactor
direction in which to apply the offset (used by netgenerate for lefthand networks)
NBEdge * retrieve(const std::string &id, bool retrieveExtracted=false) const
Returns the edge that has the given id.
double myEdgesMinSpeed
The minimum speed an edge may have in order to be kept (default: -1)
Storage for edges, including some functionality operating on multiple edges.
void addPostProcessConnection(const std::string &from, int fromLane, const std::string &to, int toLane, bool mayDefinitelyPass, bool keepClear, double contPos, double visibility, double speed, const PositionVector &customShape, bool uncontrolled, bool warnOnly, SVCPermissions permissions=SVC_UNSPECIFIED)
Adds a connection which could not be set during loading.
EdgeCont myExtractedEdges
The extracted nodes which are kept for reference.
A container for traffic light definitions and built programs.
Static storage of an output device and its base (abstract) implementation.
void erase(NBDistrictCont &dc, NBEdge *edge)
Removes the given edge from the container (deleting it)
NBEdge * getOppositeByID(const std::string &edgeID) const
Returns the edge with negated id if it exists.
int getNoEdgeSplits() const
Returns the number of edge splits.
void ignore(std::string id)
mark the given edge id as ignored
std::vector< NBEdge * > EdgeVector
container for (sorted) edges
void applyOptions(OptionsCont &oc)
Initialises the storage by applying given options.
void checkGrade(double threshold) const
check whether edges are to steep
void processSplits(NBEdge *e, std::vector< Split > splits, NBNodeCont &nc, NBDistrictCont &dc, NBTrafficLightLogicCont &tlc)
int fromLane
The number of the lane the connection starts at.
void computeLaneShapes()
Computes the shapes of all lanes of all edges stored in the container.
std::map< std::string, std::vector< PostProcessConnection > > myConnections
The list of connections to recheck.
void patchRoundabouts(NBEdge *orig, NBEdge *part1, NBEdge *part2, std::set< EdgeSet > &roundabouts)
fix roundabout information after splitting an edge
NBEdge * getByID(const std::string &edgeID) const
Returns the edge with id if it exists.
bool insert(NBEdge *edge, bool ignorePrunning=false)
Adds an edge to the dictionary.
double offset
lateral offset to edge geometry
NBEdgeCont & operator=(const NBEdgeCont &s)
invalidated assignment operator
double speed
The speed after this change.
void markRoundabouts()
mark edge priorities and prohibit turn-arounds for all roundabout edges
std::string to
The id of the edge the connection ends at.
std::set< std::string > myTypes2Remove
Set of edges types which shall be removed.
A container for districts.
bool splitAt(NBDistrictCont &dc, NBEdge *edge, NBNode *node)
Splits the edge at the position nearest to the given node.
bool ignoreFilterMatch(NBEdge *edge)
Returns true if this edge matches one of the removal criteria.
std::vector< NBRouterEdge * > RouterEdgeVector
int remapIDs(bool numericaIDs, bool reservedIDs, const std::string &prefix, NBPTStopCont &sc)
remap node IDs accoring to options –numerical-ids and –reserved-ids
Container for nodes during the netbuilding process.
The representation of a single edge during network building.
PostProcessConnection(const std::string &from_, int fromLane_, const std::string &to_, int toLane_, bool mayDefinitelyPass_, bool keepClear_, double contPos_, double visibility_, double speed_, const PositionVector &customShape_, bool uncontrolled_, bool warnOnly_, SVCPermissions permissions_)
Constructor.
SVCPermissions myVehicleClasses2Keep
Set of vehicle types which must be allowed on edges in order to keep them.
EdgeVector getGeneratedFrom(const std::string &id) const
Returns the edges which have been built by splitting the edge of the given id.
void joinSameNodeConnectingEdges(NBDistrictCont &dc, NBTrafficLightLogicCont &tlc, EdgeVector edges)
Joins the given edges because they connect the same nodes.
EdgeCont myEdges
The instance of the dictionary (id->edge)
void computeLanes2Edges()
Computes for each edge which lanes approach the next edges.
split_sorter()
Constructor.
void checkOverlap(double threshold, double zThreshold) const
check whether edges overlap
std::set< std::string > myEdges2Remove
Set of ids of edges which shall explicitly be removed.
NBNode * node
The new node that is created for this split.
void generateStreetSigns()
assigns street signs to edges based on toNode types
int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
bool hasPostProcessConnection(const std::string &from, const std::string &to="")
std::map< std::string, NBEdge * > EdgeCont
The type of the dictionary where an edge may be found by its id.
int size() const
Returns the number of edges.
int guessRoundabouts()
Determines which edges belong to roundabouts and increases their priority.
std::set< NBEdge * > EdgeSet
container for unique edges
double speed
custom speed for connection
std::set< std::string > myTypes2Keep
Set of edges types which shall be kept.
std::vector< int > lanes
The lanes after this change.
void recheckPostProcessConnections()
Try to set any stored connections.
void clear()
Deletes all edges.
NBEdge * retrievePossiblySplit(const std::string &id, bool downstream) const
Tries to retrieve an edge, even if it is splitted.
bool myNeedGeoTransformedPruningBoundary
whether a geo transform has been applied to the pruning boundary
void removeUnwishedEdges(NBDistrictCont &dc)
Removes unwished edges (not in keep-edges)
void recheckLanes()
Rechecks whether all lanes have a successor for each of the stored edges.
A storage for options typed value containers)
void splitGeometry(NBDistrictCont &dc, NBNodeCont &nc)
Splits edges into multiple if they have a complex geometry.
void appendTurnarounds(bool noTLSControlled, bool onlyDeadends, bool noGeometryLike)
Appends turnarounds to all edges stored in the container.
PositionVector myPruningBoundary
Boundary within which an edge must be located in order to be kept.
int toLane
The number of the lane the connection ends at.
double pos
The position of this change.
std::map< std::string, NBEdge * >::const_iterator end() const
Returns the pointer to the end of the stored edges.
EdgeVector getAllEdges() const
return all edges
void appendRailwayTurnarounds(const NBPTStopCont &sc)
Appends turnarounds to all bidiRail edges with stops.
std::vector< std::string > getAllNames() const
Returns all ids of known edges.
bool uncontrolled
whether this connection shall not be controlled by a traffic light
void sortOutgoingLanesConnections()
Sorts all lanes of all edges within the container by their direction.
void reduceGeometries(const double minDist)
std::set< std::string > myEdges2Keep
Set of ids of edges which shall explicitly be kept.
void rename(NBEdge *edge, const std::string &newID)
Renames the edge. Throws exception if newID already exists.
A storage for available types of edges.
std::set< EdgeSet > myRoundabouts
Edges marked as belonging to a roundabout by the user (each EdgeVector is a roundabout)
A structure representing a connection between two lanes.
NBEdgeCont(NBTypeCont &tc)
Constructor.
int guessSpecialLanes(SUMOVehicleClass svc, double width, double minSpeed, double maxSpeed, bool fromPermissions, const std::string &excludeOpt)
add sidwalks to edges within the given limits or permissions and return the number of edges affected
void extract(NBDistrictCont &dc, NBEdge *edge, bool remember=false)
Removes the given edge from the container like erase but does not delete it.
void recheckLaneSpread()
Rechecks whether the lane spread is proper.
static double formFactor(const EdgeVector &loopEdges)
compute the form factor for a loop of edges
const double INVALID_DOUBLE
std::string idAfter
The id for the edge after the split.
void computeEdgeShapes(double smoothElevationThreshold=-1)
Computes the shapes of all edges stored in the container.
int myEdgesSplit
the number of splits of edges during the building
int joinLanes(SVCPermissions perms)
join adjacent lanes with the given permissions
void addRoundabout(const EdgeSet &roundabout)
add user specified roundabout
int operator()(const Split &e1, const Split &e2) const
Comparing operator.
SVCPermissions myVehicleClasses2Remove
Set of vehicle types which need not be supported (edges which allow ONLY these are removed)
void removeRoundabout(const NBNode *node)
remove roundabout that contains the given node
double contPos
custom position for internal junction on this connection
void guessOpposites()
Sets opposite lane information for geometrically close edges.
void checkGeometries(const double maxAngle, const double minRadius, bool fix, bool fixRailways, bool silent=false)
Represents a single node (junction) during network building.
void computeEdge2Edges(bool noLeftMovers)
Computes for each edge the approached edges.
double visibility
custom foe visiblity for connection
bool warnOnly
whether a failure to set this connection is a warning or an error
SVCPermissions permissions
custom permissions for connection
bool myRemoveEdgesAfterJoining
Whether edges shall be joined first, then removed.
A structure which describes changes of lane number or speed along the road.
std::map< std::string, NBEdge * >::const_iterator begin() const
Returns the pointer to the begin of the stored edges.
PositionVector customShape
custom shape for connection
std::string idBefore
The id for the edge before the split.
std::string from
The id of the edge the connection starts at.
std::set< EdgeSet > myGuessedRoundabouts
Edges marked as belonging to a roundabout after guessing.
const std::set< EdgeSet > getRoundabouts() const
Returns the determined roundabouts.
bool wasIgnored(std::string id) const
Returns whether the edge with the id was ignored during parsing.
bool mayDefinitelyPass
Whether the connection may be passed without braking.
bool keepClear
Whether the connection may be passed without braking.
RouterEdgeVector getAllRouterEdges() const
std::string nameID
the default node id
void clearControllingTLInformation() const
Clears information about controlling traffic lights for all connenections of all edges.