47 double defaultLaneWidth,
61 SVCPermissions permissions,
double width,
bool oneWayIsDefault,
double sidewalkWidth,
double bikeLaneWidth) {
63 TypeDefinition newType(numLanes, maxSpeed, prio, width, permissions, oneWayIsDefault, sidewalkWidth, bikeLaneWidth);
64 TypesCont::iterator old =
myTypes.find(
id);
66 newType.
restrictions.insert(old->second.restrictions.begin(), old->second.restrictions.end());
67 newType.
attrs.insert(old->second.attrs.begin(), old->second.attrs.end());
81 TypesCont::iterator i =
myTypes.find(
id);
85 (*i).second.discard =
true;
92 TypesCont::iterator i =
myTypes.find(
id);
96 (*i).second.attrs.insert(attr);
103 TypesCont::iterator i =
myTypes.find(
id);
107 (*i).second.restrictions[svc] = speed;
114 TypesCont::iterator from =
myTypes.find(fromId);
115 TypesCont::iterator to =
myTypes.find(toId);
119 to->second.restrictions.insert(from->second.restrictions.begin(), from->second.restrictions.end());
120 to->second.attrs.insert(from->second.attrs.begin(), from->second.attrs.end());
127 for (TypesCont::const_iterator i =
myTypes.begin(); i !=
myTypes.end(); ++i) {
158 for (std::map<SUMOVehicleClass, double>::const_iterator j = type.
restrictions.begin(); j != type.
restrictions.end(); ++j) {
235 TypesCont::const_iterator i =
myTypes.find(name);
std::string getVehicleClassNames(SVCPermissions permissions, bool expand)
Returns the ids of the given classes, divided using a ' '.
void insert(const std::string &id, int numLanes, double maxSpeed, int prio, SVCPermissions permissions, double width, bool oneWayIsDefault, double sidewalkWidth, double bikeLaneWidth)
Adds a type into the list.
void writePermissions(OutputDevice &into, SVCPermissions permissions)
writes allowed disallowed attributes if needed;
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
std::set< SumoXMLAttr > attrs
The attributes which have been set.
int numLanes
The number of lanes of an edge.
bool wasSet(const std::string &type, const SumoXMLAttr attr) const
Returns whether an attribute of a type was set.
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
const TypeDefinition & getType(const std::string &name) const
Retrieve the name or the default type.
double getWidth(const std::string &type) const
Returns the lane width for the given type [m].
int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
bool getIsOneWay(const std::string &type) const
Returns whether edges are one-way per default for the given type.
bool markAsSet(const std::string &id, const SumoXMLAttr attr)
Marks an attribute of a type as set.
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
begin/end of the description of an edge restriction
bool oneWay
Whether one-way traffic is mostly common for this type (mostly unused)
bool addRestriction(const std::string &id, const SUMOVehicleClass svc, const double speed)
Adds a restriction to a type.
void setDefaults(int defaultNumLanes, double defaultLaneWidth, double defaultSpeed, int defaultPriority, SVCPermissions defaultPermissions)
Sets the default values.
int getNumLanes(const std::string &type) const
Returns the number of lanes for the given type.
int getPriority(const std::string &type) const
Returns the priority for the given type.
double width
The width of lanes of edges of this type [m].
bool knows(const std::string &type) const
Returns whether the named type is in the container.
void writeTypes(OutputDevice &into) const
writes all types a s XML
bool markAsToDiscard(const std::string &id)
Marks a type as to be discarded.
double getSidewalkWidth(const std::string &type) const
Returns the lane width for a sidewalk to be added [m].
TypeDefinition myDefaultType
The default type.
double speed
The maximal velocity on an edge in m/s.
bool getShallBeDiscarded(const std::string &type) const
Returns the information whether edges of this type shall be discarded.
bool copyRestrictionsAndAttrs(const std::string &fromId, const std::string &toId)
Copy restrictions to a type.
std::map< SUMOVehicleClass, double > restrictions
The vehicle class specific speed restrictions.
Static storage of an output device and its base (abstract) implementation.
double getSpeed(const std::string &type) const
Returns the maximal velocity for the given type [m/s].
bool closeTag()
Closes the most recently opened tag.
SVCPermissions getPermissions(const std::string &type) const
Returns allowed vehicle classes for the given type.
int priority
The priority of an edge.
SVCPermissions permissions
List of vehicle types that are allowed on this edge.
TypesCont myTypes
The container of types.
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
void lf()
writes a line feed if applicable
bool discard
Whether edges of this type shall be discarded.
double getBikeLaneWidth(const std::string &type) const
Returns the lane width for a bike lane to be added [m].