49 #ifdef CHECK_MEMORY_LEAKS 51 #endif // CHECK_MEMORY_LEAKS 58 : myCurrentNumericalLaneID(0), myCurrentNumericalEdgeID(0), myEdges(0) {
72 const std::string& streetName,
73 const std::string& edgeType,
102 std::vector<MSLane*>* lanes =
new std::vector<MSLane*>();
113 for (MSEdgeVector::iterator i1 =
myEdges.begin(); i1 !=
myEdges.end(); i1++) {
114 (*i1)->closeBuilding();
116 for (MSEdgeVector::iterator i1 =
myEdges.begin(); i1 !=
myEdges.end(); i1++) {
117 (*i1)->buildLaneChanger();
121 for (MSEdgeVector::iterator i1 =
myEdges.begin(); i1 !=
myEdges.end(); i1++) {
125 throw ProcessError(
"Internal edge '" + edge->
getID() +
"' is not properly connected (probably a manually modified net.xml).");
143 const std::string& streetName,
const std::string& edgeType,
const int priority) {
std::set< std::string > deprecatedVehicleClassesSeen
virtual MSEdge * closeEdge()
Closes the building of an edge; The edge is completely described by now and may not be opened again...
void initialize(const std::vector< MSLane * > *lanes)
Initialize the edge.
virtual MSEdge * buildEdge(const std::string &id, const MSEdge::EdgeBasicFunction function, const std::string &streetName, const std::string &edgeType, const int priority)
Builds an edge instance (MSEdge in this case)
void setCrossingEdges(const std::vector< std::string > &crossingEdges)
Sets the crossed edge ids for a crossing edge.
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...
MSEdgeVector myEdges
Temporary, internal storage for built edges.
EdgeBasicFunction
Defines possible edge types.
MSEdge * myActiveEdge
pointer to the currently chosen edge
#define WRITE_WARNING(msg)
const std::string & getID() const
Returns the id.
A road/street connecting two junctions.
MSEdgeControl * build()
builds the MSEdgeControl-class which holds all edges
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
const MSEdgeVector & getPredecessors() const
Returns the edge at the given position from the list of reachable edges.
std::vector< MSLane * > * myLaneStorage
pointer to a temporary lane storage
NLEdgeControlBuilder()
Constructor.
Stores edges and lanes, performs moving of vehicle.
virtual ~NLEdgeControlBuilder()
Destructor.
int getNumSuccessors() const
Returns the number of edges that may be reached from this edge.
static bool gUsingInternalLanes
Information whether the simulation regards internal lanes.
int myCurrentNumericalEdgeID
A running number for edge numbering.
bool isInternal() const
return whether this edge is an internal edge
virtual void addNeigh(const std::string id)
Adds a neighbor to the current lane.
virtual MSLane * addLane(const std::string &id, SUMOReal maxSpeed, SUMOReal length, const PositionVector &shape, SUMOReal width, SVCPermissions permissions, int index)
Adds a lane to the current edge.
int myCurrentNumericalLaneID
A running number for lane numbering.
void beginEdgeParsing(const std::string &id, const MSEdge::EdgeBasicFunction function, const std::string &streetName, const std::string &edgeType, int priority)
Begins building of an MSEdge.
const MSEdgeVector & getSuccessors() const
Returns the following edges.
virtual void addCrossingEdges(const std::vector< std::string > &)
add the crossingEdges in a crossing edge if present
int getNumPredecessors() const
Returns the number of edges this edge is connected to.
Representation of a lane in the micro simulation.