41 return (
double) 1.0 / (double) 3.6;
43 return (
double) 200 / (double) 3.6;
45 return (
double) 120 / (double) 3.6;
47 return (
double) 100 / (double) 3.6;
49 return (
double) 80 / (double) 3.6;
51 return (
double) 70 / (double) 3.6;
53 return (
double) 50 / (double) 3.6;
55 return (
double) 30 / (double) 3.6;
57 return (
double) 5 / (double) 3.6;
59 throw ProcessError(
"Invalid speed code (edge '" +
id +
"').");
62 throw ProcessError(
"Non-numerical value for an edge's speed type occurred (edge '" +
id +
"').");
73 }
else if (nolanes / 10 > 0) {
76 switch (nolanes % 10) {
81 if (speed > 78.0 / 3.6) {
88 throw ProcessError(
"Invalid lane number (edge '" +
id +
"').");
92 throw ProcessError(
"Non-numerical value for an edge's lane number occurred (edge '" +
id +
"'.");
101 if (classS[offset] ==
'1') {
109 if (classS[offset + 1] ==
'1') {
115 if (classS[offset + 2] ==
'1') {
122 if (classS[offset + 3] ==
'1') {
131 if (classS[offset + 4] ==
'1') {
138 if (classS[offset + 5] ==
'1') {
152 std::string classS =
"0000000000" + oclassS;
153 classS = classS.substr(classS.length() - 10);
155 if (classS[0] ==
'1') {
159 bool haveCar =
false;
162 if (classS[1] ==
'1') {
173 if (classS[8] ==
'1') {
179 if (classS[9] ==
'1') {
189 std::string classS =
"0000000000" + oclassS;
190 classS = classS.substr(classS.length() - 12);
192 if (classS[0] ==
'1') {
196 bool haveCar =
false;
199 if (classS[1] ==
'1') {
206 if (classS[2] ==
'1') {
215 if (classS[9] ==
'1') {
221 if (classS[10] ==
'1') {
227 if (classS[11] ==
'1') {
@ SVC_HOV
vehicle is a HOV
@ SVC_TRUCK
vehicle is a large transport vehicle
@ SVC_COACH
vehicle is a coach
@ SVC_PASSENGER
vehicle is a passenger car (a "normal" car)
@ SVC_BICYCLE
vehicle is a bicycle
@ SVC_TRAILER
vehicle is a large transport vehicle
@ SVC_DELIVERY
vehicle is a small delivery vehicle
@ SVC_MOTORCYCLE
vehicle is a motorcycle
@ SVC_EMERGENCY
public emergency vehicles
@ SVC_TAXI
vehicle is a taxi
@ SVC_BUS
vehicle is a bus
@ SVC_PEDESTRIAN
pedestrian
int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
The representation of a single edge during network building.
void setPermissions(SVCPermissions permissions, int lane=-1)
set allowed/disallowed classes for the given lane or for all lanes if -1 is given
void disallowVehicleClass(int lane, SUMOVehicleClass vclass)
set disallowed class for the given lane or for all lanes if -1 is given
void allowVehicleClass(int lane, SUMOVehicleClass vclass)
set allowed class for the given lane or for all lanes if -1 is given
static void addVehicleClasses(NBEdge &e, const std::string &classS, const SVCPermissions allPermissions, const SVCPermissions defaultPermissions)
Adds vehicle classes parsing the given list of allowed vehicles.
static void addVehicleClassesV6(NBEdge &e, const std::string &classS, const SVCPermissions allPermissions, const SVCPermissions defaultPermissions)
same as addVehicleClasses but for version 6+
static int getLaneNumber(const std::string &id, const std::string &laneNoS, double speed)
Returns the lane number evaluating the given Navteq-description.
static double getSpeed(const std::string &id, const std::string &speedClassS)
Returns the speed evaluating the given Navteq-description.
static bool addCommonVehicleClasses(NBEdge &e, const std::string &classS, const int offset)
static int toInt(const std::string &sData)
converts a string into the integer value described by it by calling the char-type converter,...