51 #ifdef CHECK_MEMORY_LEAKS 53 #endif // CHECK_MEMORY_LEAKS 62 myNet(net), myCurrentName(),
63 myCurrentEdge(0), myCurrentStoppingPlace(0),
64 myProcess(true), myEdgeBuilder(eb) {}
138 if (edge != 0 && from != 0 && to != 0) {
188 fromNode =
new RONode(from);
255 if (permissions !=
SVCAll) {
259 if (maxSpeed > 0 && length > 0 &&
id.length() > 0) {
300 throw ProcessError(
"unknown from-edge '" + fromID +
"' in connection");
303 throw ProcessError(
"unknown to-edge '" + toID +
"' in connection");
308 if ((
int)from->getLanes().size() <= fromLane) {
309 throw ProcessError(
"invalid fromLane '" +
toString(fromLane) +
"' in connection from '" + fromID +
"'.");
311 if ((
int)to->
getLanes().size() <= toLane) {
312 throw ProcessError(
"invalid toLane '" +
toString(toLane) +
"' in connection to '" + toID +
"'.");
314 from->getLanes()[fromLane]->addOutgoingLane(to->
getLanes()[toLane]);
315 from->addSuccessor(to, dir);
377 for (std::vector<std::string>::const_iterator i = desc.begin(); i != desc.end(); ++i) {
SUMOVehicleClass getVehicleClassID(const std::string &name)
Returns the class id of the abstract class given by its name.
bool addDistrictEdge(const std::string tazID, const std::string edgeID, const bool isSource)
std::string myCurrentName
The name of the edge/node that is currently processed.
void addOutgoing(ROEdge *edge)
SumoXMLTag
Numbers representing SUMO-XML - element names.
ROAbstractEdgeBuilder & myEdgeBuilder
The object used to build of edges of the desired type.
void addRestriction(const std::string &id, const SUMOVehicleClass svc, const SUMOReal speed)
Adds a restriction for an edge type.
a source within a district (connection road)
A single lane the router may use.
SUMOVehicleParameter::Stop * myCurrentStoppingPlace
The currently built stopping place.
root element of a network file
begin/end of the description of a junction
begin/end of the description of a single lane
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
void parseDistrict(const SUMOSAXAttributes &attrs)
a traffic assignment zone
void addNode(RONode *node)
connectio between two lanes
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.
void setFunc(EdgeFunc func)
Sets the function of the edge.
const SVCPermissions SVCAll
begin/end of the description of an edge restriction
SAX-handler base for SUMO-files.
Interface for building instances of router-edges.
const std::vector< ROLane * > & getLanes() const
Returns this edge's lanes.
JunctionGraph myJunctionGraph
void addParkingArea(const std::string &id, SUMOVehicleParameter::Stop *stop)
virtual void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
RONetHandler(RONet &net, ROAbstractEdgeBuilder &eb)
Constructor.
An internal edge which models walking areas for pedestrians.
SUMOReal startPos
The stopping position start.
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
An edge where vehicles disappear (no vehicle may leave this edge)
Encapsulated SAX-Attributes.
virtual std::vector< std::string > getStringVector(int attr) const =0
Tries to read given attribute assuming it is a string vector.
A point in 2D or 3D with translation and scaling methods.
An edge where vehicles are inserted at (no vehicle may come from back)
SUMOReal endPos
The stopping position end.
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.
virtual ~RONetHandler()
Destructor.
void addIncoming(ROEdge *edge)
A basic edge for routing applications.
virtual bool hasAttribute(int id) const =0
Returns the information whether the named (by its enum-value) attribute is within the current list...
begin/end of the description of an edge
std::string lane
The lane to stop at.
void setRestrictions(const std::map< SUMOVehicleClass, SUMOReal > *restrictions)
Sets the vehicle class specific speed limits of the edge.
ROEdge * getEdgeForLaneID(const std::string &laneID) const
Retrieves an edge from the network when the lane id is given.
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.
bool addDistrict(const std::string id, ROEdge *source, ROEdge *sink)
A train stop (alias for bus stop)
An internal edge which models pedestrian crossings.
a sink within a district (connection road)
SUMOReal getLength() const
Returns the length of the edge.
Definition of vehicle stop (position and duration)
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.
std::string myCurrentTypeID
The id of the currently processed edge type.
void parseAccess(const SUMOSAXAttributes &attrs)
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) ...
std::multimap< std::string, SUMOReal > accessPos
lanes and positions connected to this stop
T get(int attr, const char *objectid, bool &ok, bool report=true) const
Tries to read given attribute assuming it is an int.
An access point for a train stop.
void addContainerStop(const std::string &id, SUMOVehicleParameter::Stop *stop)
virtual SumoXMLEdgeFunc getEdgeFunc(bool &ok) const =0
Returns the value of the named attribute.
ROEdge * myCurrentEdge
The currently built edge.
void parseDistrictEdge(const SUMOSAXAttributes &attrs, bool isSource)
void parseEdge(const SUMOSAXAttributes &attrs)
Parses and builds an edge.
void setPermissionsFound()
void parseStoppingPlace(const SUMOSAXAttributes &attrs, const SumoXMLTag element)
const std::map< SUMOVehicleClass, SUMOReal > * getRestrictions(const std::string &id) const
Returns the restrictions for an edge type If no restrictions are present, 0 is returned.