54 : myCurrentNumericalLaneID(0), myCurrentNumericalEdgeID(0), myEdges(0) {
68 const std::string& streetName,
69 const std::string& edgeType,
81 double maxSpeed,
double length,
98 std::vector<MSLane*>* lanes =
new std::vector<MSLane*>();
109 for (MSEdgeVector::iterator i1 =
myEdges.begin(); i1 !=
myEdges.end(); i1++) {
110 (*i1)->closeBuilding();
112 for (MSEdgeVector::iterator i1 =
myEdges.begin(); i1 !=
myEdges.end(); i1++) {
113 (*i1)->buildLaneChanger();
117 for (MSEdgeVector::iterator i1 =
myEdges.begin(); i1 !=
myEdges.end(); i1++) {
121 throw ProcessError(
"Internal edge '" + edge->
getID() +
"' is not properly connected (probably a manually modified net.xml).");
139 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)
int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
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
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, double maxSpeed, double length, const PositionVector &shape, double width, SVCPermissions permissions, int index, bool isRampAccel)
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.