51 #ifdef CHECK_MEMORY_LEAKS
53 #endif // CHECK_MEMORY_LEAKS
62 myNet(net), myCurrentName(),
63 myCurrentEdge(0), myProcess(true), myEdgeBuilder(eb) {}
117 if (edge != 0 && from != 0 && to != 0) {
168 fromNode =
new RONode(from);
234 if (permissions !=
SVCAll) {
238 if (maxSpeed > 0 && length > 0 &&
id.length() > 0) {
279 throw ProcessError(
"unknown from-edge '" + fromID +
"' in connection");
282 throw ProcessError(
"unknown to-edge '" + toID +
"' in connection");
287 if (from->getLanes().size() <= (size_t)fromLane) {
288 throw ProcessError(
"invalid fromLane '" +
toString(fromLane) +
"' in connection from '" + fromID +
"'.");
290 if (to->
getLanes().size() <= (size_t)toLane) {
291 throw ProcessError(
"invalid toLane '" +
toString(toLane) +
"' in connection to '" + toID +
"'.");
293 from->getLanes()[fromLane]->addOutgoingLane(to->
getLanes()[toLane]);
294 from->addFollower(to, dir);
340 for (std::vector<std::string>::const_iterator i = desc.begin(); i != desc.end(); ++i) {
std::string myCurrentName
The name of the edge/node that is currently processed.
void addOutgoing(ROEdge *edge)
ROAbstractEdgeBuilder & myEdgeBuilder
The object used to build of edges of the desired type.
A single lane the router may use.
void parseDistrict(const SUMOSAXAttributes &attrs)
void setJunctions(RONode *from, RONode *to)
void addNode(RONode *node)
ROEdge * getEdge(const std::string &name) const
Retrieves an edge from the network.
void parseJunction(const SUMOSAXAttributes &attrs)
Parses a junction's position.
static bool checkStopPos(SUMOReal &startPos, SUMOReal &endPos, const SUMOReal laneLength, const SUMOReal minLength, const bool friendlyPos)
check start and end position of a stop
virtual void addLane(ROLane *lane)
Adds a lane to the edge while loading.
An internal edge which models vehicles driving across a junction. This is currently not used for rout...
virtual void parseLane(const SUMOSAXAttributes &attrs)
Parses and builds a lane.
const SVCPermissions SVCAll
SAX-handler base for SUMO-files.
Interface for building instances of router-edges.
virtual bool hasAttribute(int id) const =0
Returns the information whether the named (by its enum-value) attribute is within the current list...
const std::vector< ROLane * > & getLanes() const
Returns this edge's lanes.
virtual SumoXMLEdgeFunc getEdgeFunc(bool &ok) const =0
Returns the value of the named attribute.
JunctionGraph myJunctionGraph
An internal edge which models walking areas for pedestrians.
virtual void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
An edge where vehicles are inserted at (no vehicle may come from back)
RONetHandler(RONet &net, ROAbstractEdgeBuilder &eb)
Constructor.
void setType(EdgeType type)
Sets the type of te edge.
SUMOReal startPos
The stopping position start.
Encapsulated SAX-Attributes.
A point in 2D or 3D with translation and scaling methods.
SUMOReal endPos
The stopping position end.
An edge representing a whole district.
SVCPermissions parseVehicleClasses(const std::string &allowedS)
Parses the given definition of allowed vehicle classes into the given containers Deprecated classes g...
void setPosition(const Position &p)
Sets the position of the node.
void parseBusStop(const SUMOSAXAttributes &attrs)
virtual ~RONetHandler()
Destructor.
std::string toString(const T &t, std::streamsize accuracy=OUTPUT_ACCURACY)
void addIncoming(ROEdge *edge)
A basic edge for routing applications.
std::string lane
The lane to stop at.
virtual std::vector< std::string > getStringVector(int attr) const =0
Tries to read given attribute assuming it is a string vector.
virtual ROEdge * buildEdge(const std::string &name, RONode *from, RONode *to, const int priority)=0
Builds an edge with the given name.
The router's network representation.
void setRestrictionFound()
SUMOReal getLength() const
Returns the length of the edge.
Definition of vehicle stop (position and duration)
An internal edge which models pedestrian crossings.
SumoXMLEdgeFunc
Numbers representing special SUMO-XML-attribute values for representing edge functions used in netbui...
void addBusStop(const std::string &id, SUMOVehicleParameter::Stop *stop)
RONode * getNode(const std::string &id) const
Retrieves an node from the network.
The abstract direction of a link.
virtual bool addEdge(ROEdge *edge)
RONet & myNet
The net to store the information into.
void parseConnection(const SUMOSAXAttributes &attrs)
virtual void myEndElement(int element)
Called when a closing tag occurs.
Base class for nodes used by the router.
An edge where vehicles disappear (no vehicle may leave this edge)
T getOpt(int attr, const char *objectid, bool &ok, T defaultValue, bool report=true) const
Tries to read given attribute assuming it is an int.
bool myProcess
An indicator whether the next edge shall be read (internal edges are not read by now) ...
T get(int attr, const char *objectid, bool &ok, bool report=true) const
Tries to read given attribute assuming it is an int.
virtual void addFollower(ROEdge *s, std::string dir="")
Adds information about a connected edge.
ROEdge * myCurrentEdge
The currently built edge.
void parseDistrictEdge(const SUMOSAXAttributes &attrs, bool isSource)
void parseEdge(const SUMOSAXAttributes &attrs)
Parses and builds an edge.