![]() |
Eclipse SUMO - Simulation of Urban MObility
|
#include <config.h>
#include <string>
#include <map>
#include "SUMOVehicleClass.h"
#include <utils/common/StringUtils.h>
#include <utils/common/ToString.h>
#include <utils/common/MsgHandler.h>
#include <utils/common/StringTokenizer.h>
#include <utils/iodevices/OutputDevice.h>
#include <utils/xml/SUMOSAXAttributes.h>
Go to the source code of this file.
Functions | |
bool | canParseVehicleClasses (const std::string &classes) |
Checks whether the given string contains only known vehicle classes. More... | |
bool | canParseVehicleShape (const std::string &shape) |
Checks whether the given string contains only known vehicle shape. More... | |
const std::string | DEFAULT_BIKETYPE_ID ("DEFAULT_BIKETYPE") |
const double | DEFAULT_CONTAINER_TRANSHIP_SPEED (5./3.6) |
const double | DEFAULT_PEDESTRIAN_SPEED (5./3.6) |
const std::string | DEFAULT_PEDTYPE_ID ("DEFAULT_PEDTYPE") |
const double | DEFAULT_VEH_PROB (1.) |
const std::string | DEFAULT_VTYPE_ID ("DEFAULT_VEHTYPE") |
int | getVehicleClassCompoundID (const std::string &name) |
Returns the OR'ed id of the compound class given by its name. More... | |
SUMOVehicleClass | getVehicleClassID (const std::string &name) |
Returns the class id of the abstract class given by its name. More... | |
const std::string & | getVehicleClassNames (SVCPermissions permissions, bool expand) |
Returns the ids of the given classes, divided using a ' '. More... | |
const std::vector< std::string > & | getVehicleClassNamesList (SVCPermissions permissions) |
Returns the ids of the given classes, divided using a ' '. More... | |
SUMOVehicleShape | getVehicleShapeID (const std::string &name) |
Returns the class id of the shape class given by its name. More... | |
std::string | getVehicleShapeName (SUMOVehicleShape id) |
Returns the class name of the shape class given by its id. More... | |
SVCPermissions | invertPermissions (SVCPermissions permissions) |
negate the given permissions and ensure that only relevant bits are set More... | |
bool | isForbidden (SVCPermissions permissions) |
Returns whether an edge with the given permission is a forbidden edge. More... | |
bool | isRailway (SVCPermissions permissions) |
Returns whether an edge with the given permission is a railway edge. More... | |
bool | isSidewalk (SVCPermissions permissions) |
Returns whether an edge with the given permission is a sidewalk. More... | |
bool | isWaterway (SVCPermissions permissions) |
Returns whether an edge with the given permission is a waterway edge. More... | |
bool | noVehicles (SVCPermissions permissions) |
Returns whether an edge with the given permission forbids vehicles. More... | |
std::map< SVCPermissions, double > | parseStopOffsets (const SUMOSAXAttributes &attrs, bool &ok) |
Extract stopOffsets from attributes of stopOffset element. More... | |
SVCPermissions | parseVehicleClasses (const std::string &allowedS) |
Parses the given definition of allowed vehicle classes into the given containers Deprecated classes go into a separate container. More... | |
SVCPermissions | parseVehicleClasses (const std::string &allowedS, const std::string &disallowedS, double networkVersion) |
Encodes the given vector of allowed and disallowed classes into a bitset. More... | |
SVCPermissions | parseVehicleClasses (const std::vector< std::string > &allowedS) |
Encodes the given vector of allowed classs into a bitset Unlike the methods which parse a string it gives immediately a warning output on deprecated vehicle classes. More... | |
void | writePermissions (OutputDevice &into, SVCPermissions permissions) |
writes allowed disallowed attributes if needed; More... | |
void | writePreferences (OutputDevice &into, SVCPermissions preferred) |
writes allowed disallowed attributes if needed; More... | |
Variables | |
std::set< std::string > | deprecatedVehicleClassesSeen |
static std::map< SVCPermissions, std::string > | getVehicleClassNamesCached |
static std::map< std::string, SVCPermissions > | parseVehicleClassesCached |
const SUMOVehicleClass | SUMOVehicleClass_MAX = SVC_CUSTOM2 |
StringBijection< SUMOVehicleClass >::Entry | sumoVehicleClassStringInitializer [] |
StringBijection< SUMOVehicleClass > | SumoVehicleClassStrings (sumoVehicleClassStringInitializer, SVC_CUSTOM2, false) |
StringBijection< SUMOVehicleShape >::Entry | sumoVehicleShapeStringInitializer [] |
StringBijection< SUMOVehicleShape > | SumoVehicleShapeStrings (sumoVehicleShapeStringInitializer, SVS_UNKNOWN, false) |
const SVCPermissions | SVC_UNSPECIFIED = -1 |
permissions not specified More... | |
const SVCPermissions | SVCAll = 2 * (int)SUMOVehicleClass_MAX - 1 |
all VClasses are allowed More... | |
static std::string | vehicleClassNameAll = "all" |
static std::map< int, std::vector< std::string > > | vehicleClassNamesListCached |
Definition in file SUMOVehicleClass.cpp.
bool canParseVehicleClasses | ( | const std::string & | classes | ) |
Checks whether the given string contains only known vehicle classes.
Definition at line 251 of file SUMOVehicleClass.cpp.
References StringTokenizer::hasNext(), StringTokenizer::next(), parseVehicleClassesCached, and SumoVehicleClassStrings.
Referenced by GNEAttributeCarrier::checkParsedAttribute(), GNEClosingReroute::isValid(), GNEClosingLaneReroute::isValid(), GNEConnection::isValid(), GNEVehicleType::isValid(), GNELane::isValid(), and GNEEdge::isValid().
bool canParseVehicleShape | ( | const std::string & | shape | ) |
Checks whether the given string contains only known vehicle shape.
Definition at line 352 of file SUMOVehicleClass.cpp.
References SumoVehicleShapeStrings.
Referenced by GNEVehicleType::isValid().
const std::string DEFAULT_BIKETYPE_ID | ( | "DEFAULT_BIKETYPE" | ) |
const double DEFAULT_CONTAINER_TRANSHIP_SPEED | ( | 5./3. | 6 | ) |
const double DEFAULT_PEDESTRIAN_SPEED | ( | 5./3. | 6 | ) |
const std::string DEFAULT_PEDTYPE_ID | ( | "DEFAULT_PEDTYPE" | ) |
const double DEFAULT_VEH_PROB | ( | 1. | ) |
const std::string DEFAULT_VTYPE_ID | ( | "DEFAULT_VEHTYPE" | ) |
int getVehicleClassCompoundID | ( | const std::string & | name | ) |
Returns the OR'ed id of the compound class given by its name.
[in] | name | The name of the abstract vehicle class |
Definition at line 209 of file SUMOVehicleClass.cpp.
References SumoVehicleClassStrings, and SVC_IGNORING.
SUMOVehicleClass getVehicleClassID | ( | const std::string & | name | ) |
Returns the class id of the abstract class given by its name.
[in] | name | The name of the abstract vehicle class |
Definition at line 200 of file SUMOVehicleClass.cpp.
References SumoVehicleClassStrings.
Referenced by NIXMLPTHandler::addPTLine(), NIXMLTypesHandler::myStartElement(), RONetHandler::myStartElement(), NLHandler::myStartElement(), SUMOVehicleParserHelper::parseVehicleClass(), parseVehicleClasses(), and GNEVehicleType::setAttribute().
const std::string& getVehicleClassNames | ( | SVCPermissions | permissions, |
bool | expand = false |
||
) |
Returns the ids of the given classes, divided using a ' '.
[in] | the | permissions to encode |
[in] | expand | whether 'all' should be used |
Definition at line 168 of file SUMOVehicleClass.cpp.
References getVehicleClassNamesCached, getVehicleClassNamesList(), joinToString(), SVCAll, and vehicleClassNameAll.
Referenced by IntermodalRouter< E, L, N, V >::compute(), NBNode::computeLanes2Lanes(), GNEClosingReroute::getAttribute(), GNEClosingLaneReroute::getAttribute(), GNEConnection::getAttribute(), GNELane::getAttribute(), GNEEdge::getAttribute(), GNELane::getAttributeForSelection(), GNEEdge::getAttributeForSelection(), GUILane::getParameterWindow(), GNEAllowDisallow::onCmdAccept(), GNEAllowDisallow::onCmdReset(), GNENet::restrictLane(), writePermissions(), writePreferences(), NWWriter_SUMO::writeStopOffsets(), and NBTypeCont::writeTypes().
const std::vector<std::string>& getVehicleClassNamesList | ( | SVCPermissions | permissions | ) |
Returns the ids of the given classes, divided using a ' '.
[in] | the | permissions to encode |
Definition at line 181 of file SUMOVehicleClass.cpp.
References SumoVehicleClassStrings, SVC_IGNORING, and vehicleClassNamesListCached.
Referenced by libsumo::Lane::getAllowed(), libsumo::Lane::getDisallowed(), and getVehicleClassNames().
SUMOVehicleShape getVehicleShapeID | ( | const std::string & | name | ) |
Returns the class id of the shape class given by its name.
[in] | name | The name of the shape class |
Definition at line 342 of file SUMOVehicleClass.cpp.
References SumoVehicleShapeStrings.
Referenced by GNEVehicle::drawGL(), GNEVehicleType::setAttribute(), and GNEVehicleTypeDialog::VTypeAtributes::VShapeRow::setVShapeLabelImage().
std::string getVehicleShapeName | ( | SUMOVehicleShape | id | ) |
Returns the class name of the shape class given by its id.
[in] | id | The id of the shape class |
Definition at line 358 of file SUMOVehicleClass.cpp.
References SumoVehicleShapeStrings.
Referenced by GNEVehicleType::getAttribute(), GUIVehicle::getTypeParameterWindow(), GNEVehicleType::overwriteVType(), and SUMOVTypeParameter::write().
SVCPermissions invertPermissions | ( | SVCPermissions | permissions | ) |
negate the given permissions and ensure that only relevant bits are set
Definition at line 285 of file SUMOVehicleClass.cpp.
References SVCAll.
Referenced by GNEClosingReroute::getAttribute(), GNEClosingLaneReroute::getAttribute(), GNEConnection::getAttribute(), GNELane::getAttribute(), GNEEdge::getAttribute(), libsumo::Lane::getDisallowed(), parseVehicleClasses(), GNEClosingReroute::setAttribute(), GNEClosingLaneReroute::setAttribute(), GNEConnection::setAttribute(), GNELane::setAttribute(), libsumo::Lane::setDisallowed(), and libsumo::Edge::setDisallowedVehicleClasses().
bool isForbidden | ( | SVCPermissions | permissions | ) |
Returns whether an edge with the given permission is a forbidden edge.
[in] | permissions | The permissions of the edge |
Definition at line 375 of file SUMOVehicleClass.cpp.
References SVCAll.
Referenced by NBOwnTLDef::allowUnrelated(), NBNode::ApproachingDivider::ApproachingDivider(), NBEdgeCont::checkGeometries(), NBEdge::divideOnEdges(), noVehicles(), NBOwnTLDef::patchStateForCrossings(), and NBEdge::recheckLanes().
bool isRailway | ( | SVCPermissions | permissions | ) |
Returns whether an edge with the given permission is a railway edge.
[in] | permissions | The permissions of the edge |
Definition at line 363 of file SUMOVehicleClass.cpp.
References SVC_PASSENGER, and SVC_RAIL_CLASSES.
Referenced by NBRailwayTopologyAnalyzer::addBidiEdgesForStraightConnectivity(), GNENet::addReversedEdge(), MSDevice_Tripinfo::addRideData(), NBEdge::appendTurnaround(), NBEdge::buildInnerEdges(), NGEdge::buildNBEdge(), MSRailSignal::DriveWay::buildRoute(), MSRailSignal::DriveWay::checkCrossingFlanks(), NBEdgeCont::checkGeometries(), NBTrafficLightDefinition::collectAllLinks(), NBEdge::computeEdge2Edges(), GNELane::drawAsRailway(), GUILane::drawAsRailway(), NIImporter_OpenStreetMap::extendRailwayDistances(), GNELane::getColorValue(), GUILane::getColorValue(), IntermodalNetwork< E, L, N, V >::getDepartEdge(), NWWriter_OpenDrive::getLaneType(), NBNode::getLinkState(), NBRailwayTopologyAnalyzer::getRailNodes(), GUIJunctionWrapper::GUIJunctionWrapper(), NIImporter_OpenStreetMap::insertEdge(), NBEdge::isBidiRail(), NBEdge::isRailDeadEnd(), MSVehicle::planMoveInternal(), NBNodeCont::pruneClusterFringe(), NBEdge::recheckLanes(), and NBEdge::shiftPositionAtNode().
bool isSidewalk | ( | SVCPermissions | permissions | ) |
Returns whether an edge with the given permission is a sidewalk.
[in] | permissions | The permissions of the edge |
Definition at line 381 of file SUMOVehicleClass.cpp.
References SVC_PEDESTRIAN, and SVCAll.
Referenced by NBEdgeCont::checkGeometries(), and noVehicles().
bool isWaterway | ( | SVCPermissions | permissions | ) |
Returns whether an edge with the given permission is a waterway edge.
[in] | permissions | The permissions of the edge |
Definition at line 369 of file SUMOVehicleClass.cpp.
References SVC_SHIP.
Referenced by NBNodeTypeComputer::computeNodeTypes(), GNELane::drawAsWaterway(), GUILane::drawAsWaterway(), GUILane::drawGL(), and GUIJunctionWrapper::GUIJunctionWrapper().
bool noVehicles | ( | SVCPermissions | permissions | ) |
Returns whether an edge with the given permission forbids vehicles.
[in] | permissions | The permissions of the edge |
Definition at line 387 of file SUMOVehicleClass.cpp.
References isForbidden(), and isSidewalk().
Referenced by libsumo::Edge::getLastStepLength(), MSActuatedTrafficLightLogic::init(), and MSDelayBasedTrafficLightLogic::init().
std::map<SVCPermissions, double> parseStopOffsets | ( | const SUMOSAXAttributes & | attrs, |
bool & | ok | ||
) |
Extract stopOffsets from attributes of stopOffset element.
Definition at line 392 of file SUMOVehicleClass.cpp.
References SUMOSAXAttributes::get(), SUMOSAXAttributes::getOpt(), SUMOSAXAttributes::hasAttribute(), parseVehicleClasses(), SUMO_ATTR_EXCEPTIONS, SUMO_ATTR_VALUE, SUMO_ATTR_VCLASSES, and WRITE_ERROR.
Referenced by NIImporter_SUMO::addStopOffsets(), NIXMLEdgesHandler::myStartElement(), and NLHandler::myStartElement().
SVCPermissions parseVehicleClasses | ( | const std::string & | allowedS | ) |
Parses the given definition of allowed vehicle classes into the given containers Deprecated classes go into a separate container.
[in] | classNames | Space separated class names |
[out] | container | The set of vehicle classes to fill throws ProcessError if parsing fails |
Definition at line 222 of file SUMOVehicleClass.cpp.
References deprecatedVehicleClassesSeen, getVehicleClassID(), StringTokenizer::hasNext(), StringTokenizer::next(), parseVehicleClassesCached, SumoVehicleClassStrings, SVCAll, and WRITE_ERROR.
Referenced by NIImporter_SUMO::_loadNetwork(), NIImporter_SUMO::addConnection(), NIXMLEdgesHandler::addEdge(), NLHandler::addLane(), NIXMLEdgesHandler::addLane(), TraCIServer::addSubscriptionFilter(), NBEdgeCont::applyOptions(), NBNetBuilder::applyOptions(), NIXMLTypesHandler::myStartElement(), MSTriggeredRerouter::myStartElement(), GNEAdditionalHandler::parseAndBuildRerouterClosingLaneReroute(), GNEAdditionalHandler::parseAndBuildRerouterClosingReroute(), RONetHandler::parseLane(), NIXMLConnectionsHandler::parseLaneBound(), parseStopOffsets(), parseVehicleClasses(), libsumo::Lane::setAllowed(), libsumo::Edge::setAllowedVehicleClasses(), GNEClosingReroute::setAttribute(), GNEClosingLaneReroute::setAttribute(), GNEConnection::setAttribute(), GNELane::setAttribute(), libsumo::Lane::setDisallowed(), libsumo::Edge::setDisallowedVehicleClasses(), and GNEAdditional::writeAdditional().
SVCPermissions parseVehicleClasses | ( | const std::string & | allowedS, |
const std::string & | disallowedS, | ||
double | networkVersion = NETWORK_VERSION |
||
) |
Encodes the given vector of allowed and disallowed classes into a bitset.
[in] | allowedS | Definition which classes are allowed |
[in] | disallowedS | Definition which classes are not allowed |
Definition at line 270 of file SUMOVehicleClass.cpp.
References invertPermissions(), parseVehicleClasses(), SVC_RAIL_FAST, SVCAll, and WRITE_WARNING.
SVCPermissions parseVehicleClasses | ( | const std::vector< std::string > & | allowedS | ) |
Encodes the given vector of allowed classs into a bitset Unlike the methods which parse a string it gives immediately a warning output on deprecated vehicle classes.
[in] | classesS | The names vector to parse |
Definition at line 291 of file SUMOVehicleClass.cpp.
References getVehicleClassID(), SumoVehicleClassStrings, SVCAll, and WRITE_WARNING.
void writePermissions | ( | OutputDevice & | into, |
SVCPermissions | permissions | ||
) |
writes allowed disallowed attributes if needed;
Definition at line 309 of file SUMOVehicleClass.cpp.
References getVehicleClassNames(), SUMO_ATTR_ALLOW, SUMO_ATTR_DISALLOW, SUMOVehicleClass_MAX, SumoVehicleClassStrings, SVCAll, and OutputDevice::writeAttr().
Referenced by GNEAdditional::writeAdditional(), NWWriter_SUMO::writeConnection(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeLane(), and NBTypeCont::writeTypes().
void writePreferences | ( | OutputDevice & | into, |
SVCPermissions | preferred | ||
) |
writes allowed disallowed attributes if needed;
Definition at line 332 of file SUMOVehicleClass.cpp.
References getVehicleClassNames(), SUMO_ATTR_PREFER, SVCAll, and OutputDevice::writeAttr().
Referenced by NWWriter_XML::writeEdgesAndConnections(), and NWWriter_SUMO::writeLane().
std::set<std::string> deprecatedVehicleClassesSeen |
Definition at line 84 of file SUMOVehicleClass.cpp.
Referenced by NIImporter_SUMO::_loadNetwork(), NLEdgeControlBuilder::build(), loadNet(), ROLoader::loadNet(), NILoader::loadXML(), and parseVehicleClasses().
|
static |
Definition at line 137 of file SUMOVehicleClass.cpp.
Referenced by getVehicleClassNames().
|
static |
Definition at line 136 of file SUMOVehicleClass.cpp.
Referenced by canParseVehicleClasses(), and parseVehicleClasses().
const SUMOVehicleClass SUMOVehicleClass_MAX = SVC_CUSTOM2 |
Definition at line 144 of file SUMOVehicleClass.cpp.
Referenced by MSEdge::rebuildAllowedLanes(), MSEdge::rebuildAllowedTargets(), and writePermissions().
StringBijection<SUMOVehicleClass>::Entry sumoVehicleClassStringInitializer[] |
Definition at line 42 of file SUMOVehicleClass.cpp.
StringBijection<SUMOVehicleClass> SumoVehicleClassStrings(sumoVehicleClassStringInitializer, SVC_CUSTOM2, false) |
Referenced by libsumo::Vehicle::add(), CHBuilder< E, V >::buildContractionHierarchy(), canParseVehicleClasses(), TraCIServerAPI_Simulation::commandPositionConversion(), libsumo::Simulation::convertRoad(), GNEAttributeCarrier::fillDemandElements(), GUIApplicationWindow::fillMenuBar(), GNEAttributeCarrier::fillNetElements(), GUILane::getPopUpMenu(), GUIVehicle::getTypeParameterWindow(), GUIMEVehicle::getTypeParameterWindow(), getVehicleClassCompoundID(), getVehicleClassID(), getVehicleClassNamesList(), GUIApplicationWindow::onCmdEditChosen(), GNERouteFrame::RouteModeSelector::onCmdSelectVClass(), GUIViewTraffic::onCmdShowReachability(), GNEAttributeCarrier::parse(), SUMOVehicleParserHelper::parseVehicleClass(), parseVehicleClasses(), GNERouteFrame::RouteModeSelector::RouteModeSelector(), toString< SUMOVehicleClass >(), GNEVehicleTypeDialog::VTypeAtributes::VClassRow::VClassRow(), and writePermissions().
StringBijection<SUMOVehicleShape>::Entry sumoVehicleShapeStringInitializer[] |
Definition at line 87 of file SUMOVehicleClass.cpp.
StringBijection<SUMOVehicleShape> SumoVehicleShapeStrings(sumoVehicleShapeStringInitializer, SVS_UNKNOWN, false) |
const SVCPermissions SVC_UNSPECIFIED = -1 |
permissions not specified
Definition at line 148 of file SUMOVehicleClass.cpp.
Referenced by NIImporter_SUMO::addConnection(), NIXMLEdgesHandler::addEdge(), GNEConnection::getAttribute(), NIXMLConnectionsHandler::parseLaneBound(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeInternalEdges(), and NWWriter_SUMO::writeLane().
const SVCPermissions SVCAll = 2 * (int)SUMOVehicleClass_MAX - 1 |
all VClasses are allowed
Definition at line 146 of file SUMOVehicleClass.cpp.
Referenced by NLHandler::addLane(), NINavTeqHelper::addVehicleClasses(), NINavTeqHelper::addVehicleClassesV6(), NBEdge::buildInnerEdges(), NBEdge::dismissVehicleClassInformation(), libsumo::Lane::getAllowed(), NWWriter_DlrNavteq::getAllowedTypes(), GNELane::getAttributeForSelection(), GNEEdge::getAttributeForSelection(), NBNodeShapeComputer::getDefaultRadius(), NBEdge::getFirstNonPedestrianLaneIndex(), NWWriter_OpenDrive::getLaneType(), getVehicleClassNames(), NBEdgeCont::guessRoundabouts(), NBEdge::hasPermissions(), MSEdge::initialize(), GUIVisualizationSettings::initNeteditDefaults(), GUIVisualizationSettings::initSumoGuiDefaults(), invertPermissions(), isForbidden(), isSidewalk(), MSTriggeredRerouter::myEndElement(), MSTriggeredRerouter::notifyEnter(), RONetHandler::parseLane(), parseVehicleClasses(), MSEdge::rebuildAllowedLanes(), NIImporter_DlrNavteq::EdgesHandler::report(), MSLane::resetPermissions(), ROEdge::ROEdge(), MSTriggeredRerouter::setPermissions(), writePermissions(), writePreferences(), and NWWriter_DlrNavteq::writeProhibitedManoeuvres().
|
static |
Definition at line 138 of file SUMOVehicleClass.cpp.
Referenced by getVehicleClassNames().
|
static |
Definition at line 135 of file SUMOVehicleClass.cpp.
Referenced by getVehicleClassNamesList().