51 #ifdef CHECK_MEMORY_LEAKS 53 #endif // CHECK_MEMORY_LEAKS 62 myNet(net), myCurrentName(),
63 myCurrentEdge(0), myProcess(true), myEdgeBuilder(eb) {}
134 if (edge != 0 && from != 0 && to != 0) {
184 fromNode =
new RONode(from);
251 if (permissions !=
SVCAll) {
255 if (maxSpeed > 0 && length > 0 &&
id.length() > 0) {
296 throw ProcessError(
"unknown from-edge '" + fromID +
"' in connection");
299 throw ProcessError(
"unknown to-edge '" + toID +
"' in connection");
304 if (from->getLanes().size() <= (size_t)fromLane) {
305 throw ProcessError(
"invalid fromLane '" +
toString(fromLane) +
"' in connection from '" + fromID +
"'.");
307 if (to->
getLanes().size() <= (size_t)toLane) {
308 throw ProcessError(
"invalid toLane '" +
toString(toLane) +
"' in connection to '" + toID +
"'.");
310 from->getLanes()[fromLane]->addOutgoingLane(to->
getLanes()[toLane]);
311 from->addSuccessor(to, dir);
346 std::string
id = attrs.
get<std::string>(
SUMO_ATTR_ID,
"containerStop", ok);
354 throw InvalidArgument(
"Unknown lane '" + stop->
lane +
"' for container stop '" +
id +
"'.");
361 throw InvalidArgument(
"Invalid position for container stop '" +
id +
"'.");
378 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)
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.
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.
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.
void setRestrictions(const std::map< SUMOVehicleClass, SUMOReal > *restrictions)
Sets the vehicle class specific speed limits of the edge.
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)
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.
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.
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()
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.
void parseContainerStop(const SUMOSAXAttributes &attrs)