76 #define NODEFAULTVALUE "<NODEFAULTVALUE>" 105 template<> std::string
113 if (
string.size() == 0) {
131 if (
string.size() == 0) {
141 template<> std::vector<std::string>
143 std::vector<std::string> parsedValues;
149 template<> std::vector<int>
151 std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
152 std::vector<int> parsedIntValues;
153 for (
auto i : parsedValues) {
154 parsedIntValues.push_back(parse<int>(i));
156 return parsedIntValues;
160 template<> std::vector<double>
162 std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
163 std::vector<double> parsedDoubleValues;
164 for (
auto i : parsedValues) {
165 parsedDoubleValues.push_back(parse<double>(i));
167 return parsedDoubleValues;
171 template<> std::vector<bool>
173 std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
174 std::vector<bool> parsedBoolValues;
175 for (
auto i : parsedValues) {
176 parsedBoolValues.push_back(parse<bool>(i));
178 return parsedBoolValues;
213 throw ProcessError(
"Current Attribute Carrier doesn't have a associated const GUIGlObject");
225 throw ProcessError(
"Current Attribute Carrier doesn't have a associated GUIGlObject");
230 std::vector<SumoXMLAttr>
232 std::vector<SumoXMLAttr> attr;
234 attr.push_back(i.first);
248 if (
isInt(tag, attr)) {
250 }
else if (
isFloat(tag, attr)) {
252 }
else if (
isTime(tag, attr)) {
254 }
else if (
isBool(tag, attr)) {
256 }
else if (
isColor(tag, attr)) {
260 }
else if (
isList(tag, attr)) {
270 return value.find_first_of(
" \t\n\r@$%^&/|\\{}*'\";:<>") == std::string::npos;
278 return (value.find_first_of(
"\t\n\r@$%^&|\\{}*'\";:<>") == std::string::npos);
286 const std::vector<std::pair <SumoXMLAttr, std::string> >&
296 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_SPEED,
"13.89"));
299 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_TYPE,
""));
300 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_ALLOW,
"all"));
303 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_SHAPE,
""));
306 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_NAME,
""));
307 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_WIDTH,
"default"));
315 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_TYPE,
""));
316 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_SHAPE,
""));
317 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_RADIUS,
"1.5"));
320 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_TLID,
""));
324 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_SPEED,
"13.89"));
325 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_ALLOW,
"all"));
328 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_WIDTH,
"default"));
337 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_COLOR,
"red"));
338 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_TYPE,
""));
339 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_LAYER,
"3"));
340 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_WIDTH,
"0"));
341 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_HEIGHT,
"0"));
343 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_ANGLE,
"0"));
350 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_COLOR,
"red"));
351 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_TYPE,
""));
352 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_LAYER,
"3"));
353 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_WIDTH,
"0"));
354 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_HEIGHT,
"0"));
356 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_ANGLE,
"0"));
361 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_COLOR,
"green"));
362 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_FILL,
"false"));
363 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_LAYER,
"0"));
364 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_TYPE,
""));
366 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_ANGLE,
"0"));
381 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_PASS,
"false"));
395 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_NAME,
""));
397 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_LINES,
""));
404 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_NAME,
""));
406 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_LINES,
""));
413 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_NAME,
""));
425 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_FILE,
""));
433 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_LENGTH,
"10"));
435 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_FILE,
""));
436 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_CONT,
"false"));
444 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_X,
"0"));
445 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_Y,
"0"));
447 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_FILE,
""));
463 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_LANES,
""));
464 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_FILE,
""));
485 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_FILE,
""));
486 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_PROB,
"1"));
488 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_OFF,
"false"));
495 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_FILE,
""));
496 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_BEGIN,
"0"));
501 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_END,
"10"));
507 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_COLOR,
"black"));
508 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_BEGIN,
"0"));
509 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_END,
"100"));
511 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_PERIOD,
"10"));
512 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_PROB,
"1"));
513 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_NUMBER,
"100"));
520 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_LINE,
""));
523 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_REROUTE,
"false"));
529 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_EDGES,
""));
530 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_COLOR,
"black"));
534 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_ACCEL,
"2.6"));
535 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_DECEL,
"4.5"));
536 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_SIGMA,
"0.5"));
537 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_TAU,
"1.0"));
538 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_LENGTH,
"5.0"));
539 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_MINGAP,
"2.5"));
543 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_COLOR,
"1,1,0"));
544 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_VCLASS,
"passenger"));
546 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_GUISHAPE,
"passenger"));
547 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_WIDTH,
"2.0"));
562 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_SPEED,
"50.0"));
565 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_BEGIN,
"0"));
566 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_END,
"100"));
570 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_ALLOW,
"all"));
575 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_ALLOW,
"all"));
580 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_PROB,
"0"));
584 attrs.push_back(std::pair<SumoXMLAttr, std::string>(
SUMO_ATTR_PROB,
"0"));
595 std::vector<SumoXMLTag>
597 std::vector<SumoXMLTag> tags;
606 const std::vector<SumoXMLTag>&
620 const std::vector<SumoXMLTag>&
643 const std::vector<SumoXMLTag>&
1213 if (i.first == attr) {
1224 if (i.first == attr) {
1232 const std::vector<std::string>&
1236 std::vector<std::string> choices;
1239 for (
auto it : choices) {
1247 for (
auto it : choices) {
1255 for (
auto it : choices) {
1261 for (
auto it : choices) {
1273 for (
auto it : choices) {
1396 myAttrDefinitions[
SUMO_TAG_BUS_STOP][
SUMO_ATTR_FRIENDLY_POS] =
"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";
1404 myAttrDefinitions[
SUMO_TAG_CONTAINER_STOP][
SUMO_ATTR_FRIENDLY_POS] =
"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";
1423 myAttrDefinitions[
SUMO_TAG_E1DETECTOR][
SUMO_ATTR_FRIENDLY_POS] =
"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";
1435 myAttrDefinitions[
SUMO_TAG_E2DETECTOR][
SUMO_ATTR_FRIENDLY_POS] =
"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";
1447 myAttrDefinitions[
SUMO_TAG_DET_ENTRY][
SUMO_ATTR_FRIENDLY_POS] =
"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";
1451 myAttrDefinitions[
SUMO_TAG_DET_EXIT][
SUMO_ATTR_FRIENDLY_POS] =
"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";
1583 return parse<int>(i.second);
1595 return parse<double>(i.second);
1607 return parse<bool>(i.second);
1615 template<> std::string
1631 return parse<SUMOVehicleClass>(i.second);
1643 return parse<SUMOVehicleShape>(i.second);
1655 return parse<RGBColor>(i.second);
1663 template<> std::vector<int>
1667 return parse<std::vector<int> >(i.second);
1675 template<> std::vector<double>
1679 return parse<std::vector<double> >(i.second);
1687 template<> std::vector<bool>
1691 return parse<std::vector<bool> >(i.second);
1699 template<> std::vector<std::string>
1703 return parse<std::vector<std::string> >(i.second);
1714 std::vector<std::string> edgeIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
1716 for (
auto i : edgeIds) {
1732 std::vector<std::string> laneIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
1734 for (
auto i : laneIds) {
1747 std::vector<GNEEdge*>
1750 std::vector<std::string> edgeIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
1751 std::vector<GNEEdge*> parsedEdges;
1753 for (
auto i : edgeIds) {
1760 std::vector<GNELane*>
1763 std::vector<std::string> laneIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
1764 std::vector<GNELane*> parsedLanes;
1766 for (
auto i : laneIds) {
1776 std::vector<std::string> edgeIDs;
1777 for (
auto i : edges) {
1778 edgeIDs.push_back(i->getID());
1787 std::vector<std::string> laneIDs;
1788 for (
auto i : lanes) {
1789 laneIDs.push_back(i->getID());
static bool _str2Bool(const std::string &sData)
converts a string into the bool value described by it by calling the char-type converter ...
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myColorAttrs
map with the color attributes
The information about how to spread the lanes from the given position.
SumoXMLTag
Numbers representing SUMO-XML - element names.
static StringBijection< SumoXMLNodeType > NodeTypes
node types
static RGBColor parseColor(std::string coldef)
Parses a color information.
static bool isFloat(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is numerical of type float
GNEEdge * retrieveEdge(const std::string &id, bool failHard=true)
get edge by id
description of a vehicle type
Whether vehicles must keep the junction clear.
whether a given shape is user-defined
static std::string getAttributeType(SumoXMLTag tag, SumoXMLAttr attr)
get type of attribute
GNEAttributeCarrier(SumoXMLTag tag, GUIIcon icon)
Constructor.
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
a flow definition (used by router)
static std::map< SumoXMLTag, std::map< SumoXMLAttr, std::string > > myAttrDefinitions
map with the definition of attributes
static bool isDiscrete(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is Discrete
GUIIcon
An enumeration of icons used by the gui applications.
A calibrator placed over edge.
static StringBijection< LaneSpreadFunction > LaneSpreadFunctions
lane spread functions
static std::vector< SumoXMLTag > myAllowedShapeTags
vector with the allowed tags of shapes
static const std::vector< SumoXMLTag > & allowedShapeTags()
get all editable for tag shape elements
lane of a reroute of type closing
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myPositiveAttrs
map with the positive attributes
connectio between two lanes
Allow/disallow charge in transit in Charging Stations.
static const std::vector< SumoXMLTag > & allowedNetElementsTags()
get all editable for tag net elements
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myUniqueAttrs
map with the unique attributes (i.e. attributes without default values)
static std::map< SumoXMLTag, std::map< SumoXMLAttr, std::vector< std::string > > > myDiscreteChoices
map with the values of discrete choices
foe visibility distance of a link
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myBoolAttrs
map with the boolean attributes
static const std::string LOADED
feature is still unchanged after being loaded (implies approval)
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myProbabilityAttrs
map with the probability attributes
static int getHigherNumberOfAttributes()
return the number of attributes of the tag with the most highter number of attributes ...
GUIIcon myIcon
icon associated to this AC
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myTimeAttrs
map with the attributes of type time
weights: time range begin
link,node: the traffic light id responsible for this link
static bool isPositive(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is only Positive (i.e. cannot take negative values)
FXIcon * getIcon() const
get FXIcon assigned to this object
A NBNetBuilder extended by visualisation and editing capabilities.
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
begin/end of the description of a Point of interest
static std::map< SumoXMLTag, std::vector< std::pair< SumoXMLAttr, std::string > > > _allowedAttributes
map with the allowed attributes and their default values
static std::vector< SumoXMLTag > myBlockShapeTags
vector with the allowed tags that can block their shapes
static bool isValidFilename(const std::string &value)
true if value is a valid file value
static std::vector< GNEEdge * > parseGNEEdges(GNENet *net, const std::string &value)
parse string into vector of GNEEdges
virtual std::string getAttribute(SumoXMLAttr key) const =0
This functions has to be implemented in all GNEAttributeCarriers.
first coordinate of edge shape
static const std::vector< std::pair< SumoXMLAttr, std::string > > & allowedAttributes(SumoXMLTag tag)
get all editable attributes for tag and their default values.
begin/end of the description of a route
std::vector< std::string > getStrings() const
#define WRITE_WARNING(msg)
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 ...
static std::vector< SumoXMLTag > myAllowedNetElementTags
vector with the allowed tags of netElements
static bool isString(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is of type string
static std::vector< SumoXMLTag > allowedTags()
get all editable for tag elements of all types
static const double UNSPECIFIED_SPEED
unspecified lane speed
static const std::vector< std::string > & discreteChoices(SumoXMLTag tag, SumoXMLAttr attr)
return a list of discrete choices for this attribute or an empty vector
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myListAttrs
map with the attributes of type list
static bool isInt(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is numerical or type int
static bool isVClass(SumoXMLTag tag, SumoXMLAttr attr)
whether a string attribute is a list of Vehicle Classes
static bool isValidID(const std::string &value)
true if value is a valid sumo ID
static const std::string MODIFIED
feature has been manually modified (implies approval)
static bool isTime(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is time
static void parseStringVector(const std::string &def, std::vector< std::string > &into)
Splits the given string.
static bool isNonEditable(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is non editable
static std::vector< SumoXMLTag > myBlockMovementTags
vector with the allowed tags that can block their movement
The turning radius at an intersection in m.
static std::vector< SumoXMLTag > myAllowedAdditionalTags
vector with the allowed tags of additionals
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
static bool hasAttribute(SumoXMLTag tag, SumoXMLAttr attr)
check if an element with certain tag has a certain attribute
static bool canBlockMovement(SumoXMLTag tag)
return true if element tag can block their movement
static bool hasDefaultValue(SumoXMLTag tag, SumoXMLAttr attr)
check if attribute of an element has a default avlue
static StringBijection< TrafficLightType > TrafficLightTypes
traffic light types
static const double INVALID_POSITION
default value for invalid positions (used by POIs and Polygons)
static bool isColor(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is of type color for a certain tag
static bool isFilename(SumoXMLTag tag, SumoXMLAttr attr)
whether a string attribute is a filename
static const double UNSPECIFIED_CONTPOS
unspecified internal junction position
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 bool checkGNELanesValid(GNENet *net, const std::string &value, bool report)
check if a list of Lane IDs is valid
static T getDefaultValue(SumoXMLTag tag, SumoXMLAttr attr)
return the default value of the attribute of an element
node: the type of traffic light
edge: the shape in xml-definition
probability of route of a reroute
probability of destiny of a reroute
std::vector< SumoXMLAttr > getAttrs() const
get vector of attributes
const std::string getID() const
function to support debugging
StringBijection< SUMOVehicleClass > SumoVehicleClassStrings(sumoVehicleClassStringInitializer, SVC_CUSTOM2, false)
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myNonEditableAttrs
map with the non-editable attributes
begin/end of the description of an edge
static std::vector< SumoXMLTag > myDialogTags
vector with the allowed tags that has a editor values
static bool isUnique(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is unique (may not be edited for a multi-selection and don't have a default valu...
static int myMaxNumAttribute
maximum number of attributes of all tags
trigger: the time of the step
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myVClassAttrs
map with the Vehicle Class attributes
static bool isProbability(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is a probability (i.e. oly can values between [0, 1])
SUMOVehicleShape
Definition of vehicle classes to differ between different appearences.
static const std::vector< SumoXMLTag > & allowedAdditionalTags()
get all editable for tag additional elements
virtual std::string getAttributeForSelection(SumoXMLAttr key) const
method for getting the attribute in the context of object selection
static const std::string APPROVED
feature has been approved but not changed (i.e. after being reguessed)
static bool isBool(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is of type bool for a certain tag
static bool canOpenDialog(SumoXMLTag tag)
return true if element tag can open a values editor
crossing between edges for pedestrians
static std::string getDefinition(SumoXMLTag tag, SumoXMLAttr attr)
return definition of a certain SumoXMLAttr
static bool discreteCombinableChoices(SumoXMLTag tag, SumoXMLAttr attr)
return whether the given attribute allows for a combination of discrete values
an aggreagated-output interval
Eficiency of the charge in Charging Stations.
static const std::string GUESSED
feature has been reguessed (may still be unchanged be we can't tell (yet)
GUIIcon getGUIIcon() const
get GUI icon assigned to this object
link: the index of the link within the traffic light
last coordinate of edge shape
Delay in the charge of charging stations.
static std::vector< GNELane * > parseGNELanes(GNENet *net, const std::string &value)
parse string into vector of GNELanes
static bool isNumerical(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is numerical (int or float)
static bool checkGNEEdgesValid(GNENet *net, const std::string &value, bool report)
check if a list of edge IDs is valid
begin/end of the description of a Point of interest over Lane (used by Netedit)
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myNumericalIntAttrs
map with the numerical attributes of type Int
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 number of type T from string
static FXIcon * getIcon(GUIIcon which)
returns a icon previously defined in the enum GUIIcon
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myNumericalFloatAttrs
map with the numerical attributes of type Float
static bool canBlockShape(SumoXMLTag tag)
return true if element tag can block their shape
std::string joinToString(const std::vector< T > &v, const T_BETWEEN &between, std::streamsize accuracy=gPrecision)
vehicles ignoring classes
static std::map< SumoXMLTag, SumoXMLTag > myAllowedAdditionalWithParentTags
map with the allowed tags of additionals with parent and their parent
static bool isList(SumoXMLTag tag, SumoXMLAttr attr)
whether an attribute is of type bool
begin/end of the description of a polygon
trigger: a step description
const GUIGlObject * getGUIGLObject() const
get const pointer to GUIGlObject vinculated with this Attribute Carrier
SumoXMLTag getTag() const
get XML Tag assigned to this object
static std::map< SumoXMLTag, std::set< SumoXMLAttr > > myFileAttrs
map with the file attributes