62 myTagProperty(TAGPROPERTY_NETELEMENT),
125 if (i.first == attr) {
126 throw ProcessError(
"Attribute '" +
toString(attr) +
"' is deprecated but was inserted in list of attributes");
141 if (i.second.hasAttrSynonym() && i.second.getAttrSynonym() == attr) {
142 return myAttributeValues.at(i.first);
151 std::map<SumoXMLAttr, GNEAttributeCarrier::AttributeValues>::const_iterator
157 std::map<SumoXMLAttr, GNEAttributeCarrier::AttributeValues>::const_iterator
341 throw FormatException(
"Color attributes must own always a default color");
383 pre +=
"non editable ";
395 pre +=
"combinable ";
423 type =
"probability";
433 return pre + type + plural + last;
437 const std::vector<std::string>&
606 template<> std::string
614 if (
string.size() == 0) {
632 if (
string.size() == 0) {
637 if (!ok || pos.size() != 1) {
656 template<> std::vector<std::string>
662 template<> std::vector<int>
664 std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
665 std::vector<int> parsedIntValues;
666 for (
auto i : parsedValues) {
667 parsedIntValues.push_back(parse<int>(i));
669 return parsedIntValues;
673 template<> std::vector<double>
675 std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
676 std::vector<double> parsedDoubleValues;
677 for (
auto i : parsedValues) {
678 parsedDoubleValues.push_back(parse<double>(i));
680 return parsedDoubleValues;
684 template<> std::vector<bool>
686 std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
687 std::vector<bool> parsedBoolValues;
688 for (
auto i : parsedValues) {
689 parsedBoolValues.push_back(parse<bool>(i));
691 return parsedBoolValues;
695 template<> std::vector<GNEEdge*>
698 std::vector<std::string> edgeIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
699 std::vector<GNEEdge*> parsedEdges;
701 for (
auto i : edgeIds) {
713 template<> std::vector<GNELane*>
716 std::vector<std::string> laneIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
717 std::vector<GNELane*> parsedLanes;
719 for (
auto i : laneIds) {
731 template<> std::string
734 std::vector<std::string> edgeIDs;
736 edgeIDs.push_back(i->getID());
742 template<> std::string
745 std::vector<std::string> laneIDs;
747 laneIDs.push_back(i->getID());
756 std::vector<bool> boolValues = GNEAttributeCarrier::parse<std::vector<bool> >(string);
758 if (boolValues.size() == 1) {
759 return boolValues.front();
762 for (
auto i : boolValues) {
766 if ((sum == 0) || (sum != (int)boolValues.size())) {
821 std::vector<SumoXMLTag>
823 std::vector<SumoXMLTag> allTags;
830 if (!onlyDrawables || i.second.isDrawable()) {
831 allTags.push_back(i.first);
838 std::vector<SumoXMLTag>
840 std::vector<SumoXMLTag> netElementTags;
847 if (i.second.isNetElement() && (!onlyDrawables || i.second.isDrawable())) {
848 netElementTags.push_back(i.first);
851 return netElementTags;
855 std::vector<SumoXMLTag>
857 std::vector<SumoXMLTag> additionalTags;
864 if (i.second.isAdditional() && (!onlyDrawables || i.second.isDrawable())) {
865 additionalTags.push_back(i.first);
868 return additionalTags;
872 std::vector<SumoXMLTag>
874 std::vector<SumoXMLTag> shapeTags;
881 if (i.second.isShape() && (onlyDrawables || i.second.isDrawable())) {
882 shapeTags.push_back(i.first);
891 int maxNumAttribute = 0;
898 maxNumAttribute =
MAX2(maxNumAttribute, i.second.getNumberOfAttributes());
900 return maxNumAttribute;
907 std::vector<std::string> parsedValues;
910 parsedValues.push_back(stValues.
next());
913 for (
auto i : parsedValues) {
914 std::vector<std::string> parsedParameters;
917 parsedParameters.push_back(stParam.
next());
920 if (parsedParameters.size() == 2) {
938 }
else if (settings.
scale >= 10) {
940 }
else if (settings.
scale >= 2) {
962 "The id of the edge",
966 "The name of a node within the nodes-file the edge shall start at",
970 "The name of a node within the nodes-file the edge shall end at",
974 "The maximum speed allowed on the edge in m/s",
978 "The priority of the edge",
982 "The number of lanes of the edge",
986 "The name of a type within the SUMO edge type file",
990 "Explicitly allows the given vehicle classes (not given will be not allowed)",
995 "Explicitly disallows the given vehicle classes (not given will be allowed)",
1001 "If the shape is given it should start and end with the positions of the from-node and to-node",
1005 "The length of the edge in meter",
1009 "Lane width for all lanes of this edge in meters (used for visualization)",
1014 "street name (need not be unique, used for visualization)",
1018 "Lane width for all lanes of this edge in meters (used for visualization)",
1022 "Move the stop line back from the intersection by the given amount",
1026 "Custom position in which shape start (by default position of junction from)",
1030 "Custom position in which shape end (by default position of junction from)",
1034 "Show if edge is bidireccional",
1044 "The id of the node",
1048 "The x-y-z position of the node on the plane in meters",
1052 "An optional type for the node",
1057 "A custom shape for that node",
1061 "Optional turning radius (for all corners) for that node in meters",
1065 "Whether the junction-blocking-heuristic should be activated at this node",
1069 "An optional type for the traffic light algorithm",
1074 "An optional id for the traffic light program",
1084 "ID of lane (Automatic, non editable)",
1088 "The enumeration index of the lane (0 is the rightmost lane, <NUMBER_LANES>-1 is the leftmost one)",
1092 "Speed in meters per second",
1096 "Explicitly allows the given vehicle classes (not given will be not allowed)",
1101 "Explicitly disallows the given vehicle classes (not given will be allowed)",
1107 "Width in meters (used for visualization)",
1111 "Move the stop line back from the intersection by the given amount",
1115 "Enable or disable lane as acceleration lane",
1119 "If the shape is given it overrides the computation based on edge shape",
1129 "The ID of Crossing",
1133 "The (road) edges which are crossed",
1137 "Whether the pedestrians have priority over the vehicles (automatically set to true at tls-controlled intersections)",
1141 "The width of the crossings",
1145 "sets the tls-index for this crossing",
1149 "sets the opposite-direction tls-index for this crossing",
1153 "Overrids default shape of pedestrian crossing",
1163 "The name of the edge the vehicles leave",
1167 "The name of the edge the vehicles may reach when leaving 'from'",
1171 "the lane index of the incoming lane (numbers starting with 0)",
1175 "the lane index of the outgoing lane (numbers starting with 0)",
1179 "if set, vehicles which pass this (lane-2-lane) connection) will not wait",
1183 "if set to false, vehicles which pass this (lane-2-lane) connection) will not worry about blocking the intersection",
1187 "If set to a more than 0 value, an internal junction will be built at this position (in m) from the start of the internal lane for this connection",
1191 "If set to true, This connection will not be TLS-controlled despite its node being controlled",
1199 "sets the distance to the connection at which all relevant foes are visible",
1203 "sets custom speed limit for the connection",
1207 "sets custom shape for the connection",
1217 "The id of bus stop",
1221 "The name of the lane the bus stop shall be located at",
1225 "The begin position on the lane (the lower position on the lane) in meters",
1229 "The end position on the lane (the higher position on the lane) in meters, must be larger than startPos by more than 0.1m",
1237 "If set, no error will be reported if element is placed behind the lane. Instead,it will be placed 0.1 meters from the lanes end or at position 0.1, if the position was negative and larger than the lanes length after multiplication with - 1",
1241 "Meant to be the names of the bus lines that stop at this bus stop. This is only used for visualization purposes",
1251 "The name of the lane the stop access shall be located at",
1255 "The position on the lane (the lower position on the lane) in meters",
1259 "The walking length of the access in meters",
1263 "If set, no error will be reported if element is placed behind the lane. Instead,it will be placed 0.1 meters from the lanes end or at position 0.1, if the position was negative and larger than the lanes length after multiplication with - 1",
1273 "The id of container stop",
1277 "The name of the lane the container stop shall be located at",
1281 "The begin position on the lane (the lower position on the lane) in meters",
1285 "The end position on the lane (the higher position on the lane) in meters, must be larger than startPos by more than 0.1m",
1293 "If set, no error will be reported if element is placed behind the lane. Instead,it will be placed 0.1 meters from the lanes end or at position 0.1, if the position was negative and larger than the lanes length after multiplication with - 1",
1297 "meant to be the names of the bus lines that stop at this container stop. This is only used for visualization purposes",
1307 "The id of charging station",
1311 "Lane of the charging station location",
1315 "Begin position in the specified lane",
1319 "End position in the specified lane",
1327 "If set, no error will be reported if element is placed behind the lane. Instead,it will be placed 0.1 meters from the lanes end or at position 0.1, if the position was negative and larger than the lanes length after multiplication with - 1",
1331 "Charging power in W",
1335 "Charging efficiency [0,1]",
1339 "Enable or disable charge in transit, i.e. vehicle must or must not to stop for charging",
1343 "Time delay after the vehicles has reached / stopped on the charging station, before the energy transfer (charging) begins",
1353 "The id of ParkingArea",
1357 "The name of the lane the Parking Area shall be located at",
1361 "The begin position on the lane (the lower position on the lane) in meters",
1365 "The end position on the lane (the higher position on the lane) in meters, must be larger than startPos by more than 0.1m",
1373 " The number of parking spaces for road-side parking ",
1377 "If set, no error will be reported if element is placed behind the lane. Instead,it will be placed 0.1 meters from the lanes end or at position 0.1, if the position was negative and larger than the lanes length after multiplication with - 1",
1381 "The width of the road-side parking spaces",
1385 "The length of the road-side parking spaces. By default (endPos - startPos) / roadsideCapacity",
1389 "The angle of the road-side parking spaces relative to the lane angle, positive means clockwise",
1399 "The X position in meters of the parking vehicle",
1403 "The Y position in meters of the parking vehicle",
1407 "The Z position in meters of the parking vehicle",
1411 "The width of the road-side parking spaces",
1415 "The length of the road-side parking spaces",
1419 "The angle of the road-side parking spaces relative to the lane angle, positive means clockwise",
1433 "The id of the lane the detector shall be laid on. The lane must be a part of the network used",
1437 "The position on the lane the detector shall be laid on in meters. The position must be a value between -1*lane's length and the lane's length",
1441 "The aggregation period the values the detector collects shall be summed up",
1449 "The path to the output file",
1453 "Space separated list of vehicle type ids to consider",
1457 "If set, no error will be reported if element is placed behind the lane. Instead,it will be placed 0.1 meters from the lanes end or at position 0.1, if the position was negative and larger than the lanes length after multiplication with - 1",
1473 "The id of the lane the detector shall be laid on. The lane must be a part of the network used",
1477 "The position on the lane the detector shall be laid on in meters",
1481 "The length of the detector in meters",
1485 "The aggregation period the values the detector collects shall be summed up",
1493 "The path to the output file",
1497 "Space separated list of vehicle type ids to consider",
1501 "The time-based threshold that describes how much time has to pass until a vehicle is recognized as halting)",
1505 "The speed-based threshold that describes how slow a vehicle has to be to be recognized as halting) in m/s",
1509 "The minimum distance to the next standing vehicle in order to make this vehicle count as a participant to the jam) in m",
1513 "If set, no error will be reported if element is placed behind the lane. Instead,it will be placed 0.1 meters from the lanes end or at position 0.1, if the position was negative and larger than the lanes length after multiplication with - 1",
1527 "X-Y position of detector in editor (Only used in NETEDIT)",
1531 "The aggregation period the values the detector collects shall be summed up",
1539 "The path to the output file",
1543 "Space separated list of vehicle type ids to consider",
1547 "The time-based threshold that describes how much time has to pass until a vehicle is recognized as halting) in s",
1551 "The speed-based threshold that describes how slow a vehicle has to be to be recognized as halting) in m/s",
1561 "The id of the lane the detector shall be laid on. The lane must be a part of the network used",
1565 "The position on the lane the detector shall be laid on in meters",
1569 "If set, no error will be reported if element is placed behind the lane. Instead,it will be placed 0.1 meters from the lanes end or at position 0.1, if the position was negative and larger than the lanes length after multiplication with - 1",
1579 "The id of the lane the detector shall be laid on. The lane must be a part of the network used",
1583 "The position on the lane the detector shall be laid on in meters",
1587 "If set, no error will be reported if element is placed behind the lane. Instead,it will be placed 0.1 meters from the lanes end or at position 0.1, if the position was negative and larger than the lanes length after multiplication with - 1",
1597 "The id of Instant Induction Loop (E1Instant)",
1601 "The id of the lane the detector shall be laid on. The lane must be a part of the network used",
1605 "The position on the lane the detector shall be laid on in meters. The position must be a value between -1*lane's length and the lane's length",
1613 "The path to the output file",
1617 "Space separated list of vehicle type ids to consider",
1621 "If set, no error will be reported if element is placed behind the lane. Instead,it will be placed 0.1 meters from the lanes end or at position 0.1, if the position was negative and larger than the lanes length after multiplication with - 1",
1633 "The id of Variable Speed Signal",
1637 "X-Y position of detector in editor (Only used in NETEDIT)",
1641 "list of lanes of Variable Speed Sign",
1669 "The id of Calibrator",
1673 "The id of edge in the simulation network",
1677 "The position of the calibrator on the specified lane",
1681 "The aggregation interval in which to calibrate the flows. default is step-length",
1689 "The id of the routeProbe element from which to determine the route distribution for generated vehicles",
1693 "The output file for writing calibrator information or NULL",
1703 "The id of Calibrator",
1707 "The id of lane in the simulation network",
1711 "The position of the calibrator on the specified lane",
1715 "The aggregation interval in which to calibrate the flows. default is step-length",
1723 "The id of the routeProbe element from which to determine the route distribution for generated vehicles",
1727 "The output file for writing calibrator information or NULL",
1737 "The id of the vehicle type to use for this vehicle",
1741 "The id of the route the vehicle shall drive along",
1745 "Number of vehicles per hour, equally spaced",
1749 "Speed of vehicles",
1753 "This vehicle's color",
1757 "First vehicle departure time",
1761 "End of departure interval",
1765 "The lane on which the vehicle shall be inserted",
1769 "The position at which the vehicle shall enter the net",
1773 "The speed with which the vehicle shall enter the network",
1777 "The lane at which the vehicle shall leave the network",
1781 "The position at which the vehicle shall leave the network",
1785 "The speed with which the vehicle shall leave the network",
1789 "A string specifying the id of a public transport line which can be used when specifying person rides",
1793 "The number of occupied seats when the vehicle is inserted",
1797 "The number of occupied container places when the vehicle is inserted",
1801 "Whether the vehicle should be equipped with a rerouting device",
1805 "The lateral position on the departure lane at which the vehicle shall enter the net",
1810 "The lateral position on the arrival lane at which the vehicle shall arrive",
1825 "The edges the vehicle shall drive along, given as their ids, separated using spaces",
1829 "This route's color",
1839 "The id of Rerouter",
1843 "An edge id or a list of edge ids where vehicles shall be rerouted",
1847 "X,Y position in editor (Only used in NETEDIT)",
1855 "The path to the definition file (alternatively, the intervals may defined as children of the rerouter)",
1859 "The probability for vehicle rerouting (0-1)",
1863 "The waiting time threshold (in s) that must be reached to activate rerouting (default -1 which disables the threshold)",
1867 "The list of vehicle types that shall be affected by this rerouter (empty to affect all types)",
1871 "Whether the router should be inactive initially (and switched on in the gui)",
1904 "disallowed vehicles",
1923 "disallowed vehicles",
1957 "Enable or disable visibility for parking area reroutes",
1982 "The id of RouteProbe",
1986 "The id of an edge in the simulation network",
1990 "The frequency in which to report the distribution",
1998 "The file for generated output",
2002 "The time at which to start generating output",
2012 "Edge in which vaporizer is placed",
2030 std::vector<std::string> emissions = {
"zero",
"LDV",
"LDV_G_EU0",
"LDV_G_EU1",
"LDV_G_EU2",
"LDV_G_EU3",
"LDV_G_EU4",
"LDV_G_EU5",
2031 "LDV_G_EU6",
"LDV_G_East",
"LDV_D_EU0",
"LDV_D_EU1",
"LDV_D_EU2",
"LDV_D_EU3",
"LDV_D_EU4",
"LDV_D_EU5",
"LDV_D_EU6",
2032 "PC",
"PC_Alternative",
"PC_G_EU0",
"PC_G_EU1",
"PC_G_EU2",
"PC_G_EU3",
"PC_G_EU4",
"PC_G_EU5",
"PC_G_EU6",
"PC_G_East",
2033 "PC_D_EU0",
"PC_D_EU1",
"PC_D_EU2",
"PC_D_EU3",
"PC_D_EU4",
"PC_D_EU5",
"PC_D_EU6",
"Bus",
"Coach",
"HDV",
"HDV_G",
"HDV_D_EU0",
2034 "HDV_D_EU1",
"HDV_D_EU2",
"HDV_D_EU3",
"HDV_D_EU4",
"HDV_D_EU5",
"HDV_D_EU6",
"HDV_D_East" 2042 "The id of VehicleType",
2046 "The acceleration ability of vehicles of this type [m/s^2]",
2050 "The deceleration ability of vehicles of this type [m/s^2]",
2054 "Car-following model parameter",
2058 "Car-following model parameter",
2062 "The vehicle's netto-length (length) [m]",
2066 "Empty space after leader [m]",
2070 "The vehicle's maximum velocity [m/s]",
2074 "The vehicles expected multiplicator for lane speed limits",
2078 "The deviation of the speedFactor",
2082 "This vehicle type's color",
2086 "An abstract vehicle class",
2091 "An abstract emission class",
2096 "How this vehicle is rendered",
2101 "The vehicle's width [m] (only used for drawing)",
2105 "Image file for rendering vehicles of this type (should be grayscale to allow functional coloring)",
2109 "Willingess of drivers to impede vehicles with higher priority",
2113 "The model used for changing lanes",
2118 "The model used for car following",
2123 "The number of persons (excluding an autonomous driver) the vehicle can transport",
2127 "The number of containers the vehicle can transport",
2131 "The time required by a person to board the vehicle",
2135 "The time required to load a container onto the vehicle",
2139 "The preferred lateral alignment when using the sublane-model",
2144 "The minimum lateral gap at a speed difference of 50km/h when using the sublane-model",
2148 "The maximum lateral speed when using the sublane-model",
2158 "The id of the polygon",
2162 "The shape of the polygon",
2166 "The RGBA color with which the polygon shall be displayed",
2170 "An information whether the polygon shall be filled",
2174 "The layer in which the polygon lies",
2178 "A typename for the polygon",
2182 "A bitmap to use for rendering this polygon",
2186 "Enable or disable use image file as a relative path",
2190 "Angle of rendered image in degree",
2200 "The id of the POI",
2204 "The position in view",
2208 "The color with which the poi shall be displayed",
2212 "A typename for the poi",
2216 "The layer of the poi for drawing and selecting",
2220 "Width of rendered image in meters",
2224 "Height of rendered image in meters",
2228 "A bitmap to use for rendering this poi",
2232 "Enable or disable use image file as a relative path",
2236 "Angle of rendered image in degree",
2246 "The id of the POI",
2250 "The name of the lane the poi is located at",
2254 "The position on the named lane or in the net in meters at which the poi is located at",
2258 "The lateral offset on the named lane at which the poi is located at",
2262 "The color with which the poi shall be displayed",
2266 "A typename for the poi",
2270 "The layer of the poi for drawing and selecting",
2274 "Width of rendered image in meters",
2278 "Height of rendered image in meters",
2282 "A bitmap to use for rendering this poi",
2286 "Enable or disable use image file as a relative path",
2290 "Angle of rendered image in degree",
bool mySelected
boolean to check if this AC is selected (instead of GUIGlObjectStorage)
static bool _str2Bool(const std::string &sData)
converts a string into the bool value described by it by calling the char-type converter ...
static const std::string FEATURE_APPROVED
feature has been approved but not changed (i.e. after being reguessed)
bool isSVCPermission() const
return true if atribute is a VehicleClass
bool isOptional() const
return true if atribute is optional
The information about how to spread the lanes from the given position.
std::map< SumoXMLAttr, AttributeValues > myAttributeValues
map with the attribute values vinculated with this Tag
static const std::string FEATURE_MODIFIED
feature has been manually modified (implies approval)
static StringBijection< SumoXMLTag > CarFollowModels
car following models
SumoXMLTag
Numbers representing SUMO-XML - element names.
TagValues()
default constructor
bool hasAttribute(SumoXMLAttr attr) const
check if current TagValues owns the attribute attr
static StringBijection< SumoXMLNodeType > NodeTypes
node types
static RGBColor parseColor(std::string coldef)
Parses a color information.
AttributeValues()
default constructor
GNEEdge * retrieveEdge(const std::string &id, bool failHard=true)
get edge by id
double scale
information about a lane's width (temporary, used for a single view)
description of a vehicle type
static std::vector< SumoXMLTag > allowedAdditionalTags(bool onlyDrawables)
get all editable for tag additional elements
int getInt(const std::string &name) const
Returns the int-value of the named option (only for Option_Integer)
Whether vehicles must keep the junction clear.
int myAttributeProperty
Property of attribute.
whether a given shape is user-defined
bool hasMinimumNumberOfChilds() const
return true if tag correspond to an element that only have a limited number of childs ...
static const std::string DEFAULT_IMG_FILE
const SumoXMLTag myTag
the xml tag to which this attribute carrier corresponds
begin/end of the description of a junction
begin/end of the description of a single lane
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
StringBijection< SUMOVehicleShape > SumoVehicleShapeStrings(sumoVehicleShapeStringInitializer, SVS_UNKNOWN, false)
static const double UNSPECIFIED_VISIBILITY_DISTANCE
unspecified foe visibility for connections
bool canBlockMovement() const
return true if tag correspond to an element that can block their movement
a flow definition (used by router)
bool isTime() const
return true if atribute is time
GUIIcon
An enumeration of icons used by the gui applications.
A calibrator placed over edge.
SumoXMLTag myTagSynonym
Tag written in XML (If is SUMO_TAG_NOTHING), original Tag name will be written)
static StringBijection< LaneSpreadFunction > LaneSpreadFunctions
lane spread functions
bool isBool() const
return true if atribute is boolean
bool hasGEOPosition() const
return true if tag correspond to an element that can use a geo position
static const double DEFAULT_LAYER_POI
lane of a reroute of type closing
connectio between two lanes
Stores the information about how to visualize structures.
Allow/disallow charge in transit in Charging Stations.
static std::map< SumoXMLTag, TagValues > myAllowedTags
map with the tags values
bool isSelectable() const
return true if tag correspond to a selectable element
std::string getDescription() const
return a description of attribute
bool canBeReparent() const
return true if tag correspond to an element that can be reparent
bool hasDialog() const
return true if tag correspond to an element that can be edited using a dialog
foe visibility distance of a link
static const double DEFAULT_IMG_HEIGHT
static std::string parseIDs(const std::vector< T > &ACs)
parses a list of specific Attribute Carriers into a string of IDs
GUIIcon getGUIIcon() const
get GUI icon associated to this Tag
static int getHigherNumberOfAttributes()
return the number of attributes of the tag with the most highter number of attributes ...
bool hasAttrSynonym() const
return true if Attr correspond to an element that will be written in XML with another name ...
weights: time range begin
link,node: the traffic light id responsible for this link
std::vector< std::string > myDiscreteValues
discrete values that can take this Attribute (by default empty)
FXIcon * getIcon() const
get FXIcon associated to this AC
A NBNetBuilder extended by visualisation and editing capabilities.
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
std::map< SumoXMLAttr, AttributeValues >::const_iterator end() const
get end of attribute values (used for iterate)
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
begin/end of the description of a Point of interest
A parking space for a single vehicle within a parking area.
static const std::string DEFAULT_TYPE
const std::string DEFAULT_VTYPE_ID
virtual std::string getAttribute(SumoXMLAttr key) const =0
first coordinate of edge shape
static bool isValidGenericParameterKey(const std::string &value)
whether the given string is a valid key for a generic parameter
bool isString() const
return true if atribute is a string
bool isVClass() const
return true if atribute is a VehicleClass
bool isList() const
return true if atribute is a list
begin/end of the description of a route
std::vector< std::string > getStrings() const
bool isNumerical() const
return true if atribute is numerical (int or float)
static OptionsCont & getOptions()
Retrieves the options.
static double _str2double(const std::string &sData)
converts a string into the double value described by it by calling the char-type converter ...
link: the index of the opposite direction link of a pedestrian crossing
static const double UNSPECIFIED_SPEED
unspecified lane speed
static std::vector< SumoXMLTag > allowedTags(bool onlyDrawables)
get all editable for tag elements of all types
SumoXMLAttr getAttrSynonym() const
get tag synonym
SumoXMLTag getTagSynonym() const
get tag synonym
SumoXMLAttr myAttrSynonym
Attribute written in XML (If is SUMO_ATTR_NOTHING), original Attribute will be written) ...
bool isStoppingPlace() const
return true if tag correspond to a detector (Only used to group all stoppingPlaces in the output XML)...
std::string myDefinition
text with a definition of attribute
The turning radius at an intersection in m.
whether an edge is part of a bidirectional railway
static bool isValidGenericParameterValue(const std::string &value)
whether the given string is a valid value for a generic parameter
bool canCloseShape() const
return true if tag correspond to an element that can close their shape
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
bool isAttributeDeprecated(SumoXMLAttr attr) const
return true if attribute of this tag is deprecated
An instantenous induction loop.
static StringBijection< TrafficLightType > TrafficLightTypes
traffic light types
const std::string & getDefaultValue(SumoXMLAttr attr) const
return the default value of the attribute of an element
static const double INVALID_POSITION
default value for invalid positions (used by POIs and Polygons)
A point in 2D or 3D with translation and scaling methods.
static void fillAttributeCarriers()
fill Attribute Carriers
bool isPositive() const
return true if atribute is positive
static bool isGenericParametersValid(const std::string &value)
check if given string can be parsed to a map/list of generic parameters
static const double UNSPECIFIED_CONTPOS
unspecified internal junction position
static std::vector< SumoXMLTag > allowedShapeTags(bool onlyDrawables)
get all editable for tag shape elements
A calibrator placed over lane (used in netedit)
static int _str2int(const std::string &sData)
converts a string into the integer value described by it by calling the char-type converter...
static const bool DEFAULT_RELATIVEPATH
static const std::string FEATURE_GUESSED
feature has been reguessed (may still be unchanged be we can't tell (yet)
int getPositionListed() const
get position in list (used in frames for listing attributes with certain sort)
static bool parseStringToANDBool(const std::string &string)
parse a string of booleans (1 0 1 1....) using AND operation
node: the type of traffic light
edge: the shape in xml-definition
probability of route of a reroute
probability of destiny of a reroute
const std::string getID() const
function to support debugging
const std::string & getDefaultValue() const
get default value
StringBijection< SUMOVehicleClass > SumoVehicleClassStrings(sumoVehicleClassStringInitializer, SVC_CUSTOM2, false)
bool canAutomaticSortChilds() const
return true if tag correspond to an element that can sort their childs automatic
bool hasTagSynonym() const
return true if tag correspond to an element that will be written in XML with another tag ...
bool canWriteChildsSeparate() const
return true if tag correspond to an element that can sort their childs automatic
double getFloat(const std::string &name) const
Returns the double-value of the named option (only for Option_Float)
bool isNetElement() const
return true if tag correspond to a netElement
bool isDetector() const
return true if tag correspond to a shape (Only used to group all detectors in the XML) ...
begin/end of the description of an edge
bool isColor() const
return true if atribute is a color
std::vector< std::string > getVector()
A road/street connecting two junctions (netedit-version)
entry for an alternative parking zone
static StringBijection< LateralAlignment > LateralAlignments
lateral alignments
trigger: the time of the step
void addDeprecatedAttribute(SumoXMLAttr attr)
add deprecated Attribute
GNEAttributeCarrier(SumoXMLTag tag)
Constructor.
SumoXMLTag myParentTag
parent tag
SUMOVehicleShape
Definition of vehicle classes to differ between different appearences.
bool canBlockShape() const
return true if tag correspond to an element that can block their shape
virtual std::string getAttributeForSelection(SumoXMLAttr key) const
method for getting the attribute in the context of object selection
std::map< SumoXMLAttr, AttributeValues >::const_iterator begin() const
get begin of attribute values (used for iterate)
const AttributeValues & getAttribute(SumoXMLAttr attr) const
get attribute (throw error if doesn't exist)
int myPositionListed
listed position
std::string myDefaultValue
default value (by default empty)
A storage for options typed value containers)
const std::vector< std::string > & getDiscreteValues() const
get discrete values
static int getCircleResolution(const GUIVisualizationSettings &settings)
function to calculate circle resolution for all circles drawn in drawGL(...) functions ...
bool isCombinable() const
return true if atribute is combinable with other Attribute
std::vector< SumoXMLAttr > myDeprecatedAttributes
List with the deprecated Attributes.
bool isntZero() const
return true if atribute cannot be zero
crossing between edges for pedestrians
int getPositionListed() const
get position in list (used in frames for listing tags with certain sort)
bool isInt() const
return true if atribute is an integer
int myPositionListed
listed position
void addAttribute(SumoXMLAttr attr, int attributeProperty, const std::string &definition, const std::string &defaultValue, std::vector< std::string > discreteValues=std::vector< std::string >(), SumoXMLAttr synonym=SUMO_ATTR_NOTHING)
add attribute (duplicated attributed aren't allowed)
bool isAdditional() const
return true if tag correspond to an additional
static const std::string FEATURE_LOADED
an aggreagated-output interval
static const double DEFAULT_IMG_WIDTH
bool isShape() const
return true if tag correspond to a shape
Eficiency of the charge in Charging Stations.
int getNumberOfAttributes() const
get number of attributes
link: the index of the link within the traffic light
last coordinate of edge shape
int myTagProperty
Property of attribute.
bool hasGEOShape() const
return true if tag correspond to an element that can use a geo shape
bool isFloat() const
return true if atribute is a float
bool isDiscrete() const
return true if atribute is discrete
static std::vector< SumoXMLTag > allowedNetElementsTags(bool onlyDrawables)
get all editable for tag net elements
static const TagValues & getTagProperties(SumoXMLTag tag)
get Tag Properties
bool isProbability() const
return true if atribute is a probability
Delay in the charge of charging stations.
bool isUnique() const
return true if atribute is unique
bool drawForSelecting
whether drawing is performed for the purpose of selecting objects
begin/end of the description of a Point of interest over Lane (used by Netedit)
An access point for a train stop.
GNELane * retrieveLane(const std::string &id, bool failHard=true, bool checkVolatileChange=false)
get lane by id
static T parse(const std::string &string)
parses a value of type T from string (used for basic types: int, double, bool, etc.)
const std::string & getDefinition() const
get default value
static FXIcon * getIcon(GUIIcon which)
returns a icon previously defined in the enum GUIIcon
GUIIcon myIcon
icon associated to this Tag
static StringBijection< LaneChangeModel > LaneChangeModels
lane change models
struct with the attribute Properties
bool isDrawable() const
return true if tag correspond to a drawable element
static PositionVector parseShapeReporting(const std::string &shpdef, const std::string &objecttype, const char *objectid, bool &ok, bool allowEmpty, bool report=true)
Builds a PositionVector from a string representation, reporting occurred errors.
std::string joinToString(const std::vector< T > &v, const T_BETWEEN &between, std::streamsize accuracy=gPrecision)
vehicles ignoring classes
bool isNonEditable() const
return true if atribute isn't editable
struct with the attribute Properties
bool isFilename() const
return true if atribute is a filename
bool hasParent() const
return true if tag correspond to an element that can had another element as parent ...
static const double DEFAULT_ANGLE
begin/end of the description of a polygon
static const double DEFAULT_LAYER
trigger: a step description
bool hasDefaultValue() const
return true if attribute owns a default value
SumoXMLTag getTag() const
get XML Tag assigned to this object
SumoXMLTag getParentTag() const
if Tag owns a parent, return parent tag