Eclipse SUMO - Simulation of Urban MObility
GNEAttributeCarrier.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3 // Copyright (C) 2001-2024 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials are made available under the
5 // terms of the Eclipse Public License 2.0 which is available at
6 // https://www.eclipse.org/legal/epl-2.0/
7 // This Source Code may also be made available under the following Secondary
8 // Licenses when the conditions for such availability set forth in the Eclipse
9 // Public License 2.0 are satisfied: GNU General Public License, version 2
10 // or later which is available at
11 // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 /****************************************************************************/
18 // Abstract Base class for gui objects which carry attributes
19 /****************************************************************************/
20 #include <netedit/GNENet.h>
21 #include <netedit/GNEViewNet.h>
23 #include <utils/common/ToString.h>
31 
32 #include "GNEAttributeCarrier.h"
33 
34 
35 // ===========================================================================
36 // static members
37 // ===========================================================================
38 
39 std::map<SumoXMLTag, GNETagProperties> GNEAttributeCarrier::myTagProperties;
40 const std::string GNEAttributeCarrier::FEATURE_LOADED = "loaded";
41 const std::string GNEAttributeCarrier::FEATURE_GUESSED = "guessed";
42 const std::string GNEAttributeCarrier::FEATURE_MODIFIED = "modified";
43 const std::string GNEAttributeCarrier::FEATURE_APPROVED = "approved";
46 const std::string GNEAttributeCarrier::True = toString(true);
47 const std::string GNEAttributeCarrier::False = toString(false);
48 
49 
50 // ===========================================================================
51 // method definitions
52 // ===========================================================================
53 
55  myTagProperty(getTagProperty(tag)),
56  myNet(net),
57  mySelected(false),
58  myIsTemplate(false) {
59 }
60 
61 
63 
64 
65 const std::string
67  return getAttribute(SUMO_ATTR_ID);
68 }
69 
70 
71 GNENet*
73  return myNet;
74 }
75 
76 
77 void
80  gSelected.select(getGUIGlObject()->getGlID());
81  if (changeFlag) {
82  mySelected = true;
83  }
84  }
85 }
86 
87 
88 void
91  gSelected.deselect(getGUIGlObject()->getGlID());
92  if (changeFlag) {
93  mySelected = false;
94  }
95  }
96 }
97 
98 
99 bool
101  return mySelected;
102 }
103 
104 
105 bool
107  // first check if element is selected
108  if (mySelected) {
109  // get flag for network element
110  const bool networkElement = myTagProperty.isNetworkElement() || myTagProperty.isAdditionalElement();
111  // check current supermode
112  if (networkElement && myNet->getViewNet()->getEditModes().isCurrentSupermodeNetwork()) {
113  return true;
115  return true;
117  return true;
118  } else {
119  return false;
120  }
121  } else {
122  return false;
123  }
124 }
125 
126 
127 bool
130 }
131 
132 
133 bool
135  return (myNet->getViewNet()->getFrontAttributeCarrier() == this);
136 }
137 
138 
139 void
141  for (const auto& attrProperty : myTagProperty) {
142  if (attrProperty.hasDefaultValue()) {
143  setAttribute(attrProperty.getAttr(), attrProperty.getDefaultValue());
144  if (attrProperty.isActivatable()) {
145  toggleAttribute(attrProperty.getAttr(), attrProperty.getDefaultActivated());
146  }
147  }
148  }
149 }
150 
151 
152 void
154  throw ProcessError(TL("Nothing to enable, implement in Children"));
155 
156 }
157 
158 
159 void
161  throw ProcessError(TL("Nothing to disable, implement in Children"));
162 }
163 
164 
165 bool
167  // by default, all attributes are enabled
168  return true;
169 }
170 
171 
172 bool
174  // by default, all attributes aren't computed
175  return false;
176 }
177 
178 
179 template<> int
180 GNEAttributeCarrier::parse(const std::string& string) {
181  return StringUtils::toInt(string);
182 }
183 
184 
185 template<> double
186 GNEAttributeCarrier::parse(const std::string& string) {
187  return StringUtils::toDouble(string);
188 }
189 
190 
191 template<> SUMOTime
192 GNEAttributeCarrier::parse(const std::string& string) {
193  return string2time(string);
194 }
195 
196 
197 template<> bool
198 GNEAttributeCarrier::parse(const std::string& string) {
199  return StringUtils::toBool(string);
200 }
201 
202 
203 template<> std::string
204 GNEAttributeCarrier::parse(const std::string& string) {
205  return string;
206 }
207 
208 
209 template<> SUMOVehicleClass
210 GNEAttributeCarrier::parse(const std::string& string) {
211  if (string.size() == 0) {
212  throw EmptyData();
213  } else if (!SumoVehicleClassStrings.hasString(string)) {
214  return SVC_IGNORING;
215  } else {
216  return SumoVehicleClassStrings.get(string);
217  }
218 }
219 
220 
221 template<> RGBColor
222 GNEAttributeCarrier::parse(const std::string& string) {
223  if (string.empty()) {
224  return RGBColor::INVISIBLE;
225  } else {
226  return RGBColor::parseColor(string);
227  }
228 }
229 
230 
231 template<> Position
232 GNEAttributeCarrier::parse(const std::string& string) {
233  if (string.size() == 0) {
234  throw EmptyData();
235  } else {
236  bool ok = true;
237  PositionVector pos = GeomConvHelper::parseShapeReporting(string, "user-supplied position", 0, ok, false, false);
238  if (!ok || (pos.size() != 1)) {
239  throw NumberFormatException("(Position) " + string);
240  } else {
241  return pos[0];
242  }
243  }
244 }
245 
246 
247 template<> PositionVector
248 GNEAttributeCarrier::parse(const std::string& string) {
249  PositionVector posVector;
250  // empty string are allowed (It means empty position vector)
251  if (string.empty()) {
252  return posVector;
253  } else {
254  bool ok = true;
255  posVector = GeomConvHelper::parseShapeReporting(string, "user-supplied shape", 0, ok, false, true);
256  if (!ok) {
257  throw NumberFormatException("(Position List) " + string);
258  } else {
259  return posVector;
260  }
261  }
262 }
263 
264 
265 template<> SUMOVehicleShape
266 GNEAttributeCarrier::parse(const std::string& string) {
267  if ((string == "unknown") || (!SumoVehicleShapeStrings.hasString(string))) {
269  } else {
270  return SumoVehicleShapeStrings.get(string);
271  }
272 }
273 
274 
275 template<> std::vector<std::string>
276 GNEAttributeCarrier::parse(const std::string& string) {
277  return StringTokenizer(string).getVector();
278 }
279 
280 
281 template<> std::set<std::string>
282 GNEAttributeCarrier::parse(const std::string& string) {
283  std::vector<std::string> vectorString = StringTokenizer(string).getVector();
284  std::set<std::string> solution;
285  for (const auto& i : vectorString) {
286  solution.insert(i);
287  }
288  return solution;
289 }
290 
291 
292 template<> std::vector<int>
293 GNEAttributeCarrier::parse(const std::string& string) {
294  std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
295  std::vector<int> parsedIntValues;
296  for (const auto& i : parsedValues) {
297  parsedIntValues.push_back(parse<int>(i));
298  }
299  return parsedIntValues;
300 }
301 
302 
303 template<> std::vector<double>
304 GNEAttributeCarrier::parse(const std::string& string) {
305  std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
306  std::vector<double> parsedDoubleValues;
307  for (const auto& i : parsedValues) {
308  parsedDoubleValues.push_back(parse<double>(i));
309  }
310  return parsedDoubleValues;
311 }
312 
313 
314 template<> std::vector<bool>
315 GNEAttributeCarrier::parse(const std::string& string) {
316  std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
317  std::vector<bool> parsedBoolValues;
318  for (const auto& i : parsedValues) {
319  parsedBoolValues.push_back(parse<bool>(i));
320  }
321  return parsedBoolValues;
322 }
323 
324 
325 template<> std::vector<SumoXMLAttr>
326 GNEAttributeCarrier::parse(const std::string& value) {
327  // Declare string vector
328  std::vector<std::string> attributesStr = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
329  std::vector<SumoXMLAttr> attributes;
330  // Iterate over lanes IDs, retrieve Lanes and add it into parsedLanes
331  for (const auto& attributeStr : attributesStr) {
332  if (SUMOXMLDefinitions::Tags.hasString(attributeStr)) {
333  attributes.push_back(static_cast<SumoXMLAttr>(SUMOXMLDefinitions::Attrs.get(attributeStr)));
334  } else {
335  throw InvalidArgument("Error parsing attributes. Attribute '" + attributeStr + "' doesn't exist");
336  }
337  }
338  return attributes;
339 }
340 
341 
342 template<> std::vector<GNEEdge*>
343 GNEAttributeCarrier::parse(GNENet* net, const std::string& value) {
344  // Declare string vector
345  std::vector<std::string> edgeIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
346  std::vector<GNEEdge*> parsedEdges;
347  // Iterate over edges IDs, retrieve Edges and add it into parsedEdges
348  for (const auto& edgeID : edgeIds) {
349  GNEEdge* retrievedEdge = net->getAttributeCarriers()->retrieveEdge(edgeID, false);
350  if (retrievedEdge) {
351  parsedEdges.push_back(net->getAttributeCarriers()->retrieveEdge(edgeID));
352  } else {
353  throw FormatException("Error parsing parameter " + toString(SUMO_ATTR_EDGES) + ". " +
354  toString(SUMO_TAG_EDGE) + " '" + edgeID + "' doesn't exist");
355  }
356  }
357  return parsedEdges;
358 }
359 
360 
361 template<> std::vector<GNELane*>
362 GNEAttributeCarrier::parse(GNENet* net, const std::string& value) {
363  // Declare string vector
364  std::vector<std::string> laneIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
365  std::vector<GNELane*> parsedLanes;
366  // Iterate over lanes IDs, retrieve Lanes and add it into parsedLanes
367  for (const auto& laneID : laneIds) {
368  GNELane* retrievedLane = net->getAttributeCarriers()->retrieveLane(laneID, false);
369  if (retrievedLane) {
370  parsedLanes.push_back(net->getAttributeCarriers()->retrieveLane(laneID));
371  } else {
372  throw FormatException("Error parsing parameter " + toString(SUMO_ATTR_LANES) + ". " +
373  toString(SUMO_TAG_LANE) + " '" + laneID + "' doesn't exist");
374  }
375  }
376  return parsedLanes;
377 }
378 
379 
380 template<> std::string
381 GNEAttributeCarrier::parseIDs(const std::vector<GNEEdge*>& ACs) {
382  // obtain ID's of edges and return their join
383  std::vector<std::string> edgeIDs;
384  for (const auto& i : ACs) {
385  edgeIDs.push_back(i->getID());
386  }
387  return joinToString(edgeIDs, " ");
388 }
389 
390 
391 template<> std::string
392 GNEAttributeCarrier::parseIDs(const std::vector<GNELane*>& ACs) {
393  // obtain ID's of lanes and return their join
394  std::vector<std::string> laneIDs;
395  for (const auto& i : ACs) {
396  laneIDs.push_back(i->getID());
397  }
398  return joinToString(laneIDs, " ");
399 }
400 
401 
402 bool
403 GNEAttributeCarrier::lanesConsecutives(const std::vector<GNELane*>& lanes) {
404  // we need at least two lanes
405  if (lanes.size() > 1) {
406  // now check that lanes are consecutive (not necessary connected)
407  int currentLane = 0;
408  while (currentLane < ((int)lanes.size() - 1)) {
409  int nextLane = -1;
410  // iterate over outgoing edges of destination junction of edge's lane
411  for (int i = 0; (i < (int)lanes.at(currentLane)->getParentEdge()->getToJunction()->getGNEOutgoingEdges().size()) && (nextLane == -1); i++) {
412  // iterate over lanes of outgoing edges of destination junction of edge's lane
413  for (int j = 0; (j < (int)lanes.at(currentLane)->getParentEdge()->getToJunction()->getGNEOutgoingEdges().at(i)->getLanes().size()) && (nextLane == -1); j++) {
414  // check if lane correspond to the next lane of "lanes"
415  if (lanes.at(currentLane)->getParentEdge()->getToJunction()->getGNEOutgoingEdges().at(i)->getLanes().at(j) == lanes.at(currentLane + 1)) {
416  nextLane = currentLane;
417  }
418  }
419  }
420  if (nextLane == -1) {
421  return false;
422  } else {
423  currentLane++;
424  }
425  }
426  return true;
427  } else {
428  return false;
429  }
430 }
431 
432 
433 template<> std::string
435  std::string result;
436  // Generate an string using the following structure: "key1=value1|key2=value2|...
437  for (const auto& parameter : getACParametersMap()) {
438  result += parameter.first + "=" + parameter.second + "|";
439  }
440  // remove the last "|"
441  if (!result.empty()) {
442  result.pop_back();
443  }
444  return result;
445 }
446 
447 
448 template<> std::vector<std::pair<std::string, std::string> >
450  std::vector<std::pair<std::string, std::string> > result;
451  // Generate a vector string using the following structure: "<key1,value1>, <key2, value2>,...
452  for (const auto& parameter : getACParametersMap()) {
453  result.push_back(std::make_pair(parameter.first, parameter.second));
454  }
455  return result;
456 }
457 
458 
459 void
460 GNEAttributeCarrier::setACParameters(const std::string& parameters, GNEUndoList* undoList) {
461  // declare map
462  Parameterised::Map parametersMap;
463  // separate value in a vector of string using | as separator
464  StringTokenizer parametersTokenizer(parameters, "|", true);
465  // iterate over all values
466  while (parametersTokenizer.hasNext()) {
467  // obtain key and value and save it in myParameters
468  const std::vector<std::string> keyValue = StringTokenizer(parametersTokenizer.next(), "=", true).getVector();
469  if (keyValue.size() == 2) {
470  parametersMap[keyValue.front()] = keyValue.back();
471  }
472  }
473  // set setACParameters map
474  setACParameters(parametersMap, undoList);
475 }
476 
477 
478 void
479 GNEAttributeCarrier::setACParameters(const std::vector<std::pair<std::string, std::string> >& parameters, GNEUndoList* undoList) {
480  // declare parametersMap
481  Parameterised::Map parametersMap;
482  // Generate an string using the following structure: "key1=value1|key2=value2|...
483  for (const auto& parameter : parameters) {
484  parametersMap[parameter.first] = parameter.second;
485  }
486  // set setACParameters map
487  setACParameters(parametersMap, undoList);
488 }
489 
490 
491 void
493  // declare result string
494  std::string paramsStr;
495  // Generate an string using the following structure: "key1=value1|key2=value2|...
496  for (const auto& parameter : parameters) {
497  paramsStr += parameter.first + "=" + parameter.second + "|";
498  }
499  // remove the last "|"
500  if (!paramsStr.empty()) {
501  paramsStr.pop_back();
502  }
503  // set parameters
504  setAttribute(GNE_ATTR_PARAMETERS, paramsStr, undoList);
505 }
506 
507 
508 void
509 GNEAttributeCarrier::addACParameters(const std::string& key, const std::string& attribute, GNEUndoList* undoList) {
510  // get parametersMap
511  Parameterised::Map parametersMap = getACParametersMap();
512  // add (or update) attribute
513  parametersMap[key] = attribute;
514  // set attribute
515  setACParameters(parametersMap, undoList);
516 }
517 
518 
519 void
520 GNEAttributeCarrier::removeACParametersKeys(const std::vector<std::string>& keepKeys, GNEUndoList* undoList) {
521  // declare parametersMap
522  Parameterised::Map newParametersMap;
523  // iterate over parameters map
524  for (const auto& parameter : getACParametersMap()) {
525  // copy to newParametersMap if key is in keepKeys
526  if (std::find(keepKeys.begin(), keepKeys.end(), parameter.first) != keepKeys.end()) {
527  newParametersMap.insert(parameter);
528  }
529  }
530  // set newParametersMap map
531  setACParameters(newParametersMap, undoList);
532 }
533 
534 
535 std::string
537  switch (key) {
538  // Crossings
541  return "No TLS";
542  // connections
543  case SUMO_ATTR_DIR: {
544  // special case for connection directions
545  std::string direction = getAttribute(key);
546  if (direction == "s") {
547  return "Straight (s)";
548  } else if (direction == "t") {
549  return "Turn (t))";
550  } else if (direction == "l") {
551  return "Left (l)";
552  } else if (direction == "r") {
553  return "Right (r)";
554  } else if (direction == "L") {
555  return "Partially left (L)";
556  } else if (direction == "R") {
557  return "Partially right (R)";
558  } else if (direction == "invalid") {
559  return "No direction (Invalid))";
560  } else {
561  return "undefined";
562  }
563  }
564  case SUMO_ATTR_STATE: {
565  // special case for connection states
566  std::string state = getAttribute(key);
567  if (state == "-") {
568  return "Dead end (-)";
569  } else if (state == "=") {
570  return "equal (=)";
571  } else if (state == "m") {
572  return "Minor link (m)";
573  } else if (state == "M") {
574  return "Major link (M)";
575  } else if (state == "O") {
576  return "TLS controller off (O)";
577  } else if (state == "o") {
578  return "TLS yellow flashing (o)";
579  } else if (state == "y") {
580  return "TLS yellow minor link (y)";
581  } else if (state == "Y") {
582  return "TLS yellow major link (Y)";
583  } else if (state == "r") {
584  return "TLS red (r)";
585  } else if (state == "g") {
586  return "TLS green minor (g)";
587  } else if (state == "G") {
588  return "TLS green major (G)";
589  } else if (state == "Z") {
590  return "Zipper (Z)";
591  } else {
592  return "undefined";
593  }
594  }
595  default:
596  return getAttribute(key);
597  }
598 }
599 
600 
601 std::string
603  return getAttribute(key);
604 }
605 
606 
607 const std::string&
609  return myTagProperty.getTagStr();
610 }
611 
612 
613 FXIcon*
615  // define on first access
616  if (myTagProperties.size() == 0) {
618  }
619  // special case for vClass icons
620  if (myTagProperty.vClassIcon()) {
622  } else {
624  }
625 }
626 
627 
628 bool
630  return myIsTemplate;
631 }
632 
633 
634 const GNETagProperties&
636  return myTagProperty;
637 }
638 
639 // ===========================================================================
640 // static methods
641 // ===========================================================================
642 
643 const GNETagProperties&
645  // define on first access
646  if (myTagProperties.size() == 0) {
648  }
649  // check that tag is defined
650  if (myTagProperties.count(tag) == 0) {
651  throw ProcessError(TLF("TagProperty for tag '%' not defined", toString(tag)));
652  } else {
653  return myTagProperties.at(tag);
654  }
655 }
656 
657 
658 const std::vector<GNETagProperties>
659 GNEAttributeCarrier::getTagPropertiesByType(const int tagPropertyCategory) {
660  std::vector<GNETagProperties> allowedTags;
661  // define on first access
662  if (myTagProperties.size() == 0) {
664  }
665  if (tagPropertyCategory & GNETagProperties::TagType::NETWORKELEMENT) {
666  // fill networkElements tags
667  for (const auto& tagProperty : myTagProperties) {
668  if (tagProperty.second.isNetworkElement()) {
669  allowedTags.push_back(tagProperty.second);
670  }
671  }
672  }
673  if (tagPropertyCategory & GNETagProperties::TagType::ADDITIONALELEMENT) {
674  // fill additional tags (only with pure additionals)
675  for (const auto& tagProperty : myTagProperties) {
676  if (tagProperty.second.isAdditionalPureElement()) {
677  allowedTags.push_back(tagProperty.second);
678  }
679  }
680  }
681  if (tagPropertyCategory & GNETagProperties::TagType::SHAPE) {
682  // fill shape tags
683  for (const auto& tagProperty : myTagProperties) {
684  if (tagProperty.second.isShapeElement()) {
685  allowedTags.push_back(tagProperty.second);
686  }
687  }
688  }
689  if (tagPropertyCategory & GNETagProperties::TagType::TAZELEMENT) {
690  // fill taz tags
691  for (const auto& tagProperty : myTagProperties) {
692  if (tagProperty.second.isTAZElement()) {
693  allowedTags.push_back(tagProperty.second);
694  }
695  }
696  }
697  if (tagPropertyCategory & GNETagProperties::TagType::WIRE) {
698  // fill wire tags
699  for (const auto& tagProperty : myTagProperties) {
700  if (tagProperty.second.isWireElement()) {
701  allowedTags.push_back(tagProperty.second);
702  }
703  }
704  }
705  if (tagPropertyCategory & GNETagProperties::TagType::DEMANDELEMENT) {
706  // fill demand tags
707  for (const auto& tagProperty : myTagProperties) {
708  if (tagProperty.second.isDemandElement()) {
709  allowedTags.push_back(tagProperty.second);
710  }
711  }
712  }
713  if (tagPropertyCategory & GNETagProperties::TagType::ROUTE) {
714  // fill route tags
715  for (const auto& tagProperty : myTagProperties) {
716  if (tagProperty.second.isRoute()) {
717  allowedTags.push_back(tagProperty.second);
718  }
719  }
720  }
721  if (tagPropertyCategory & GNETagProperties::TagType::VEHICLE) {
722  // fill vehicle tags
723  for (const auto& tagProperty : myTagProperties) {
724  if (tagProperty.second.isVehicle()) {
725  allowedTags.push_back(tagProperty.second);
726  }
727  }
728  }
729  if (tagPropertyCategory & GNETagProperties::TagType::VEHICLESTOP) {
730  // fill stop (and waypoints) tags
731  for (const auto& tagProperty : myTagProperties) {
732  if (tagProperty.second.isVehicleStop()) {
733  allowedTags.push_back(tagProperty.second);
734  }
735  }
736  }
737  if (tagPropertyCategory & GNETagProperties::TagType::PERSON) {
738  // fill person tags
739  for (const auto& tagProperty : myTagProperties) {
740  if (tagProperty.second.isPerson()) {
741  allowedTags.push_back(tagProperty.second);
742  }
743  }
744  }
745  if (tagPropertyCategory & GNETagProperties::TagType::PERSONPLAN) {
746  // fill person plan tags
747  for (const auto& tagProperty : myTagProperties) {
748  if (tagProperty.second.isPlanPerson()) {
749  allowedTags.push_back(tagProperty.second);
750  }
751  }
752  }
753  if (tagPropertyCategory & GNETagProperties::TagType::PERSONTRIP) {
754  // fill demand tags
755  for (const auto& tagProperty : myTagProperties) {
756  if (tagProperty.second.isPersonTrip()) {
757  allowedTags.push_back(tagProperty.second);
758  }
759  }
760  }
761  if (tagPropertyCategory & GNETagProperties::TagType::WALK) {
762  // fill demand tags
763  for (const auto& tagProperty : myTagProperties) {
764  if (tagProperty.second.isPlanWalk()) {
765  allowedTags.push_back(tagProperty.second);
766  }
767  }
768  }
769  if (tagPropertyCategory & GNETagProperties::TagType::RIDE) {
770  // fill demand tags
771  for (const auto& tagProperty : myTagProperties) {
772  if (tagProperty.second.isPlanRide()) {
773  allowedTags.push_back(tagProperty.second);
774  }
775  }
776  }
777  if (tagPropertyCategory & GNETagProperties::TagType::STOPPERSON) {
778  // fill demand tags
779  for (const auto& tagProperty : myTagProperties) {
780  if (tagProperty.second.isPlanStopPerson()) {
781  allowedTags.push_back(tagProperty.second);
782  }
783  }
784  }
785  if (tagPropertyCategory & GNETagProperties::TagType::GENERICDATA) {
786  // fill generic data tags
787  for (const auto& tagProperty : myTagProperties) {
788  if (tagProperty.second.isGenericData()) {
789  allowedTags.push_back(tagProperty.second);
790  }
791  }
792  }
793  if (tagPropertyCategory & GNETagProperties::TagType::MEANDATA) {
794  // fill generic data tags
795  for (const auto& tagProperty : myTagProperties) {
796  if (tagProperty.second.isMeanData()) {
797  allowedTags.push_back(tagProperty.second);
798  }
799  }
800  }
801  if (tagPropertyCategory & GNETagProperties::TagType::CONTAINER) {
802  // fill container tags
803  for (const auto& tagProperty : myTagProperties) {
804  if (tagProperty.second.isContainer()) {
805  allowedTags.push_back(tagProperty.second);
806  }
807  }
808  }
809  if (tagPropertyCategory & GNETagProperties::TagType::CONTAINERPLAN) {
810  // fill container plan tags
811  for (const auto& tagProperty : myTagProperties) {
812  if (tagProperty.second.isPlanContainer()) {
813  allowedTags.push_back(tagProperty.second);
814  }
815  }
816  }
817  if (tagPropertyCategory & GNETagProperties::TagType::TRANSPORT) {
818  // fill demand tags
819  for (const auto& tagProperty : myTagProperties) {
820  if (tagProperty.second.isPlanTransport()) {
821  allowedTags.push_back(tagProperty.second);
822  }
823  }
824  }
825  if (tagPropertyCategory & GNETagProperties::TagType::TRANSHIP) {
826  // fill demand tags
827  for (const auto& tagProperty : myTagProperties) {
828  if (tagProperty.second.isPlanTranship()) {
829  allowedTags.push_back(tagProperty.second);
830  }
831  }
832  }
833  if (tagPropertyCategory & GNETagProperties::TagType::STOPCONTAINER) {
834  // fill demand tags
835  for (const auto& tagProperty : myTagProperties) {
836  if (tagProperty.second.isPlanStopContainer()) {
837  allowedTags.push_back(tagProperty.second);
838  }
839  }
840  }
841  return allowedTags;
842 }
843 
844 // ===========================================================================
845 // private
846 // ===========================================================================
847 
848 void
850  for (const auto& attrProperty : myTagProperty) {
851  if (attrProperty.hasDefaultValue()) {
852  setAttribute(attrProperty.getAttr(), attrProperty.getDefaultValue());
853  }
854  }
855 }
856 
857 
858 void
859 GNEAttributeCarrier::toggleAttribute(SumoXMLAttr /*key*/, const bool /*value*/) {
860  throw ProcessError(TL("Nothing to toggle, implement in Children"));
861 }
862 
863 
864 void
866  // fill all groups of ACs
870  fillTAZElements();
873  // demand
878  // persons
884  // containers
889  //data
891  // check integrity of all Tags (function checkTagIntegrity() throws an exception if there is an inconsistency)
892  for (const auto& tagProperty : myTagProperties) {
893  tagProperty.second.checkTagIntegrity();
894  }
895 }
896 
897 
898 void
900  // declare empty GNEAttributeProperties
901  GNEAttributeProperties attrProperty;
902 
903  // obtain Node Types except SumoXMLNodeType::DEAD_END_DEPRECATED
904  const auto& neteditOptions = OptionsCont::getOptions();
905  std::vector<std::string> nodeTypes = SUMOXMLDefinitions::NodeTypes.getStrings();
906  nodeTypes.erase(std::find(nodeTypes.begin(), nodeTypes.end(), toString(SumoXMLNodeType::DEAD_END_DEPRECATED)));
907  nodeTypes.erase(std::find(nodeTypes.begin(), nodeTypes.end(), toString(SumoXMLNodeType::DEAD_END)));
908  nodeTypes.erase(std::find(nodeTypes.begin(), nodeTypes.end(), toString(SumoXMLNodeType::INTERNAL)));
909  // obtain TLTypes (note: avoid insert all TLTypes because some of them are experimental and not documented)
910  std::vector<std::string> TLTypes;
911  TLTypes.push_back(toString(TrafficLightType::STATIC));
912  TLTypes.push_back(toString(TrafficLightType::ACTUATED));
913  TLTypes.push_back(toString(TrafficLightType::DELAYBASED));
914  TLTypes.push_back(toString(TrafficLightType::NEMA));
915  // fill networkElement ACs
916  SumoXMLTag currentTag = SUMO_TAG_JUNCTION;
917  {
918  // set values of tag
919  myTagProperties[currentTag] = GNETagProperties(currentTag,
920  GNETagProperties::TagType::NETWORKELEMENT,
921  GNETagProperties::TagProperty::RTREE,
922  GNETagProperties::TagParents::NO_PARENTS,
923  GNETagProperties::Conflicts::NO_CONFLICTS,
924  GUIIcon::JUNCTION, currentTag, TL("Junction"));
925  // set values of attributes
926  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
928  TL("The id of the node"));
929  myTagProperties[currentTag].addAttribute(attrProperty);
930 
932  GNEAttributeProperties::STRING | GNEAttributeProperties::UNIQUE | GNEAttributeProperties::POSITION | GNEAttributeProperties::UPDATEGEOMETRY, // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
933  TL("The x-y-z position of the node on the plane in meters"));
934  myTagProperties[currentTag].addAttribute(attrProperty);
935 
936  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
938  TL("An optional type for the node"));
939  attrProperty.setDiscreteValues(nodeTypes);
940  myTagProperties[currentTag].addAttribute(attrProperty);
941 
944  TL("A custom shape for that node"));
945  myTagProperties[currentTag].addAttribute(attrProperty);
946 
949  TL("Optional turning radius (for all corners) for that node in meters"),
950  "1.5");
951  myTagProperties[currentTag].addAttribute(attrProperty);
952 
955  TL("Whether the junction-blocking-heuristic should be activated at this node"),
956  "1");
957  myTagProperties[currentTag].addAttribute(attrProperty);
958 
961  TL("How to compute right of way rules at this node"),
963  attrProperty.setDiscreteValues(SUMOXMLDefinitions::RightOfWayValues.getStrings());
964  myTagProperties[currentTag].addAttribute(attrProperty);
965 
968  TL("Whether this junction is at the fringe of the network"),
970  attrProperty.setDiscreteValues(SUMOXMLDefinitions::FringeTypeValues.getStrings());
971  myTagProperties[currentTag].addAttribute(attrProperty);
972 
973  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
975  TL("Optional name of junction"));
976  myTagProperties[currentTag].addAttribute(attrProperty);
977 
980  TL("An optional type for the traffic light algorithm"));
981  attrProperty.setDiscreteValues(TLTypes);
982  myTagProperties[currentTag].addAttribute(attrProperty);
983 
986  TL("An optional layout for the traffic light plan"));
991  myTagProperties[currentTag].addAttribute(attrProperty);
992 
993  attrProperty = GNEAttributeProperties(SUMO_ATTR_TLID,
995  TL("An optional id for the traffic light program"));
996  myTagProperties[currentTag].addAttribute(attrProperty);
997 
1000  TL("Whether this junction is part of a roundabout"), "false");
1001  myTagProperties[currentTag].addAttribute(attrProperty);
1002  }
1003  currentTag = SUMO_TAG_TYPE;
1004  {
1005  // set values of tag
1006  myTagProperties[currentTag] = GNETagProperties(currentTag,
1007  GNETagProperties::TagType::NETWORKELEMENT,
1008  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOTSELECTABLE,
1009  GNETagProperties::TagParents::NO_PARENTS,
1010  GNETagProperties::Conflicts::NO_CONFLICTS,
1011  GUIIcon::EDGETYPE, currentTag, TL("EdgeType"));
1012  // set values of attributes
1013  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1015  TL("The id of the edge"));
1016  myTagProperties[currentTag].addAttribute(attrProperty);
1017 
1020  TL("The number of lanes of the edge"),
1021  toString(neteditOptions.getInt("default.lanenumber")));
1022  myTagProperties[currentTag].addAttribute(attrProperty);
1023 
1024  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
1026  TL("The maximum speed allowed on the edge in m/s"),
1027  toString(neteditOptions.getFloat("default.speed")));
1028  myTagProperties[currentTag].addAttribute(attrProperty);
1029 
1030  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
1032  TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1033  "all");
1034  myTagProperties[currentTag].addAttribute(attrProperty);
1035 
1038  TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1039  myTagProperties[currentTag].addAttribute(attrProperty);
1040 
1043  TL("The spreadType defines how to compute the lane geometry from the edge geometry (used for visualization)"),
1046  myTagProperties[currentTag].addAttribute(attrProperty);
1047 
1050  TL("The priority of the edge"),
1051  toString(neteditOptions.getInt("default.priority")));
1052  myTagProperties[currentTag].addAttribute(attrProperty);
1053 
1054  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1056  TL("Lane width for all lanes of this edge in meters (used for visualization)"),
1057  "default");
1058  myTagProperties[currentTag].addAttribute(attrProperty);
1059 
1062  TL("The width of the sidewalk that should be added as an additional lane"),
1063  "default");
1064  myTagProperties[currentTag].addAttribute(attrProperty);
1065 
1068  TL("The width of the bike lane that should be added as an additional lane"),
1069  "default");
1070  myTagProperties[currentTag].addAttribute(attrProperty);
1071  }
1072  currentTag = SUMO_TAG_LANETYPE;
1073  {
1074  // set values of tag
1075  myTagProperties[currentTag] = GNETagProperties(currentTag,
1076  GNETagProperties::TagType::NETWORKELEMENT,
1077  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOTSELECTABLE,
1078  GNETagProperties::TagParents::NO_PARENTS,
1079  GNETagProperties::Conflicts::NO_CONFLICTS,
1080  GUIIcon::LANETYPE, currentTag, TL("LaneType"));
1081  // set values of attributes
1082  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
1084  TL("The maximum speed allowed on the lane in m/s"),
1085  toString(neteditOptions.getFloat("default.speed")));
1086  myTagProperties[currentTag].addAttribute(attrProperty);
1087 
1088  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
1090  TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1091  "all");
1092  myTagProperties[currentTag].addAttribute(attrProperty);
1093 
1096  TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1097  myTagProperties[currentTag].addAttribute(attrProperty);
1098 
1099  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1101  TL("Lane width for all lanes of this type in meters (used for visualization)"),
1102  "default");
1103  myTagProperties[currentTag].addAttribute(attrProperty);
1104  }
1105  currentTag = SUMO_TAG_EDGE;
1106  {
1107  // set values of tag
1108  myTagProperties[currentTag] = GNETagProperties(currentTag,
1109  GNETagProperties::TagType::NETWORKELEMENT,
1110  GNETagProperties::TagProperty::RTREE,
1111  GNETagProperties::TagParents::NO_PARENTS,
1112  GNETagProperties::Conflicts::NO_CONFLICTS,
1113  GUIIcon::EDGE, currentTag, TL("Edge"));
1114  // set values of attributes
1115  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1117  TL("Edge ID"));
1118  myTagProperties[currentTag].addAttribute(attrProperty);
1119 
1120  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
1122  TL("The name of a node within the nodes-file the edge shall start at"));
1123  myTagProperties[currentTag].addAttribute(attrProperty);
1124 
1125  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
1127  TL("The name of a node within the nodes-file the edge shall end at"));
1128  myTagProperties[currentTag].addAttribute(attrProperty);
1129 
1130  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
1132  TL("The maximum speed allowed on the edge in m/s"),
1133  toString(neteditOptions.getFloat("default.speed")));
1134  myTagProperties[currentTag].addAttribute(attrProperty);
1135 
1138  TL("The priority of the edge"),
1139  toString(neteditOptions.getInt("default.priority")));
1140  myTagProperties[currentTag].addAttribute(attrProperty);
1141 
1144  TL("The number of lanes of the edge"),
1145  toString(neteditOptions.getInt("default.lanenumber")));
1146  myTagProperties[currentTag].addAttribute(attrProperty);
1147 
1148  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
1150  TL("The name of a type within the SUMO edge type file"));
1151  myTagProperties[currentTag].addAttribute(attrProperty);
1152 
1153  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
1155  TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1156  "all");
1157  myTagProperties[currentTag].addAttribute(attrProperty);
1158 
1161  TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1162  myTagProperties[currentTag].addAttribute(attrProperty);
1163 
1164  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
1166  TL("If the shape is given it should start and end with the positions of the from-node and to-node"));
1167  myTagProperties[currentTag].addAttribute(attrProperty);
1168 
1171  TL("The length of the edge in meter"));
1172  myTagProperties[currentTag].addAttribute(attrProperty);
1173 
1176  TL("The spreadType defines how to compute the lane geometry from the edge geometry (used for visualization)"),
1179  myTagProperties[currentTag].addAttribute(attrProperty);
1180 
1181  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1183  TL("street name (does not need to be unique, used for visualization)"));
1184  myTagProperties[currentTag].addAttribute(attrProperty);
1185 
1186  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1188  TL("Lane width for all lanes of this edge in meters (used for visualization)"),
1189  "-1");
1190  myTagProperties[currentTag].addAttribute(attrProperty);
1191 
1194  TL("Move the stop line back from the intersection by the given amount"),
1195  "0.00");
1196  myTagProperties[currentTag].addAttribute(attrProperty);
1197 
1200  TL("Custom position in which shape start (by default position of junction from)"));
1201  myTagProperties[currentTag].addAttribute(attrProperty);
1202 
1205  TL("Custom position in which shape end (by default position of junction from)"));
1206  myTagProperties[currentTag].addAttribute(attrProperty);
1207 
1208  attrProperty = GNEAttributeProperties(GNE_ATTR_BIDIR,
1209  GNEAttributeProperties::BOOL | GNEAttributeProperties::DEFAULTVALUE, // virtual attribute to check of this edge is part of a bidirectional railway (cannot be edited)
1210  TL("Show if edge is bidirectional"),
1211  "0");
1212  myTagProperties[currentTag].addAttribute(attrProperty);
1213 
1216  TL("Distance"),
1217  "0.00");
1218  myTagProperties[currentTag].addAttribute(attrProperty);
1219 
1222  TL("The stop offset as positive value in meters"),
1223  "0.00");
1224  myTagProperties[currentTag].addAttribute(attrProperty);
1225 
1228  TL("Specifies, for which vehicle classes the stopOffset does NOT apply."));
1229  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1230  myTagProperties[currentTag].addAttribute(attrProperty);
1231 
1234  TL("Whether this edge is part of a roundabout"), "false");
1235  myTagProperties[currentTag].addAttribute(attrProperty);
1236  }
1237  currentTag = SUMO_TAG_LANE;
1238  {
1239  // set values of tag
1240  myTagProperties[currentTag] = GNETagProperties(currentTag,
1241  GNETagProperties::TagType::NETWORKELEMENT,
1242  GNETagProperties::TagProperty::NO_PROPERTY,
1243  GNETagProperties::TagParents::NO_PARENTS,
1244  GNETagProperties::Conflicts::NO_CONFLICTS,
1245  GUIIcon::LANE, currentTag, TL("Lane"));
1246  // set values of attributes
1247  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1249  TL("Lane ID (Automatic, non editable)"));
1250  myTagProperties[currentTag].addAttribute(attrProperty);
1251 
1252  attrProperty = GNEAttributeProperties(SUMO_ATTR_INDEX,
1254  TL("The enumeration index of the lane (0 is the rightmost lane, <NUMBER_LANES>-1 is the leftmost one)"));
1255  myTagProperties[currentTag].addAttribute(attrProperty);
1256 
1257  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
1259  TL("Speed in meters per second"),
1260  "13.89");
1261  myTagProperties[currentTag].addAttribute(attrProperty);
1262 
1263  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
1265  TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1266  "all");
1267  myTagProperties[currentTag].addAttribute(attrProperty);
1268 
1271  TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1272  myTagProperties[currentTag].addAttribute(attrProperty);
1273 
1274  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1276  TL("Width in meters (used for visualization)"),
1277  "-1");
1278  myTagProperties[currentTag].addAttribute(attrProperty);
1279 
1282  TL("Move the stop line back from the intersection by the given amount"),
1283  "0.00");
1284  myTagProperties[currentTag].addAttribute(attrProperty);
1285 
1288  TL("Enable or disable lane as acceleration lane"),
1289  "0");
1290  myTagProperties[currentTag].addAttribute(attrProperty);
1291 
1294  TL("If the shape is given it overrides the computation based on edge shape"));
1295  myTagProperties[currentTag].addAttribute(attrProperty);
1296 
1299  TL("If given, this defines the opposite direction lane"));
1300  myTagProperties[currentTag].addAttribute(attrProperty);
1301 
1304  TL("Permit changing left only for to the given vehicle classes"),
1305  "all");
1306  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1307  myTagProperties[currentTag].addAttribute(attrProperty);
1308 
1311  TL("Permit changing right only for to the given vehicle classes"),
1312  "all");
1313  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1314  myTagProperties[currentTag].addAttribute(attrProperty);
1315 
1316  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
1318  TL("Lane type description (optional)"));
1319  myTagProperties[currentTag].addAttribute(attrProperty);
1320 
1323  TL("The stop offset as positive value in meters"),
1324  "0.00");
1325  myTagProperties[currentTag].addAttribute(attrProperty);
1326 
1329  TL("Specifies, for which vehicle classes the stopOffset does NOT apply."));
1330  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1331  myTagProperties[currentTag].addAttribute(attrProperty);
1332  }
1333  currentTag = SUMO_TAG_CROSSING;
1334  {
1335  // set values of tag
1336  myTagProperties[currentTag] = GNETagProperties(currentTag,
1337  GNETagProperties::TagType::NETWORKELEMENT,
1338  GNETagProperties::TagProperty::NO_PROPERTY,
1339  GNETagProperties::TagParents::NO_PARENTS,
1340  GNETagProperties::Conflicts::NO_CONFLICTS,
1341  GUIIcon::CROSSING, currentTag, TL("Crossing"));
1342  // set values of attributes
1343  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1345  TL("Crossing ID"));
1346  myTagProperties[currentTag].addAttribute(attrProperty);
1347 
1348  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
1350  TL("The (road) edges which are crossed"));
1351  myTagProperties[currentTag].addAttribute(attrProperty);
1352 
1355  TL("Whether the pedestrians have priority over the vehicles (automatically set to true at tls-controlled intersections)"),
1356  "0");
1357  myTagProperties[currentTag].addAttribute(attrProperty);
1358 
1359  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1361  TL("The width of the crossings"),
1362  toString(OptionsCont::getOptions().getFloat("default.crossing-width")));
1363  myTagProperties[currentTag].addAttribute(attrProperty);
1364 
1367  TL("sets the tls-index for this crossing"),
1368  "-1");
1369  myTagProperties[currentTag].addAttribute(attrProperty);
1370 
1373  TL("sets the opposite-direction tls-index for this crossing"),
1374  "-1");
1375  myTagProperties[currentTag].addAttribute(attrProperty);
1376 
1379  TL("Overrides default shape of pedestrian crossing"));
1380  myTagProperties[currentTag].addAttribute(attrProperty);
1381  }
1382  currentTag = SUMO_TAG_WALKINGAREA;
1383  {
1384  // set values of tag
1385  myTagProperties[currentTag] = GNETagProperties(currentTag,
1386  GNETagProperties::TagType::NETWORKELEMENT,
1387  GNETagProperties::TagProperty::NOPARAMETERS,
1388  GNETagProperties::TagParents::NO_PARENTS,
1389  GNETagProperties::Conflicts::NO_CONFLICTS,
1390  GUIIcon::WALKINGAREA, currentTag, TL("WalkingArea"));
1391  // set values of attributes
1392  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1394  TL("Walking Area ID"));
1395  myTagProperties[currentTag].addAttribute(attrProperty);
1396 
1397  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1399  TL("The width of the WalkingArea"),
1400  toString(OptionsCont::getOptions().getFloat("default.sidewalk-width")));
1401  myTagProperties[currentTag].addAttribute(attrProperty);
1402 
1405  TL("The length of the WalkingArea in meter"));
1406  myTagProperties[currentTag].addAttribute(attrProperty);
1407 
1408  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
1410  TL("Overrides default shape of pedestrian sidewalk"));
1411  myTagProperties[currentTag].addAttribute(attrProperty);
1412  }
1413  currentTag = SUMO_TAG_CONNECTION;
1414  {
1415  // set values of tag
1416  myTagProperties[currentTag] = GNETagProperties(currentTag,
1417  GNETagProperties::TagType::NETWORKELEMENT,
1418  GNETagProperties::TagProperty::NO_PROPERTY,
1419  GNETagProperties::TagParents::NO_PARENTS,
1420  GNETagProperties::Conflicts::NO_CONFLICTS,
1421  GUIIcon::CONNECTION, currentTag, TL("Connection"));
1422  // set values of attributes
1423  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
1425  TL("The ID of the edge the vehicles leave"));
1426  myTagProperties[currentTag].addAttribute(attrProperty);
1427 
1428  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
1430  TL("The ID of the edge the vehicles may reach when leaving 'from'"));
1431  myTagProperties[currentTag].addAttribute(attrProperty);
1432 
1435  TL("the lane index of the incoming lane (numbers starting with 0)"));
1436  myTagProperties[currentTag].addAttribute(attrProperty);
1437 
1440  TL("the lane index of the outgoing lane (numbers starting with 0)"));
1441  myTagProperties[currentTag].addAttribute(attrProperty);
1442 
1443  attrProperty = GNEAttributeProperties(SUMO_ATTR_PASS,
1445  TL("if set, vehicles which pass this (lane-2-lane) connection) will not wait"),
1446  "0");
1447  myTagProperties[currentTag].addAttribute(attrProperty);
1448 
1451  TL("if set to false, vehicles which pass this (lane-2-lane) connection) will not worry about blocking the intersection"),
1452  "0");
1453  myTagProperties[currentTag].addAttribute(attrProperty);
1454 
1457  TL("If set to a more than 0 value, an internal junction will be built at this position (in m)/n from the start of the internal lane for this connection"),
1459  myTagProperties[currentTag].addAttribute(attrProperty);
1460 
1463  TL("If set to true, This connection will not be TLS-controlled despite its node being controlled"),
1464  "0");
1465  myTagProperties[currentTag].addAttribute(attrProperty);
1466 
1469  TL("Vision distance between vehicles"),
1471  myTagProperties[currentTag].addAttribute(attrProperty);
1472 
1475  TL("sets index of this connection within the controlling traffic light"),
1476  "-1");
1477  myTagProperties[currentTag].addAttribute(attrProperty);
1478 
1481  TL("sets index for the internal junction of this connection within the controlling traffic light"),
1482  "-1");
1483  myTagProperties[currentTag].addAttribute(attrProperty);
1484 
1485  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
1487  TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1488  "all");
1489  myTagProperties[currentTag].addAttribute(attrProperty);
1490 
1493  TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1494  myTagProperties[currentTag].addAttribute(attrProperty);
1495 
1496  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
1498  TL("sets custom speed limit for the connection"),
1500  myTagProperties[currentTag].addAttribute(attrProperty);
1501 
1504  TL("sets custom length for the connection"),
1506  myTagProperties[currentTag].addAttribute(attrProperty);
1507 
1510  TL("sets custom shape for the connection"));
1511  myTagProperties[currentTag].addAttribute(attrProperty);
1512 
1515  TL("Permit changing left only for to the given vehicle classes"),
1516  "all");
1517  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1518  myTagProperties[currentTag].addAttribute(attrProperty);
1519 
1522  TL("Permit changing right only for to the given vehicle classes"),
1523  "all");
1524  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1525  myTagProperties[currentTag].addAttribute(attrProperty);
1526 
1529  TL("if set to true, vehicles will make a turn in 2 steps"),
1530  "0");
1531  myTagProperties[currentTag].addAttribute(attrProperty);
1532 
1533  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
1535  TL("set a custom edge type (for applying vClass-specific speed restrictions)"));
1536  myTagProperties[currentTag].addAttribute(attrProperty);
1537 
1538 
1539  attrProperty = GNEAttributeProperties(SUMO_ATTR_DIR,
1541  TL("turning direction for this connection (computed)"));
1542  myTagProperties[currentTag].addAttribute(attrProperty);
1543 
1544  attrProperty = GNEAttributeProperties(SUMO_ATTR_STATE,
1546  TL("link state for this connection (computed)"));
1547  myTagProperties[currentTag].addAttribute(attrProperty);
1548  }
1549  currentTag = GNE_TAG_INTERNAL_LANE;
1550  {
1551  // set values of tag
1552  myTagProperties[currentTag] = GNETagProperties(currentTag,
1553  GNETagProperties::TagType::INTERNALLANE,
1554  GNETagProperties::TagProperty::NO_PROPERTY,
1555  GNETagProperties::TagParents::NO_PARENTS,
1556  GNETagProperties::Conflicts::NO_CONFLICTS,
1557  GUIIcon::JUNCTION, currentTag, TL("InternalLanes"));
1558  // internal lanes does't have attributes
1559  }
1560 }
1561 
1562 
1563 void
1565  // declare empty GNEAttributeProperties
1566  GNEAttributeProperties attrProperty;
1567 
1568  // fill additional elements
1569  SumoXMLTag currentTag = SUMO_TAG_BUS_STOP;
1570  {
1571  // set values of tag
1572  myTagProperties[currentTag] = GNETagProperties(currentTag,
1573  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::STOPPINGPLACE,
1574  GNETagProperties::TagProperty::MASKSTARTENDPOS,
1575  GNETagProperties::Conflicts::NO_CONFLICTS,
1576  GNETagProperties::Conflicts::POS_LANE_START | GNETagProperties::Conflicts::POS_LANE_END,
1577  GUIIcon::BUSSTOP, currentTag, TL("BusStop"),
1578  {}, FXRGBA(240, 255, 205, 255));
1579  // set values of attributes
1580  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1582  TL("The id of bus stop"));
1583  myTagProperties[currentTag].addAttribute(attrProperty);
1584 
1585  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1587  TL("The name of the lane the bus stop shall be located at"));
1588  myTagProperties[currentTag].addAttribute(attrProperty);
1589 
1592  TL("The begin position on the lane (the lower position on the lane) in meters"));
1593 
1594  myTagProperties[currentTag].addAttribute(attrProperty);
1597  TL("The end position on the lane (the higher position on the lane) in meters, must be larger than startPos by more than 0.1m"));
1598  myTagProperties[currentTag].addAttribute(attrProperty);
1599 
1600  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1602  TL("Name of busStop"));
1603  myTagProperties[currentTag].addAttribute(attrProperty);
1604 
1607  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1608  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1") + std::string("\n") +
1609  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1610  "0");
1611  myTagProperties[currentTag].addAttribute(attrProperty);
1612 
1613  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
1615  TL("Meant to be the names of the bus lines that stop at this bus stop. This is only used for visualization purposes"));
1616  myTagProperties[currentTag].addAttribute(attrProperty);
1617 
1620  TL("Larger numbers of persons trying to enter will create an upstream jam on the sidewalk"),
1621  "6");
1622  myTagProperties[currentTag].addAttribute(attrProperty);
1623 
1626  TL("Optional space definition for vehicles that park at this stop"),
1627  "0.00");
1628  myTagProperties[currentTag].addAttribute(attrProperty);
1629 
1630  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
1632  TL("The RGBA color with which the busStop shall be displayed"));
1633  myTagProperties[currentTag].addAttribute(attrProperty);
1634 
1635  }
1636  currentTag = SUMO_TAG_TRAIN_STOP;
1637  {
1638  // set values of tag
1639  myTagProperties[currentTag] = GNETagProperties(currentTag,
1640  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::STOPPINGPLACE,
1641  GNETagProperties::TagProperty::MASKSTARTENDPOS,
1642  GNETagProperties::Conflicts::NO_CONFLICTS,
1643  GNETagProperties::Conflicts::POS_LANE_START | GNETagProperties::Conflicts::POS_LANE_END,
1644  GUIIcon::TRAINSTOP, currentTag, TL("TrainStop"),
1645  {}, FXRGBA(240, 255, 205, 255));
1646  // set values of attributes
1647  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1649  TL("The id of train stop"));
1650  myTagProperties[currentTag].addAttribute(attrProperty);
1651 
1652  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1654  TL("The name of the lane the train stop shall be located at"));
1655  myTagProperties[currentTag].addAttribute(attrProperty);
1656 
1659  TL("The begin position on the lane (the lower position on the lane) in meters"));
1660 
1661  myTagProperties[currentTag].addAttribute(attrProperty);
1664  TL("The end position on the lane (the higher position on the lane) in meters, must be larger than startPos by more than 0.1m"));
1665  myTagProperties[currentTag].addAttribute(attrProperty);
1666 
1667  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1669  TL("Name of trainStop"));
1670  myTagProperties[currentTag].addAttribute(attrProperty);
1671 
1674  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1675  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1676  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1677  "0");
1678  myTagProperties[currentTag].addAttribute(attrProperty);
1679 
1680  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
1682  TL("Meant to be the names of the train lines that stop at this train stop. This is only used for visualization purposes"));
1683  myTagProperties[currentTag].addAttribute(attrProperty);
1684 
1687  TL("Larger numbers of persons trying to enter will create an upstream jam on the sidewalk"),
1688  "6");
1689  myTagProperties[currentTag].addAttribute(attrProperty);
1690 
1693  TL("Optional space definition for vehicles that park at this stop"),
1694  "0.00");
1695  myTagProperties[currentTag].addAttribute(attrProperty);
1696 
1697  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
1699  TL("The RGBA color with which the trainStop shall be displayed"));
1700  myTagProperties[currentTag].addAttribute(attrProperty);
1701 
1702  }
1703  currentTag = SUMO_TAG_ACCESS;
1704  {
1705  // set values of tag
1706  myTagProperties[currentTag] = GNETagProperties(currentTag,
1707  GNETagProperties::TagType::ADDITIONALELEMENT,
1708  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::REPARENT,
1709  GNETagProperties::Conflicts::NO_CONFLICTS,
1710  GNETagProperties::Conflicts::POS_LANE,
1711  GUIIcon::ACCESS, currentTag, TL("Access"),
1712  {SUMO_TAG_BUS_STOP, SUMO_TAG_TRAIN_STOP}, FXRGBA(240, 255, 205, 255));
1713  // set values of attributes
1714  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1716  TL("The name of the lane the stop access shall be located at"));
1717  myTagProperties[currentTag].addAttribute(attrProperty);
1718 
1721  TL("The position on the lane (the lower position on the lane) in meters"),
1722  "0.00");
1723  myTagProperties[currentTag].addAttribute(attrProperty);
1724 
1727  TL("The walking length of the access in meters"),
1728  "-1.00");
1729  myTagProperties[currentTag].addAttribute(attrProperty);
1730 
1733  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1734  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1735  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1736  "0");
1737  myTagProperties[currentTag].addAttribute(attrProperty);
1738 
1739  }
1740  currentTag = SUMO_TAG_CONTAINER_STOP;
1741  {
1742  // set values of tag
1743  myTagProperties[currentTag] = GNETagProperties(currentTag,
1744  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::STOPPINGPLACE,
1745  GNETagProperties::TagProperty::MASKSTARTENDPOS,
1746  GNETagProperties::Conflicts::NO_CONFLICTS,
1747  GNETagProperties::Conflicts::POS_LANE_START | GNETagProperties::Conflicts::POS_LANE_END,
1748  GUIIcon::CONTAINERSTOP, currentTag, TL("ContainerStop"),
1749  {}, FXRGBA(240, 255, 205, 255));
1750  // set values of attributes
1751  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1753  TL("The id of container stop"));
1754  myTagProperties[currentTag].addAttribute(attrProperty);
1755 
1756  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1758  TL("The name of the lane the container stop shall be located at"));
1759  myTagProperties[currentTag].addAttribute(attrProperty);
1760 
1763  TL("The begin position on the lane (the lower position on the lane) in meters"));
1764  myTagProperties[currentTag].addAttribute(attrProperty);
1765 
1768  TL("The end position on the lane (the higher position on the lane) in meters, must be larger than startPos by more than 0.1m"));
1769  myTagProperties[currentTag].addAttribute(attrProperty);
1770 
1771  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1773  TL("Name of containerStop"));
1774  myTagProperties[currentTag].addAttribute(attrProperty);
1775 
1778  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1779  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1780  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1781  "0");
1782  myTagProperties[currentTag].addAttribute(attrProperty);
1783 
1784  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
1786  TL("meant to be the names of the bus lines that stop at this container stop. This is only used for visualization purposes"));
1787  myTagProperties[currentTag].addAttribute(attrProperty);
1788 
1791  TL("Larger numbers of container trying to enter will create an upstream jam on the sidewalk"),
1792  "6");
1793  myTagProperties[currentTag].addAttribute(attrProperty);
1794 
1797  TL("Optional space definition for vehicles that park at this stop"),
1798  "0.00");
1799  myTagProperties[currentTag].addAttribute(attrProperty);
1800 
1801  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
1803  TL("The RGBA color with which the containerStop shall be displayed"));
1804  myTagProperties[currentTag].addAttribute(attrProperty);
1805  }
1806  currentTag = SUMO_TAG_CHARGING_STATION;
1807  {
1808  // set values of tag
1809  myTagProperties[currentTag] = GNETagProperties(currentTag,
1810  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::STOPPINGPLACE,
1811  GNETagProperties::TagProperty::MASKSTARTENDPOS,
1812  GNETagProperties::Conflicts::NO_CONFLICTS,
1813  GNETagProperties::Conflicts::POS_LANE_START | GNETagProperties::Conflicts::POS_LANE_END,
1814  GUIIcon::CHARGINGSTATION, currentTag, TL("ChargingStation"),
1815  {}, FXRGBA(240, 255, 205, 255));
1816  // set values of attributes
1817  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1819  TL("The id of charging station"));
1820  myTagProperties[currentTag].addAttribute(attrProperty);
1821 
1822  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1824  TL("Lane of the charging station location"));
1825  myTagProperties[currentTag].addAttribute(attrProperty);
1826 
1829  TL("Begin position in the specified lane"));
1830  myTagProperties[currentTag].addAttribute(attrProperty);
1831 
1834  TL("End position in the specified lane"));
1835  myTagProperties[currentTag].addAttribute(attrProperty);
1836 
1837  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1839  TL("Name of chargingStation"));
1840  myTagProperties[currentTag].addAttribute(attrProperty);
1841 
1844  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1845  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1846  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1847  "0");
1848  myTagProperties[currentTag].addAttribute(attrProperty);
1849 
1852  TL("Charging power in W"),
1853  "22000.00");
1854  myTagProperties[currentTag].addAttribute(attrProperty);
1855 
1858  TL("Charging efficiency [0,1]"),
1859  "0.95");
1860  attrProperty.setRange(0, 1);
1861  myTagProperties[currentTag].addAttribute(attrProperty);
1862 
1865  TL("Enable or disable charge in transit, i.e. vehicle must or must not to stop for charging"),
1866  "0");
1867  myTagProperties[currentTag].addAttribute(attrProperty);
1868 
1871  TL("Time delay after the vehicles has reached / stopped on the charging station, before the energy transfer (charging) begins"),
1872  "0.00");
1873  myTagProperties[currentTag].addAttribute(attrProperty);
1874 
1877  TL("Battery charging type"),
1878  "normal");
1879  attrProperty.setDiscreteValues({"normal", "electric", "fuel"});
1880  myTagProperties[currentTag].addAttribute(attrProperty);
1881 
1884  TL("Waiting time before start charging"),
1885  "900.00");
1886  myTagProperties[currentTag].addAttribute(attrProperty);
1887 
1890  TL("Parking area the charging station is located"),
1891  "");
1892  myTagProperties[currentTag].addAttribute(attrProperty);
1893  }
1894  currentTag = SUMO_TAG_PARKING_AREA;
1895  {
1896  // set values of tag
1897  myTagProperties[currentTag] = GNETagProperties(currentTag,
1898  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::STOPPINGPLACE,
1899  GNETagProperties::TagProperty::MASKSTARTENDPOS,
1900  GNETagProperties::Conflicts::NO_CONFLICTS,
1901  GNETagProperties::Conflicts::POS_LANE_START | GNETagProperties::Conflicts::POS_LANE_END,
1902  GUIIcon::PARKINGAREA, currentTag, TL("ParkingArea"),
1903  {}, FXRGBA(240, 255, 205, 255));
1904  // set values of attributes
1905  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1907  TL("The id of ParkingArea"));
1908  myTagProperties[currentTag].addAttribute(attrProperty);
1909 
1910  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1912  TL("The name of the lane the Parking Area shall be located at"));
1913  myTagProperties[currentTag].addAttribute(attrProperty);
1914 
1917  TL("The begin position on the lane (the lower position on the lane) in meters"));
1918  myTagProperties[currentTag].addAttribute(attrProperty);
1919 
1922  TL("The end position on the lane (the higher position on the lane) in meters, must be larger than startPos by more than 0.1m"));
1923  myTagProperties[currentTag].addAttribute(attrProperty);
1924 
1927  TL("Lane position in that vehicle must depart when leaves parkingArea"));
1928  myTagProperties[currentTag].addAttribute(attrProperty);
1929 
1930  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1932  TL("Name of parkingArea"));
1933  myTagProperties[currentTag].addAttribute(attrProperty);
1934 
1937  TL("Accepted badges to access this parkingArea"));
1938  myTagProperties[currentTag].addAttribute(attrProperty);
1939 
1942  TL(" The number of parking spaces for road-side parking"),
1943  "0");
1944  myTagProperties[currentTag].addAttribute(attrProperty);
1945 
1948  TL("If set, vehicles will park on the road lane and thereby reducing capacity"),
1949  "0");
1950  myTagProperties[currentTag].addAttribute(attrProperty);
1951 
1954  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1955  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1956  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1957  "0");
1958  myTagProperties[currentTag].addAttribute(attrProperty);
1959 
1960  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1962  TL("The width of the road-side parking spaces"),
1964  myTagProperties[currentTag].addAttribute(attrProperty);
1965 
1968  TL("The length of the road-side parking spaces. By default (endPos - startPos) / roadsideCapacity"),
1969  "0.00");
1970  myTagProperties[currentTag].addAttribute(attrProperty);
1971 
1972  attrProperty = GNEAttributeProperties(SUMO_ATTR_ANGLE,
1974  TL("The angle of the road-side parking spaces relative to the lane angle, positive means clockwise"),
1975  "0.00");
1976  myTagProperties[currentTag].addAttribute(attrProperty);
1977 
1980  TL("Enable or disable lefthand position"),
1981  "0");
1982  myTagProperties[currentTag].addAttribute(attrProperty);
1983 
1984  }
1985  currentTag = SUMO_TAG_PARKING_SPACE;
1986  {
1987  // set values of tag
1988  myTagProperties[currentTag] = GNETagProperties(currentTag,
1989  GNETagProperties::TagType::ADDITIONALELEMENT,
1990  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::REPARENT | GNETagProperties::TagProperty::RTREE,
1991  GNETagProperties::TagParents::NO_PARENTS,
1992  GNETagProperties::Conflicts::NO_CONFLICTS,
1993  GUIIcon::PARKINGSPACE, currentTag, TL("ParkingSpace"),
1994  {SUMO_TAG_PARKING_AREA}, FXRGBA(240, 255, 205, 255));
1995  // set values of attributes
1997  GNEAttributeProperties::STRING | GNEAttributeProperties::UNIQUE | GNEAttributeProperties::POSITION | GNEAttributeProperties::UPDATEGEOMETRY, // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
1998  TL("The x-y-z position of the node on the plane in meters"));
1999  myTagProperties[currentTag].addAttribute(attrProperty);
2000 
2001  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2003  TL("Name of parking space"));
2004  myTagProperties[currentTag].addAttribute(attrProperty);
2005 
2006  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
2008  TL("The width of the road-side parking spaces"));
2009  myTagProperties[currentTag].addAttribute(attrProperty);
2010 
2013  TL("The length of the road-side parking spaces"));
2014  myTagProperties[currentTag].addAttribute(attrProperty);
2015 
2016  attrProperty = GNEAttributeProperties(SUMO_ATTR_ANGLE,
2018  TL("The angle of the road-side parking spaces relative to the lane angle, positive means clockwise"));
2019  myTagProperties[currentTag].addAttribute(attrProperty);
2020 
2021  attrProperty = GNEAttributeProperties(SUMO_ATTR_SLOPE,
2023  TL("The slope of the road-side parking spaces"),
2024  "0.00");
2025  myTagProperties[currentTag].addAttribute(attrProperty);
2026 
2027  }
2028  currentTag = SUMO_TAG_INDUCTION_LOOP;
2029  {
2030  // set values of tag
2031  myTagProperties[currentTag] = GNETagProperties(currentTag,
2032  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2033  GNETagProperties::TagParents::NO_PARENTS,
2034  GNETagProperties::Conflicts::NO_CONFLICTS,
2035  GNETagProperties::Conflicts::POS_LANE,
2036  GUIIcon::E1, currentTag, TL("E1 InductionLoop"),
2037  {}, FXRGBA(210, 233, 255, 255));
2038  // set values of attributes
2039  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2041  TL("The id of E1"));
2042  myTagProperties[currentTag].addAttribute(attrProperty);
2043 
2044  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2046  TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2047  myTagProperties[currentTag].addAttribute(attrProperty);
2048 
2051  TL("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"));
2052  myTagProperties[currentTag].addAttribute(attrProperty);
2053 
2056  TL("The aggregation period the values the detector collects shall be summed up"),
2057  "300.00");
2058  myTagProperties[currentTag].addAttribute(attrProperty);
2059 
2060  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2062  TL("Name of induction loop"));
2063  myTagProperties[currentTag].addAttribute(attrProperty);
2064 
2065  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2067  TL("The path to the output file"));
2068  myTagProperties[currentTag].addAttribute(attrProperty);
2069 
2072  TL("Space separated list of vehicle type ids to consider"));
2073  myTagProperties[currentTag].addAttribute(attrProperty);
2074 
2077  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2078  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2079  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2080  "0");
2081  myTagProperties[currentTag].addAttribute(attrProperty);
2082  }
2083  currentTag = SUMO_TAG_LANE_AREA_DETECTOR;
2084  {
2085  // set values of tag
2086  myTagProperties[currentTag] = GNETagProperties(currentTag,
2087  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2088  GNETagProperties::TagProperty::NO_PROPERTY,
2089  GNETagProperties::TagParents::NO_PARENTS,
2090  GNETagProperties::Conflicts::NO_CONFLICTS,
2091  GUIIcon::E2, currentTag, TL("E2 LaneAreaDetector"),
2092  {}, FXRGBA(210, 233, 255, 255));
2093  // set values of attributes
2094  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2096  TL("The id of E2"));
2097  myTagProperties[currentTag].addAttribute(attrProperty);
2098 
2099  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2101  TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2102  myTagProperties[currentTag].addAttribute(attrProperty);
2103 
2106  TL("The position on the lane the detector shall be laid on in meters"));
2107  myTagProperties[currentTag].addAttribute(attrProperty);
2108 
2111  TL("The length of the detector in meters"),
2112  "10.00");
2113  myTagProperties[currentTag].addAttribute(attrProperty);
2114 
2117  TL("The aggregation period the values the detector collects shall be summed up"),
2118  "300.00");
2119  myTagProperties[currentTag].addAttribute(attrProperty);
2120 
2121  attrProperty = GNEAttributeProperties(SUMO_ATTR_TLID,
2123  TL("The traffic light that triggers aggregation when switching"));
2124  myTagProperties[currentTag].addAttribute(attrProperty);
2125 
2126  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2128  TL("Name of lane area detector"));
2129  myTagProperties[currentTag].addAttribute(attrProperty);
2130 
2131  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2133  TL("The path to the output file"));
2134  myTagProperties[currentTag].addAttribute(attrProperty);
2135 
2138  TL("Space separated list of vehicle type ids to consider"));
2139  myTagProperties[currentTag].addAttribute(attrProperty);
2140 
2143  TL("The time-based threshold that describes how much time has to pass until a vehicle is recognized as halting)"),
2144  "1.00");
2145  myTagProperties[currentTag].addAttribute(attrProperty);
2146 
2149  TL("The speed-based threshold that describes how slow a vehicle has to be to be recognized as halting) in m/s"),
2150  "1.39");
2151  myTagProperties[currentTag].addAttribute(attrProperty);
2152 
2155  TL("The maximum distance to the next standing vehicle in order to make this vehicle count as a participant to the jam in m"),
2156  "10.00");
2157  myTagProperties[currentTag].addAttribute(attrProperty);
2158 
2161  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2162  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2163  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2164  "0");
2165  myTagProperties[currentTag].addAttribute(attrProperty);
2166  }
2167  currentTag = GNE_TAG_MULTI_LANE_AREA_DETECTOR;
2168  {
2169  // set values of tag
2170  myTagProperties[currentTag] = GNETagProperties(currentTag,
2171  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2172  GNETagProperties::TagProperty::NO_PROPERTY,
2173  GNETagProperties::TagParents::NO_PARENTS,
2174  GNETagProperties::Conflicts::NO_CONFLICTS,
2175  GUIIcon::E2, SUMO_TAG_LANE_AREA_DETECTOR, TL("E2 MultiLaneAreaDetector"),
2176  {}, FXRGBA(210, 233, 255, 255));
2177  // set values of attributes
2178  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2180  TL("The id of Multilane E2"));
2181  myTagProperties[currentTag].addAttribute(attrProperty);
2182 
2183  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANES,
2185  TL("The sequence of lane ids in which the detector shall be laid on"));
2186  myTagProperties[currentTag].addAttribute(attrProperty);
2187 
2190  TL("The position on the lane the detector shall be laid on in meters"));
2191  myTagProperties[currentTag].addAttribute(attrProperty);
2192 
2195  TL("The end position on the lane the detector shall be laid on in meters"));
2196  myTagProperties[currentTag].addAttribute(attrProperty);
2197 
2200  TL("The aggregation period the values the detector collects shall be summed up"),
2201  "300.00");
2202  myTagProperties[currentTag].addAttribute(attrProperty);
2203 
2204  attrProperty = GNEAttributeProperties(SUMO_ATTR_TLID,
2206  TL("The traffic light that triggers aggregation when switching"));
2207  myTagProperties[currentTag].addAttribute(attrProperty);
2208 
2209  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2211  TL("Name of Multilane E2 detector"));
2212  myTagProperties[currentTag].addAttribute(attrProperty);
2213 
2214  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2216  TL("The path to the output file"));
2217  myTagProperties[currentTag].addAttribute(attrProperty);
2218 
2221  TL("Space separated list of vehicle type ids to consider"));
2222  myTagProperties[currentTag].addAttribute(attrProperty);
2223 
2226  TL("The time-based threshold that describes how much time has to pass until a vehicle is recognized as halting)"),
2227  "1.00");
2228  myTagProperties[currentTag].addAttribute(attrProperty);
2229 
2232  TL("The speed-based threshold that describes how slow a vehicle has to be to be recognized as halting) in m/s"),
2233  "1.39");
2234  myTagProperties[currentTag].addAttribute(attrProperty);
2235 
2238  TL("The maximum distance to the next standing vehicle in order to make this vehicle count as a participant to the jam in m"),
2239  "10.00");
2240  myTagProperties[currentTag].addAttribute(attrProperty);
2241 
2244  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2245  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2246  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2247  "0");
2248  myTagProperties[currentTag].addAttribute(attrProperty);
2249 
2250  }
2251  currentTag = SUMO_TAG_ENTRY_EXIT_DETECTOR;
2252  {
2253  // set values of tag
2254  myTagProperties[currentTag] = GNETagProperties(currentTag,
2255  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2256  GNETagProperties::TagProperty::RTREE,
2257  GNETagProperties::Conflicts::NO_CONFLICTS,
2258  GNETagProperties::Conflicts::NO_ADDITIONAL_CHILDREN,
2259  GUIIcon::E3, currentTag, TL("E3 EntryExitDetector"),
2260  {}, FXRGBA(210, 233, 255, 255));
2261  // set values of attributes
2262  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2264  TL("The id of E3"));
2265  myTagProperties[currentTag].addAttribute(attrProperty);
2266 
2269  TL("X-Y position of detector in editor (Only used in netedit)"),
2270  "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2271  myTagProperties[currentTag].addAttribute(attrProperty);
2272 
2275  TL("The aggregation period the values the detector collects shall be summed up"),
2276  "300.00");
2277  myTagProperties[currentTag].addAttribute(attrProperty);
2278 
2279  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2281  TL("Name of Entry Exit detector"));
2282  myTagProperties[currentTag].addAttribute(attrProperty);
2283 
2284  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2286  TL("The path to the output file"));
2287  myTagProperties[currentTag].addAttribute(attrProperty);
2288 
2291  TL("Space separated list of vehicle type ids to consider"));
2292  myTagProperties[currentTag].addAttribute(attrProperty);
2293 
2296  TL("The time-based threshold that describes how much time has to pass until a vehicle is recognized as halting) in s"),
2297  "1.00");
2298  myTagProperties[currentTag].addAttribute(attrProperty);
2299 
2302  TL("The speed-based threshold that describes how slow a vehicle has to be to be recognized as halting) in m/s"),
2303  "1.39");
2304  myTagProperties[currentTag].addAttribute(attrProperty);
2305 
2308  TL("Whether no warning should be issued when a vehicle arrives within the detector area."),
2309  "0");
2310  myTagProperties[currentTag].addAttribute(attrProperty);
2311 
2312  }
2313  currentTag = SUMO_TAG_DET_ENTRY;
2314  {
2315  // set values of tag
2316  myTagProperties[currentTag] = GNETagProperties(currentTag,
2317  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2318  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::REPARENT,
2319  GNETagProperties::TagParents::NO_PARENTS,
2320  GNETagProperties::Conflicts::NO_CONFLICTS,
2321  GUIIcon::E3ENTRY, currentTag, TL("E3 DetEntry"),
2322  {SUMO_TAG_ENTRY_EXIT_DETECTOR}, FXRGBA(210, 233, 255, 255));
2323  // set values of attributes
2324  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2326  TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2327  myTagProperties[currentTag].addAttribute(attrProperty);
2328 
2331  TL("The position on the lane the detector shall be laid on in meters"));
2332  myTagProperties[currentTag].addAttribute(attrProperty);
2333 
2336  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2337  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2338  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2339  "0");
2340  myTagProperties[currentTag].addAttribute(attrProperty);
2341 
2342  }
2343  currentTag = SUMO_TAG_DET_EXIT;
2344  {
2345  // set values of tag
2346  myTagProperties[currentTag] = GNETagProperties(currentTag,
2347  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2348  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::REPARENT,
2349  GNETagProperties::TagParents::NO_PARENTS,
2350  GNETagProperties::Conflicts::NO_CONFLICTS,
2351  GUIIcon::E3EXIT, currentTag, TL("E3 DetExit"),
2352  {SUMO_TAG_ENTRY_EXIT_DETECTOR}, FXRGBA(210, 233, 255, 255));
2353  // set values of attributes
2354  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2356  TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2357  myTagProperties[currentTag].addAttribute(attrProperty);
2358 
2361  TL("The position on the lane the detector shall be laid on in meters"));
2362  myTagProperties[currentTag].addAttribute(attrProperty);
2363 
2366  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2367  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2368  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2369  "0");
2370  myTagProperties[currentTag].addAttribute(attrProperty);
2371 
2372  }
2373  currentTag = SUMO_TAG_INSTANT_INDUCTION_LOOP;
2374  {
2375  // set values of tag
2376  myTagProperties[currentTag] = GNETagProperties(currentTag,
2377  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2378  GNETagProperties::TagParents::NO_PARENTS,
2379  GNETagProperties::Conflicts::NO_CONFLICTS,
2380  GNETagProperties::Conflicts::POS_LANE,
2381  GUIIcon::E1INSTANT, currentTag, TL("E3 DetExit"),
2382  {}, FXRGBA(210, 233, 255, 255));
2383  // set values of attributes
2384  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2386  TL("The id of Instant Induction Loop (E1Instant)"));
2387  myTagProperties[currentTag].addAttribute(attrProperty);
2388 
2389  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2391  TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2392  myTagProperties[currentTag].addAttribute(attrProperty);
2393 
2396  TL("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"));
2397  myTagProperties[currentTag].addAttribute(attrProperty);
2398 
2399  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2401  TL("Name of instant induction loop"));
2402  myTagProperties[currentTag].addAttribute(attrProperty);
2403 
2404  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2406  TL("The path to the output file"));
2407  myTagProperties[currentTag].addAttribute(attrProperty);
2408 
2411  TL("Space separated list of vehicle type ids to consider"));
2412  myTagProperties[currentTag].addAttribute(attrProperty);
2413 
2416  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2417  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2418  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2419  "0");
2420  myTagProperties[currentTag].addAttribute(attrProperty);
2421  }
2422  currentTag = SUMO_TAG_ROUTEPROBE;
2423  {
2424  // set values of tag
2425  myTagProperties[currentTag] = GNETagProperties(currentTag,
2426  GNETagProperties::TagType::ADDITIONALELEMENT,
2427  GNETagProperties::TagProperty::CENTERAFTERCREATION,
2428  GNETagProperties::TagParents::NO_PARENTS,
2429  GNETagProperties::Conflicts::NO_CONFLICTS,
2430  GUIIcon::ROUTEPROBE, currentTag, TL("RouteProbe"),
2431  {}, FXRGBA(210, 233, 255, 255));
2432  // set values of attributes
2433  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2435  TL("The id of RouteProbe"));
2436  myTagProperties[currentTag].addAttribute(attrProperty);
2437 
2438  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
2440  TL("The id of an edge in the simulation network"));
2441  myTagProperties[currentTag].addAttribute(attrProperty);
2442 
2445  TL("The frequency in which to report the distribution"),
2446  "3600.00");
2447  myTagProperties[currentTag].addAttribute(attrProperty);
2448 
2449  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2451  TL("Name of route probe"));
2452  myTagProperties[currentTag].addAttribute(attrProperty);
2453 
2454  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2456  TL("The file for generated output"));
2457  myTagProperties[currentTag].addAttribute(attrProperty);
2458 
2459  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
2461  TL("The time at which to start generating output"),
2462  "0");
2463  myTagProperties[currentTag].addAttribute(attrProperty);
2464  }
2465  currentTag = SUMO_TAG_VSS;
2466  {
2467  // set values of tag
2468  myTagProperties[currentTag] = GNETagProperties(currentTag,
2469  GNETagProperties::TagType::ADDITIONALELEMENT,
2470  GNETagProperties::TagProperty::RTREE | GNETagProperties::TagProperty::DIALOG,
2471  GNETagProperties::TagParents::NO_PARENTS,
2472  GNETagProperties::Conflicts::NO_CONFLICTS,
2473  GUIIcon::VARIABLESPEEDSIGN, currentTag, TL("VariableSpeedSign"),
2474  {}, FXRGBA(210, 233, 255, 255));
2475  // set values of attributes
2476  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2478  TL("The id of Variable Speed Signal"));
2479  myTagProperties[currentTag].addAttribute(attrProperty);
2480 
2483  TL("X-Y position of detector in editor (Only used in netedit)"),
2484  "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2485  myTagProperties[currentTag].addAttribute(attrProperty);
2486 
2487  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANES,
2489  TL("List of Variable Speed Sign lanes"));
2490  myTagProperties[currentTag].addAttribute(attrProperty);
2491 
2492  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2494  TL("Name of Variable Speed Signal"));
2495  myTagProperties[currentTag].addAttribute(attrProperty);
2496 
2499  TL("Space separated list of vehicle type ids to consider (empty to affect all types)"));
2500  myTagProperties[currentTag].addAttribute(attrProperty);
2501  }
2502  currentTag = GNE_TAG_VSS_SYMBOL;
2503  {
2504  // set values of tag
2505  myTagProperties[currentTag] = GNETagProperties(currentTag,
2506  GNETagProperties::TagType::ADDITIONALELEMENT,
2507  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::NOTSELECTABLE | GNETagProperties::TagProperty::SYMBOL,
2508  GNETagProperties::TagParents::NO_PARENTS,
2509  GNETagProperties::Conflicts::NO_CONFLICTS,
2510  GUIIcon::LANE, currentTag, TL("VariableSpeedSign (lane)"),
2511  {SUMO_TAG_VSS}, FXRGBA(210, 233, 255, 255));
2512  }
2513  currentTag = SUMO_TAG_STEP;
2514  {
2515  // set values of tag
2516  myTagProperties[currentTag] = GNETagProperties(currentTag,
2517  GNETagProperties::TagType::ADDITIONALELEMENT,
2518  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
2519  GNETagProperties::TagParents::NO_PARENTS,
2520  GNETagProperties::Conflicts::NO_CONFLICTS,
2521  GUIIcon::VSSSTEP, currentTag, TL("VariableSpeedSign Step"),
2522  {SUMO_TAG_VSS}, FXRGBA(210, 233, 255, 255));
2523  // set values of attributes
2524  attrProperty = GNEAttributeProperties(SUMO_ATTR_TIME,
2526  TL("Time"));
2527  myTagProperties[currentTag].addAttribute(attrProperty);
2528 
2529  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
2531  TL("Speed"),
2532  "13.89");
2533  myTagProperties[currentTag].addAttribute(attrProperty);
2534  }
2535  currentTag = SUMO_TAG_CALIBRATOR;
2536  {
2537  // set values of tag
2538  myTagProperties[currentTag] = GNETagProperties(currentTag,
2539  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::CALIBRATOR,
2540  GNETagProperties::TagProperty::DIALOG | GNETagProperties::TagProperty::CENTERAFTERCREATION,
2541  GNETagProperties::TagParents::NO_PARENTS,
2542  GNETagProperties::Conflicts::NO_CONFLICTS,
2543  GUIIcon::CALIBRATOR, currentTag, TL("Calibrator"),
2544  {}, FXRGBA(253, 255, 206, 255));
2545  // set values of attributes
2546  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2548  TL("The id of Calibrator"));
2549  myTagProperties[currentTag].addAttribute(attrProperty);
2550 
2551  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
2553  TL("The id of edge in the simulation network"));
2554  myTagProperties[currentTag].addAttribute(attrProperty);
2555 
2558  TL("The position of the calibrator on the specified lane"),
2559  "0.00");
2560  myTagProperties[currentTag].addAttribute(attrProperty);
2561 
2564  TL("The aggregation interval in which to calibrate the flows. Default is step-length"),
2565  "1.00");
2566  myTagProperties[currentTag].addAttribute(attrProperty);
2567 
2568  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2570  TL("Name of Calibrator"));
2571  myTagProperties[currentTag].addAttribute(attrProperty);
2572 
2575  TL("The id of the routeProbe element from which to determine the route distribution for generated vehicles"));
2576  myTagProperties[currentTag].addAttribute(attrProperty);
2577 
2580  TL("The output file for writing calibrator information or NULL"));
2581  myTagProperties[currentTag].addAttribute(attrProperty);
2582 
2585  TL("A threshold value to detect and clear unexpected jamming"),
2586  "0.50");
2587  myTagProperties[currentTag].addAttribute(attrProperty);
2588 
2591  TL("space separated list of vehicle type ids to consider (empty to affect all types)"));
2592  myTagProperties[currentTag].addAttribute(attrProperty);
2593  }
2594  currentTag = GNE_TAG_CALIBRATOR_LANE;
2595  {
2596  // set values of tag
2597  myTagProperties[currentTag] = GNETagProperties(currentTag,
2598  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::CALIBRATOR,
2599  GNETagProperties::TagProperty::DIALOG | GNETagProperties::TagProperty::CENTERAFTERCREATION,
2600  GNETagProperties::TagParents::NO_PARENTS,
2601  GNETagProperties::Conflicts::NO_CONFLICTS,
2602  GUIIcon::CALIBRATOR, SUMO_TAG_CALIBRATOR, TL("CalibratorLane"),
2603  {}, FXRGBA(253, 255, 206, 255));
2604  // set values of attributes
2605  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2607  TL("The id of Calibrator"));
2608  myTagProperties[currentTag].addAttribute(attrProperty);
2609 
2610  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2612  TL("The id of lane in the simulation network"));
2613  myTagProperties[currentTag].addAttribute(attrProperty);
2614 
2617  TL("The position of the calibrator on the specified lane"),
2618  "0.00");
2619  myTagProperties[currentTag].addAttribute(attrProperty);
2620 
2623  TL("The aggregation interval in which to calibrate the flows. Default is step-length"),
2624  "1.00");
2625  myTagProperties[currentTag].addAttribute(attrProperty);
2626 
2627  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2629  TL("Name of calibrator lane"));
2630  myTagProperties[currentTag].addAttribute(attrProperty);
2631 
2634  TL("The id of the routeProbe element from which to determine the route distribution for generated vehicles"));
2635  myTagProperties[currentTag].addAttribute(attrProperty);
2636 
2639  TL("The output file for writing calibrator information or NULL"));
2640  myTagProperties[currentTag].addAttribute(attrProperty);
2641 
2644  TL("A threshold value to detect and clear unexpected jamming"),
2645  "0.50");
2646  myTagProperties[currentTag].addAttribute(attrProperty);
2647 
2650  TL("space separated list of vehicle type ids to consider (empty to affect all types)"));
2651  myTagProperties[currentTag].addAttribute(attrProperty);
2652  }
2653  currentTag = GNE_TAG_CALIBRATOR_FLOW;
2654  {
2655  // set values of tag
2656  myTagProperties[currentTag] = GNETagProperties(currentTag,
2657  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::CALIBRATOR,
2658  GNETagProperties::TagProperty::CHILD,
2659  GNETagProperties::TagParents::NO_PARENTS,
2660  GNETagProperties::Conflicts::NO_CONFLICTS,
2661  GUIIcon::FLOW, SUMO_TAG_FLOW, TL("CalibratorFlow"),
2662  {SUMO_TAG_CALIBRATOR}, FXRGBA(253, 255, 206, 255));
2663  // set values of attributes
2664  attrProperty = GNEAttributeProperties(SUMO_ATTR_ROUTE,
2666  TL("The id of the route the vehicle shall drive along"));
2667  myTagProperties[currentTag].addAttribute(attrProperty);
2668 
2669  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
2671  TL("First calibrator flow departure time"),
2672  "0");
2673  myTagProperties[currentTag].addAttribute(attrProperty);
2674 
2675  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
2677  TL("End of departure interval"),
2678  "3600");
2679  myTagProperties[currentTag].addAttribute(attrProperty);
2680 
2681  // fill common vehicle attributes
2682  fillCommonVehicleAttributes(currentTag);
2683 
2684  // optional attributes (at least one must be defined)
2685  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
2687  TL("The id of the vehicle type to use for this calibrator flow"),
2689  myTagProperties[currentTag].addAttribute(attrProperty);
2690 
2693  TL("Number of vehicles per hour, equally spaced"),
2694  "1800");
2695  myTagProperties[currentTag].addAttribute(attrProperty);
2696 
2697  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
2699  TL("Vehicle's speed"),
2700  "15.0");
2701  myTagProperties[currentTag].addAttribute(attrProperty);
2702  }
2703  currentTag = SUMO_TAG_REROUTER;
2704  {
2705  // set values of tag
2706  myTagProperties[currentTag] = GNETagProperties(currentTag,
2707  GNETagProperties::TagType::ADDITIONALELEMENT,
2708  GNETagProperties::TagProperty::RTREE | GNETagProperties::TagProperty::DIALOG,
2709  GNETagProperties::TagParents::NO_PARENTS,
2710  GNETagProperties::Conflicts::NO_CONFLICTS,
2711  GUIIcon::REROUTER, currentTag, TL("Rerouter"),
2712  {}, FXRGBA(255, 213, 213, 255));
2713 
2714  // set values of attributes
2715  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2717  TL("The id of Rerouter"));
2718  myTagProperties[currentTag].addAttribute(attrProperty);
2719 
2720  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
2722  TL("An edge id or a list of edge ids where vehicles shall be rerouted"));
2723  myTagProperties[currentTag].addAttribute(attrProperty);
2724 
2727  TL("X,Y position in editor (Only used in netedit)"),
2728  "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2729  myTagProperties[currentTag].addAttribute(attrProperty);
2730 
2731  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2733  TL("Name of Rerouter"));
2734  myTagProperties[currentTag].addAttribute(attrProperty);
2735 
2736  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
2738  TL("The probability for vehicle rerouting (0-1)"),
2739  "1.00");
2740  myTagProperties[currentTag].addAttribute(attrProperty);
2741 
2744  TL("The waiting time threshold (in s) that must be reached to activate rerouting (default -1 which disables the threshold)"),
2745  "0.00");
2746  myTagProperties[currentTag].addAttribute(attrProperty);
2747 
2750  TL("The list of vehicle types that shall be affected by this rerouter (empty to affect all types)"));
2751  myTagProperties[currentTag].addAttribute(attrProperty);
2752 
2753  attrProperty = GNEAttributeProperties(SUMO_ATTR_OFF,
2755  TL("Whether the router should be inactive initially (and switched on in the gui)"),
2756  "0");
2757  myTagProperties[currentTag].addAttribute(attrProperty);
2758 
2761  TL("If rerouter is optional"),
2762  "0");
2763  myTagProperties[currentTag].addAttribute(attrProperty);
2764  }
2765  currentTag = GNE_TAG_REROUTER_SYMBOL;
2766  {
2767  // set values of tag
2768  myTagProperties[currentTag] = GNETagProperties(currentTag,
2769  GNETagProperties::TagType::ADDITIONALELEMENT,
2770  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::NOTSELECTABLE | GNETagProperties::TagProperty::SYMBOL,
2771  GNETagProperties::TagParents::NO_PARENTS,
2772  GNETagProperties::Conflicts::NO_CONFLICTS,
2773  GUIIcon::EDGE, currentTag, TL("Rerouter (Edge)"),
2774  {GNE_TAG_REROUTER_SYMBOL}, FXRGBA(255, 213, 213, 255));
2775  }
2776  currentTag = SUMO_TAG_INTERVAL;
2777  {
2778  // set values of tag
2779  myTagProperties[currentTag] = GNETagProperties(currentTag,
2780  GNETagProperties::TagType::ADDITIONALELEMENT,
2781  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
2782  GNETagProperties::TagParents::NO_PARENTS,
2783  GNETagProperties::Conflicts::NO_CONFLICTS,
2784  GUIIcon::REROUTERINTERVAL, currentTag, TL("Rerouter Interval"),
2785  {SUMO_TAG_REROUTER}, FXRGBA(255, 213, 213, 255));
2786  // set values of attributes
2787  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
2789  TL("Begin"),
2790  "0");
2791  myTagProperties[currentTag].addAttribute(attrProperty);
2792 
2793  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
2795  TL("End"),
2796  "3600");
2797  myTagProperties[currentTag].addAttribute(attrProperty);
2798  }
2799  currentTag = SUMO_TAG_CLOSING_REROUTE;
2800  {
2801  // set values of tag
2802  myTagProperties[currentTag] = GNETagProperties(currentTag,
2803  GNETagProperties::TagType::ADDITIONALELEMENT,
2804  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
2805  GNETagProperties::TagParents::NO_PARENTS,
2806  GNETagProperties::Conflicts::NO_CONFLICTS,
2807  GUIIcon::CLOSINGREROUTE, currentTag, TL("ClosingReroute"),
2808  {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
2809  // set values of attributes
2810  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
2812  TL("Edge ID"));
2813  attrProperty.setSynonym(SUMO_ATTR_ID);
2814  myTagProperties[currentTag].addAttribute(attrProperty);
2815 
2816  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
2818  TL("allowed vehicles"));
2819  myTagProperties[currentTag].addAttribute(attrProperty);
2820 
2823  TL("disallowed vehicles"));
2824  myTagProperties[currentTag].addAttribute(attrProperty);
2825  }
2826  currentTag = SUMO_TAG_CLOSING_LANE_REROUTE;
2827  {
2828  // set values of tag
2829  myTagProperties[currentTag] = GNETagProperties(currentTag,
2830  GNETagProperties::TagType::ADDITIONALELEMENT,
2831  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
2832  GNETagProperties::TagParents::NO_PARENTS,
2833  GNETagProperties::Conflicts::NO_CONFLICTS,
2834  GUIIcon::CLOSINGLANEREROUTE, currentTag, TL("ClosingLaneReroute"),
2835  {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
2836  // set values of attributes
2837  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2839  TL("Lane ID"));
2840  attrProperty.setSynonym(SUMO_ATTR_ID);
2841  myTagProperties[currentTag].addAttribute(attrProperty);
2842 
2843  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
2845  TL("allowed vehicles"));
2846  myTagProperties[currentTag].addAttribute(attrProperty);
2847 
2850  TL("disallowed vehicles"));
2851  myTagProperties[currentTag].addAttribute(attrProperty);
2852  }
2853  currentTag = SUMO_TAG_DEST_PROB_REROUTE;
2854  {
2855  // set values of tag
2856  myTagProperties[currentTag] = GNETagProperties(currentTag,
2857  GNETagProperties::TagType::ADDITIONALELEMENT,
2858  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
2859  GNETagProperties::TagParents::NO_PARENTS,
2860  GNETagProperties::Conflicts::NO_CONFLICTS,
2861  GUIIcon::DESTPROBREROUTE, currentTag, TL("DestinationProbabilityReroute"),
2862  {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
2863  // set values of attributes
2864  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
2866  TL("Edge ID"));
2867  attrProperty.setSynonym(SUMO_ATTR_ID);
2868  myTagProperties[currentTag].addAttribute(attrProperty);
2869 
2870  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
2872  TL("SUMO Probability"),
2873  "1.00");
2874  myTagProperties[currentTag].addAttribute(attrProperty);
2875  }
2876  currentTag = SUMO_TAG_PARKING_AREA_REROUTE;
2877  {
2878  // set values of tag
2879  myTagProperties[currentTag] = GNETagProperties(currentTag,
2880  GNETagProperties::TagType::ADDITIONALELEMENT,
2881  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
2882  GNETagProperties::TagParents::NO_PARENTS,
2883  GNETagProperties::Conflicts::NO_CONFLICTS,
2884  GUIIcon::PARKINGZONEREROUTE, currentTag, TL("ParkingAreaReroute"),
2885  {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
2886  // set values of attributes
2889  TL("ParkingArea ID"));
2890  attrProperty.setSynonym(SUMO_ATTR_ID);
2891  myTagProperties[currentTag].addAttribute(attrProperty);
2892 
2893  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
2895  TL("SUMO Probability"),
2896  "1.00");
2897  myTagProperties[currentTag].addAttribute(attrProperty);
2898 
2901  TL("Enable or disable visibility for parking area reroutes"),
2902  "1");
2903  myTagProperties[currentTag].addAttribute(attrProperty);
2904  }
2905  currentTag = SUMO_TAG_ROUTE_PROB_REROUTE;
2906  {
2907  // set values of tag
2908  myTagProperties[currentTag] = GNETagProperties(currentTag,
2909  GNETagProperties::TagType::ADDITIONALELEMENT,
2910  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
2911  GNETagProperties::TagParents::NO_PARENTS,
2912  GNETagProperties::Conflicts::NO_CONFLICTS,
2913  GUIIcon::ROUTEPROBREROUTE, currentTag, TL("RouteProbabilityReroute"),
2914  {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
2915  // set values of attributes
2916  attrProperty = GNEAttributeProperties(SUMO_ATTR_ROUTE,
2918  TL("Route"));
2919  attrProperty.setSynonym(SUMO_ATTR_ID);
2920  myTagProperties[currentTag].addAttribute(attrProperty);
2921 
2922  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
2924  TL("SUMO Probability"),
2925  "1.00");
2926  myTagProperties[currentTag].addAttribute(attrProperty);
2927  }
2928  currentTag = SUMO_TAG_VAPORIZER;
2929  {
2930  // set values of tag
2931  myTagProperties[currentTag] = GNETagProperties(currentTag,
2932  GNETagProperties::TagType::ADDITIONALELEMENT,
2933  GNETagProperties::TagProperty::CENTERAFTERCREATION,
2934  GNETagProperties::TagParents::NO_PARENTS,
2935  GNETagProperties::Conflicts::NO_CONFLICTS,
2936  GUIIcon::VAPORIZER, currentTag, TL("Vaporizer"),
2937  {}, FXRGBA(253, 255, 206, 255));
2938  // set values of attributes
2939  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2941  TL("Edge in which vaporizer is placed"));
2942  myTagProperties[currentTag].addAttribute(attrProperty);
2943 
2944  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
2946  TL("Start Time"),
2947  "0");
2948  myTagProperties[currentTag].addAttribute(attrProperty);
2949 
2950  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
2952  TL("End Time"),
2953  "3600");
2954  myTagProperties[currentTag].addAttribute(attrProperty);
2955 
2956  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2958  TL("Name of vaporizer"));
2959  myTagProperties[currentTag].addAttribute(attrProperty);
2960  }
2961 }
2962 
2963 
2964 void
2966  // declare empty GNEAttributeProperties
2967  GNEAttributeProperties attrProperty;
2968 
2969  // fill shape ACs
2970  SumoXMLTag currentTag = SUMO_TAG_POLY;
2971  {
2972  // set values of tag
2973  myTagProperties[currentTag] = GNETagProperties(currentTag,
2974  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE,
2975  GNETagProperties::TagProperty::RTREE | GNETagProperties::TagProperty::CLOSESHAPE | GNETagProperties::TagProperty::GEOSHAPE,
2976  GNETagProperties::TagParents::NO_PARENTS,
2977  GNETagProperties::Conflicts::NO_CONFLICTS,
2978  GUIIcon::POLY, currentTag, TL("Polygon"),
2979  {}, FXRGBA(240, 255, 205, 255));
2980  // set values of attributes
2981  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2983  TL("The id of the polygon"));
2984  myTagProperties[currentTag].addAttribute(attrProperty);
2985 
2986  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
2988  TL("The shape of the polygon"));
2989  myTagProperties[currentTag].addAttribute(attrProperty);
2990 
2991  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
2993  TL("The RGBA color with which the polygon shall be displayed"),
2994  "red");
2995  myTagProperties[currentTag].addAttribute(attrProperty);
2996 
2997  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILL,
2999  TL("An information whether the polygon shall be filled"),
3000  "0");
3001  myTagProperties[currentTag].addAttribute(attrProperty);
3002 
3005  TL("The default line width for drawing an unfilled polygon"),
3006  "1");
3007  myTagProperties[currentTag].addAttribute(attrProperty);
3008 
3009  attrProperty = GNEAttributeProperties(SUMO_ATTR_LAYER,
3011  TL("The layer in which the polygon lies"),
3013  myTagProperties[currentTag].addAttribute(attrProperty);
3014 
3015  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
3017  TL("A typename for the polygon"),
3019  myTagProperties[currentTag].addAttribute(attrProperty);
3020 
3021  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
3023  TL("Polygon's name"));
3024  myTagProperties[currentTag].addAttribute(attrProperty);
3025 
3028  TL("A bitmap to use for rendering this polygon"),
3030  myTagProperties[currentTag].addAttribute(attrProperty);
3031 
3034  TL("Enable or disable use image file as a relative path"),
3036  myTagProperties[currentTag].addAttribute(attrProperty);
3037 
3038  attrProperty = GNEAttributeProperties(SUMO_ATTR_ANGLE,
3040  TL("Angle of rendered image in degree"),
3042  myTagProperties[currentTag].addAttribute(attrProperty);
3043  }
3044  currentTag = SUMO_TAG_POI;
3045  {
3046  // set values of tag
3047  myTagProperties[currentTag] = GNETagProperties(currentTag,
3048  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE,
3049  GNETagProperties::TagProperty::RTREE,
3050  GNETagProperties::TagParents::NO_PARENTS,
3051  GNETagProperties::Conflicts::NO_CONFLICTS,
3052  GUIIcon::POI, currentTag, TL("PointOfInterest"),
3053  {}, FXRGBA(210, 233, 255, 255));
3054  // set values of attributes
3055  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3057  TL("The id of the POI"));
3058  myTagProperties[currentTag].addAttribute(attrProperty);
3059 
3061  GNEAttributeProperties::STRING | GNEAttributeProperties::POSITION | GNEAttributeProperties::UNIQUE | GNEAttributeProperties::UPDATEGEOMETRY, // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
3062  TL("The position in view"));
3063  myTagProperties[currentTag].addAttribute(attrProperty);
3064 
3065  // fill Poi attributes
3066  fillPOIAttributes(currentTag);
3067  }
3068  currentTag = GNE_TAG_POILANE;
3069  {
3070  // set values of tag
3071  myTagProperties[currentTag] = GNETagProperties(currentTag,
3072  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE,
3073  GNETagProperties::TagParents::NO_PARENTS,
3074  GNETagProperties::Conflicts::NO_CONFLICTS,
3075  GNETagProperties::Conflicts::POS_LANE,
3076  GUIIcon::POILANE, SUMO_TAG_POI, TL("PointOfInterestLane"),
3077  {}, FXRGBA(210, 233, 255, 255));
3078  // set values of attributes
3079  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3081  TL("The id of the POI"));
3082  myTagProperties[currentTag].addAttribute(attrProperty);
3083 
3084  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
3086  TL("The name of the lane at which the POI is located at"));
3087  myTagProperties[currentTag].addAttribute(attrProperty);
3088 
3091  TL("The position on the named lane or in the net in meters at which the POI is located at"));
3092  myTagProperties[currentTag].addAttribute(attrProperty);
3093 
3096  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
3097  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
3098  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
3099  "0");
3100  myTagProperties[currentTag].addAttribute(attrProperty);
3101 
3104  TL("The lateral offset on the named lane at which the POI is located at"),
3105  "0.00");
3106  myTagProperties[currentTag].addAttribute(attrProperty);
3107 
3108  // fill Poi attributes
3109  fillPOIAttributes(currentTag);
3110  }
3111  currentTag = GNE_TAG_POIGEO;
3112  {
3113  // set values of tag
3114  myTagProperties[currentTag] = GNETagProperties(currentTag,
3115  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE,
3116  GNETagProperties::TagProperty::RTREE | GNETagProperties::TagProperty::REQUIRE_PROJ,
3117  GNETagProperties::TagParents::NO_PARENTS,
3118  GNETagProperties::Conflicts::NO_CONFLICTS,
3119  GUIIcon::POIGEO, SUMO_TAG_POI, TL("PointOfInterestGeo"),
3120  {}, FXRGBA(210, 233, 255, 255));
3121  // set values of attributes
3122  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3124  TL("The id of the POI"));
3125  myTagProperties[currentTag].addAttribute(attrProperty);
3126 
3127  // set values of attributes
3128  attrProperty = GNEAttributeProperties(SUMO_ATTR_LON,
3130  TL("The longitude position of the parking vehicle on the view"));
3131  myTagProperties[currentTag].addAttribute(attrProperty);
3132 
3133  attrProperty = GNEAttributeProperties(SUMO_ATTR_LAT,
3135  TL("The latitude position of the parking vehicle on the view"));
3136  myTagProperties[currentTag].addAttribute(attrProperty);
3137 
3138  // fill Poi attributes
3139  fillPOIAttributes(currentTag);
3140  }
3141 }
3142 
3143 
3144 void
3146  // declare empty GNEAttributeProperties
3147  GNEAttributeProperties attrProperty;
3148 
3149  // fill TAZ ACs
3150  SumoXMLTag currentTag = SUMO_TAG_TAZ;
3151  {
3152  // set values of tag
3153  myTagProperties[currentTag] = GNETagProperties(currentTag,
3154  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::TAZELEMENT,
3155  GNETagProperties::TagProperty::RTREE,
3156  GNETagProperties::TagParents::NO_PARENTS,
3157  GNETagProperties::Conflicts::NO_CONFLICTS,
3158  GUIIcon::TAZ, currentTag, TL("TrafficAssignmentZones"));
3159  // set values of attributes
3160  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3162  TL("The id of the TAZ"));
3163  myTagProperties[currentTag].addAttribute(attrProperty);
3164 
3165  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
3167  TL("The shape of the TAZ"));
3168  myTagProperties[currentTag].addAttribute(attrProperty);
3169 
3172  TL("TAZ center"));
3173  myTagProperties[currentTag].addAttribute(attrProperty);
3174 
3175  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILL,
3177  TL("An information whether the TAZ shall be filled"),
3178  "0");
3179  myTagProperties[currentTag].addAttribute(attrProperty);
3180 
3181  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
3183  TL("The RGBA color with which the TAZ shall be displayed"),
3184  "red");
3185  myTagProperties[currentTag].addAttribute(attrProperty);
3186 
3187  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
3189  TL("Name of POI"));
3190  myTagProperties[currentTag].addAttribute(attrProperty);
3191  }
3192  currentTag = SUMO_TAG_TAZSOURCE;
3193  {
3194  // set values of tag
3195  myTagProperties[currentTag] = GNETagProperties(currentTag,
3196  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::TAZELEMENT,
3197  GNETagProperties::TagProperty::CHILD,
3198  GNETagProperties::TagParents::NO_PARENTS,
3199  GNETagProperties::Conflicts::NO_CONFLICTS,
3200  GUIIcon::TAZEDGE, currentTag, TL("TAZ Source"),
3201  {SUMO_TAG_TAZ});
3202  // set values of attributes
3203  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
3205  TL("The id of edge in the simulation network"));
3206  attrProperty.setSynonym(SUMO_ATTR_ID);
3207  myTagProperties[currentTag].addAttribute(attrProperty);
3208 
3211  TL("Depart weight associated to this Edge"),
3212  "1");
3213  myTagProperties[currentTag].addAttribute(attrProperty);
3214  }
3215  currentTag = SUMO_TAG_TAZSINK;
3216  {
3217  // set values of tag
3218  myTagProperties[currentTag] = GNETagProperties(currentTag,
3219  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::TAZELEMENT,
3220  GNETagProperties::TagProperty::CHILD,
3221  GNETagProperties::TagParents::NO_PARENTS,
3222  GNETagProperties::Conflicts::NO_CONFLICTS,
3223  GUIIcon::TAZEDGE, currentTag, TL("TAZ Sink"),
3224  {SUMO_TAG_TAZ});
3225  // set values of attributes
3226  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
3228  TL("The id of edge in the simulation network"));
3229  attrProperty.setSynonym(SUMO_ATTR_ID);
3230  myTagProperties[currentTag].addAttribute(attrProperty);
3231 
3234  TL("Arrival weight associated to this Edge"),
3235  "1");
3236  myTagProperties[currentTag].addAttribute(attrProperty);
3237  }
3238 }
3239 
3240 
3241 void
3243  // declare empty GNEAttributeProperties
3244  GNEAttributeProperties attrProperty;
3245 
3246  // fill wire elements
3248  {
3249  // set tag properties
3250  myTagProperties[currentTag] = GNETagProperties(currentTag,
3251  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::WIRE,
3252  GNETagProperties::TagProperty::RTREE,
3253  GNETagProperties::TagParents::NO_PARENTS,
3254  GNETagProperties::Conflicts::NO_CONFLICTS,
3255  GUIIcon::TRACTION_SUBSTATION, currentTag, TL("TractionSubstation"));
3256  // set attribute properties
3257  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3259  TL("Traction substation ID"));
3260  myTagProperties[currentTag].addAttribute(attrProperty);
3261 
3264  TL("X-Y position of detector in editor (Only used in netedit)"),
3265  "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
3266  myTagProperties[currentTag].addAttribute(attrProperty);
3267 
3270  TL("Voltage of at connection point for the overhead wire"),
3271  "600");
3272  myTagProperties[currentTag].addAttribute(attrProperty);
3273 
3276  TL("Current limit of the feeder line"),
3277  "400");
3278  myTagProperties[currentTag].addAttribute(attrProperty);
3279  }
3280  currentTag = SUMO_TAG_OVERHEAD_WIRE_SECTION;
3281  {
3282  // set tag properties
3283  myTagProperties[currentTag] = GNETagProperties(currentTag,
3284  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::WIRE,
3285  GNETagProperties::TagProperty::NO_PROPERTY,
3286  GNETagProperties::TagParents::NO_PARENTS,
3287  GNETagProperties::Conflicts::NO_CONFLICTS,
3288  GUIIcon::OVERHEADWIRE, currentTag, TL("WireSection"));
3289  // set attribute properties
3290  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3292  TL("Overhead wire segment ID"));
3293  myTagProperties[currentTag].addAttribute(attrProperty);
3294 
3297  TL("Substation to which the circuit is connected"));
3298  myTagProperties[currentTag].addAttribute(attrProperty);
3299 
3300  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANES,
3302  TL("List of consecutive lanes of the circuit"));
3303  myTagProperties[currentTag].addAttribute(attrProperty);
3304 
3307  TL("Starting position in the specified lane"),
3308  "0.0");
3309  myTagProperties[currentTag].addAttribute(attrProperty);
3310 
3313  TL("Ending position in the specified lane"),
3315  myTagProperties[currentTag].addAttribute(attrProperty);
3316 
3319  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
3320  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
3321  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
3322  "0");
3323  myTagProperties[currentTag].addAttribute(attrProperty);
3324 
3327  TL("Inner lanes, where placing of overhead wire is restricted"));
3328  myTagProperties[currentTag].addAttribute(attrProperty);
3329  }
3330  currentTag = SUMO_TAG_OVERHEAD_WIRE_CLAMP;
3331  {
3332  // set tag properties
3333  myTagProperties[currentTag] = GNETagProperties(currentTag,
3334  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::WIRE,
3335  GNETagProperties::TagProperty::NO_PROPERTY,
3336  GNETagProperties::TagParents::NO_PARENTS,
3337  GNETagProperties::Conflicts::NO_CONFLICTS,
3338  GUIIcon::OVERHEADWIRE_CLAMP, currentTag, TL("OverheadWireClamp"));
3339  // set attribute properties
3340  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3342  TL("Overhead wire clamp ID"));
3343  myTagProperties[currentTag].addAttribute(attrProperty);
3344 
3347  TL("ID of the overhead wire segment, to the start of which the overhead wire clamp is connected"));
3348  myTagProperties[currentTag].addAttribute(attrProperty);
3349 
3352  TL("ID of the overhead wire segment lane of overheadWireIDStartClamp"));
3353  myTagProperties[currentTag].addAttribute(attrProperty);
3354 
3357  TL("ID of the overhead wire segment, to the end of which the overhead wire clamp is connected"));
3358  myTagProperties[currentTag].addAttribute(attrProperty);
3359 
3362  TL("ID of the overhead wire segment lane of overheadWireIDEndClamp"));
3363  myTagProperties[currentTag].addAttribute(attrProperty);
3364  }
3365 }
3366 
3367 
3368 void
3370  // declare empty GNEAttributeProperties
3371  GNEAttributeProperties attrProperty;
3372 
3373  // fill shape ACs
3374  SumoXMLTag currentTag = GNE_TAG_JPS_WALKABLEAREA;
3375  {
3376  // set values of tag
3377  myTagProperties[currentTag] = GNETagProperties(currentTag,
3378  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE | GNETagProperties::TagType::JUPEDSIM,
3379  GNETagProperties::TagProperty::RTREE,
3380  GNETagProperties::TagParents::NO_PARENTS,
3381  GNETagProperties::Conflicts::NO_CONFLICTS,
3382  GUIIcon::JPS_WALKABLEAREA, SUMO_TAG_POLY, TL("JuPedSim WalkableArea"),
3383  {}, FXRGBA(253, 255, 206, 255));
3384  // set values of attributes
3385  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3387  TL("The id of the walkable area"));
3388  myTagProperties[currentTag].addAttribute(attrProperty);
3389 
3390  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
3392  TL("The shape of the walkable area"));
3393  myTagProperties[currentTag].addAttribute(attrProperty);
3394 
3395 
3396  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
3398  TL("Walkable area's name"));
3399  myTagProperties[currentTag].addAttribute(attrProperty);
3400  }
3401  currentTag = GNE_TAG_JPS_OBSTACLE;
3402  {
3403  // set values of tag
3404  myTagProperties[currentTag] = GNETagProperties(currentTag,
3405  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE | GNETagProperties::TagType::JUPEDSIM,
3406  GNETagProperties::TagProperty::RTREE,
3407  GNETagProperties::TagParents::NO_PARENTS,
3408  GNETagProperties::Conflicts::NO_CONFLICTS,
3409  GUIIcon::JPS_OBSTACLE, SUMO_TAG_POLY, TL("JuPedSim Obstacle"),
3410  {}, FXRGBA(253, 255, 206, 255));
3411  // set values of attributes
3412  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3414  TL("The id of the obstacle"));
3415  myTagProperties[currentTag].addAttribute(attrProperty);
3416 
3417  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
3419  TL("The shape of the obstacle"));
3420  myTagProperties[currentTag].addAttribute(attrProperty);
3421 
3422 
3423  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
3425  TL("Obstacle's name"));
3426  myTagProperties[currentTag].addAttribute(attrProperty);
3427  }
3428 }
3429 
3430 
3431 void
3433  // declare empty GNEAttributeProperties
3434  GNEAttributeProperties attrProperty;
3435 
3436  // fill demand elements
3437  SumoXMLTag currentTag = SUMO_TAG_ROUTE;
3438  {
3439  // set values of tag
3440  myTagProperties[currentTag] = GNETagProperties(currentTag,
3441  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::ROUTE,
3442  GNETagProperties::TagProperty::NO_PROPERTY,
3443  GNETagProperties::TagParents::NO_PARENTS,
3444  GNETagProperties::Conflicts::NO_CONFLICTS,
3445  GUIIcon::ROUTE, currentTag, TL("Route"));
3446 
3447  // set values of attributes
3448  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3450  TL("The id of Route"));
3451  myTagProperties[currentTag].addAttribute(attrProperty);
3452 
3455  TL("Route distribution"));
3456  myTagProperties[currentTag].addAttribute(attrProperty);
3457 
3458  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
3460  TL("The edges the vehicle shall drive along, given as their ids, separated using spaces"));
3461  myTagProperties[currentTag].addAttribute(attrProperty);
3462 
3463  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
3465  TL("This route's color"));
3466  myTagProperties[currentTag].addAttribute(attrProperty);
3467 
3470  TL("The number of times that the edges of this route shall be repeated"),
3471  "0");
3472  myTagProperties[currentTag].addAttribute(attrProperty);
3473 
3476  TL("When defining a repeating route with stops and those stops use the until attribute,") + std::string("\n") +
3477  TL("the times will be shifted forward by 'cycleTime' on each repeat"),
3478  "0");
3479  myTagProperties[currentTag].addAttribute(attrProperty);
3480  }
3481  currentTag = SUMO_TAG_ROUTE_DISTRIBUTION;
3482  {
3483  // set values of tag
3484  myTagProperties[currentTag] = GNETagProperties(currentTag,
3485  GNETagProperties::TagType::DEMANDELEMENT,
3486  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOTSELECTABLE | GNETagProperties::TagProperty::NOPARAMETERS,
3487  GNETagProperties::TagParents::NO_PARENTS,
3488  GNETagProperties::Conflicts::NO_CONFLICTS,
3489  GUIIcon::ROUTEDISTRIBUTION, currentTag, TL("RouteDistribution"));
3490 
3491  // set values of attributes
3492  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3494  TL("The id of route distribution"));
3495  myTagProperties[currentTag].addAttribute(attrProperty);
3496  }
3497  currentTag = GNE_TAG_ROUTE_EMBEDDED;
3498  {
3499  // set values of tag
3500  myTagProperties[currentTag] = GNETagProperties(currentTag,
3501  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::ROUTE,
3502  GNETagProperties::TagProperty::CHILD,
3503  GNETagProperties::TagParents::NO_PARENTS,
3504  GNETagProperties::Conflicts::NO_CONFLICTS,
3505  GUIIcon::ROUTE, SUMO_TAG_ROUTE, TL("RouteEmbedded"),
3507 
3508  // set values of attributes
3509  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
3511  TL("The edges the vehicle shall drive along, given as their ids, separated using spaces"));
3512  myTagProperties[currentTag].addAttribute(attrProperty);
3513 
3514  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
3516  TL("This route's color"));
3517  myTagProperties[currentTag].addAttribute(attrProperty);
3518 
3521  TL("The number of times that the edges of this route shall be repeated"),
3522  "0");
3523  myTagProperties[currentTag].addAttribute(attrProperty);
3524 
3527  TL("When defining a repeating route with stops and those stops use the until attribute,") + std::string("\n") +
3528  TL("the times will be shifted forward by 'cycleTime' on each repeat"),
3529  "0");
3530  myTagProperties[currentTag].addAttribute(attrProperty);
3531  }
3532  currentTag = SUMO_TAG_VTYPE;
3533  {
3534  // set values of tag
3535  myTagProperties[currentTag] = GNETagProperties(currentTag,
3536  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VTYPE,
3537  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOTSELECTABLE | GNETagProperties::TagProperty::VCLASS_ICON,
3538  GNETagProperties::TagParents::NO_PARENTS,
3539  GNETagProperties::Conflicts::NO_CONFLICTS,
3540  GUIIcon::VTYPE, currentTag, TL("VehicleType"));
3541 
3542  // set values of attributes
3543  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3545  TL("type ID"));
3546  myTagProperties[currentTag].addAttribute(attrProperty);
3547 
3550  TL("Type distribution"));
3551  myTagProperties[currentTag].addAttribute(attrProperty);
3552 
3555  TL("An abstract vehicle class"),
3556  "passenger");
3557  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
3558  myTagProperties[currentTag].addAttribute(attrProperty);
3559 
3560  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
3562  TL("This type's color"));
3563  myTagProperties[currentTag].addAttribute(attrProperty);
3564 
3567  TL("The vehicle's netto-length (length) [m]"));
3568  myTagProperties[currentTag].addAttribute(attrProperty);
3569 
3572  TL("Empty space after leader [m]"));
3573  myTagProperties[currentTag].addAttribute(attrProperty);
3574 
3577  TL("The vehicle's maximum velocity [m/s]"));
3578  myTagProperties[currentTag].addAttribute(attrProperty);
3579 
3582  TL("The vehicle's expected multiplicator for lane speed limits (or a distribution specifier)"));
3583  myTagProperties[currentTag].addAttribute(attrProperty);
3584 
3587  TL("The vehicle's desired maximum velocity (interacts with speedFactor).") + std::string("\n") +
3588  TL("Applicable when no speed limit applies (bicycles, some motorways) [m/s]"));
3589  myTagProperties[currentTag].addAttribute(attrProperty);
3590 
3593  TL("An abstract emission class"));
3595  myTagProperties[currentTag].addAttribute(attrProperty);
3596 
3599  TL("How this vehicle is rendered"));
3600  attrProperty.setDiscreteValues(SumoVehicleShapeStrings.getStrings());
3601  myTagProperties[currentTag].addAttribute(attrProperty);
3602 
3603  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
3605  TL("The vehicle's width [m] (only used for drawing)"),
3606  "1.8");
3607  myTagProperties[currentTag].addAttribute(attrProperty);
3608 
3611  TL("The vehicle's height [m] (only used for drawing)"),
3612  "1.5");
3613  myTagProperties[currentTag].addAttribute(attrProperty);
3614 
3617  TL("The parking badges assigned to the vehicle"));
3618  myTagProperties[currentTag].addAttribute(attrProperty);
3619 
3622  TL("Image file for rendering vehicles of this type (should be grayscale to allow functional coloring)"));
3623  myTagProperties[currentTag].addAttribute(attrProperty);
3624 
3627  TL("The model used for changing lanes"),
3628  "default");
3629  attrProperty.setDiscreteValues(SUMOXMLDefinitions::LaneChangeModels.getStrings());
3630  myTagProperties[currentTag].addAttribute(attrProperty);
3631 
3634  TL("The model used for car-following"),
3635  "Krauss");
3636  attrProperty.setDiscreteValues(SUMOXMLDefinitions::CarFollowModels.getStrings());
3637  myTagProperties[currentTag].addAttribute(attrProperty);
3638 
3641  TL("The number of persons (excluding an autonomous driver) the vehicle can transport"));
3642  myTagProperties[currentTag].addAttribute(attrProperty);
3643 
3646  TL("The number of containers the vehicle can transport"));
3647  myTagProperties[currentTag].addAttribute(attrProperty);
3648 
3651  TL("The time required by a person to board the vehicle"),
3652  "0.50");
3653  myTagProperties[currentTag].addAttribute(attrProperty);
3654 
3657  TL("The time required to load a container onto the vehicle"),
3658  "90.00");
3659  myTagProperties[currentTag].addAttribute(attrProperty);
3660 
3663  TL("The preferred lateral alignment when using the sublane-model"),
3664  "center");
3666  myTagProperties[currentTag].addAttribute(attrProperty);
3667 
3670  TL("The minimum lateral gap at a speed difference of 50km/h when using the sublane-model"),
3671  "0.12");
3672  myTagProperties[currentTag].addAttribute(attrProperty);
3673 
3676  TL("The maximum lateral speed when using the sublane-model"),
3677  "1.00");
3678  myTagProperties[currentTag].addAttribute(attrProperty);
3679 
3682  TL("The interval length for which vehicle performs its decision logic (acceleration and lane-changing)"),
3683  toString(OptionsCont::getOptions().getFloat("default.action-step-length")));
3684  myTagProperties[currentTag].addAttribute(attrProperty);
3685 
3686  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
3688  TL("The probability when being added to a distribution without an explicit probability"),
3690  myTagProperties[currentTag].addAttribute(attrProperty);
3691 
3694  TL("3D model file for this class"));
3695  myTagProperties[currentTag].addAttribute(attrProperty);
3696 
3699  TL("Carriage lengths"));
3700  myTagProperties[currentTag].addAttribute(attrProperty);
3701 
3704  TL("Locomotive lengths"));
3705  myTagProperties[currentTag].addAttribute(attrProperty);
3706 
3709  TL("Gap between carriages"),
3710  "1");
3711  myTagProperties[currentTag].addAttribute(attrProperty);
3712 
3713  // fill VType Car Following Model Values (implemented in a separated function to improve code legibility)
3714  fillCarFollowingModelAttributes(currentTag);
3715 
3716  // fill VType Junction Model Parameters (implemented in a separated function to improve code legibility)
3717  fillJunctionModelAttributes(currentTag);
3718 
3719  // fill VType Lane Change Model Parameters (implemented in a separated function to improve code legibility)
3720  fillLaneChangingModelAttributes(currentTag);
3721  }
3722  currentTag = SUMO_TAG_VTYPE_DISTRIBUTION;
3723  {
3724  // set values of tag
3725  myTagProperties[currentTag] = GNETagProperties(currentTag,
3726  GNETagProperties::TagType::DEMANDELEMENT,
3727  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOTSELECTABLE | GNETagProperties::TagProperty::NOPARAMETERS,
3728  GNETagProperties::TagParents::NO_PARENTS,
3729  GNETagProperties::Conflicts::NO_CONFLICTS,
3730  GUIIcon::VTYPEDISTRIBUTION, currentTag, TL("VehicleTypeDistribution"));
3731 
3732  // set values of attributes
3733  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3735  TL("The id of VehicleType distribution"));
3736  myTagProperties[currentTag].addAttribute(attrProperty);
3737  }
3738 }
3739 
3740 
3741 void
3743  // declare empty GNEAttributeProperties
3744  GNEAttributeProperties attrProperty;
3745 
3746  // fill vehicle ACs
3747  SumoXMLTag currentTag = SUMO_TAG_TRIP;
3748  {
3749  // set values of tag
3750  myTagProperties[currentTag] = GNETagProperties(currentTag,
3751  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE,
3752  GNETagProperties::TagParents::NO_PARENTS,
3753  GNETagProperties::TagParents::VEHICLE_EDGES,
3754  GNETagProperties::Conflicts::NO_CONFLICTS,
3755  GUIIcon::TRIP, currentTag, TL("TripEdges"),
3756  {}, FXRGBA(253, 255, 206, 255), "trip (from-to edges)");
3757 
3758  // set values of attributes
3759  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3761  TL("The ID of trip"));
3762  myTagProperties[currentTag].addAttribute(attrProperty);
3763 
3764  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
3766  TL("The id of the vehicle type to use for this trip"),
3768  myTagProperties[currentTag].addAttribute(attrProperty);
3769 
3770  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
3772  TL("The ID of the edge the trip starts at"));
3773  myTagProperties[currentTag].addAttribute(attrProperty);
3774 
3775  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
3777  TL("The ID of the edge the trip ends at"));
3778  myTagProperties[currentTag].addAttribute(attrProperty);
3779 
3780  attrProperty = GNEAttributeProperties(SUMO_ATTR_VIA,
3782  TL("List of intermediate edge ids which shall be part of the trip"));
3783  myTagProperties[currentTag].addAttribute(attrProperty);
3784 
3785  // add common attributes
3786  fillCommonVehicleAttributes(currentTag);
3787 
3790  TL("The departure time of the (first) trip which is generated using this trip definition"),
3791  "0.00");
3792  myTagProperties[currentTag].addAttribute(attrProperty);
3793  }
3794  currentTag = GNE_TAG_TRIP_JUNCTIONS;
3795  {
3796  // set values of tag
3797  myTagProperties[currentTag] = GNETagProperties(currentTag,
3798  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE,
3799  GNETagProperties::TagParents::NO_PARENTS,
3800  GNETagProperties::TagParents::VEHICLE_JUNCTIONS,
3801  GNETagProperties::Conflicts::NO_CONFLICTS,
3802  GUIIcon::TRIP_JUNCTIONS, SUMO_TAG_TRIP, TL("TripJunctions"),
3803  {}, FXRGBA(255, 213, 213, 255), "trip (from-to junctions)");
3804 
3805  // set values of attributes
3806  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3808  TL("The id of trip"));
3809  myTagProperties[currentTag].addAttribute(attrProperty);
3810 
3811  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
3813  TL("The id of the vehicle type to use for this trip"),
3815  myTagProperties[currentTag].addAttribute(attrProperty);
3816 
3819  TL("The name of the junction the trip starts at"));
3820  myTagProperties[currentTag].addAttribute(attrProperty);
3821 
3824  TL("The name of the junction the trip ends at"));
3825  myTagProperties[currentTag].addAttribute(attrProperty);
3826 
3827  // add common attributes
3828  fillCommonVehicleAttributes(currentTag);
3829 
3832  TL("The departure time of the (first) trip which is generated using this trip definition"),
3833  "0.00");
3834  myTagProperties[currentTag].addAttribute(attrProperty);
3835  }
3836  currentTag = GNE_TAG_TRIP_TAZS;
3837  {
3838  // set values of tag
3839  myTagProperties[currentTag] = GNETagProperties(currentTag,
3840  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE,
3841  GNETagProperties::TagParents::NO_PARENTS,
3842  GNETagProperties::TagParents::VEHICLE_TAZS,
3843  GNETagProperties::Conflicts::NO_CONFLICTS,
3844  GUIIcon::TRIP_TAZS, SUMO_TAG_TRIP, TL("TripTAZs"),
3845  {}, FXRGBA(240, 255, 205, 255), "trip (from-to TAZs)");
3846 
3847  // set values of attributes
3848  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3850  TL("The id of trip"));
3851  myTagProperties[currentTag].addAttribute(attrProperty);
3852 
3853  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
3855  TL("The id of the vehicle type to use for this trip"),
3857  myTagProperties[currentTag].addAttribute(attrProperty);
3858 
3861  TL("The name of the TAZ the trip starts at"));
3862  myTagProperties[currentTag].addAttribute(attrProperty);
3863 
3866  TL("The name of the TAZ the trip ends at"));
3867  myTagProperties[currentTag].addAttribute(attrProperty);
3868 
3869  // add common attributes
3870  fillCommonVehicleAttributes(currentTag);
3871 
3874  TL("The departure time of the (first) trip which is generated using this trip definition"),
3875  "0.00");
3876  myTagProperties[currentTag].addAttribute(attrProperty);
3877  }
3878  currentTag = SUMO_TAG_VEHICLE;
3879  {
3880  // set values of tag
3881  myTagProperties[currentTag] = GNETagProperties(currentTag,
3882  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE,
3883  GNETagProperties::TagParents::NO_PARENTS,
3884  GNETagProperties::TagParents::VEHICLE_ROUTE,
3885  GNETagProperties::Conflicts::NO_CONFLICTS,
3886  GUIIcon::VEHICLE, currentTag, TL("VehicleRoute"),
3887  {}, FXRGBA(210, 233, 255, 255), "vehicle (over route)");
3888 
3889  // set values of attributes
3890  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3892  TL("The ID of the vehicle"));
3893  myTagProperties[currentTag].addAttribute(attrProperty);
3894 
3895  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
3897  TL("The id of the vehicle type to use for this vehicle"),
3899  myTagProperties[currentTag].addAttribute(attrProperty);
3900 
3901  attrProperty = GNEAttributeProperties(SUMO_ATTR_ROUTE,
3903  TL("The id of the route the vehicle shall drive along"));
3904  myTagProperties[currentTag].addAttribute(attrProperty);
3905 
3908  TL("The index of the edge within route the vehicle starts at"));
3909  myTagProperties[currentTag].addAttribute(attrProperty);
3910 
3913  TL("The index of the edge within route the vehicle ends at"));
3914  myTagProperties[currentTag].addAttribute(attrProperty);
3915 
3916  // add common attributes
3917  fillCommonVehicleAttributes(currentTag);
3918 
3921  TL("The time step at which the vehicle shall enter the network"),
3922  "0.00");
3923  myTagProperties[currentTag].addAttribute(attrProperty);
3924  }
3925  currentTag = GNE_TAG_VEHICLE_WITHROUTE;
3926  {
3927  // set values of tag
3928  myTagProperties[currentTag] = GNETagProperties(currentTag,
3929  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE,
3930  GNETagProperties::TagParents::NO_PARENTS,
3931  GNETagProperties::TagParents::VEHICLE_ROUTE_EMBEDDED,
3932  GNETagProperties::Conflicts::NO_CONFLICTS,
3933  GUIIcon::VEHICLE, SUMO_TAG_VEHICLE, TL("VehicleEmbeddedRoute"),
3934  {}, FXRGBA(210, 233, 255, 255), "vehicle (embedded route)");
3935 
3936  // set values of attributes
3937  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3939  TL("The ID of the vehicle"));
3940  myTagProperties[currentTag].addAttribute(attrProperty);
3941 
3942  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
3944  TL("The id of the vehicle type to use for this vehicle"),
3946  myTagProperties[currentTag].addAttribute(attrProperty);
3947 
3950  TL("The index of the edge within route the vehicle starts at"));
3951  myTagProperties[currentTag].addAttribute(attrProperty);
3952 
3955  TL("The index of the edge within route the vehicle ends at"));
3956  myTagProperties[currentTag].addAttribute(attrProperty);
3957 
3958  // add common attributes
3959  fillCommonVehicleAttributes(currentTag);
3960 
3963  TL("The time step at which the vehicle shall enter the network"),
3964  "0.00");
3965  myTagProperties[currentTag].addAttribute(attrProperty);
3966  }
3967  currentTag = SUMO_TAG_FLOW;
3968  {
3969  // set values of tag
3970  myTagProperties[currentTag] = GNETagProperties(currentTag,
3971  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE | GNETagProperties::TagType::FLOW,
3972  GNETagProperties::TagParents::NO_PARENTS,
3973  GNETagProperties::TagParents::VEHICLE_EDGES,
3974  GNETagProperties::Conflicts::NO_CONFLICTS,
3975  GUIIcon::FLOW, currentTag, TL("FlowEdges"),
3976  {}, FXRGBA(253, 255, 206, 255), "flow (from-to edges)");
3977 
3978  // set values of attributes
3979  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3981  TL("The ID of the flow"));
3982  myTagProperties[currentTag].addAttribute(attrProperty);
3983 
3984  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
3986  TL("The id of the flow type to use for this flow"),
3988  myTagProperties[currentTag].addAttribute(attrProperty);
3989 
3990  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
3992  TL("The ID of the edge the flow starts at"));
3993  myTagProperties[currentTag].addAttribute(attrProperty);
3994 
3995  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
3997  TL("The ID of the edge the flow ends at"));
3998  myTagProperties[currentTag].addAttribute(attrProperty);
3999 
4000  attrProperty = GNEAttributeProperties(SUMO_ATTR_VIA,
4002  TL("List of intermediate edge ids which shall be part of the flow"));
4003  myTagProperties[currentTag].addAttribute(attrProperty);
4004 
4005  // add common attributes
4006  fillCommonVehicleAttributes(currentTag);
4007 
4008  // add flow attributes
4010  }
4011  currentTag = GNE_TAG_FLOW_JUNCTIONS;
4012  {
4013  // set values of tag
4014  myTagProperties[currentTag] = GNETagProperties(currentTag,
4015  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE | GNETagProperties::TagType::FLOW,
4016  GNETagProperties::TagParents::NO_PARENTS,
4017  GNETagProperties::TagParents::VEHICLE_JUNCTIONS,
4018  GNETagProperties::Conflicts::NO_CONFLICTS,
4019  GUIIcon::FLOW_JUNCTIONS, SUMO_TAG_FLOW, TL("FlowJunctions"),
4020  {}, FXRGBA(255, 213, 213, 255), "flow (from-to junctions)");
4021 
4022  // set values of attributes
4023  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4025  TL("The id of the flow"));
4026  myTagProperties[currentTag].addAttribute(attrProperty);
4027 
4028  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4030  TL("The id of the flow type to use for this flow"),
4032  myTagProperties[currentTag].addAttribute(attrProperty);
4033 
4036  TL("The name of the junction the flow starts at"));
4037  myTagProperties[currentTag].addAttribute(attrProperty);
4038 
4041  TL("The name of the junction the flow ends at"));
4042  myTagProperties[currentTag].addAttribute(attrProperty);
4043 
4044  // add common attributes
4045  fillCommonVehicleAttributes(currentTag);
4046 
4047  // add flow attributes
4049  }
4050  currentTag = GNE_TAG_FLOW_TAZS;
4051  {
4052  // set values of tag
4053  myTagProperties[currentTag] = GNETagProperties(currentTag,
4054  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE | GNETagProperties::TagType::FLOW,
4055  GNETagProperties::TagParents::NO_PARENTS,
4056  GNETagProperties::TagParents::VEHICLE_TAZS,
4057  GNETagProperties::Conflicts::NO_CONFLICTS,
4058  GUIIcon::FLOW_TAZS, SUMO_TAG_FLOW, TL("FlowTAZs"),
4059  {}, FXRGBA(240, 255, 205, 255), "flow (from-to TAZs)");
4060 
4061  // set values of attributes
4062  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4064  TL("The id of the flow"));
4065  myTagProperties[currentTag].addAttribute(attrProperty);
4066 
4067  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4069  TL("The id of the flow type to use for this flow"),
4071  myTagProperties[currentTag].addAttribute(attrProperty);
4072 
4075  TL("The name of the TAZ the flow starts at"));
4076  myTagProperties[currentTag].addAttribute(attrProperty);
4077 
4080  TL("The name of the TAZ the flow ends at"));
4081  myTagProperties[currentTag].addAttribute(attrProperty);
4082 
4083  // add common attributes
4084  fillCommonVehicleAttributes(currentTag);
4085 
4086  // add flow attributes
4088  }
4089  currentTag = GNE_TAG_FLOW_ROUTE;
4090  {
4091  // set values of tag
4092  myTagProperties[currentTag] = GNETagProperties(currentTag,
4093  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE | GNETagProperties::TagType::FLOW,
4094  GNETagProperties::TagParents::NO_PARENTS,
4095  GNETagProperties::TagParents::VEHICLE_ROUTE,
4096  GNETagProperties::Conflicts::NO_CONFLICTS,
4097  GUIIcon::ROUTEFLOW, SUMO_TAG_FLOW, TL("FlowRoute"),
4098  {}, FXRGBA(210, 233, 255, 255), "flow (over route)");
4099 
4100  // set values of attributes
4101  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4103  TL("The id of the flow"));
4104  myTagProperties[currentTag].addAttribute(attrProperty);
4105 
4106  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4108  TL("The id of the flow type to use for this flow"),
4110  myTagProperties[currentTag].addAttribute(attrProperty);
4111 
4112  attrProperty = GNEAttributeProperties(SUMO_ATTR_ROUTE,
4114  TL("The id of the route the flow shall drive along"));
4115  myTagProperties[currentTag].addAttribute(attrProperty);
4116 
4119  TL("The index of the edge within route the flow starts at"));
4120  myTagProperties[currentTag].addAttribute(attrProperty);
4121 
4124  TL("The index of the edge within route the flow ends at"));
4125  myTagProperties[currentTag].addAttribute(attrProperty);
4126 
4127  // add common attributes
4128  fillCommonVehicleAttributes(currentTag);
4129 
4130  // add flow attributes
4132  }
4133  currentTag = GNE_TAG_FLOW_WITHROUTE;
4134  {
4135  // set values of tag
4136  myTagProperties[currentTag] = GNETagProperties(currentTag,
4137  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE | GNETagProperties::TagType::FLOW,
4138  GNETagProperties::TagParents::NO_PARENTS,
4139  GNETagProperties::TagParents::VEHICLE_ROUTE_EMBEDDED,
4140  GNETagProperties::Conflicts::NO_CONFLICTS,
4141  GUIIcon::ROUTEFLOW, SUMO_TAG_FLOW, TL("FlowEmbeddedRoute"),
4142  {}, FXRGBA(210, 233, 255, 255), "flow (embedded route)");
4143 
4144  // set values of attributes
4145  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4147  TL("The name of the flow"));
4148  myTagProperties[currentTag].addAttribute(attrProperty);
4149 
4150  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4152  TL("The id of the flow type to use for this flow"),
4154  myTagProperties[currentTag].addAttribute(attrProperty);
4155 
4158  TL("The index of the edge within route the flow starts at"));
4159  myTagProperties[currentTag].addAttribute(attrProperty);
4160 
4163  TL("The index of the edge within route the flow ends at"));
4164  myTagProperties[currentTag].addAttribute(attrProperty);
4165 
4166  // add common attributes
4167  fillCommonVehicleAttributes(currentTag);
4168 
4169  // add flow attributes
4171  }
4172 }
4173 
4174 
4175 void
4177  // declare empty GNEAttributeProperties
4178  GNEAttributeProperties attrProperty;
4179 
4180  // fill stops ACs
4181  SumoXMLTag currentTag = GNE_TAG_STOP_LANE;
4182  {
4183  // set values of tag
4184  myTagProperties[currentTag] = GNETagProperties(currentTag,
4185  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4186  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::MASKSTARTENDPOS,
4187  GNETagProperties::TagParents::NO_PARENTS,
4188  GNETagProperties::Conflicts::NO_CONFLICTS,
4189  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopLane"),
4190  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4191  // set values of attributes
4192  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
4194  TL("The name of the lane the stop shall be located at"));
4195  myTagProperties[currentTag].addAttribute(attrProperty);
4196 
4199  TL("The begin position on the lane (the lower position on the lane) in meters"));
4200  myTagProperties[currentTag].addAttribute(attrProperty);
4201 
4204  TL("The end position on the lane (the higher position on the lane) in meters, must be larger than startPos by more than 0.1m"));
4205  myTagProperties[currentTag].addAttribute(attrProperty);
4206 
4209  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
4210  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
4211  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
4212  "0");
4213  myTagProperties[currentTag].addAttribute(attrProperty);
4214 
4217  TL("The lateral offset on the named lane at which the vehicle must stop"));
4218  myTagProperties[currentTag].addAttribute(attrProperty);
4219 
4220  // fill common stop attributes
4221  fillCommonStopAttributes(currentTag, false);
4222  }
4223  currentTag = GNE_TAG_STOP_BUSSTOP;
4224  {
4225  // set values of tag
4226  myTagProperties[currentTag] = GNETagProperties(currentTag,
4227  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4228  GNETagProperties::TagProperty::CHILD,
4229  GNETagProperties::TagParents::NO_PARENTS,
4230  GNETagProperties::Conflicts::NO_CONFLICTS,
4231  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopBusStop"),
4232  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4233  // set values of attributes
4236  TL("BusStop associated with this stop"));
4237  myTagProperties[currentTag].addAttribute(attrProperty);
4238 
4239  // fill common stop attributes
4240  fillCommonStopAttributes(currentTag, false);
4241  }
4242  currentTag = GNE_TAG_STOP_TRAINSTOP;
4243  {
4244  // set values of tag
4245  myTagProperties[currentTag] = GNETagProperties(currentTag,
4246  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4247  GNETagProperties::TagProperty::CHILD,
4248  GNETagProperties::TagParents::NO_PARENTS,
4249  GNETagProperties::Conflicts::NO_CONFLICTS,
4250  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopTrainStop"),
4251  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4252  // set values of attributes
4255  TL("TrainStop associated with this stop"));
4256  myTagProperties[currentTag].addAttribute(attrProperty);
4257 
4258  // fill common stop attributes
4259  fillCommonStopAttributes(currentTag, false);
4260  }
4261  currentTag = GNE_TAG_STOP_CONTAINERSTOP;
4262  {
4263  // set values of tag
4264  myTagProperties[currentTag] = GNETagProperties(currentTag,
4265  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4266  GNETagProperties::TagProperty::CHILD,
4267  GNETagProperties::TagParents::NO_PARENTS,
4268  GNETagProperties::Conflicts::NO_CONFLICTS,
4269  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopContainerStop"),
4270  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4271  // set values of attributes
4274  TL("ContainerStop associated with this stop"));
4275  myTagProperties[currentTag].addAttribute(attrProperty);
4276 
4277  // fill common stop attributes
4278  fillCommonStopAttributes(currentTag, false);
4279  }
4280  currentTag = GNE_TAG_STOP_CHARGINGSTATION;
4281  {
4282  // set values of tag
4283  myTagProperties[currentTag] = GNETagProperties(currentTag,
4284  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4285  GNETagProperties::TagProperty::CHILD,
4286  GNETagProperties::TagParents::NO_PARENTS,
4287  GNETagProperties::Conflicts::NO_CONFLICTS,
4288  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopChargingStation"),
4289  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4290  // set values of attributes
4293  TL("ChargingStation associated with this stop"));
4294  myTagProperties[currentTag].addAttribute(attrProperty);
4295 
4296  // fill common stop attributes
4297  fillCommonStopAttributes(currentTag, false);
4298  }
4299  currentTag = GNE_TAG_STOP_PARKINGAREA;
4300  {
4301  // set values of tag
4302  myTagProperties[currentTag] = GNETagProperties(currentTag,
4303  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4304  GNETagProperties::TagProperty::CHILD,
4305  GNETagProperties::TagParents::NO_PARENTS,
4306  GNETagProperties::Conflicts::NO_CONFLICTS,
4307  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopParkingArea"),
4308  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4309  // set values of attributes
4312  TL("ParkingArea associated with this stop"));
4313  myTagProperties[currentTag].addAttribute(attrProperty);
4314 
4315  // fill common stop attributes (no parking)
4316  fillCommonStopAttributes(currentTag, false);
4317  }
4318 }
4319 
4320 
4321 void
4323  // declare empty GNEAttributeProperties
4324  GNEAttributeProperties attrProperty;
4325 
4326  // fill waypoints ACs
4327  SumoXMLTag currentTag = GNE_TAG_WAYPOINT_LANE;
4328  {
4329  // set values of tag
4330  myTagProperties[currentTag] = GNETagProperties(currentTag,
4331  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4332  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::MASKSTARTENDPOS,
4333  GNETagProperties::TagParents::NO_PARENTS,
4334  GNETagProperties::Conflicts::NO_CONFLICTS,
4335  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointLane"),
4336  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4337  // set values of attributes
4338  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
4340  TL("The name of the lane the waypoint shall be located at"));
4341  myTagProperties[currentTag].addAttribute(attrProperty);
4342 
4345  TL("The begin position on the lane (the lower position on the lane) in meters"));
4346  myTagProperties[currentTag].addAttribute(attrProperty);
4347 
4350  TL("The end position on the lane (the higher position on the lane) in meters, must be larger than startPos by more than 0.1m"));
4351  myTagProperties[currentTag].addAttribute(attrProperty);
4352 
4355  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
4356  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
4357  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
4358  "0");
4359  myTagProperties[currentTag].addAttribute(attrProperty);
4360 
4363  TL("The lateral offset on the named lane at which the vehicle must waypoint"));
4364  myTagProperties[currentTag].addAttribute(attrProperty);
4365 
4366  // fill common waypoint (stop) attributes
4367  fillCommonStopAttributes(currentTag, true);
4368  }
4369  currentTag = GNE_TAG_WAYPOINT_BUSSTOP;
4370  {
4371  // set values of tag
4372  myTagProperties[currentTag] = GNETagProperties(currentTag,
4373  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4374  GNETagProperties::TagProperty::CHILD,
4375  GNETagProperties::TagParents::NO_PARENTS,
4376  GNETagProperties::Conflicts::NO_CONFLICTS,
4377  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointBusStop"),
4378  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4379  // set values of attributes
4382  TL("BusWaypoint associated with this waypoint"));
4383  myTagProperties[currentTag].addAttribute(attrProperty);
4384 
4385  // fill common waypoint (stop) attributes
4386  fillCommonStopAttributes(currentTag, true);
4387  }
4388  currentTag = GNE_TAG_WAYPOINT_TRAINSTOP;
4389  {
4390  // set values of tag
4391  myTagProperties[currentTag] = GNETagProperties(currentTag,
4392  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4393  GNETagProperties::TagProperty::CHILD,
4394  GNETagProperties::TagParents::NO_PARENTS,
4395  GNETagProperties::Conflicts::NO_CONFLICTS,
4396  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointTrainStop"),
4397  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4398  // set values of attributes
4401  TL("TrainWaypoint associated with this waypoint"));
4402  myTagProperties[currentTag].addAttribute(attrProperty);
4403 
4404  // fill common waypoint (stop) attributes
4405  fillCommonStopAttributes(currentTag, true);
4406  }
4407  currentTag = GNE_TAG_WAYPOINT_CONTAINERSTOP;
4408  {
4409  // set values of tag
4410  myTagProperties[currentTag] = GNETagProperties(currentTag,
4411  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4412  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4413  GNETagProperties::TagParents::NO_PARENTS,
4414  GNETagProperties::Conflicts::NO_CONFLICTS,
4415  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointContainerStop"),
4416  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4417  // set values of attributes
4420  TL("ContainerWaypoint associated with this waypoint"));
4421  myTagProperties[currentTag].addAttribute(attrProperty);
4422 
4423  // fill common waypoint (stop) attributes
4424  fillCommonStopAttributes(currentTag, true);
4425  }
4426  currentTag = GNE_TAG_WAYPOINT_CHARGINGSTATION;
4427  {
4428  // set values of tag
4429  myTagProperties[currentTag] = GNETagProperties(currentTag,
4430  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4431  GNETagProperties::TagProperty::CHILD,
4432  GNETagProperties::TagParents::NO_PARENTS,
4433  GNETagProperties::Conflicts::NO_CONFLICTS,
4434  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointChargingStation"),
4435  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4436  // set values of attributes
4439  TL("ChargingStation associated with this waypoint"));
4440  myTagProperties[currentTag].addAttribute(attrProperty);
4441 
4442  // fill common waypoint (stop) attributes
4443  fillCommonStopAttributes(currentTag, true);
4444  }
4445  currentTag = GNE_TAG_WAYPOINT_PARKINGAREA;
4446  {
4447  // set values of tag
4448  myTagProperties[currentTag] = GNETagProperties(currentTag,
4449  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4450  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4451  GNETagProperties::TagParents::NO_PARENTS,
4452  GNETagProperties::Conflicts::NO_CONFLICTS,
4453  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointParkingArea"),
4454  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4455  // set values of attributes
4458  TL("ParkingArea associated with this waypoint"));
4459  myTagProperties[currentTag].addAttribute(attrProperty);
4460 
4461  // fill common waypoint (stop) attributes
4462  fillCommonStopAttributes(currentTag, true);
4463  }
4464 }
4465 
4466 
4467 void
4469  // declare empty GNEAttributeProperties
4470  GNEAttributeProperties attrProperty;
4471 
4472  // fill vehicle ACs
4473  SumoXMLTag currentTag = SUMO_TAG_PERSON;
4474  {
4475  // set values of tag
4476  myTagProperties[currentTag] = GNETagProperties(currentTag,
4477  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSON,
4478  GNETagProperties::TagProperty::NO_PROPERTY,
4479  GNETagProperties::TagParents::NO_PARENTS,
4480  GNETagProperties::Conflicts::NO_CONFLICTS,
4481  GUIIcon::PERSON, currentTag, TL("Person"));
4482 
4483  // add flow attributes
4484  fillCommonPersonAttributes(currentTag);
4485 
4486  // set specific attribute depart (note: Persons doesn't support triggered and containerTriggered values)
4489  TL("The time step at which the person shall enter the network"),
4490  "0.00");
4491  myTagProperties[currentTag].addAttribute(attrProperty);
4492 
4493  }
4494  currentTag = SUMO_TAG_PERSONFLOW;
4495  {
4496  // set values of tag
4497  myTagProperties[currentTag] = GNETagProperties(currentTag,
4498  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSON | GNETagProperties::TagType::FLOW,
4499  GNETagProperties::TagProperty::NO_PROPERTY,
4500  GNETagProperties::TagParents::NO_PARENTS,
4501  GNETagProperties::Conflicts::NO_CONFLICTS,
4502  GUIIcon::PERSONFLOW, currentTag, TL("PersonFlow"));
4503 
4504  // add flow attributes
4505  fillCommonPersonAttributes(currentTag);
4506 
4507  // add flow attributes
4509  }
4510 }
4511 
4512 
4513 void
4515  // declare empty GNEAttributeProperties
4516  GNEAttributeProperties attrProperty;
4517 
4518  // fill vehicle ACs
4519  SumoXMLTag currentTag = SUMO_TAG_CONTAINER;
4520  {
4521  // set values of tag
4522  myTagProperties[currentTag] = GNETagProperties(currentTag,
4523  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINER,
4524  GNETagProperties::TagProperty::NO_PROPERTY,
4525  GNETagProperties::TagParents::NO_PARENTS,
4526  GNETagProperties::Conflicts::NO_CONFLICTS,
4527  GUIIcon::CONTAINER, currentTag, TL("Container"));
4528 
4529  // add flow attributes
4530  fillCommonContainerAttributes(currentTag);
4531 
4534  TL("The time step at which the container shall enter the network"),
4535  "0.00");
4536  myTagProperties[currentTag].addAttribute(attrProperty);
4537  }
4538  currentTag = SUMO_TAG_CONTAINERFLOW;
4539  {
4540  // set values of tag
4541  myTagProperties[currentTag] = GNETagProperties(currentTag,
4542  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINER | GNETagProperties::TagType::FLOW,
4543  GNETagProperties::TagProperty::NO_PROPERTY,
4544  GNETagProperties::TagParents::NO_PARENTS,
4545  GNETagProperties::Conflicts::NO_CONFLICTS,
4546  GUIIcon::CONTAINERFLOW, currentTag, TL("ContainerFlow"));
4547 
4548  // add common container attribute
4549  fillCommonContainerAttributes(currentTag);
4550 
4551  // add flow attributes
4553  }
4554 }
4555 
4556 
4557 void
4559  // declare empty GNEAttributeProperties
4560  GNEAttributeProperties attrProperty;
4561 
4562  // fill transport
4564  {
4565  // set values of tag
4566  myTagProperties[currentTag] = GNETagProperties(currentTag,
4567  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::TRANSPORT,
4568  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4569  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_EDGE,
4570  GNETagProperties::Conflicts::NO_CONFLICTS,
4571  GUIIcon::TRANSPORT_EDGE, SUMO_TAG_TRANSPORT, TL("Transport: edge->edge"),
4572  {SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW}, FXRGBA(240, 255, 205, 255));
4573  // set values of attributes
4574  fillPlanParentAttributes(currentTag);
4575  fillTransportCommonAttributes(currentTag);
4576  }
4578  {
4579  // set values of tag
4580  myTagProperties[currentTag] = GNETagProperties(currentTag,
4581  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::TRANSPORT,
4582  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4583  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
4584  GNETagProperties::Conflicts::NO_CONFLICTS,
4585  GUIIcon::TRANSPORT_CONTAINERSTOP, SUMO_TAG_TRANSPORT, TL("Transport: edge->containerStop"),
4586  {SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW}, FXRGBA(240, 255, 205, 255));
4587  // set values of attributes
4588  fillPlanParentAttributes(currentTag);
4589  fillTransportCommonAttributes(currentTag);
4590  }
4592  {
4593  // set values of tag
4594  myTagProperties[currentTag] = GNETagProperties(currentTag,
4595  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::TRANSPORT,
4596  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4597  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
4598  GNETagProperties::Conflicts::NO_CONFLICTS,
4599  GUIIcon::TRANSPORT_EDGE, SUMO_TAG_TRANSPORT, TL("Transport: containerStop->edge"),
4600  {SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW}, FXRGBA(240, 255, 205, 255));
4601  // set values of attributes
4602  fillPlanParentAttributes(currentTag);
4603  fillTransportCommonAttributes(currentTag);
4604  }
4606  {
4607  // set values of tag
4608  myTagProperties[currentTag] = GNETagProperties(currentTag,
4609  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::TRANSPORT,
4610  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4611  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
4612  GNETagProperties::Conflicts::NO_CONFLICTS,
4613  GUIIcon::TRANSPORT_CONTAINERSTOP, SUMO_TAG_TRANSPORT, TL("Transport: containerStop->containerStop"),
4614  {SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW}, FXRGBA(240, 255, 205, 255));
4615  // set values of attributes
4616  fillPlanParentAttributes(currentTag);
4617  fillTransportCommonAttributes(currentTag);
4618  }
4619 }
4620 
4621 
4622 void
4624  // declare empty GNEAttributeProperties
4625  GNEAttributeProperties attrProperty;
4626 
4627  // fill walks
4629  {
4630  // set values of tag
4631  myTagProperties[currentTag] = GNETagProperties(currentTag,
4632  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::TRANSHIP,
4633  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4634  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_EDGE,
4635  GNETagProperties::Conflicts::NO_CONFLICTS,
4636  GUIIcon::TRANSHIP_EDGE, SUMO_TAG_TRANSHIP, TL("Tranship: edge->edge"),
4637  {SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW}, FXRGBA(210, 233, 255, 255));
4638 
4639  // set values of attributes
4640  fillPlanParentAttributes(currentTag);
4641  fillTranshipCommonAttributes(currentTag);
4642  }
4644  {
4645  // set values of tag
4646  myTagProperties[currentTag] = GNETagProperties(currentTag,
4647  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::TRANSHIP,
4648  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4649  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
4650  GNETagProperties::Conflicts::NO_CONFLICTS,
4651  GUIIcon::TRANSHIP_CONTAINERSTOP, SUMO_TAG_TRANSHIP, TL("Tranship: edge->containerStop"),
4652  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(210, 233, 255, 255));
4653 
4654  // set values of attributes
4655  fillPlanParentAttributes(currentTag);
4656  fillTranshipCommonAttributes(currentTag);
4657  }
4659  {
4660  // set values of tag
4661  myTagProperties[currentTag] = GNETagProperties(currentTag,
4662  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::TRANSHIP,
4663  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4664  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
4665  GNETagProperties::Conflicts::NO_CONFLICTS,
4666  GUIIcon::TRANSHIP_EDGE, SUMO_TAG_TRANSHIP, TL("Tranship: containerStop->edge"),
4667  {SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW}, FXRGBA(210, 233, 255, 255));
4668 
4669  // set values of attributes
4670  fillPlanParentAttributes(currentTag);
4671  fillTranshipCommonAttributes(currentTag);
4672  }
4674  {
4675  // set values of tag
4676  myTagProperties[currentTag] = GNETagProperties(currentTag,
4677  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::TRANSHIP,
4678  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4679  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
4680  GNETagProperties::Conflicts::NO_CONFLICTS,
4681  GUIIcon::TRANSHIP_CONTAINERSTOP, SUMO_TAG_TRANSHIP, TL("Tranship: containerStop->containerStop"),
4682  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(210, 233, 255, 255));
4683 
4684  // set values of attributes
4685  fillPlanParentAttributes(currentTag);
4686  fillTranshipCommonAttributes(currentTag);
4687  }
4688  currentTag = GNE_TAG_TRANSHIP_EDGES;
4689  {
4690  // set values of tag
4691  myTagProperties[currentTag] = GNETagProperties(currentTag,
4692  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::TRANSHIP,
4693  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4694  GNETagProperties::TagParents::PLAN_CONSECUTIVE_EDGES,
4695  GNETagProperties::Conflicts::NO_CONFLICTS,
4696  GUIIcon::TRANSHIP_EDGES, SUMO_TAG_TRANSHIP, TL("Tranship: edges"),
4697  {SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW}, FXRGBA(210, 233, 255, 255));
4698 
4699  // set values of attributes
4700  fillPlanParentAttributes(currentTag);
4701  fillTranshipCommonAttributes(currentTag);
4702  }
4703 }
4704 
4705 
4706 void
4708  // declare empty GNEAttributeProperties
4709  GNEAttributeProperties attrProperty;
4710 
4711  // fill vehicle ACs
4713  {
4714  // set values of tag
4715  myTagProperties[currentTag] = GNETagProperties(currentTag,
4716  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::STOPCONTAINER,
4717  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4718  GNETagProperties::TagParents::PLAN_EDGE,
4719  GNETagProperties::Conflicts::NO_CONFLICTS,
4720  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("Stop: edge"),
4721  {SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW}, FXRGBA(255, 213, 213, 255));
4722 
4723  // set values of attributes
4724  fillPlanParentAttributes(currentTag);
4725  fillPlanStopCommonAttributes(currentTag);
4726  }
4728  {
4729  // set values of tag
4730  myTagProperties[currentTag] = GNETagProperties(currentTag,
4731  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::STOPCONTAINER,
4732  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4733  GNETagProperties::TagParents::PLAN_CONTAINERSTOP,
4734  GNETagProperties::Conflicts::NO_CONFLICTS,
4735  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("Stop: containerStop"),
4736  {SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW}, FXRGBA(255, 213, 213, 255));
4737 
4738  // set values of attributes
4739  fillPlanParentAttributes(currentTag);
4740  fillPlanStopCommonAttributes(currentTag);
4741  }
4742 }
4743 
4744 
4745 void
4747  // declare empty GNEAttributeProperties
4748  GNEAttributeProperties attrProperty;
4749 
4750  // from edge
4752  {
4753  // set values of tag
4754  myTagProperties[currentTag] = GNETagProperties(currentTag,
4755  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4756  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4757  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_EDGE,
4758  GNETagProperties::Conflicts::NO_CONFLICTS,
4759  GUIIcon::PERSONTRIP_EDGE, SUMO_TAG_PERSONTRIP, TL("PersonTrip: edge->edge"),
4760  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4761  // set values of attributes
4762  fillPlanParentAttributes(currentTag);
4763  fillPersonTripCommonAttributes(currentTag);
4764  }
4765  currentTag = GNE_TAG_PERSONTRIP_EDGE_TAZ;
4766  {
4767  // set values of tag
4768  myTagProperties[currentTag] = GNETagProperties(currentTag,
4769  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4770  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4771  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TAZ,
4772  GNETagProperties::Conflicts::NO_CONFLICTS,
4773  GUIIcon::PERSONTRIP_TAZ, SUMO_TAG_PERSONTRIP, TL("PersonTrip: edge->taz"),
4774  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4775  // set values of attributes
4776  fillPlanParentAttributes(currentTag);
4777  fillPersonTripCommonAttributes(currentTag);
4778  }
4779  currentTag = GNE_TAG_PERSONTRIP_EDGE_JUNCTION;
4780  {
4781  // set values of tag
4782  myTagProperties[currentTag] = GNETagProperties(currentTag,
4783  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4784  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4785  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
4786  GNETagProperties::Conflicts::NO_CONFLICTS,
4787  GUIIcon::PERSONTRIP_JUNCTION, SUMO_TAG_PERSONTRIP, TL("PersonTrip: edge->junction"),
4788  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4789  // set values of attributes
4790  fillPlanParentAttributes(currentTag);
4791  fillPersonTripCommonAttributes(currentTag);
4792  }
4793  currentTag = GNE_TAG_PERSONTRIP_EDGE_BUSSTOP;
4794  {
4795  // set values of tag
4796  myTagProperties[currentTag] = GNETagProperties(currentTag,
4797  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4798  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4799  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
4800  GNETagProperties::Conflicts::NO_CONFLICTS,
4801  GUIIcon::PERSONTRIP_BUSSTOP, SUMO_TAG_PERSONTRIP, TL("PersonTrip: edge->busStop"),
4802  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4803  // set values of attributes
4804  fillPlanParentAttributes(currentTag);
4805  fillPersonTripCommonAttributes(currentTag);
4806  }
4807  currentTag = GNE_TAG_PERSONTRIP_EDGE_TRAINSTOP;
4808  {
4809  // set values of tag
4810  myTagProperties[currentTag] = GNETagProperties(currentTag,
4811  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4812  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4813  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
4814  GNETagProperties::Conflicts::NO_CONFLICTS,
4815  GUIIcon::PERSONTRIP_TRAINSTOP, SUMO_TAG_PERSONTRIP, TL("PersonTrip: edge->trainStop"),
4816  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4817  // set values of attributes
4818  fillPlanParentAttributes(currentTag);
4819  fillPersonTripCommonAttributes(currentTag);
4820  }
4821  // from TAZ
4822  currentTag = GNE_TAG_PERSONTRIP_TAZ_EDGE;
4823  {
4824  // set values of tag
4825  myTagProperties[currentTag] = GNETagProperties(currentTag,
4826  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4827  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4828  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_EDGE,
4829  GNETagProperties::Conflicts::NO_CONFLICTS,
4830  GUIIcon::PERSONTRIP_TAZ, SUMO_TAG_PERSONTRIP, TL("PersonTrip: taz->edge"),
4831  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4832  // set values of attributes
4833  fillPlanParentAttributes(currentTag);
4834  fillPersonTripCommonAttributes(currentTag);
4835  }
4836  currentTag = GNE_TAG_PERSONTRIP_TAZ_TAZ;
4837  {
4838  // set values of tag
4839  myTagProperties[currentTag] = GNETagProperties(currentTag,
4840  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4841  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4842  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TAZ,
4843  GNETagProperties::Conflicts::NO_CONFLICTS,
4844  GUIIcon::PERSONTRIP_TAZ, SUMO_TAG_PERSONTRIP, TL("PersonTrip: taz->taz"),
4845  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4846  // set values of attributes
4847  fillPlanParentAttributes(currentTag);
4848  fillPersonTripCommonAttributes(currentTag);
4849  }
4850  currentTag = GNE_TAG_PERSONTRIP_TAZ_JUNCTION;
4851  {
4852  // set values of tag
4853  myTagProperties[currentTag] = GNETagProperties(currentTag,
4854  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4855  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4856  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
4857  GNETagProperties::Conflicts::NO_CONFLICTS,
4858  GUIIcon::PERSONTRIP_JUNCTION, SUMO_TAG_PERSONTRIP, TL("PersonTrip: taz->junction"),
4859  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4860  // set values of attributes
4861  fillPlanParentAttributes(currentTag);
4862  fillPersonTripCommonAttributes(currentTag);
4863  }
4864 
4865  currentTag = GNE_TAG_PERSONTRIP_TAZ_BUSSTOP;
4866  {
4867  // set values of tag
4868  myTagProperties[currentTag] = GNETagProperties(currentTag,
4869  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4870  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4871  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
4872  GNETagProperties::Conflicts::NO_CONFLICTS,
4873  GUIIcon::PERSONTRIP_BUSSTOP, SUMO_TAG_PERSONTRIP, TL("PersonTrip: taz->busStop"),
4874  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4875  // set values of attributes
4876  fillPlanParentAttributes(currentTag);
4877  fillPersonTripCommonAttributes(currentTag);
4878  }
4879  currentTag = GNE_TAG_PERSONTRIP_TAZ_TRAINSTOP;
4880  {
4881  // set values of tag
4882  myTagProperties[currentTag] = GNETagProperties(currentTag,
4883  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4884  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4885  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
4886  GNETagProperties::Conflicts::NO_CONFLICTS,
4887  GUIIcon::PERSONTRIP_TRAINSTOP, SUMO_TAG_PERSONTRIP, TL("PersonTrip: taz->trainStop"),
4888  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4889  // set values of attributes
4890  fillPlanParentAttributes(currentTag);
4891  fillPersonTripCommonAttributes(currentTag);
4892  }
4893  // from junction
4894  currentTag = GNE_TAG_PERSONTRIP_JUNCTION_EDGE;
4895  {
4896  // set values of tag
4897  myTagProperties[currentTag] = GNETagProperties(currentTag,
4898  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4899  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4900  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_EDGE,
4901  GNETagProperties::Conflicts::NO_CONFLICTS,
4902  GUIIcon::PERSONTRIP_JUNCTION, SUMO_TAG_PERSONTRIP, TL("PersonTrip: junction->edge"),
4903  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4904  // set values of attributes
4905  fillPlanParentAttributes(currentTag);
4906  fillPersonTripCommonAttributes(currentTag);
4907  }
4908  currentTag = GNE_TAG_PERSONTRIP_JUNCTION_TAZ;
4909  {
4910  // set values of tag
4911  myTagProperties[currentTag] = GNETagProperties(currentTag,
4912  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4913  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4914  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TAZ,
4915  GNETagProperties::Conflicts::NO_CONFLICTS,
4916  GUIIcon::PERSONTRIP_TAZ, SUMO_TAG_PERSONTRIP, TL("PersonTrip: junction->taz"),
4917  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4918  // set values of attributes
4919  fillPlanParentAttributes(currentTag);
4920  fillPersonTripCommonAttributes(currentTag);
4921  }
4923  {
4924  // set values of tag
4925  myTagProperties[currentTag] = GNETagProperties(currentTag,
4926  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4927  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4928  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
4929  GNETagProperties::Conflicts::NO_CONFLICTS,
4930  GUIIcon::PERSONTRIP_JUNCTION, SUMO_TAG_PERSONTRIP, TL("PersonTrip: junction->junction"),
4931  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4932  // set values of attributes
4933  fillPlanParentAttributes(currentTag);
4934  fillPersonTripCommonAttributes(currentTag);
4935  }
4937  {
4938  // set values of tag
4939  myTagProperties[currentTag] = GNETagProperties(currentTag,
4940  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4941  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4942  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
4943  GNETagProperties::Conflicts::NO_CONFLICTS,
4944  GUIIcon::PERSONTRIP_BUSSTOP, SUMO_TAG_PERSONTRIP, TL("PersonTrip: junction->busStop"),
4945  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4946  // set values of attributes
4947  fillPlanParentAttributes(currentTag);
4948  fillPersonTripCommonAttributes(currentTag);
4949  }
4951  {
4952  // set values of tag
4953  myTagProperties[currentTag] = GNETagProperties(currentTag,
4954  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4955  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4956  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
4957  GNETagProperties::Conflicts::NO_CONFLICTS,
4958  GUIIcon::PERSONTRIP_TRAINSTOP, SUMO_TAG_PERSONTRIP, TL("PersonTrip: junction->trainStop"),
4959  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4960  // set values of attributes
4961  fillPlanParentAttributes(currentTag);
4962  fillPersonTripCommonAttributes(currentTag);
4963  }
4964  // from busStop
4965  currentTag = GNE_TAG_PERSONTRIP_BUSSTOP_EDGE;
4966  {
4967  // set values of tag
4968  myTagProperties[currentTag] = GNETagProperties(currentTag,
4969  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4970  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4971  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
4972  GNETagProperties::Conflicts::NO_CONFLICTS,
4973  GUIIcon::PERSONTRIP_EDGE, SUMO_TAG_PERSONTRIP, TL("PersonTrip: busStop->edge"),
4974  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4975  // set values of attributes
4976  fillPlanParentAttributes(currentTag);
4977  fillPersonTripCommonAttributes(currentTag);
4978  }
4979  currentTag = GNE_TAG_PERSONTRIP_BUSSTOP_TAZ;
4980  {
4981  // set values of tag
4982  myTagProperties[currentTag] = GNETagProperties(currentTag,
4983  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4984  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4985  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
4986  GNETagProperties::Conflicts::NO_CONFLICTS,
4987  GUIIcon::PERSONTRIP_TAZ, SUMO_TAG_PERSONTRIP, TL("PersonTrip: busStop->taz"),
4988  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
4989  // set values of attributes
4990  fillPlanParentAttributes(currentTag);
4991  fillPersonTripCommonAttributes(currentTag);
4992  }
4994  {
4995  // set values of tag
4996  myTagProperties[currentTag] = GNETagProperties(currentTag,
4997  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
4998  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4999  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5000  GNETagProperties::Conflicts::NO_CONFLICTS,
5001  GUIIcon::PERSONTRIP_JUNCTION, SUMO_TAG_PERSONTRIP, TL("PersonTrip: busStop->taz"),
5002  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5003  // set values of attributes
5004  fillPlanParentAttributes(currentTag);
5005  fillPersonTripCommonAttributes(currentTag);
5006  }
5008  {
5009  // set values of tag
5010  myTagProperties[currentTag] = GNETagProperties(currentTag,
5011  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
5012  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5013  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5014  GNETagProperties::Conflicts::NO_CONFLICTS,
5015  GUIIcon::PERSONTRIP_BUSSTOP, SUMO_TAG_PERSONTRIP, TL("PersonTrip: busStop->busStop"),
5016  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5017  // set values of attributes
5018  fillPlanParentAttributes(currentTag);
5019  fillPersonTripCommonAttributes(currentTag);
5020  }
5022  {
5023  // set values of tag
5024  myTagProperties[currentTag] = GNETagProperties(currentTag,
5025  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
5026  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5027  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5028  GNETagProperties::Conflicts::NO_CONFLICTS,
5029  GUIIcon::PERSONTRIP_TRAINSTOP, SUMO_TAG_PERSONTRIP, TL("PersonTrip: busStop->trainStop"),
5030  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5031  // set values of attributes
5032  fillPlanParentAttributes(currentTag);
5033  fillPersonTripCommonAttributes(currentTag);
5034  }
5035  // from trainstop
5036  currentTag = GNE_TAG_PERSONTRIP_TRAINSTOP_EDGE;
5037  {
5038  // set values of tag
5039  myTagProperties[currentTag] = GNETagProperties(currentTag,
5040  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
5041  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5042  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
5043  GNETagProperties::Conflicts::NO_CONFLICTS,
5044  GUIIcon::PERSONTRIP_EDGE, SUMO_TAG_PERSONTRIP, TL("PersonTrip: trainStop->edge"),
5045  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5046  // set values of attributes
5047  fillPlanParentAttributes(currentTag);
5048  fillPersonTripCommonAttributes(currentTag);
5049  }
5050  currentTag = GNE_TAG_PERSONTRIP_TRAINSTOP_TAZ;
5051  {
5052  // set values of tag
5053  myTagProperties[currentTag] = GNETagProperties(currentTag,
5054  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
5055  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5056  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
5057  GNETagProperties::Conflicts::NO_CONFLICTS,
5058  GUIIcon::PERSONTRIP_TAZ, SUMO_TAG_PERSONTRIP, TL("PersonTrip: trainStop->taz"),
5059  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5060  // set values of attributes
5061  fillPlanParentAttributes(currentTag);
5062  fillPersonTripCommonAttributes(currentTag);
5063  }
5065  {
5066  // set values of tag
5067  myTagProperties[currentTag] = GNETagProperties(currentTag,
5068  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
5069  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5070  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5071  GNETagProperties::Conflicts::NO_CONFLICTS,
5072  GUIIcon::PERSONTRIP_JUNCTION, SUMO_TAG_PERSONTRIP, TL("PersonTrip: trainStop->taz"),
5073  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5074  // set values of attributes
5075  fillPlanParentAttributes(currentTag);
5076  fillPersonTripCommonAttributes(currentTag);
5077  }
5079  {
5080  // set values of tag
5081  myTagProperties[currentTag] = GNETagProperties(currentTag,
5082  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
5083  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5084  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5085  GNETagProperties::Conflicts::NO_CONFLICTS,
5086  GUIIcon::PERSONTRIP_BUSSTOP, SUMO_TAG_PERSONTRIP, TL("PersonTrip: trainStop->busStop"),
5087  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5088  // set values of attributes
5089  fillPlanParentAttributes(currentTag);
5090  fillPersonTripCommonAttributes(currentTag);
5091  }
5093  {
5094  // set values of tag
5095  myTagProperties[currentTag] = GNETagProperties(currentTag,
5096  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP,
5097  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5098  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5099  GNETagProperties::Conflicts::NO_CONFLICTS,
5100  GUIIcon::PERSONTRIP_TRAINSTOP, SUMO_TAG_PERSONTRIP, TL("PersonTrip: trainStop->trainStop"),
5101  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5102  // set values of attributes
5103  fillPlanParentAttributes(currentTag);
5104  fillPersonTripCommonAttributes(currentTag);
5105  }
5106 }
5107 
5108 
5109 void
5111  // declare empty GNEAttributeProperties
5112  GNEAttributeProperties attrProperty;
5113 
5114  SumoXMLTag currentTag = GNE_TAG_WALK_EDGES;
5115  {
5116  // set values of tag
5117  myTagProperties[currentTag] = GNETagProperties(currentTag,
5118  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5119  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5120  GNETagProperties::TagParents::PLAN_CONSECUTIVE_EDGES,
5121  GNETagProperties::Conflicts::NO_CONFLICTS,
5122  GUIIcon::WALK_EDGES, SUMO_TAG_WALK, TL("walk: edges"),
5123  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(240, 255, 205, 255));
5124  // set values of attributes
5125  fillPlanParentAttributes(currentTag);
5126  fillWalkCommonAttributes(currentTag);
5127  }
5128  currentTag = GNE_TAG_WALK_ROUTE;
5129  {
5130  // set values of tag
5131  myTagProperties[currentTag] = GNETagProperties(currentTag,
5132  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5133  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5134  GNETagProperties::TagParents::PLAN_ROUTE,
5135  GNETagProperties::Conflicts::NO_CONFLICTS,
5136  GUIIcon::WALK_ROUTE, SUMO_TAG_WALK, TL("walk: route"),
5137  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(240, 255, 205, 255));
5138  // set values of attributes
5139  fillPlanParentAttributes(currentTag);
5140  fillWalkCommonAttributes(currentTag);
5141  }
5142  // from edge
5143  currentTag = GNE_TAG_WALK_EDGE_EDGE;
5144  {
5145  // set values of tag
5146  myTagProperties[currentTag] = GNETagProperties(currentTag,
5147  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5148  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5149  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_EDGE,
5150  GNETagProperties::Conflicts::NO_CONFLICTS,
5151  GUIIcon::WALK_EDGE, SUMO_TAG_WALK, TL("Walk: edge->edge"),
5152  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5153  // set values of attributes
5154  fillPlanParentAttributes(currentTag);
5155  fillWalkCommonAttributes(currentTag);
5156  }
5157  currentTag = GNE_TAG_WALK_EDGE_TAZ;
5158  {
5159  // set values of tag
5160  myTagProperties[currentTag] = GNETagProperties(currentTag,
5161  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5162  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5163  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TAZ,
5164  GNETagProperties::Conflicts::NO_CONFLICTS,
5165  GUIIcon::WALK_TAZ, SUMO_TAG_WALK, TL("Walk: edge->taz"),
5166  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5167  // set values of attributes
5168  fillPlanParentAttributes(currentTag);
5169  fillWalkCommonAttributes(currentTag);
5170  }
5171  currentTag = GNE_TAG_WALK_EDGE_JUNCTION;
5172  {
5173  // set values of tag
5174  myTagProperties[currentTag] = GNETagProperties(currentTag,
5175  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5176  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5177  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5178  GNETagProperties::Conflicts::NO_CONFLICTS,
5179  GUIIcon::WALK_JUNCTION, SUMO_TAG_WALK, TL("Walk: edge->junction"),
5180  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5181  // set values of attributes
5182  fillPlanParentAttributes(currentTag);
5183  fillWalkCommonAttributes(currentTag);
5184  }
5185  currentTag = GNE_TAG_WALK_EDGE_BUSSTOP;
5186  {
5187  // set values of tag
5188  myTagProperties[currentTag] = GNETagProperties(currentTag,
5189  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5190  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5191  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5192  GNETagProperties::Conflicts::NO_CONFLICTS,
5193  GUIIcon::WALK_BUSSTOP, SUMO_TAG_WALK, TL("Walk: edge->busStop"),
5194  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5195  // set values of attributes
5196  fillPlanParentAttributes(currentTag);
5197  fillWalkCommonAttributes(currentTag);
5198  }
5199  currentTag = GNE_TAG_WALK_EDGE_TRAINSTOP;
5200  {
5201  // set values of tag
5202  myTagProperties[currentTag] = GNETagProperties(currentTag,
5203  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5204  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5205  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5206  GNETagProperties::Conflicts::NO_CONFLICTS,
5207  GUIIcon::WALK_TRAINSTOP, SUMO_TAG_WALK, TL("Walk: edge->trainStop"),
5208  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5209  // set values of attributes
5210  fillPlanParentAttributes(currentTag);
5211  fillWalkCommonAttributes(currentTag);
5212  }
5213  // from TAZ
5214  currentTag = GNE_TAG_WALK_TAZ_EDGE;
5215  {
5216  // set values of tag
5217  myTagProperties[currentTag] = GNETagProperties(currentTag,
5218  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5219  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5220  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_EDGE,
5221  GNETagProperties::Conflicts::NO_CONFLICTS,
5222  GUIIcon::WALK_TAZ, SUMO_TAG_WALK, TL("Walk: taz->edge"),
5223  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5224  // set values of attributes
5225  fillPlanParentAttributes(currentTag);
5226  fillWalkCommonAttributes(currentTag);
5227  }
5228  currentTag = GNE_TAG_WALK_TAZ_TAZ;
5229  {
5230  // set values of tag
5231  myTagProperties[currentTag] = GNETagProperties(currentTag,
5232  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5233  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5234  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TAZ,
5235  GNETagProperties::Conflicts::NO_CONFLICTS,
5236  GUIIcon::WALK_TAZ, SUMO_TAG_WALK, TL("Walk: taz->taz"),
5237  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5238  // set values of attributes
5239  fillPlanParentAttributes(currentTag);
5240  fillWalkCommonAttributes(currentTag);
5241  }
5242  currentTag = GNE_TAG_WALK_TAZ_JUNCTION;
5243  {
5244  // set values of tag
5245  myTagProperties[currentTag] = GNETagProperties(currentTag,
5246  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5247  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5248  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5249  GNETagProperties::Conflicts::NO_CONFLICTS,
5250  GUIIcon::WALK_JUNCTION, SUMO_TAG_WALK, TL("Walk: taz->junction"),
5251  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5252  // set values of attributes
5253  fillPlanParentAttributes(currentTag);
5254  fillWalkCommonAttributes(currentTag);
5255  }
5256 
5257  currentTag = GNE_TAG_WALK_TAZ_BUSSTOP;
5258  {
5259  // set values of tag
5260  myTagProperties[currentTag] = GNETagProperties(currentTag,
5261  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5262  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5263  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5264  GNETagProperties::Conflicts::NO_CONFLICTS,
5265  GUIIcon::WALK_BUSSTOP, SUMO_TAG_WALK, TL("Walk: taz->busStop"),
5266  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5267  // set values of attributes
5268  fillPlanParentAttributes(currentTag);
5269  fillWalkCommonAttributes(currentTag);
5270  }
5271  currentTag = GNE_TAG_WALK_TAZ_TRAINSTOP;
5272  {
5273  // set values of tag
5274  myTagProperties[currentTag] = GNETagProperties(currentTag,
5275  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5276  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5277  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5278  GNETagProperties::Conflicts::NO_CONFLICTS,
5279  GUIIcon::WALK_TRAINSTOP, SUMO_TAG_WALK, TL("Walk: taz->trainStop"),
5280  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5281  // set values of attributes
5282  fillPlanParentAttributes(currentTag);
5283  fillWalkCommonAttributes(currentTag);
5284  }
5285  // from junction
5286  currentTag = GNE_TAG_WALK_JUNCTION_EDGE;
5287  {
5288  // set values of tag
5289  myTagProperties[currentTag] = GNETagProperties(currentTag,
5290  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5291  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5292  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_EDGE,
5293  GNETagProperties::Conflicts::NO_CONFLICTS,
5294  GUIIcon::WALK_JUNCTION, SUMO_TAG_WALK, TL("Walk: junction->edge"),
5295  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5296  // set values of attributes
5297  fillPlanParentAttributes(currentTag);
5298  fillWalkCommonAttributes(currentTag);
5299  }
5300  currentTag = GNE_TAG_WALK_JUNCTION_TAZ;
5301  {
5302  // set values of tag
5303  myTagProperties[currentTag] = GNETagProperties(currentTag,
5304  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5305  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5306  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TAZ,
5307  GNETagProperties::Conflicts::NO_CONFLICTS,
5308  GUIIcon::WALK_TAZ, SUMO_TAG_WALK, TL("Walk: junction->taz"),
5309  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5310  // set values of attributes
5311  fillPlanParentAttributes(currentTag);
5312  fillWalkCommonAttributes(currentTag);
5313  }
5314  currentTag = GNE_TAG_WALK_JUNCTION_JUNCTION;
5315  {
5316  // set values of tag
5317  myTagProperties[currentTag] = GNETagProperties(currentTag,
5318  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5319  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5320  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5321  GNETagProperties::Conflicts::NO_CONFLICTS,
5322  GUIIcon::WALK_JUNCTION, SUMO_TAG_WALK, TL("Walk: junction->junction"),
5323  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5324  // set values of attributes
5325  fillPlanParentAttributes(currentTag);
5326  fillWalkCommonAttributes(currentTag);
5327  }
5328  currentTag = GNE_TAG_WALK_JUNCTION_BUSSTOP;
5329  {
5330  // set values of tag
5331  myTagProperties[currentTag] = GNETagProperties(currentTag,
5332  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5333  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5334  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5335  GNETagProperties::Conflicts::NO_CONFLICTS,
5336  GUIIcon::WALK_BUSSTOP, SUMO_TAG_WALK, TL("Walk: junction->busStop"),
5337  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5338  // set values of attributes
5339  fillPlanParentAttributes(currentTag);
5340  fillWalkCommonAttributes(currentTag);
5341  }
5342  currentTag = GNE_TAG_WALK_JUNCTION_TRAINSTOP;
5343  {
5344  // set values of tag
5345  myTagProperties[currentTag] = GNETagProperties(currentTag,
5346  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5347  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5348  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5349  GNETagProperties::Conflicts::NO_CONFLICTS,
5350  GUIIcon::WALK_TRAINSTOP, SUMO_TAG_WALK, TL("Walk: junction->trainStop"),
5351  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5352  // set values of attributes
5353  fillPlanParentAttributes(currentTag);
5354  fillWalkCommonAttributes(currentTag);
5355  }
5356  // from busStop
5357  currentTag = GNE_TAG_WALK_BUSSTOP_EDGE;
5358  {
5359  // set values of tag
5360  myTagProperties[currentTag] = GNETagProperties(currentTag,
5361  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5362  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5363  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
5364  GNETagProperties::Conflicts::NO_CONFLICTS,
5365  GUIIcon::WALK_EDGE, SUMO_TAG_WALK, TL("Walk: busStop->edge"),
5366  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5367  // set values of attributes
5368  fillPlanParentAttributes(currentTag);
5369  fillWalkCommonAttributes(currentTag);
5370  }
5371  currentTag = GNE_TAG_WALK_BUSSTOP_TAZ;
5372  {
5373  // set values of tag
5374  myTagProperties[currentTag] = GNETagProperties(currentTag,
5375  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5376  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5377  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
5378  GNETagProperties::Conflicts::NO_CONFLICTS,
5379  GUIIcon::WALK_TAZ, SUMO_TAG_WALK, TL("Walk: busStop->taz"),
5380  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5381  // set values of attributes
5382  fillPlanParentAttributes(currentTag);
5383  fillWalkCommonAttributes(currentTag);
5384  }
5385  currentTag = GNE_TAG_WALK_BUSSTOP_JUNCTION;
5386  {
5387  // set values of tag
5388  myTagProperties[currentTag] = GNETagProperties(currentTag,
5389  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5390  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5391  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5392  GNETagProperties::Conflicts::NO_CONFLICTS,
5393  GUIIcon::WALK_JUNCTION, SUMO_TAG_WALK, TL("Walk: busStop->taz"),
5394  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5395  // set values of attributes
5396  fillPlanParentAttributes(currentTag);
5397  fillWalkCommonAttributes(currentTag);
5398  }
5399  currentTag = GNE_TAG_WALK_BUSSTOP_BUSSTOP;
5400  {
5401  // set values of tag
5402  myTagProperties[currentTag] = GNETagProperties(currentTag,
5403  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5404  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5405  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5406  GNETagProperties::Conflicts::NO_CONFLICTS,
5407  GUIIcon::WALK_BUSSTOP, SUMO_TAG_WALK, TL("Walk: busStop->busStop"),
5408  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5409  // set values of attributes
5410  fillPlanParentAttributes(currentTag);
5411  fillWalkCommonAttributes(currentTag);
5412  }
5413  currentTag = GNE_TAG_WALK_BUSSTOP_TRAINSTOP;
5414  {
5415  // set values of tag
5416  myTagProperties[currentTag] = GNETagProperties(currentTag,
5417  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5418  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5419  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5420  GNETagProperties::Conflicts::NO_CONFLICTS,
5421  GUIIcon::WALK_TRAINSTOP, SUMO_TAG_WALK, TL("Walk: busStop->trainStop"),
5422  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5423  // set values of attributes
5424  fillPlanParentAttributes(currentTag);
5425  fillWalkCommonAttributes(currentTag);
5426  }
5427  // from trainstop
5428  currentTag = GNE_TAG_WALK_TRAINSTOP_EDGE;
5429  {
5430  // set values of tag
5431  myTagProperties[currentTag] = GNETagProperties(currentTag,
5432  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5433  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5434  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
5435  GNETagProperties::Conflicts::NO_CONFLICTS,
5436  GUIIcon::WALK_EDGE, SUMO_TAG_WALK, TL("Walk: trainStop->edge"),
5437  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5438  // set values of attributes
5439  fillPlanParentAttributes(currentTag);
5440  fillWalkCommonAttributes(currentTag);
5441  }
5442  currentTag = GNE_TAG_WALK_TRAINSTOP_TAZ;
5443  {
5444  // set values of tag
5445  myTagProperties[currentTag] = GNETagProperties(currentTag,
5446  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5447  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5448  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
5449  GNETagProperties::Conflicts::NO_CONFLICTS,
5450  GUIIcon::WALK_TAZ, SUMO_TAG_WALK, TL("Walk: trainStop->taz"),
5451  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5452  // set values of attributes
5453  fillPlanParentAttributes(currentTag);
5454  fillWalkCommonAttributes(currentTag);
5455  }
5456  currentTag = GNE_TAG_WALK_TRAINSTOP_JUNCTION;
5457  {
5458  // set values of tag
5459  myTagProperties[currentTag] = GNETagProperties(currentTag,
5460  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5461  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5462  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5463  GNETagProperties::Conflicts::NO_CONFLICTS,
5464  GUIIcon::WALK_JUNCTION, SUMO_TAG_WALK, TL("Walk: trainStop->taz"),
5465  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5466  // set values of attributes
5467  fillPlanParentAttributes(currentTag);
5468  fillWalkCommonAttributes(currentTag);
5469  }
5470  currentTag = GNE_TAG_WALK_TRAINSTOP_BUSSTOP;
5471  {
5472  // set values of tag
5473  myTagProperties[currentTag] = GNETagProperties(currentTag,
5474  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5475  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5476  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5477  GNETagProperties::Conflicts::NO_CONFLICTS,
5478  GUIIcon::WALK_BUSSTOP, SUMO_TAG_WALK, TL("Walk: trainStop->busStop"),
5479  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5480  // set values of attributes
5481  fillPlanParentAttributes(currentTag);
5482  fillWalkCommonAttributes(currentTag);
5483  }
5484  currentTag = GNE_TAG_WALK_TRAINSTOP_TRAINSTOP;
5485  {
5486  // set values of tag
5487  myTagProperties[currentTag] = GNETagProperties(currentTag,
5488  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK,
5489  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5490  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5491  GNETagProperties::Conflicts::NO_CONFLICTS,
5492  GUIIcon::WALK_TRAINSTOP, SUMO_TAG_WALK, TL("Walk: trainStop->trainStop"),
5493  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5494  // set values of attributes
5495  fillPlanParentAttributes(currentTag);
5496  fillWalkCommonAttributes(currentTag);
5497  }
5498 }
5499 
5500 
5501 void
5503  // declare empty GNEAttributeProperties
5504  GNEAttributeProperties attrProperty;
5505 
5506  SumoXMLTag currentTag = GNE_TAG_RIDE_EDGE_EDGE;
5507  {
5508  // set values of tag
5509  myTagProperties[currentTag] = GNETagProperties(currentTag,
5510  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::RIDE,
5511  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5512  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_EDGE,
5513  GNETagProperties::Conflicts::NO_CONFLICTS,
5514  GUIIcon::RIDE_EDGE, SUMO_TAG_RIDE, TL("Ride: edge->edge"),
5515  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5516  // set values of attributes
5517  fillPlanParentAttributes(currentTag);
5518  fillRideCommonAttributes(currentTag);
5519  }
5520  currentTag = GNE_TAG_RIDE_EDGE_BUSSTOP;
5521  {
5522  // set values of tag
5523  myTagProperties[currentTag] = GNETagProperties(currentTag,
5524  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::RIDE,
5525  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5526  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5527  GNETagProperties::Conflicts::NO_CONFLICTS,
5528  GUIIcon::RIDE_BUSSTOP, SUMO_TAG_RIDE, TL("Ride: edge->busStop"),
5529  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5530  // set values of attributes
5531  fillPlanParentAttributes(currentTag);
5532  fillRideCommonAttributes(currentTag);
5533  }
5534  currentTag = GNE_TAG_RIDE_EDGE_TRAINSTOP;
5535  {
5536  // set values of tag
5537  myTagProperties[currentTag] = GNETagProperties(currentTag,
5538  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::RIDE,
5539  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5540  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5541  GNETagProperties::Conflicts::NO_CONFLICTS,
5542  GUIIcon::RIDE_TRAINSTOP, SUMO_TAG_RIDE, TL("Ride: edge->trainStop"),
5543  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5544  // set values of attributes
5545  fillPlanParentAttributes(currentTag);
5546  fillRideCommonAttributes(currentTag);
5547  }
5548  // from busStop
5549  currentTag = GNE_TAG_RIDE_BUSSTOP_EDGE;
5550  {
5551  // set values of tag
5552  myTagProperties[currentTag] = GNETagProperties(currentTag,
5553  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::RIDE,
5554  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5555  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
5556  GNETagProperties::Conflicts::NO_CONFLICTS,
5557  GUIIcon::RIDE_EDGE, SUMO_TAG_RIDE, TL("Ride: busStop->edge"),
5558  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5559  // set values of attributes
5560  fillPlanParentAttributes(currentTag);
5561  fillRideCommonAttributes(currentTag);
5562  }
5563  currentTag = GNE_TAG_RIDE_BUSSTOP_BUSSTOP;
5564  {
5565  // set values of tag
5566  myTagProperties[currentTag] = GNETagProperties(currentTag,
5567  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::RIDE,
5568  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5569  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5570  GNETagProperties::Conflicts::NO_CONFLICTS,
5571  GUIIcon::RIDE_BUSSTOP, SUMO_TAG_RIDE, TL("Ride: busStop->busStop"),
5572  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5573  // set values of attributes
5574  fillPlanParentAttributes(currentTag);
5575  fillRideCommonAttributes(currentTag);
5576  }
5577  currentTag = GNE_TAG_RIDE_BUSSTOP_TRAINSTOP;
5578  {
5579  // set values of tag
5580  myTagProperties[currentTag] = GNETagProperties(currentTag,
5581  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::RIDE,
5582  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5583  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5584  GNETagProperties::Conflicts::NO_CONFLICTS,
5585  GUIIcon::RIDE_TRAINSTOP, SUMO_TAG_RIDE, TL("Ride: busStop->trainStop"),
5586  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5587  // set values of attributes
5588  fillPlanParentAttributes(currentTag);
5589  fillRideCommonAttributes(currentTag);
5590  }
5591  // from trainstop
5592  currentTag = GNE_TAG_RIDE_TRAINSTOP_EDGE;
5593  {
5594  // set values of tag
5595  myTagProperties[currentTag] = GNETagProperties(currentTag,
5596  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::RIDE,
5597  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5598  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
5599  GNETagProperties::Conflicts::NO_CONFLICTS,
5600  GUIIcon::RIDE_EDGE, SUMO_TAG_RIDE, TL("Ride: trainStop->edge"),
5601  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5602  // set values of attributes
5603  fillPlanParentAttributes(currentTag);
5604  fillRideCommonAttributes(currentTag);
5605  }
5606  currentTag = GNE_TAG_RIDE_TRAINSTOP_BUSSTOP;
5607  {
5608  // set values of tag
5609  myTagProperties[currentTag] = GNETagProperties(currentTag,
5610  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::RIDE,
5611  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5612  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5613  GNETagProperties::Conflicts::NO_CONFLICTS,
5614  GUIIcon::RIDE_BUSSTOP, SUMO_TAG_RIDE, TL("Ride: train->busStop"),
5615  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5616  // set values of attributes
5617  fillPlanParentAttributes(currentTag);
5618  fillRideCommonAttributes(currentTag);
5619  }
5620  currentTag = GNE_TAG_RIDE_TRAINSTOP_TRAINSTOP;
5621  {
5622  // set values of tag
5623  myTagProperties[currentTag] = GNETagProperties(currentTag,
5624  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::RIDE,
5625  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5626  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5627  GNETagProperties::Conflicts::NO_CONFLICTS,
5628  GUIIcon::RIDE_TRAINSTOP, SUMO_TAG_RIDE, TL("Ride: train->trainStop"),
5629  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(253, 255, 206, 255));
5630  // set values of attributes
5631  fillPlanParentAttributes(currentTag);
5632  fillRideCommonAttributes(currentTag);
5633  }
5634 }
5635 
5636 
5637 void
5639  // declare empty GNEAttributeProperties
5640  GNEAttributeProperties attrProperty;
5641 
5642  SumoXMLTag currentTag = GNE_TAG_STOPPERSON_EDGE;
5643  {
5644  // set values of tag
5645  myTagProperties[currentTag] = GNETagProperties(currentTag,
5646  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::STOPPERSON,
5647  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5648  GNETagProperties::TagParents::PLAN_EDGE,
5649  GNETagProperties::Conflicts::NO_CONFLICTS,
5650  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("Stop: edge"),
5651  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(255, 213, 213, 255));
5652 
5653  // set values of attributes
5654  fillPlanParentAttributes(currentTag);
5655  fillPlanStopCommonAttributes(currentTag);
5656  }
5657  currentTag = GNE_TAG_STOPPERSON_BUSSTOP;
5658  {
5659  // set values of tag
5660  myTagProperties[currentTag] = GNETagProperties(currentTag,
5661  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::STOPPERSON,
5662  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5663  GNETagProperties::TagParents::PLAN_BUSSTOP,
5664  GNETagProperties::Conflicts::NO_CONFLICTS,
5665  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("Stop: busStop"),
5666  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(255, 213, 213, 255));
5667 
5668  // set values of attributes
5669  fillPlanParentAttributes(currentTag);
5670  fillPlanStopCommonAttributes(currentTag);
5671  }
5672  currentTag = GNE_TAG_STOPPERSON_TRAINSTOP;
5673  {
5674  // set values of tag
5675  myTagProperties[currentTag] = GNETagProperties(currentTag,
5676  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::STOPPERSON,
5677  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
5678  GNETagProperties::TagParents::PLAN_TRAINSTOP,
5679  GNETagProperties::Conflicts::NO_CONFLICTS,
5680  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("Stop: trainStop"),
5681  {SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW}, FXRGBA(255, 213, 213, 255));
5682 
5683  // set values of attributes
5684  fillPlanParentAttributes(currentTag);
5685  fillPlanStopCommonAttributes(currentTag);
5686  }
5687 }
5688 
5689 
5690 void
5692 
5695  TL("The color with which the POI shall be displayed"),
5696  "red");
5697  myTagProperties[currentTag].addAttribute(attrProperty);
5698 
5699  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
5701  TL("A typename for the POI"),
5703  myTagProperties[currentTag].addAttribute(attrProperty);
5704 
5705  attrProperty = GNEAttributeProperties(SUMO_ATTR_ICON,
5707  TL("POI Icon"),
5709  attrProperty.setDiscreteValues(SUMOXMLDefinitions::POIIcons.getStrings());
5710  myTagProperties[currentTag].addAttribute(attrProperty);
5711 
5712  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
5714  TL("Name of POI"));
5715  myTagProperties[currentTag].addAttribute(attrProperty);
5716 
5717  attrProperty = GNEAttributeProperties(SUMO_ATTR_LAYER,
5719  TL("The layer of the POI for drawing and selecting"),
5721  myTagProperties[currentTag].addAttribute(attrProperty);
5722 
5723  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
5725  TL("Width of rendered image in meters"),
5727  myTagProperties[currentTag].addAttribute(attrProperty);
5728 
5731  TL("Height of rendered image in meters"),
5733  myTagProperties[currentTag].addAttribute(attrProperty);
5734 
5737  TL("A bitmap to use for rendering this POI"),
5739  myTagProperties[currentTag].addAttribute(attrProperty);
5740 
5743  TL("Enable or disable use image file as a relative path"),
5745  myTagProperties[currentTag].addAttribute(attrProperty);
5746 
5747  attrProperty = GNEAttributeProperties(SUMO_ATTR_ANGLE,
5749  TL("Angle of rendered image in degree"),
5751  myTagProperties[currentTag].addAttribute(attrProperty);
5752 }
5753 
5754 
5755 void
5757  // declare empty GNEAttributeProperties
5758  GNEAttributeProperties attrProperty;
5759 
5760  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
5762  TL("This vehicle's color"),
5763  "yellow");
5764  myTagProperties[currentTag].addAttribute(attrProperty);
5765 
5768  TL("The lane on which the vehicle shall be inserted"),
5769  "first");
5770  myTagProperties[currentTag].addAttribute(attrProperty);
5771 
5774  TL("The position at which the vehicle shall enter the net"),
5775  "base");
5776  myTagProperties[currentTag].addAttribute(attrProperty);
5777 
5780  TL("The speed with which the vehicle shall enter the network"),
5781  "0.00");
5782  myTagProperties[currentTag].addAttribute(attrProperty);
5783 
5786  TL("The lane at which the vehicle shall leave the network"),
5787  "current");
5788  myTagProperties[currentTag].addAttribute(attrProperty);
5789 
5792  TL("The position at which the vehicle shall leave the network"),
5793  "max");
5794  myTagProperties[currentTag].addAttribute(attrProperty);
5795 
5798  TL("The speed with which the vehicle shall leave the network"),
5799  "current");
5800  myTagProperties[currentTag].addAttribute(attrProperty);
5801 
5802  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINE,
5804  TL("A string specifying the id of a public transport line which can be used when specifying person rides"));
5805  myTagProperties[currentTag].addAttribute(attrProperty);
5806 
5809  TL("The number of occupied seats when the vehicle is inserted"),
5810  "0");
5811  myTagProperties[currentTag].addAttribute(attrProperty);
5812 
5815  TL("The number of occupied container places when the vehicle is inserted"),
5816  "0");
5817  myTagProperties[currentTag].addAttribute(attrProperty);
5818 
5821  TL("The lateral position on the departure lane at which the vehicle shall enter the net"),
5822  "center");
5823  myTagProperties[currentTag].addAttribute(attrProperty);
5824 
5827  TL("The lateral position on the arrival lane at which the vehicle shall arrive"),
5828  "center");
5829  myTagProperties[currentTag].addAttribute(attrProperty);
5830 
5833  TL("Insertion checks"),
5835  myTagProperties[currentTag].addAttribute(attrProperty);
5836 }
5837 
5838 
5839 void
5841  // declare empty GNEAttributeProperties
5842  GNEAttributeProperties attrProperty;
5843 
5844  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
5846  TL("First flow departure time"),
5847  "0");
5848  myTagProperties[currentTag].addAttribute(attrProperty);
5849 
5850  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
5852  TL("End of departure interval"),
5853  "3600");
5854  myTagProperties[currentTag].addAttribute(attrProperty);
5855 
5858  TL("probability for emitting a flow each second") + std::string("\n") +
5859  TL("(not together with vehsPerHour or period)"),
5860  "1800");
5861  myTagProperties[currentTag].addAttribute(attrProperty);
5862 
5863  attrProperty = GNEAttributeProperties(perHour,
5865  TL("Number of flows per hour, equally spaced") + std::string("\n") +
5866  TL("(not together with period or probability or poisson)"),
5867  "1800");
5868  myTagProperties[currentTag].addAttribute(attrProperty);
5869 
5872  TL("Insert equally spaced flows at that period") + std::string("\n") +
5873  TL("(not together with vehsPerHour or probability or poisson)"),
5874  "2");
5875  myTagProperties[currentTag].addAttribute(attrProperty);
5876 
5877  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
5879  TL("probability for emitting a flow each second") + std::string("\n") +
5880  TL("(not together with vehsPerHour or period or poisson)"),
5881  "0.5");
5882  myTagProperties[currentTag].addAttribute(attrProperty);
5883 
5886  TL("Insert flow expected vehicles per second with poisson distributed insertion rate") + std::string("\n") +
5887  TL("(not together with period or vehsPerHour or probability)"),
5888  "0.5");
5889  myTagProperties[currentTag].addAttribute(attrProperty);
5890 }
5891 
5892 
5893 void
5895  // declare empty GNEAttributeProperties
5896  GNEAttributeProperties attrProperty;
5897 
5898  attrProperty = GNEAttributeProperties(SUMO_ATTR_ACCEL,
5900  TL("The acceleration ability of vehicles of this type [m/s^2]"),
5901  "2.60");
5902  myTagProperties[currentTag].addAttribute(attrProperty);
5903 
5904  attrProperty = GNEAttributeProperties(SUMO_ATTR_DECEL,
5906  TL("The deceleration ability of vehicles of this type [m/s^2]"),
5907  "4.50");
5908  myTagProperties[currentTag].addAttribute(attrProperty);
5909 
5912  TL("The apparent deceleration of the vehicle as used by the standard model [m/s^2]"),
5913  "4.50");
5914  myTagProperties[currentTag].addAttribute(attrProperty);
5915 
5918  TL("The maximal physically possible deceleration for the vehicle [m/s^2]"),
5919  "4.50");
5920  myTagProperties[currentTag].addAttribute(attrProperty);
5921 
5922  attrProperty = GNEAttributeProperties(SUMO_ATTR_SIGMA,
5924  TL("Car-following model parameter"),
5925  "0.50");
5926  attrProperty.setRange(0, 1);
5927  myTagProperties[currentTag].addAttribute(attrProperty);
5928 
5929  attrProperty = GNEAttributeProperties(SUMO_ATTR_TAU,
5931  TL("Car-following model parameter"),
5932  "1.00");
5933  myTagProperties[currentTag].addAttribute(attrProperty);
5934 
5935  attrProperty = GNEAttributeProperties(SUMO_ATTR_TMP1,
5937  TL("SKRAUSSX parameter 1"));
5938  myTagProperties[currentTag].addAttribute(attrProperty);
5939 
5940  attrProperty = GNEAttributeProperties(SUMO_ATTR_TMP2,
5942  TL("SKRAUSSX parameter 2"));
5943  myTagProperties[currentTag].addAttribute(attrProperty);
5944 
5945  attrProperty = GNEAttributeProperties(SUMO_ATTR_TMP3,
5947  TL("SKRAUSSX parameter 3"));
5948  myTagProperties[currentTag].addAttribute(attrProperty);
5949 
5950  attrProperty = GNEAttributeProperties(SUMO_ATTR_TMP4,
5952  TL("SKRAUSSX parameter 4"));
5953  myTagProperties[currentTag].addAttribute(attrProperty);
5954 
5955  attrProperty = GNEAttributeProperties(SUMO_ATTR_TMP5,
5957  TL("SKRAUSSX parameter 5"));
5958  myTagProperties[currentTag].addAttribute(attrProperty);
5959 
5962  TL("EIDM Look ahead / preview parameter [s]"),
5963  "4.00");
5964  myTagProperties[currentTag].addAttribute(attrProperty);
5965 
5968  TL("EIDM AP Reaction Time parameter [s]"),
5969  "0.50");
5970  myTagProperties[currentTag].addAttribute(attrProperty);
5971 
5974  TL("EIDM Wiener Process parameter for the Driving Error [s]"),
5975  "3.00");
5976  myTagProperties[currentTag].addAttribute(attrProperty);
5977 
5980  TL("EIDM Wiener Process parameter for the Estimation Error [s]"),
5981  "10.00");
5982  myTagProperties[currentTag].addAttribute(attrProperty);
5983 
5986  TL("EIDM Coolness parameter of the Enhanced IDM [-]"),
5987  "0.99");
5988  attrProperty.setRange(0, 1);
5989  myTagProperties[currentTag].addAttribute(attrProperty);
5990 
5993  TL("EIDM leader speed estimation error parameter [-]"),
5994  "0.02");
5995  myTagProperties[currentTag].addAttribute(attrProperty);
5996 
5999  TL("EIDM gap estimation error parameter [-]"),
6000  "0.10");
6001  myTagProperties[currentTag].addAttribute(attrProperty);
6002 
6005  TL("EIDM driving error parameter [-]"),
6006  "0.04");
6007  myTagProperties[currentTag].addAttribute(attrProperty);
6008 
6011  TL("EIDM maximal jerk parameter [m/s^3]"),
6012  "3.00");
6013  myTagProperties[currentTag].addAttribute(attrProperty);
6014 
6017  TL("EIDM maximal negative acceleration between two Action Points (threshold) [m/s^2]"),
6018  "1.00");
6019  myTagProperties[currentTag].addAttribute(attrProperty);
6020 
6023  TL("EIDM Time parameter until vehicle reaches amax after startup/driveoff [s]"),
6024  "1.20");
6025  myTagProperties[currentTag].addAttribute(attrProperty);
6026 
6029  TL("EIDM Flatness parameter of startup/driveoff curve [-]"),
6030  "2.00");
6031  myTagProperties[currentTag].addAttribute(attrProperty);
6032 
6035  TL("EIDM Shift parameter of startup/driveoff curve [-]"),
6036  "0.70");
6037  myTagProperties[currentTag].addAttribute(attrProperty);
6038 
6041  TL("EIDM parameter if model shall include vehicle dynamics into the acceleration calculation [0/1]"),
6042  "0");
6043  myTagProperties[currentTag].addAttribute(attrProperty);
6044 
6047  TL("EIDM parameter how many vehicles are taken into the preview calculation of the driver (at least always 1!) [-]"),
6048  "0");
6049  myTagProperties[currentTag].addAttribute(attrProperty);
6050 
6053  TL("Peter Wagner 2009 parameter"),
6054  "0");
6055  myTagProperties[currentTag].addAttribute(attrProperty);
6056 
6059  TL("Peter Wagner 2009 parameter"),
6060  "0");
6061  myTagProperties[currentTag].addAttribute(attrProperty);
6062 
6065  TL("IDMM parameter"),
6066  "0");
6067  myTagProperties[currentTag].addAttribute(attrProperty);
6068 
6071  TL("IDMM parameter"),
6072  "0");
6073  myTagProperties[currentTag].addAttribute(attrProperty);
6074 
6077  TL("W99 parameter"),
6078  "1.3");
6079  myTagProperties[currentTag].addAttribute(attrProperty);
6080 
6083  TL("W99 parameter"),
6084  "8.0");
6085  myTagProperties[currentTag].addAttribute(attrProperty);
6086 
6089  TL("W99 parameter"),
6090  "-12.0");
6091  myTagProperties[currentTag].addAttribute(attrProperty);
6092 
6095  TL("W99 parameter"),
6096  "-0.25");
6097  myTagProperties[currentTag].addAttribute(attrProperty);
6098 
6101  TL("W99 parameter"),
6102  "0.35");
6103  myTagProperties[currentTag].addAttribute(attrProperty);
6104 
6107  TL("W99 parameter"),
6108  "6.0");
6109  myTagProperties[currentTag].addAttribute(attrProperty);
6110 
6113  TL("W99 parameter"),
6114  "0.25");
6115  myTagProperties[currentTag].addAttribute(attrProperty);
6116 
6119  TL("W99 parameter"),
6120  "2.0");
6121  myTagProperties[currentTag].addAttribute(attrProperty);
6122 
6125  TL("W99 parameter"),
6126  "1.5");
6127  myTagProperties[currentTag].addAttribute(attrProperty);
6128 
6131  TL("Wiedemann parameter"));
6132  myTagProperties[currentTag].addAttribute(attrProperty);
6133 
6136  TL("Wiedemann parameter"));
6137  myTagProperties[currentTag].addAttribute(attrProperty);
6138 
6141  TL("MinGap factor parameter"));
6142  myTagProperties[currentTag].addAttribute(attrProperty);
6143 
6144  attrProperty = GNEAttributeProperties(SUMO_ATTR_K,
6146  TL("K parameter"));
6147  myTagProperties[currentTag].addAttribute(attrProperty);
6148 
6151  TL("Kerner Phi parameter"));
6152  myTagProperties[currentTag].addAttribute(attrProperty);
6153 
6156  TL("IDM Delta parameter"));
6157  myTagProperties[currentTag].addAttribute(attrProperty);
6158 
6161  TL("IDM Stepping parameter"));
6162  myTagProperties[currentTag].addAttribute(attrProperty);
6163 
6166  TL("Train Types"),
6167  "NGT400");
6168  attrProperty.setDiscreteValues(SUMOXMLDefinitions::TrainTypes.getStrings());
6169  myTagProperties[currentTag].addAttribute(attrProperty);
6170 }
6171 
6172 
6173 void
6175  // declare empty GNEAttributeProperties
6176  GNEAttributeProperties attrProperty;
6177 
6180  TL("Minimum distance to pedestrians that are walking towards the conflict point with the ego vehicle."),
6181  "10");
6182  myTagProperties[currentTag].addAttribute(attrProperty);
6183 
6186  TL("The accumulated waiting time after which a vehicle will drive onto an intersection even though this might cause jamming."),
6187  "-1");
6188  myTagProperties[currentTag].addAttribute(attrProperty);
6189 
6192  TL("This value causes vehicles to violate a yellow light if the duration of the yellow phase is lower than the given threshold."),
6193  "-1");
6194  myTagProperties[currentTag].addAttribute(attrProperty);
6195 
6198  TL("This value causes vehicles to violate a red light if the duration of the red phase is lower than the given threshold."),
6199  "-1");
6200  myTagProperties[currentTag].addAttribute(attrProperty);
6201 
6204  TL("This value causes vehicles affected by jmDriveAfterRedTime to slow down when violating a red light."),
6205  "0.0");
6206  myTagProperties[currentTag].addAttribute(attrProperty);
6207 
6210  TL("This value causes vehicles to ignore foe vehicles that have right-of-way with the given probability."),
6211  "0.0");
6212  myTagProperties[currentTag].addAttribute(attrProperty);
6213 
6216  TL("This value is used in conjunction with jmIgnoreFoeProb.") + std::string("\n") +
6217  TL("Only vehicles with a speed below or equal to the given value may be ignored."),
6218  "0.0");
6219  myTagProperties[currentTag].addAttribute(attrProperty);
6220 
6223  TL("This value configures driving imperfection (dawdling) while passing a minor link."),
6224  "0.0");
6225  myTagProperties[currentTag].addAttribute(attrProperty);
6226 
6229  TL("This value defines the minimum time gap when passing ahead of a prioritized vehicle. "),
6230  "1");
6231  myTagProperties[currentTag].addAttribute(attrProperty);
6232 
6235  TL("Willingess of drivers to impede vehicles with higher priority"),
6236  "0.0");
6237  myTagProperties[currentTag].addAttribute(attrProperty);
6238 }
6239 
6240 
6241 void
6243  // declare empty GNEAttributeProperties
6244  GNEAttributeProperties attrProperty;
6245 
6248  TL("The eagerness for performing strategic lane changing. Higher values result in earlier lane-changing."),
6249  "1.0");
6250  myTagProperties[currentTag].addAttribute(attrProperty);
6251 
6254  TL("The willingness for performing cooperative lane changing. Lower values result in reduced cooperation."),
6255  "1.0");
6256  myTagProperties[currentTag].addAttribute(attrProperty);
6257 
6260  TL("The eagerness for performing lane changing to gain speed. Higher values result in more lane-changing."),
6261  "1.0");
6262  myTagProperties[currentTag].addAttribute(attrProperty);
6263 
6266  TL("The eagerness for following the obligation to keep right. Higher values result in earlier lane-changing."),
6267  "1.0");
6268  myTagProperties[currentTag].addAttribute(attrProperty);
6269 
6272  TL("The eagerness for using the configured lateral alignment within the lane.") + std::string("\n") +
6273  TL("Higher values result in increased willingness to sacrifice speed for alignment."),
6274  "1.0");
6275  myTagProperties[currentTag].addAttribute(attrProperty);
6276 
6279  TL("The eagerness for overtaking through the opposite-direction lane. Higher values result in more lane-changing."),
6280  "1.0");
6281  myTagProperties[currentTag].addAttribute(attrProperty);
6282 
6285  TL("Willingness to encroach laterally on other drivers."),
6286  "0.00");
6287  myTagProperties[currentTag].addAttribute(attrProperty);
6288 
6291  TL("Minimum lateral gap when encroaching laterally on other drives (alternative way to define lcPushy)"),
6292  "0.00");
6293  myTagProperties[currentTag].addAttribute(attrProperty);
6294 
6297  TL("Willingness to accept lower front and rear gaps on the target lane."),
6298  "1.0");
6299  myTagProperties[currentTag].addAttribute(attrProperty);
6300 
6303  TL("Dynamic factor for modifying lcAssertive and lcPushy."),
6304  "0.00");
6305  myTagProperties[currentTag].addAttribute(attrProperty);
6306 
6309  TL("Time to reach maximum impatience (of 1). Impatience grows whenever a lane-change manoeuvre is blocked."),
6310  "infinity");
6311  myTagProperties[currentTag].addAttribute(attrProperty);
6312 
6315  TL("Maximum lateral acceleration per second."),
6316  "1.0");
6317  myTagProperties[currentTag].addAttribute(attrProperty);
6318 
6321  TL("Factor for configuring the strategic lookahead distance when a change to the left is necessary (relative to right lookahead)."),
6322  "2.0");
6323  myTagProperties[currentTag].addAttribute(attrProperty);
6324 
6327  TL("Factor for configuring the threshold asymmetry when changing to the left or to the right for speed gain."),
6328  "0.1");
6329  myTagProperties[currentTag].addAttribute(attrProperty);
6330 
6333  TL("Upper bound on lateral speed when standing."),
6334  "0.00");
6335  myTagProperties[currentTag].addAttribute(attrProperty);
6336 
6339  TL("Upper bound on lateral speed while moving computed as lcMaxSpeedLatStanding + lcMaxSpeedLatFactor * getSpeed()"),
6340  "1.00");
6341  myTagProperties[currentTag].addAttribute(attrProperty);
6342 
6345  TL("Distance to an upcoming turn on the vehicles route, below which the alignment") + std::string("\n") +
6346  TL("should be dynamically adapted to match the turn direction."),
6347  "0.00");
6348  myTagProperties[currentTag].addAttribute(attrProperty);
6349 
6352  TL("The probability for violating rules gainst overtaking on the right."),
6353  "0.00");
6354  myTagProperties[currentTag].addAttribute(attrProperty);
6355 
6358  TL("Time threshold for the willingness to change right."),
6359  "-1");
6360  myTagProperties[currentTag].addAttribute(attrProperty);
6361 
6364  TL("Speed difference factor for the eagerness of overtaking a neighbor vehicle before changing lanes (threshold = factor*speedlimit)."),
6365  "0.00");
6366  attrProperty.setRange(-1, 1);
6367  myTagProperties[currentTag].addAttribute(attrProperty);
6368 
6369 }
6370 
6371 
6372 void
6374  // declare empty GNEAttributeProperties
6375  GNEAttributeProperties attrProperty;
6376 
6377  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
6379  TL("The name of the person"));
6380  myTagProperties[currentTag].addAttribute(attrProperty);
6381 
6382  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
6384  TL("The id of the person type to use for this person"),
6386  myTagProperties[currentTag].addAttribute(attrProperty);
6387 
6388  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
6390  TL("This person's color"),
6391  "yellow");
6392  myTagProperties[currentTag].addAttribute(attrProperty);
6393 
6396  TL("The position at which the person shall enter the net"),
6397  "base");
6398  myTagProperties[currentTag].addAttribute(attrProperty);
6399 }
6400 
6401 
6402 void
6404  // declare empty GNEAttributeProperties
6405  GNEAttributeProperties attrProperty;
6406 
6407  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
6409  TL("The name of the container"));
6410  myTagProperties[currentTag].addAttribute(attrProperty);
6411 
6412  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
6414  TL("The id of the container type to use for this container"),
6416  myTagProperties[currentTag].addAttribute(attrProperty);
6417 
6418  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
6420  TL("This container's color"),
6421  "yellow");
6422  myTagProperties[currentTag].addAttribute(attrProperty);
6423 }
6424 
6425 
6426 void
6428  // declare empty GNEAttributeProperties
6429  GNEAttributeProperties attrProperty;
6430 
6433  TL("Minimum duration for stopping"),
6434  "60");
6435  attrProperty.setDefaultActivated(true);
6436  myTagProperties[currentTag].addAttribute(attrProperty);
6437 
6438  attrProperty = GNEAttributeProperties(SUMO_ATTR_UNTIL,
6440  TL("The time step at which the route continues"),
6441  "0.00");
6442  myTagProperties[currentTag].addAttribute(attrProperty);
6443 
6446  TL("If set to a non-negative time value, then the stop duration can be extended at most by the extension value in seconds"),
6447  "0");
6448  myTagProperties[currentTag].addAttribute(attrProperty);
6449 
6450  if (!waypoint) {
6453  TL("Whether a person or container or both may end the stop"),
6454  "false");
6455  attrProperty.setDiscreteValues({"false", "person", "container", "join"});
6456  myTagProperties[currentTag].addAttribute(attrProperty);
6457 
6460  TL("List of elements that must board the vehicle before it may continue"));
6461  myTagProperties[currentTag].addAttribute(attrProperty);
6462 
6463  attrProperty = GNEAttributeProperties(SUMO_ATTR_JOIN,
6465  TL("Joins this train to another upon reaching the stop"));
6466  myTagProperties[currentTag].addAttribute(attrProperty);
6467  }
6468 
6471  TL("List of elements that can board the vehicle before it may continue"));
6472  myTagProperties[currentTag].addAttribute(attrProperty);
6473 
6476  TL("Whether the vehicle stops on the road or beside"),
6477  "false");
6478  attrProperty.setDiscreteValues({"true", "false", "opportunistic"});
6479  myTagProperties[currentTag].addAttribute(attrProperty);
6480 
6483  TL("Activity displayed for stopped person in GUI and output files"));
6484  myTagProperties[currentTag].addAttribute(attrProperty);
6485 
6488  TL("Parameter to be applied to the vehicle to track the trip id within a cyclical public transport route"));
6489  myTagProperties[currentTag].addAttribute(attrProperty);
6490 
6491  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINE,
6493  TL("New line attribute to be set on the vehicle when reaching this stop (for cyclical public transport route)"));
6494  myTagProperties[currentTag].addAttribute(attrProperty);
6495 
6496  if (waypoint) {
6497  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
6499  TL("Speed to be kept while driving between startPos and endPos"),
6500  "0.00");
6501  myTagProperties[currentTag].addAttribute(attrProperty);
6502  } else {
6505  TL("Whether the stop may be skipped if no passengers wants to embark or disembark"),
6506  "0");
6507  myTagProperties[currentTag].addAttribute(attrProperty);
6508  }
6509 
6510  attrProperty = GNEAttributeProperties(SUMO_ATTR_JUMP,
6512  TL("transfer time if there shall be a jump from this stop to the next route edge"),
6513  "-1");
6514  myTagProperties[currentTag].addAttribute(attrProperty);
6515 
6516  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPLIT,
6518  TL("Splits the train upon reaching the stop"));
6519  myTagProperties[currentTag].addAttribute(attrProperty);
6520 }
6521 
6522 
6523 void
6525  // get rag property
6526  auto& tagProperty = myTagProperties[currentTag];
6527  // declare empty GNEAttributeProperties
6528  GNEAttributeProperties attrProperty;
6529 
6530  // basic parents
6531  if (tagProperty.planConsecutiveEdges()) {
6532  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
6534  TL("list of consecutive edges"));
6535  myTagProperties[currentTag].addAttribute(attrProperty);
6536 
6539  TL("Arrival position on the last edge"),
6540  "-1");
6541  myTagProperties[currentTag].addAttribute(attrProperty);
6542  }
6543  if (tagProperty.planRoute()) {
6544  attrProperty = GNEAttributeProperties(SUMO_ATTR_ROUTE,
6546  TL("Route ID"));
6547  myTagProperties[currentTag].addAttribute(attrProperty);
6548 
6551  TL("Arrival position on the destination edge"),
6552  "-1");
6553  myTagProperties[currentTag].addAttribute(attrProperty);
6554  }
6555  if (tagProperty.planEdge()) {
6556 
6557  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
6559  TL("Edge ID"));
6560  myTagProperties[currentTag].addAttribute(attrProperty);
6561 
6564  TL("The end position on the lane (the higher position on the lane) in meters, must be larger than startPos by more than 0.1m"));
6565  myTagProperties[currentTag].addAttribute(attrProperty);
6566  }
6567  if (tagProperty.planBusStop()) {
6570  TL("Bus stop ID"));
6571  myTagProperties[currentTag].addAttribute(attrProperty);
6572  }
6573  if (tagProperty.planTrainStop()) {
6576  TL("Train stop ID"));
6577  myTagProperties[currentTag].addAttribute(attrProperty);
6578  }
6579  if (tagProperty.planContainerStop()) {
6582  TL("Container stop ID"));
6583  myTagProperties[currentTag].addAttribute(attrProperty);
6584  }
6585  // from parents
6586  if (tagProperty.planFromEdge()) {
6587  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
6589  TL("Edge start ID"));
6590  myTagProperties[currentTag].addAttribute(attrProperty);
6591  }
6592  if (tagProperty.planFromTAZ()) {
6595  TL("TAZ start ID"));
6596  myTagProperties[currentTag].addAttribute(attrProperty);
6597  }
6598  if (tagProperty.planFromJunction()) {
6601  TL("Junction start ID"));
6602  myTagProperties[currentTag].addAttribute(attrProperty);
6603  }
6604  if (tagProperty.planFromBusStop()) {
6607  TL("BuStop start ID"));
6608  myTagProperties[currentTag].addAttribute(attrProperty);
6609  }
6610  if (tagProperty.planFromTrainStop()) {
6613  TL("TrainStop start ID"));
6614  myTagProperties[currentTag].addAttribute(attrProperty);
6615  }
6616  if (tagProperty.planFromContainerStop()) {
6619  TL("ContainerStop start ID"));
6620  myTagProperties[currentTag].addAttribute(attrProperty);
6621  }
6622  // to parents
6623  if (tagProperty.planToEdge()) {
6624  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
6626  TL("Edge end ID"));
6627  myTagProperties[currentTag].addAttribute(attrProperty);
6628  // departPos only for tranships
6629  if (tagProperty.isPlanTranship()) {
6630  // depart pos
6633  TL("The position at which the tranship shall enter the net"),
6634  "0");
6635  myTagProperties[currentTag].addAttribute(attrProperty);
6636  }
6639  TL("arrival position on the destination edge"),
6640  "-1");
6641  myTagProperties[currentTag].addAttribute(attrProperty);
6642  }
6643  if (tagProperty.planToTAZ()) {
6646  TL("TAZ end ID"));
6647  myTagProperties[currentTag].addAttribute(attrProperty);
6648  }
6649  if (tagProperty.planToJunction()) {
6652  TL("Junction end ID"));
6653  myTagProperties[currentTag].addAttribute(attrProperty);
6654  }
6655  if (tagProperty.planToBusStop()) {
6658  TL("BuStop end ID"));
6659  myTagProperties[currentTag].addAttribute(attrProperty);
6660  }
6661  if (tagProperty.planToTrainStop()) {
6664  TL("TrainStop start ID"));
6665  myTagProperties[currentTag].addAttribute(attrProperty);
6666  }
6667  if (tagProperty.planToContainerStop()) {
6670  TL("ContainerStop start ID"));
6671  myTagProperties[currentTag].addAttribute(attrProperty);
6672  }
6673 }
6674 
6675 
6676 void
6678  // declare empty GNEAttributeProperties
6679  GNEAttributeProperties attrProperty;
6680 
6683  TL("List of possible vehicle types to take"));
6684  myTagProperties[currentTag].addAttribute(attrProperty);
6685 
6686  attrProperty = GNEAttributeProperties(SUMO_ATTR_MODES,
6688  TL("List of possible traffic modes. Walking is always possible regardless of this value"));
6689  myTagProperties[currentTag].addAttribute(attrProperty);
6690 
6691  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
6693  TL("list of vehicle alternatives to take for the person trip"),
6694  "ANY");
6695  myTagProperties[currentTag].addAttribute(attrProperty);
6696 }
6697 
6698 
6699 void
6701  // currently walks don't have common attributes
6702 }
6703 
6704 
6705 void
6707  // declare empty GNEAttributeProperties
6708  GNEAttributeProperties attrProperty;
6709 
6710  // lines
6711  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
6713  TL("list of vehicle alternatives to take for the ride"),
6714  "ANY");
6715  myTagProperties[currentTag].addAttribute(attrProperty);
6716 }
6717 
6718 
6719 void
6721  // declare empty GNEAttributeProperties
6722  GNEAttributeProperties attrProperty;
6723 
6724  // lines
6725  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
6727  TL("list of vehicle alternatives to take for the transport"),
6728  "ANY");
6729  myTagProperties[currentTag].addAttribute(attrProperty);
6730 }
6731 
6732 
6733 void
6735  // declare empty GNEAttributeProperties
6736  GNEAttributeProperties attrProperty;
6737 
6738  // speed
6739  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
6741  TL("speed of the container for this tranship in m/s"),
6742  "1.39");
6743  myTagProperties[currentTag].addAttribute(attrProperty);
6744 }
6745 
6746 
6747 void
6749  // declare empty GNEAttributeProperties
6750  GNEAttributeProperties attrProperty;
6751 
6754  TL("Minimum duration for stopping"),
6755  "60");
6756  attrProperty.setDefaultActivated(true);
6757  myTagProperties[currentTag].addAttribute(attrProperty);
6758 
6759  attrProperty = GNEAttributeProperties(SUMO_ATTR_UNTIL,
6761  TL("The time step at which the route continues"),
6762  "0.00");
6763  myTagProperties[currentTag].addAttribute(attrProperty);
6764 
6767  TL("Activity displayed for stopped person in GUI and output files "));
6768  myTagProperties[currentTag].addAttribute(attrProperty);
6769 
6770  // friendlyPos attribute only for stops over edges
6771  if (myTagProperties[currentTag].hasAttribute(SUMO_ATTR_EDGE)) {
6774  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
6775  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
6776  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
6777  "0");
6778  myTagProperties[currentTag].addAttribute(attrProperty);
6779  }
6780 }
6781 
6782 
6783 void
6785  // declare empty GNEAttributeProperties
6786  GNEAttributeProperties attrProperty;
6787 
6788  // fill data set element
6789  SumoXMLTag currentTag = SUMO_TAG_DATASET;
6790  {
6791  // set values of tag
6792  myTagProperties[currentTag] = GNETagProperties(currentTag,
6793  GNETagProperties::TagType::DATAELEMENT,
6794  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::NOTSELECTABLE,
6795  GNETagProperties::TagParents::NO_PARENTS,
6796  GNETagProperties::Conflicts::NO_CONFLICTS,
6797  GUIIcon::DATASET, currentTag, TL("DataSet"));
6798 
6799  // set values of attributes
6800  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
6802  TL("Data set ID"));
6803  myTagProperties[currentTag].addAttribute(attrProperty);
6804 
6805  }
6806  // fill data interval element
6807  currentTag = SUMO_TAG_DATAINTERVAL;
6808  {
6809  // set values of tag
6810  myTagProperties[currentTag] = GNETagProperties(currentTag,
6811  GNETagProperties::TagType::DATAELEMENT,
6812  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOTSELECTABLE,
6813  GNETagProperties::TagParents::NO_PARENTS,
6814  GNETagProperties::Conflicts::NO_CONFLICTS,
6815  GUIIcon::DATAINTERVAL, currentTag, TL("DataInterval"),
6816  {SUMO_TAG_DATASET});
6817 
6818  // set values of attributes
6819  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
6821  TL("Interval ID"));
6822  myTagProperties[currentTag].addAttribute(attrProperty);
6823 
6824  // set values of attributes
6825  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
6827  TL("Data interval begin time"),
6828  "0");
6829  myTagProperties[currentTag].addAttribute(attrProperty);
6830 
6831  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
6833  TL("Data interval end time"),
6834  "3600");
6835  myTagProperties[currentTag].addAttribute(attrProperty);
6836  }
6837  // fill edge data element
6838  currentTag = GNE_TAG_EDGEREL_SINGLE;
6839  {
6840  // set values of tag
6841  myTagProperties[currentTag] = GNETagProperties(currentTag,
6842  GNETagProperties::TagType::DATAELEMENT | GNETagProperties::TagType::GENERICDATA,
6843  GNETagProperties::TagProperty::NO_PROPERTY,
6844  GNETagProperties::TagParents::NO_PARENTS,
6845  GNETagProperties::Conflicts::NO_CONFLICTS,
6846  GUIIcon::EDGEDATA, SUMO_TAG_EDGE, TL("EdgeRelationSingle"));
6847 
6848  // set values of attributes
6849  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
6851  TL("edge ID"));
6852  myTagProperties[currentTag].addAttribute(attrProperty);
6853  }
6854  currentTag = SUMO_TAG_EDGEREL;
6855  {
6856  // set values of tag
6857  myTagProperties[currentTag] = GNETagProperties(currentTag,
6858  GNETagProperties::TagType::DATAELEMENT | GNETagProperties::TagType::GENERICDATA,
6859  GNETagProperties::TagProperty::NO_PROPERTY,
6860  GNETagProperties::TagParents::NO_PARENTS,
6861  GNETagProperties::Conflicts::NO_CONFLICTS,
6862  GUIIcon::EDGERELDATA, currentTag, TL("EdgeRelation"));
6863 
6864  // set values of attributes
6865  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
6867  TL("The ID of the edge the edgeRel starts at"));
6868  myTagProperties[currentTag].addAttribute(attrProperty);
6869 
6870  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
6872  TL("The ID of the edge the edgeRel ends at"));
6873  myTagProperties[currentTag].addAttribute(attrProperty);
6874  }
6875  currentTag = SUMO_TAG_TAZREL;
6876  {
6877  // set values of tag
6878  myTagProperties[currentTag] = GNETagProperties(currentTag,
6879  GNETagProperties::TagType::DATAELEMENT | GNETagProperties::TagType::GENERICDATA,
6880  GNETagProperties::TagProperty::RTREE | GNETagProperties::TagProperty::CHILD,
6881  GNETagProperties::TagParents::NO_PARENTS,
6882  GNETagProperties::Conflicts::NO_CONFLICTS,
6883  GUIIcon::TAZRELDATA, currentTag, TL("TAZRelation"),
6885 
6886  // set values of attributes
6887  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
6889  TL("The name of the TAZ the TAZRel starts at"));
6890  myTagProperties[currentTag].addAttribute(attrProperty);
6891 
6892  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
6894  TL("The name of the TAZ the TAZRel ends at"));
6895  myTagProperties[currentTag].addAttribute(attrProperty);
6896  }
6897  currentTag = SUMO_TAG_MEANDATA_EDGE;
6898  {
6899  // set values of tag
6900  myTagProperties[currentTag] = GNETagProperties(currentTag,
6901  GNETagProperties::TagType::MEANDATA,
6902  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::NOTSELECTABLE,
6903  GNETagProperties::TagParents::NO_PARENTS,
6904  GNETagProperties::Conflicts::NO_CONFLICTS,
6905  GUIIcon::MEANDATAEDGE, currentTag, TL("MeanDataEdge"));
6906 
6907  // set values of attributes
6908  fillCommonMeanDataAttributes(currentTag);
6909 
6910  }
6911  currentTag = SUMO_TAG_MEANDATA_LANE;
6912  {
6913  // set values of tag
6914  myTagProperties[currentTag] = GNETagProperties(currentTag,
6915  GNETagProperties::TagType::MEANDATA,
6916  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::NOTSELECTABLE,
6917  GNETagProperties::TagParents::NO_PARENTS,
6918  GNETagProperties::Conflicts::NO_CONFLICTS,
6919  GUIIcon::MEANDATALANE, currentTag, TL("MeanDataLane"));
6920 
6921  // set values of attributes
6922  fillCommonMeanDataAttributes(currentTag);
6923  }
6924 }
6925 
6926 
6927 void
6929  GNEAttributeProperties attrProperty;
6930 
6931  // fill all meanData attributes
6932  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
6934  TL("The id of this set of measurements"));
6935  myTagProperties[currentTag].addAttribute(attrProperty);
6936 
6937  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
6939  TL("The path to the output file. The path may be relative"));
6940  myTagProperties[currentTag].addAttribute(attrProperty);
6941 
6944  TL("The aggregation period the values the detector collects shall be summed up"));
6945  myTagProperties[currentTag].addAttribute(attrProperty);
6946 
6947  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
6949  TL("The time to start writing. If not given, the simulation's begin is used."));
6950  myTagProperties[currentTag].addAttribute(attrProperty);
6951 
6952  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
6954  TL("The time to end writing. If not given the simulation's end is used."));
6955  myTagProperties[currentTag].addAttribute(attrProperty);
6956 
6959  TL("If set to true, edges/lanes which were not used by a vehicle during this period will not be written"),
6960  "default");
6961  attrProperty.setDiscreteValues({"1", "0", "default"});
6962  myTagProperties[currentTag].addAttribute(attrProperty);
6963 
6966  TL("If set, junction internal edges/lanes will be written as well"),
6967  "0");
6968  myTagProperties[currentTag].addAttribute(attrProperty);
6969 
6972  TL("The maximum travel time in seconds to write if only very small movements occur"),
6973  "100000");
6974  myTagProperties[currentTag].addAttribute(attrProperty);
6975 
6978  TL("Consider an edge/lane unused if it has at most this many sampled seconds"),
6979  "0");
6980  myTagProperties[currentTag].addAttribute(attrProperty);
6981 
6984  TL("The maximum speed to consider a vehicle halting;"),
6985  "0.1");
6986  myTagProperties[currentTag].addAttribute(attrProperty);
6987 
6990  TL("space separated list of vehicle type ids to consider"));
6991  myTagProperties[currentTag].addAttribute(attrProperty);
6992 
6995  TL("whether aggregation should be performed over all vehicles that entered the edge/lane in the aggregation interval"),
6996  "0");
6997  myTagProperties[currentTag].addAttribute(attrProperty);
6998 
7001  TL("Whether pedestrians shall be recorded instead of vehicles. Allowed value is walk"));
7002  myTagProperties[currentTag].addAttribute(attrProperty);
7003 
7006  TL("List of attribute names that shall be written"));
7007  myTagProperties[currentTag].addAttribute(attrProperty);
7008 
7009  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
7011  TL("Restrict output to the given list of edge ids"));
7012  myTagProperties[currentTag].addAttribute(attrProperty);
7013 
7016  TL("Restrict output to the given list of edges given in file"));
7017  myTagProperties[currentTag].addAttribute(attrProperty);
7018 
7021  TL("Whether the traffic statistic of all edges shall be aggregated into a single value"),
7022  "0");
7023  myTagProperties[currentTag].addAttribute(attrProperty);
7024 }
7025 
7026 
7027 void
7029  if (myTagProperties.size() == 0) {
7031  }
7032  // merge "virtual" netedit tags like '<walk: edge->edge'
7033  static std::map<SumoXMLTag, GNETagProperties> xmlTagProperties;
7034  for (const auto& item : myTagProperties) {
7035  if (xmlTagProperties.count(item.second.getXMLTag()) == 0) {
7036  xmlTagProperties[item.second.getXMLTag()] = item.second;
7037  } else {
7038  std::set<SumoXMLAttr> attrs;
7039  auto& old = xmlTagProperties[item.second.getXMLTag()];
7040  for (auto it = old.begin(); it != old.end(); it++) {
7041  attrs.insert(it->getAttr());
7042  }
7043  for (auto it = item.second.begin(); it != item.second.end(); it++) {
7044  if (attrs.count(it->getAttr()) == 0) {
7045  old.addAttribute(*it);
7046  }
7047  }
7048  }
7049  }
7050  const std::string opt = "attribute-help-output";
7053  dev << "# Netedit attribute help\n";
7054  for (const auto& item : xmlTagProperties) {
7055  if (item.second.begin() == item.second.end()) {
7056  // don't write elements without attributes, they are only used for internal purposes
7057  continue;
7058  }
7059  if (item.second.getParentTags().empty()) {
7060  dev << "\n## " << toString(item.first) << "\n";
7061  } else {
7062  if (item.first == SUMO_TAG_FLOW) {
7063  dev << "\n## " << toString(item.first) << "\n";
7064  dev << "also child element of ";
7065  } else {
7066  dev << "\n### " << toString(item.first) << "\n";
7067  dev << "child element of ";
7068  }
7069  bool sep = false;
7070  for (const auto& pTag : item.second.getParentTags()) {
7071  if (sep) {
7072  dev << ", ";
7073  } else {
7074  sep = true;
7075  }
7076  dev << "[" << toString(pTag) << "](#" << StringUtils::to_lower_case(toString(pTag)) << ")";
7077  }
7078  dev << "\n\n";
7079  }
7080  dev << "| Attribute | Type | Description |\n";
7081  dev << "|-----------|------|-------------|\n";
7082  for (const auto& attr : item.second) {
7083  dev << "|" << toString(attr.getAttr()) << "|"
7084  << attr.getDescription() << "|"
7085  << StringUtils::replace(attr.getDefinition(), "\n", " ");
7086  if (attr.getDefaultValue() != "") {
7087  dev << " *default:* **" << attr.getDefaultValue() << "**";
7088  }
7089  dev << "|\n";
7090  }
7091  }
7092 }
7093 
7094 
7095 /****************************************************************************/
long long int SUMOTime
Definition: GUI.h:35
GUISelectedStorage gSelected
A global holder of selected objects.
@ PARKINGSPACE
@ PERSONTRIP_JUNCTION
@ MEANDATALANE
@ PERSONTRIP_TRAINSTOP
@ CONTAINERFLOW
@ WALK_TRAINSTOP
@ PERSONTRIP_BUSSTOP
@ CLOSINGREROUTE
@ MEANDATAEDGE
@ CONTAINERSTOP
@ TRANSPORT_CONTAINERSTOP
@ TRANSHIP_EDGE
@ TRANSHIP_EDGES
@ TRIP_JUNCTIONS
@ DATAINTERVAL
@ FLOW_JUNCTIONS
@ ROUTEPROBREROUTE
@ JPS_WALKABLEAREA
@ TRACTION_SUBSTATION
@ ROUTEDISTRIBUTION
@ CHARGINGSTATION
@ WALK_BUSSTOP
@ TRANSHIP_CONTAINERSTOP
@ TRANSPORT_EDGE
@ PARKINGZONEREROUTE
@ CLOSINGLANEREROUTE
@ RIDE_BUSSTOP
@ JPS_OBSTACLE
@ DESTPROBREROUTE
@ REROUTERINTERVAL
@ VTYPEDISTRIBUTION
@ VARIABLESPEEDSIGN
@ OVERHEADWIRE
@ RIDE_TRAINSTOP
@ PERSONTRIP_TAZ
@ PERSONTRIP_EDGE
@ WALK_JUNCTION
@ OVERHEADWIRE_CLAMP
#define TL(string)
Definition: MsgHandler.h:315
#define TLF(string,...)
Definition: MsgHandler.h:317
SUMOTime string2time(const std::string &r)
convert string to SUMOTime
Definition: SUMOTime.cpp:46
StringBijection< SUMOVehicleClass > SumoVehicleClassStrings(sumoVehicleClassStringInitializer, SVC_CUSTOM2, false)
StringBijection< SUMOVehicleShape > SumoVehicleShapeStrings(sumoVehicleShapeStringInitializer, SUMOVehicleShape::UNKNOWN, false)
const double DEFAULT_VEH_PROB
SUMOVehicleShape
Definition of vehicle classes to differ between different appearances.
@ UNKNOWN
not defined
const std::string DEFAULT_VTYPE_ID
const std::string DEFAULT_CONTAINERTYPE_ID
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
@ SVC_IGNORING
vehicles ignoring classes
SumoXMLTag
Numbers representing SUMO-XML - element names.
@ GNE_TAG_TRIP_JUNCTIONS
a trip between junctions
@ SUMO_TAG_TRACTION_SUBSTATION
A traction substation.
@ GNE_TAG_WALK_BUSSTOP_BUSSTOP
@ GNE_TAG_TRIP_TAZS
a single trip definition that uses TAZs
@ GNE_TAG_PERSONTRIP_EDGE_EDGE
@ GNE_TAG_PERSONTRIP_TAZ_EDGE
@ GNE_TAG_WALK_EDGE_TAZ
@ SUMO_TAG_INTERVAL
an aggreagated-output interval
@ SUMO_TAG_CLOSING_REROUTE
reroute of type closing
@ GNE_TAG_RIDE_BUSSTOP_BUSSTOP
@ GNE_TAG_PERSONTRIP_EDGE_JUNCTION
@ SUMO_TAG_REROUTER
A rerouter.
@ SUMO_TAG_EDGEREL
a relation between two edges
@ GNE_TAG_WAYPOINT_PARKINGAREA
waypoint placed over a parking area
@ GNE_TAG_WALK_TAZ_BUSSTOP
@ SUMO_TAG_DATAINTERVAL
@ GNE_TAG_PERSONTRIP_TRAINSTOP_EDGE
@ GNE_TAG_MULTI_LANE_AREA_DETECTOR
an e2 detector over multiple lanes (placed here due create Additional Frame)
@ SUMO_TAG_ROUTEPROBE
a routeprobe detector
@ GNE_TAG_STOP_PARKINGAREA
stop placed over a parking area
@ GNE_TAG_PERSONTRIP_BUSSTOP_EDGE
@ SUMO_TAG_TAZ
a traffic assignment zone
@ GNE_TAG_WALK_BUSSTOP_TRAINSTOP
@ GNE_TAG_PERSONTRIP_TAZ_TRAINSTOP
@ SUMO_TAG_CHARGING_STATION
A Charging Station.
@ SUMO_TAG_VTYPE
description of a vehicle/person/container type
@ SUMO_TAG_ACCESS
An access point for a train stop.
@ GNE_TAG_TRANSPORT_CONTAINERSTOP_EDGE
@ SUMO_TAG_WALK
@ GNE_TAG_TRANSHIP_EDGE_EDGE
@ SUMO_TAG_TRANSHIP
@ GNE_TAG_WALK_EDGES
@ SUMO_TAG_CONTAINER_STOP
A container stop.
@ GNE_TAG_STOP_BUSSTOP
stop placed over a busStop
@ SUMO_TAG_CONTAINERFLOW
@ SUMO_TAG_PARKING_AREA_REROUTE
entry for an alternative parking zone
@ GNE_TAG_WALK_BUSSTOP_JUNCTION
@ GNE_TAG_TRANSHIP_EDGE_CONTAINERSTOP
@ GNE_TAG_WAYPOINT_TRAINSTOP
waypoint placed over a busStop
@ SUMO_TAG_TAZSINK
a sink within a district (connection road)
@ GNE_TAG_EDGEREL_SINGLE
@ GNE_TAG_WAYPOINT_CONTAINERSTOP
waypoint placed over a containerStop
@ GNE_TAG_STOPCONTAINER_EDGE
@ GNE_TAG_WAYPOINT_BUSSTOP
waypoint placed over a busStop
@ GNE_TAG_WALK_TRAINSTOP_TAZ
@ SUMO_TAG_BUS_STOP
A bus stop.
@ SUMO_TAG_POI
begin/end of the description of a Point of interest
@ GNE_TAG_WAYPOINT_CHARGINGSTATION
waypoint placed over a charging station
@ GNE_TAG_STOPPERSON_BUSSTOP
@ GNE_TAG_INTERNAL_LANE
internal lane
@ SUMO_TAG_STOP
stop for vehicles
@ GNE_TAG_PERSONTRIP_BUSSTOP_TRAINSTOP
@ SUMO_TAG_MEANDATA_LANE
a lane based mean data detector
@ SUMO_TAG_STEP
trigger: a step description
@ GNE_TAG_PERSONTRIP_JUNCTION_BUSSTOP
@ SUMO_TAG_VEHICLE
description of a vehicle
@ GNE_TAG_FLOW_ROUTE
a flow definition using a route instead of a from-to edges route
@ GNE_TAG_PERSONTRIP_TRAINSTOP_TAZ
@ SUMO_TAG_ROUTE_DISTRIBUTION
distribution of a route
@ SUMO_TAG_OVERHEAD_WIRE_CLAMP
An overhead wire clamp (connection of wires in opposite directions)
@ GNE_TAG_PERSONTRIP_JUNCTION_TRAINSTOP
@ GNE_TAG_VSS_SYMBOL
VSS Symbol.
@ GNE_TAG_FLOW_JUNCTIONS
a flow between junctions
@ GNE_TAG_PERSONTRIP_TRAINSTOP_BUSSTOP
@ GNE_TAG_POIGEO
Point of interest over view with GEO attributes.
@ GNE_TAG_PERSONTRIP_BUSSTOP_JUNCTION
@ GNE_TAG_TRANSHIP_EDGES
@ SUMO_TAG_LANETYPE
lane type
@ GNE_TAG_STOP_CONTAINERSTOP
stop placed over a containerStop
@ GNE_TAG_STOPCONTAINER_CONTAINERSTOP
@ GNE_TAG_FLOW_WITHROUTE
description of a vehicle with an embedded route
@ GNE_TAG_RIDE_BUSSTOP_TRAINSTOP
@ SUMO_TAG_FLOW
a flow definition using from and to edges or a route
@ GNE_TAG_PERSONTRIP_EDGE_TRAINSTOP
@ GNE_TAG_RIDE_BUSSTOP_EDGE
@ GNE_TAG_RIDE_TRAINSTOP_BUSSTOP
@ SUMO_TAG_CONNECTION
connectioon between two lanes
@ SUMO_TAG_PARKING_AREA
A parking area.
@ SUMO_TAG_TRANSPORT
@ GNE_TAG_WALK_TRAINSTOP_EDGE
@ GNE_TAG_RIDE_EDGE_EDGE
@ SUMO_TAG_WALKINGAREA
walking area for pedestrians
@ GNE_TAG_PERSONTRIP_TRAINSTOP_TRAINSTOP
@ GNE_TAG_TRANSPORT_EDGE_EDGE
@ GNE_TAG_WALK_EDGE_TRAINSTOP
@ SUMO_TAG_ROUTE_PROB_REROUTE
probability of route of a reroute
@ GNE_TAG_FLOW_TAZS
a flow between TAZs
@ GNE_TAG_CALIBRATOR_LANE
A calibrator placed over lane.
@ GNE_TAG_TRANSPORT_EDGE_CONTAINERSTOP
@ GNE_TAG_WALK_JUNCTION_TAZ
@ SUMO_TAG_DET_ENTRY
an e3 entry point
@ GNE_TAG_PERSONTRIP_TAZ_BUSSTOP
@ GNE_TAG_WALK_JUNCTION_JUNCTION
@ SUMO_TAG_PARKING_SPACE
A parking space for a single vehicle within a parking area.
@ SUMO_TAG_CONTAINER
@ SUMO_TAG_JUNCTION
begin/end of the description of a junction
@ SUMO_TAG_CROSSING
crossing between edges for pedestrians
@ GNE_TAG_WALK_EDGE_EDGE
@ GNE_TAG_PERSONTRIP_TAZ_TAZ
@ SUMO_TAG_ROUTE
begin/end of the description of a route
@ SUMO_TAG_MEANDATA_EDGE
an edge based mean data detector
@ SUMO_TAG_POLY
begin/end of the description of a polygon
@ SUMO_TAG_RIDE
@ SUMO_TAG_OVERHEAD_WIRE_SECTION
An overhead wire section.
@ GNE_TAG_PERSONTRIP_EDGE_BUSSTOP
@ GNE_TAG_PERSONTRIP_BUSSTOP_TAZ
@ SUMO_TAG_TRAIN_STOP
A train stop (alias for bus stop)
@ SUMO_TAG_VTYPE_DISTRIBUTION
distribution of a vehicle type
@ SUMO_TAG_LANE
begin/end of the description of a single lane
@ GNE_TAG_WALK_BUSSTOP_EDGE
@ SUMO_TAG_INSTANT_INDUCTION_LOOP
An instantenous induction loop.
@ GNE_TAG_WALK_JUNCTION_TRAINSTOP
@ GNE_TAG_VEHICLE_WITHROUTE
description of a vehicle with an embedded route
@ GNE_TAG_CALIBRATOR_FLOW
a flow definition within in Calibrator
@ GNE_TAG_RIDE_EDGE_BUSSTOP
@ SUMO_TAG_DEST_PROB_REROUTE
probability of destination of a reroute
@ GNE_TAG_WALK_TAZ_JUNCTION
@ GNE_TAG_POILANE
Point of interest over Lane.
@ SUMO_TAG_DATASET
@ GNE_TAG_WALK_BUSSTOP_TAZ
@ GNE_TAG_TRANSPORT_CONTAINERSTOP_CONTAINERSTOP
@ GNE_TAG_PERSONTRIP_BUSSTOP_BUSSTOP
@ GNE_TAG_PERSONTRIP_JUNCTION_JUNCTION
@ GNE_TAG_WALK_TAZ_TAZ
@ GNE_TAG_WALK_TRAINSTOP_BUSSTOP
@ GNE_TAG_WALK_TAZ_EDGE
@ GNE_TAG_PERSONTRIP_TAZ_JUNCTION
@ GNE_TAG_WAYPOINT_LANE
waypoint placed over a lane
@ GNE_TAG_JPS_OBSTACLE
polygon used for draw juPedSim obstacles
@ GNE_TAG_RIDE_EDGE_TRAINSTOP
@ SUMO_TAG_PERSON
@ SUMO_TAG_DET_EXIT
an e3 exit point
@ SUMO_TAG_PERSONTRIP
@ SUMO_TAG_TYPE
type (edge)
@ GNE_TAG_WALK_JUNCTION_BUSSTOP
@ GNE_TAG_WALK_JUNCTION_EDGE
@ SUMO_TAG_VAPORIZER
vaporizer of vehicles
@ SUMO_TAG_LANE_AREA_DETECTOR
alternative tag for e2 detector
@ GNE_TAG_REROUTER_SYMBOL
Rerouter Symbol.
@ GNE_TAG_STOP_LANE
stop placed over a lane
@ GNE_TAG_WALK_TRAINSTOP_JUNCTION
@ GNE_TAG_PERSONTRIP_JUNCTION_EDGE
@ GNE_TAG_STOPPERSON_TRAINSTOP
@ SUMO_TAG_TAZREL
a relation between two TAZs
@ GNE_TAG_WALK_EDGE_JUNCTION
@ GNE_TAG_PERSONTRIP_JUNCTION_TAZ
@ SUMO_TAG_TAZSOURCE
a source within a district (connection road)
@ GNE_TAG_WALK_TRAINSTOP_TRAINSTOP
@ GNE_TAG_WALK_EDGE_BUSSTOP
@ SUMO_TAG_CLOSING_LANE_REROUTE
lane of a reroute of type closing
@ GNE_TAG_STOP_TRAINSTOP
stop placed over a trainStop
@ GNE_TAG_STOP_CHARGINGSTATION
stop placed over a charging station
@ GNE_TAG_TRANSHIP_CONTAINERSTOP_CONTAINERSTOP
@ GNE_TAG_ROUTE_EMBEDDED
embedded route
@ GNE_TAG_WALK_TAZ_TRAINSTOP
@ SUMO_TAG_INDUCTION_LOOP
alternative tag for e1 detector
@ GNE_TAG_JPS_WALKABLEAREA
polygon used for draw juPedSim walkable areas
@ GNE_TAG_RIDE_TRAINSTOP_TRAINSTOP
@ SUMO_TAG_CALIBRATOR
A calibrator placed over edge.
@ SUMO_TAG_ENTRY_EXIT_DETECTOR
alternative tag for e3 detector
@ GNE_TAG_PERSONTRIP_TRAINSTOP_JUNCTION
@ SUMO_TAG_VSS
A variable speed sign.
@ GNE_TAG_STOPPERSON_EDGE
@ GNE_TAG_WALK_ROUTE
@ GNE_TAG_PERSONTRIP_EDGE_TAZ
@ SUMO_TAG_PERSONFLOW
@ GNE_TAG_TRANSHIP_CONTAINERSTOP_EDGE
@ SUMO_TAG_TRIP
a single trip definition (used by router)
@ SUMO_TAG_EDGE
begin/end of the description of an edge
@ GNE_TAG_RIDE_TRAINSTOP_EDGE
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
@ SUMO_ATTR_TMP4
@ SUMO_ATTR_CF_W99_CC9
@ SUMO_ATTR_CF_EIDM_T_ACC_MAX
@ SUMO_ATTR_EXPECT_ARRIVAL
@ SUMO_ATTR_STARTPOS
@ SUMO_ATTR_CF_EIDM_EPSILON_ACC
@ SUMO_ATTR_PARKING
@ SUMO_ATTR_EXTENSION
@ SUMO_ATTR_CF_W99_CC5
@ SUMO_ATTR_LCA_PUSHY
@ SUMO_ATTR_DISALLOW
@ SUMO_ATTR_LINES
@ GNE_ATTR_FROM_TRAINSTOP
@ SUMO_ATTR_NUMBER
@ SUMO_ATTR_ALLOW
@ SUMO_ATTR_ICON
icon
@ SUMO_ATTR_ARRIVALSPEED
@ SUMO_ATTR_LANE
@ GNE_ATTR_FROM_BUSSTOP
@ SUMO_ATTR_EMISSIONCLASS
@ SUMO_ATTR_JM_IGNORE_FOE_SPEED
@ SUMO_ATTR_ARRIVALLANE
@ SUMO_ATTR_DEPART
@ SUMO_ATTR_ACCEPTED_BADGES
@ SUMO_ATTR_DEPARTEDGE
@ SUMO_ATTR_TLLINKINDEX2
link: the index of the opposite direction link of a pedestrian crossing
@ SUMO_ATTR_LON
@ SUMO_ATTR_FROM_JUNCTION
@ SUMO_ATTR_VEHSPERHOUR
@ SUMO_ATTR_ARRIVALEDGE
@ SUMO_ATTR_JM_IGNORE_KEEPCLEAR_TIME
@ SUMO_ATTR_SPEED
@ GNE_ATTR_STOPOFFSET
stop offset (virtual, used by edge and lanes)
@ SUMO_ATTR_WAITINGTIME
@ SUMO_ATTR_CF_EIDM_T_LOOK_AHEAD
@ SUMO_ATTR_VIA
@ SUMO_ATTR_CF_WIEDEMANN_SECURITY
@ SUMO_ATTR_LCA_ASSERTIVE
@ SUMO_ATTR_RADIUS
The turning radius at an intersection in m.
@ SUMO_ATTR_TRAIN_TYPE
@ SUMO_ATTR_FILE
@ SUMO_ATTR_INDIRECT
Whether this connection is an indirect (left) turn.
@ SUMO_ATTR_CONTAINER_STOP
@ SUMO_ATTR_CF_EIDM_USEVEHDYNAMICS
@ SUMO_ATTR_PARKING_AREA
@ GNE_ATTR_OPPOSITE
to busStop (used by personPlans)
@ SUMO_ATTR_CF_IDMM_ADAPT_TIME
@ SUMO_ATTR_SUBSTATIONID
id of a traction substation substation
@ SUMO_ATTR_FROM_LANE
@ SUMO_ATTR_LANE_CHANGE_MODEL
@ SUMO_ATTR_CF_KERNER_PHI
@ SUMO_ATTR_EDGE
@ SUMO_ATTR_LCA_TURN_ALIGNMENT_DISTANCE
@ SUMO_ATTR_JAM_DIST_THRESHOLD
@ SUMO_ATTR_CHARGETYPE
Charge type (fuel or electric)
@ SUMO_ATTR_DEPARTPOS_LAT
@ SUMO_ATTR_PARKING_LENGTH
@ SUMO_ATTR_PARKING_BADGES
@ SUMO_ATTR_BUS_STOP
@ SUMO_ATTR_CF_EIDM_C_COOLNESS
@ SUMO_ATTR_CF_EIDM_SIG_ERROR
@ SUMO_ATTR_TRAIN_STOP
@ SUMO_ATTR_TRACK_VEHICLES
@ SUMO_ATTR_LCA_PUSHYGAP
@ SUMO_ATTR_ENDPOS
@ SUMO_ATTR_LCA_LOOKAHEADLEFT
@ SUMO_ATTR_APPARENTDECEL
@ SUMO_ATTR_VOLTAGE
voltage of the traction substation [V]
@ SUMO_ATTR_TO_JUNCTION
@ SUMO_ATTR_MAXSPEED_LAT
@ SUMO_ATTR_LCA_SPEEDGAIN_PARAM
@ SUMO_ATTR_ARRIVALPOS
@ SUMO_ATTR_SPLIT
@ SUMO_ATTR_TMP3
@ SUMO_ATTR_ACTTYPE
@ SUMO_ATTR_ACTIONSTEPLENGTH
@ SUMO_ATTR_TLLAYOUT
node: the layout of the traffic light program
@ SUMO_ATTR_CUSTOMSHAPE
whether a given shape is user-defined
@ SUMO_ATTR_LCA_IMPATIENCE
@ SUMO_ATTR_BEGIN
weights: time range begin
@ SUMO_ATTR_MINGAP
@ SUMO_ATTR_WITH_INTERNAL
@ GNE_ATTR_VTYPE_DISTRIBUTION
vehicle type distribution
@ SUMO_ATTR_EDGES
the edges of a route
@ GNE_ATTR_POISSON
poisson definition (used in flow)
@ SUMO_ATTR_OFF
@ SUMO_ATTR_ROUTEPROBE
@ SUMO_ATTR_LINEWIDTH
@ GNE_ATTR_PARAMETERS
parameters "key1=value1|key2=value2|...|keyN=valueN"
@ SUMO_ATTR_POSITION_LAT
@ SUMO_ATTR_JM_DRIVE_AFTER_RED_TIME
@ SUMO_ATTR_FRINGE
Fringe type of node.
@ SUMO_ATTR_OVERHEAD_WIRE_FORBIDDEN
forbidden lanes for overhead wire segment
@ SUMO_ATTR_CONTAINER_NUMBER
@ SUMO_ATTR_EXPECTED
@ SUMO_ATTR_AGGREGATE
@ SUMO_ATTR_HALTING_TIME_THRESHOLD
@ SUMO_ATTR_TMP2
@ SUMO_ATTR_CF_W99_CC8
@ SUMO_ATTR_PRIORITY
@ SUMO_ATTR_LINE
@ SUMO_ATTR_CHARGING_STATION
@ SUMO_ATTR_LOADING_DURATION
@ SUMO_ATTR_CF_IDM_DELTA
@ SUMO_ATTR_CF_EIDM_MAX_VEH_PREVIEW
@ GNE_ATTR_STOPOEXCEPTION
stop exceptions (virtual, used by edge and lanes)
@ SUMO_ATTR_LCA_MAXSPEEDLATFACTOR
@ SUMO_ATTR_CONTAINERSPERHOUR
@ SUMO_ATTR_NUMLANES
@ SUMO_ATTR_LANES
@ SUMO_ATTR_CF_EIDM_T_REACTION
@ SUMO_ATTR_MODES
@ SUMO_ATTR_CF_EIDM_T_PERSISTENCE_ESTIMATE
@ SUMO_ATTR_VTYPES
@ SUMO_ATTR_CF_PWAGNER2009_TAULAST
@ SUMO_ATTR_OVERHEAD_WIRECLAMP_END
id of the overhead wire, to the end of which the overhead wire clamp is connected
@ SUMO_ATTR_SHAPE
edge: the shape in xml-definition
@ SUMO_ATTR_DEPARTPOS
@ SUMO_ATTR_CF_EIDM_SIG_GAP
@ SUMO_ATTR_CAR_FOLLOW_MODEL
@ SUMO_ATTR_CF_EIDM_JERK_MAX
@ SUMO_ATTR_LEFTHAND
@ SUMO_ATTR_DECEL
@ SUMO_ATTR_LCA_MAXSPEEDLATSTANDING
@ SUMO_ATTR_JM_DRIVE_AFTER_YELLOW_TIME
@ SUMO_ATTR_LCA_KEEPRIGHT_PARAM
@ SUMO_ATTR_WEIGHT
@ SUMO_ATTR_GUISHAPE
@ SUMO_ATTR_DESIRED_MAXSPEED
@ SUMO_ATTR_JM_IGNORE_FOE_PROB
@ GNE_ATTR_FROM_CONTAINERSTOP
@ SUMO_ATTR_MAX_TRAVELTIME
@ SUMO_ATTR_TLTYPE
node: the type of traffic light
@ SUMO_ATTR_OVERHEAD_WIRECLAMP_LANESTART
id of the overhead wire lane, to the start of which the overhead wire clamp is connected
@ SUMO_ATTR_CHARGEINTRANSIT
Allow/disallow charge in transit in Charging Stations.
@ SUMO_ATTR_OVERHEAD_WIRECLAMP_START
id of the overhead wire, to the start of which the overhead wire clamp is connected
@ SUMO_ATTR_ONDEMAND
@ SUMO_ATTR_CHANGE_LEFT
@ SUMO_ATTR_CONTAINER_CAPACITY
@ SUMO_ATTR_INDEX
@ SUMO_ATTR_FILL
Fill the polygon.
@ SUMO_ATTR_NAME
@ SUMO_ATTR_PERIOD
@ SUMO_ATTR_LAYER
A layer number.
@ SUMO_ATTR_LCA_COOPERATIVE_PARAM
@ SUMO_ATTR_SPREADTYPE
The information about how to spread the lanes from the given position.
@ SUMO_ATTR_LCA_OPPOSITE_PARAM
@ SUMO_ATTR_TO_TAZ
@ SUMO_ATTR_SLOPE
@ SUMO_ATTR_HALTING_SPEED_THRESHOLD
@ SUMO_ATTR_CENTER
@ SUMO_ATTR_PASS
@ GNE_ATTR_IS_ROUNDABOUT
@ SUMO_ATTR_DEPARTSPEED
@ SUMO_ATTR_ANGLE
@ SUMO_ATTR_ENDOFFSET
@ SUMO_ATTR_MINGAP_LAT
@ SUMO_ATTR_TRIP_ID
@ GNE_ATTR_SHAPE_END
last coordinate of edge shape
@ SUMO_ATTR_EMERGENCYDECEL
@ SUMO_ATTR_TO
@ SUMO_ATTR_FROM
@ SUMO_ATTR_CF_W99_CC3
@ SUMO_ATTR_LCA_OVERTAKE_DELTASPEED_FACTOR
@ SUMO_ATTR_HEIGHT
@ SUMO_ATTR_END
weights: time range end
@ SUMO_ATTR_PERMITTED
@ SUMO_ATTR_LCA_SUBLANE_PARAM
@ SUMO_ATTR_JM_CROSSING_GAP
@ SUMO_ATTR_ROADSIDE_CAPACITY
@ SUMO_ATTR_ACCELERATION
@ SUMO_ATTR_CARRIAGE_LENGTH
@ SUMO_ATTR_LATALIGNMENT
@ SUMO_ATTR_FROM_TAZ
@ SUMO_ATTR_CF_IDM_STEPPING
@ SUMO_ATTR_DEPARTLANE
@ SUMO_ATTR_CF_IDMM_ADAPT_FACTOR
@ SUMO_ATTR_CURRENTLIMIT
current limit of the traction substation [A]
@ SUMO_ATTR_BIKELANEWIDTH
@ SUMO_ATTR_IMPATIENCE
@ SUMO_ATTR_COLLISION_MINGAP_FACTOR
@ SUMO_ATTR_CHANGE_RIGHT
@ SUMO_ATTR_JOIN
@ SUMO_ATTR_TLID
link,node: the traffic light id responsible for this link
@ SUMO_ATTR_OPTIONAL
@ SUMO_ATTR_VCLASS
@ SUMO_ATTR_ACCEL
@ SUMO_ATTR_BOARDING_DURATION
@ SUMO_ATTR_DISTANCE
@ SUMO_ATTR_CF_EIDM_M_FLATNESS
@ SUMO_ATTR_CF_W99_CC2
@ SUMO_ATTR_OUTPUT
@ SUMO_ATTR_CF_W99_CC4
@ SUMO_ATTR_JM_SIGMA_MINOR
@ SUMO_ATTR_CF_W99_CC6
@ SUMO_ATTR_CHARGINGPOWER
@ SUMO_ATTR_JUMP
@ SUMO_ATTR_PROB
@ SUMO_ATTR_CF_EIDM_M_BEGIN
@ GNE_ATTR_BIDIR
whether an edge is part of a bidirectional railway
@ SUMO_ATTR_FRIENDLY_POS
@ SUMO_ATTR_CF_EIDM_T_PERSISTENCE_DRIVE
@ SUMO_ATTR_SIDEWALKWIDTH
@ SUMO_ATTR_SPEEDFACTOR
@ SUMO_ATTR_ONROAD
@ SUMO_ATTR_LAT
@ SUMO_ATTR_TO_LANE
@ SUMO_ATTR_MIN_SAMPLES
@ SUMO_ATTR_UNCONTROLLED
@ SUMO_ATTR_CF_EIDM_SIG_LEADER
@ SUMO_ATTR_TYPE
@ SUMO_ATTR_LENGTH
@ SUMO_ATTR_ROUTE
@ SUMO_ATTR_PERSON_NUMBER
@ SUMO_ATTR_COLOR
A color information.
@ SUMO_ATTR_EFFICIENCY
Eficiency of the charge in Charging Stations.
@ SUMO_ATTR_CF_PWAGNER2009_APPROB
@ SUMO_ATTR_MAXSPEED
@ SUMO_ATTR_ID
@ SUMO_ATTR_SIGMA
@ SUMO_ATTR_VISIBLE
@ SUMO_ATTR_UNTIL
@ SUMO_ATTR_RIGHT_OF_WAY
How to compute right of way.
@ SUMO_ATTR_K
@ SUMO_ATTR_TMP1
@ GNE_ATTR_SHAPE_START
first coordinate of edge shape
@ SUMO_ATTR_OSGFILE
@ SUMO_ATTR_LCA_OVERTAKE_RIGHT
@ SUMO_ATTR_ARRIVALPOS_LAT
@ SUMO_ATTR_LCA_ACCEL_LAT
@ SUMO_ATTR_CF_W99_CC7
@ SUMO_ATTR_LCA_STRATEGIC_PARAM
@ SUMO_ATTR_CF_W99_CC1
@ SUMO_ATTR_TAU
@ SUMO_ATTR_VISIBILITY_DISTANCE
foe visibility distance of a link
@ GNE_ATTR_ROUTE_DISTRIBUTION
route distribution
@ SUMO_ATTR_INSERTIONCHECKS
@ SUMO_ATTR_IMGFILE
@ SUMO_ATTR_TRIGGERED
@ SUMO_ATTR_DURATION
@ SUMO_ATTR_CONTPOS
@ SUMO_ATTR_WIDTH
@ SUMO_ATTR_DIR
The abstract direction of a link.
@ SUMO_ATTR_PERSON_CAPACITY
@ SUMO_ATTR_TLLINKINDEX
link: the index of the link within the traffic light
@ SUMO_ATTR_LCA_KEEPRIGHT_ACCEPTANCE_TIME
@ SUMO_ATTR_REPEAT
@ SUMO_ATTR_KEEP_CLEAR
Whether vehicles must keep the junction clear.
@ SUMO_ATTR_POSITION
@ SUMO_ATTR_LOCOMOTIVE_LENGTH
@ SUMO_ATTR_TMP5
@ SUMO_ATTR_CYCLETIME
@ SUMO_ATTR_STATE
The state of a link.
@ SUMO_ATTR_JM_DRIVE_RED_SPEED
@ SUMO_ATTR_CHARGEDELAY
Delay in the charge of charging stations (different of waiting time)
@ SUMO_ATTR_LCA_TIME_TO_IMPATIENCE
@ SUMO_ATTR_JM_TIMEGAP_MINOR
@ SUMO_ATTR_TIME
trigger: the time of the step
@ SUMO_ATTR_WRITE_ATTRIBUTES
@ SUMO_ATTR_CARRIAGE_GAP
@ SUMO_ATTR_OVERHEAD_WIRECLAMP_LANEEND
id of the overhead wire lane, to the end of which the overhead wire clamp is connected
@ SUMO_ATTR_DETECT_PERSONS
@ SUMO_ATTR_EXCLUDE_EMPTY
@ SUMO_ATTR_CF_WIEDEMANN_ESTIMATION
@ SUMO_ATTR_EDGESFILE
@ SUMO_ATTR_RELATIVEPATH
@ SUMO_ATTR_PERSONSPERHOUR
@ SUMO_ATTR_LCA_SPEEDGAINRIGHT
const double INVALID_DOUBLE
invalid double
Definition: StdDefs.h:64
const double SUMO_const_laneWidth
Definition: StdDefs.h:48
std::string joinToString(const std::vector< T > &v, const T_BETWEEN &between, std::streamsize accuracy=gPrecision)
Definition: ToString.h:283
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Definition: ToString.h:46
virtual std::string getAttributeForSelection(SumoXMLAttr key) const
method for getting the attribute in the context of object selection
const std::string getID() const
get ID (all Attribute Carriers have one)
bool isAttributeCarrierSelected() const
check if attribute carrier is selected
virtual void enableAttribute(SumoXMLAttr key, GNEUndoList *undoList)
GNEAttributeCarrier(const SumoXMLTag tag, GNENet *net)
Constructor.
static void fillPlanStopCommonAttributes(SumoXMLTag currentTag)
fill plan stop common attributes
FXIcon * getACIcon() const
get FXIcon associated to this AC
static const std::vector< GNETagProperties > getTagPropertiesByType(const int tagPropertyCategory)
get tagProperties associated to the given GNETagProperties::TagType (NETWORKELEMENT,...
bool mySelected
boolean to check if this AC is selected (instead of GUIGlObjectStorage)
static void writeAttributeHelp()
write machine readable attribute help to file
static void fillContainerStopElements()
fill container stop elements
static void fillVehicleElements()
fill vehicle elements
static void fillDemandElements()
fill demand elements
static void fillWaypointElements()
fill waypoint elements
static void fillPersonElements()
fill person elements
void setACParameters(const std::string &parameters, GNEUndoList *undoList)
set parameters (string)
static void fillTranshipCommonAttributes(SumoXMLTag currentTag)
fill ride common attributes
static void fillDataElements()
fill Data elements
static void fillPersonPlanRides()
fill person plan rides
static void fillCommonStopAttributes(SumoXMLTag currentTag, const bool waypoint)
fill stop person attributes
bool checkDrawFrontContour() const
check if draw front contour (green/blue)
static void fillLaneChangingModelAttributes(SumoXMLTag currentTag)
fill Junction Model Attributes of Vehicle/Person Types
void resetAttributes()
reset attributes to their default values without undo-redo (used in GNEFrameAttributeModules)
bool myIsTemplate
whether the current object is a template object (not drawn in the view)
static void fillAttributeCarriers()
fill Attribute Carriers
virtual void toggleAttribute(SumoXMLAttr key, const bool value)
method for enable or disable the attribute and nothing else (used in GNEChange_ToggleAttribute)
static void fillAdditionalElements()
fill additional elements
static const std::string FEATURE_LOADED
feature is still unchanged after being loaded (implies approval)
static void fillCommonMeanDataAttributes(SumoXMLTag currentTag)
fill stop person attributes
static void fillCommonPersonAttributes(SumoXMLTag currentTag)
fill common person attributes (used by person and personFlows)
static void fillNetworkElements()
fill network elements
static void fillPersonStopElements()
fill person stop elements
static void fillWalkCommonAttributes(SumoXMLTag currentTag)
fill walk common attributes
static const std::string FEATURE_APPROVED
feature has been approved but not changed (i.e. after being reguessed)
static T parse(const std::string &string)
parses a value of type T from string (used for basic types: int, double, bool, etc....
std::string getAlternativeValueForDisabledAttributes(SumoXMLAttr key) const
virtual bool isAttributeComputed(SumoXMLAttr key) const
static void fillWireElements()
fill Wire elements
static const std::string True
true value in string format (used for comparing boolean values in getAttribute(......
static void fillPOIAttributes(SumoXMLTag currentTag)
fill common POI attributes
void removeACParametersKeys(const std::vector< std::string > &keepKeys, GNEUndoList *undoList)
remove keys
virtual bool isAttributeEnabled(SumoXMLAttr key) const
const std::string & getTagStr() const
get tag assigned to this object in string format
static void fillJuPedSimElements()
fill JuPedSim elements
static const std::string FEATURE_GUESSED
feature has been reguessed (may still be unchanged be we can't tell (yet)
static void fillStopElements()
fill stop elements
virtual GUIGlObject * getGUIGlObject()=0
const GNETagProperties & getTagProperty() const
get tagProperty associated with this Attribute Carrier
bool isTemplate() const
check if this AC is template
static void fillRideCommonAttributes(SumoXMLTag currentTag)
fill ride common attributes
void unselectAttributeCarrier(const bool changeFlag=true)
unselect attribute carrier using GUIGlobalSelection
bool drawUsingSelectColor() const
check if attribute carrier must be drawn using selecting color.
static void fillShapeElements()
fill shape elements
static void fillCommonVehicleAttributes(SumoXMLTag currentTag)
fill common vehicle attributes (used by vehicles, trips, routeFlows and flows)
void addACParameters(const std::string &key, const std::string &attribute, GNEUndoList *undoList)
add (or update attribute) key and attribute
static void fillPersonTripCommonAttributes(SumoXMLTag currentTag)
fill person trip common attributes
static const Parameterised::Map PARAMETERS_EMPTY
empty parameter maps (used by ACs without parameters)
static bool lanesConsecutives(const std::vector< GNELane * > &lanes)
check if lanes are consecutives
virtual const Parameterised::Map & getACParametersMap() const =0
bool hasAttribute(SumoXMLAttr key) const
void resetDefaultValues()
reset attribute carrier to their default values
static void fillPersonPlanWalks()
fill person plan walks
static void fillTAZElements()
fill TAZ elements
GNENet * myNet
pointer to net
static void fillCommonContainerAttributes(SumoXMLTag currentTag)
fill common container attributes (used by container and containerFlows)
static void fillPlanParentAttributes(SumoXMLTag currentTag)
fill plan from-to attribute
static void fillCommonFlowAttributes(SumoXMLTag currentTag, SumoXMLAttr perHour)
fill common flow attributes (used by flows, routeFlows and personFlows)
static void fillTransportCommonAttributes(SumoXMLTag currentTag)
fill transport common attributes
static void fillJunctionModelAttributes(SumoXMLTag currentTag)
fill Junction Model Attributes of Vehicle/Person Types
GNENet * getNet() const
get pointer to net
virtual void disableAttribute(SumoXMLAttr key, GNEUndoList *undoList)
static void fillPersonPlanTrips()
fill person plan trips
static std::string parseIDs(const std::vector< T > &ACs)
parses a list of specific Attribute Carriers into a string of IDs
void selectAttributeCarrier(const bool changeFlag=true)
select attribute carrier using GUIGlobalSelection
static const std::string FEATURE_MODIFIED
feature has been manually modified (implies approval)
static const std::string False
true value in string format(used for comparing boolean values in getAttribute(...))
static void fillCarFollowingModelAttributes(SumoXMLTag currentTag)
fill Car Following Model of Vehicle/Person Types
static void fillContainerElements()
fill container elements
virtual void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)=0
T getACParameters() const
get parameters
virtual ~GNEAttributeCarrier()
Destructor.
virtual std::string getAttribute(SumoXMLAttr key) const =0
bool checkDrawInspectContour() const
check if draw inspect contour (black/white)
static void fillContainerTranshipElements()
fill container tranship elements
const GNETagProperties & myTagProperty
reference to tagProperty associated with this attribute carrier
static std::map< SumoXMLTag, GNETagProperties > myTagProperties
map with the tags properties
static const size_t MAXNUMBEROFATTRIBUTES
max number of attributes allowed for every tag
static void fillContainerTransportElements()
fill container transport elements
void setDiscreteValues(const std::vector< std::string > &discreteValues)
set discrete values
void setDefaultActivated(const bool value)
set default activated value
void setRange(const double minimum, const double maximum)
set range
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:53
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition: GNELane.h:46
GNELane * retrieveLane(const std::string &id, bool hardFail=true, bool checkVolatileChange=false) const
get lane by id
GNEEdge * retrieveEdge(const std::string &id, bool hardFail=true) const
get edge by id
A NBNetBuilder extended by visualisation and editing capabilities.
Definition: GNENet.h:42
GNENetHelper::AttributeCarriers * getAttributeCarriers() const
get all attribute carriers used in this net
Definition: GNENet.cpp:122
GNEViewNet * getViewNet() const
get view net
Definition: GNENet.cpp:2055
bool vClassIcon() const
return true if tag correspond to an element that has vClass icons
bool isGenericData() const
data elements
const std::string & getTagStr() const
get Tag vinculated with this attribute Property in String Format (used to avoid multiple calls to toS...
bool isNetworkElement() const
element sets
bool isSelectable() const
return true if tag correspond to a selectable element
GUIIcon getGUIIcon() const
get GUI icon associated to this Tag
bool isDemandElement() const
return true if tag correspond to a demand element
bool isAdditionalElement() const
return true if tag correspond to an additional element (note: this include TAZ, shapes and wires)
const GNEAttributeCarrier * getFrontAttributeCarrier() const
get front attributeCarrier
const GNEViewNetHelper::EditModes & getEditModes() const
get edit modes
Definition: GNEViewNet.cpp:703
bool isAttributeCarrierInspected(const GNEAttributeCarrier *AC) const
check if attribute carrier is being inspected
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
void select(GUIGlID id, bool update=true)
Adds the object with the given id.
void deselect(GUIGlID id)
Deselects the object with the given id.
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.
static const double UNSPECIFIED_LOADED_LENGTH
no length override given
Definition: NBEdge.h:360
static const double UNSPECIFIED_CONTPOS
unspecified internal junction position
Definition: NBEdge.h:354
static const double UNSPECIFIED_VISIBILITY_DISTANCE
unspecified foe visibility for connections
Definition: NBEdge.h:357
static const double UNSPECIFIED_SPEED
unspecified lane speed
Definition: NBEdge.h:348
static OptionsCont & getOptions()
Retrieves the options.
Definition: OptionsCont.cpp:60
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:61
static bool createDeviceByOption(const std::string &optionName, const std::string &rootElement="", const std::string &schemaFile="")
Creates the device using the output definition stored in the named option.
static OutputDevice & getDeviceByOption(const std::string &name)
Returns the device described by the option.
std::map< std::string, std::string > Map
parameters map
Definition: Parameterised.h:45
static const std::vector< std::string > & getAllClassesStr()
Get all SUMOEmissionClass in string format.
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:37
A list of positions.
static const RGBColor INVISIBLE
Definition: RGBColor.h:195
static RGBColor parseColor(std::string coldef)
Parses a color information.
Definition: RGBColor.cpp:239
static std::vector< std::string > getLatAlignmentStrings()
return all valid strings for latAlignment
static StringBijection< LaneSpreadFunction > LaneSpreadFunctions
lane spread functions
static StringBijection< SumoXMLTag > CarFollowModels
car following models
static StringBijection< SumoXMLNodeType > NodeTypes
node types
static StringBijection< InsertionCheck > InsertionChecks
traffic light layouts
static StringBijection< POIIcon > POIIcons
POI icon values.
static SequentialStringBijection Attrs
The names of SUMO-XML attributes for use in netbuild.
static StringBijection< TrainType > TrainTypes
train types
static SequentialStringBijection Tags
The names of SUMO-XML elements for use in netbuild.
static StringBijection< LaneChangeModel > LaneChangeModels
lane change models
static StringBijection< RightOfWay > RightOfWayValues
righ of way algorithms
static StringBijection< FringeType > FringeTypeValues
fringe types
static const bool DEFAULT_RELATIVEPATH
Definition: Shape.h:48
static const double DEFAULT_LAYER
Definition: Shape.h:43
static const double DEFAULT_LAYER_POI
Definition: Shape.h:45
static const double DEFAULT_IMG_WIDTH
Definition: Shape.h:49
static const std::string DEFAULT_IMG_FILE
Definition: Shape.h:47
static const double DEFAULT_ANGLE
Definition: Shape.h:46
static const double DEFAULT_IMG_HEIGHT
Definition: Shape.h:50
static const std::string DEFAULT_TYPE
Definition: Shape.h:42
std::vector< std::string > getStrings() const
std::vector< std::string > getVector()
return vector of strings
bool hasNext()
returns the information whether further substrings exist
std::string next()
returns the next substring when it exists. Otherwise the behaviour is undefined
static std::string to_lower_case(const std::string &str)
Transfers the content to lower case.
Definition: StringUtils.cpp:79
static std::string replace(std::string str, const std::string &what, const std::string &by)
Replaces all occurrences of the second string by the third string within the first string.
static double toDouble(const std::string &sData)
converts a string into the double value described by it by calling the char-type converter
static int toInt(const std::string &sData)
converts a string into the integer value described by it by calling the char-type converter,...
static bool toBool(const std::string &sData)
converts a string into the bool value described by it by calling the char-type converter
static FXIcon * getVClassIcon(const SUMOVehicleClass vc)
returns icon associated to the given vClass
Definition: VClassIcons.cpp:35
@ value
the parser finished reading a JSON value
auto get(const nlohmann::detail::iteration_proxy_value< IteratorType > &i) -> decltype(i.key())
Definition: json.hpp:4451
bool isCurrentSupermodeDemand() const
@check if current supermode is Demand
bool isCurrentSupermodeData() const
@check if current supermode is Data
bool isCurrentSupermodeNetwork() const
@check if current supermode is Network