51 #ifdef CHECK_MEMORY_LEAKS 53 #endif // CHECK_MEMORY_LEAKS 62 myNet(net), myCurrentName(),
63 myCurrentEdge(0), myCurrentStoppingPlace(0),
64 myProcess(true), myEdgeBuilder(eb) {}
137 if (edge != 0 && from != 0 && to != 0) {
187 fromNode =
new RONode(from);
254 if (permissions !=
SVCAll) {
258 if (maxSpeed > 0 && length > 0 &&
id.length() > 0) {
299 throw ProcessError(
"unknown from-edge '" + fromID +
"' in connection");
302 throw ProcessError(
"unknown to-edge '" + toID +
"' in connection");
307 if ((
int)from->getLanes().size() <= fromLane) {
308 throw ProcessError(
"invalid fromLane '" +
toString(fromLane) +
"' in connection from '" + fromID +
"'.");
310 if ((
int)to->
getLanes().size() <= toLane) {
311 throw ProcessError(
"invalid toLane '" +
toString(toLane) +
"' in connection to '" + toID +
"'.");
313 from->getLanes()[fromLane]->addOutgoingLane(to->
getLanes()[toLane]);
314 from->addSuccessor(to, dir);
375 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 single lane the router may use.
SUMOVehicleParameter::Stop * myCurrentStoppingPlace
The currently built stopping place.
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
void parseDistrict(const SUMOSAXAttributes &attrs)
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.
void setFunc(EdgeFunc func)
Sets the function of the edge.
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
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.
An edge where vehicles disappear (no vehicle may leave this edge)
Encapsulated SAX-Attributes.
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.
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.
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.
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)
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.