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 std::map<SumoXMLTag, GNETagProperties> GNEAttributeCarrier::myMergedPlanTagProperties;
41 const std::string GNEAttributeCarrier::FEATURE_LOADED = "loaded";
42 const std::string GNEAttributeCarrier::FEATURE_GUESSED = "guessed";
43 const std::string GNEAttributeCarrier::FEATURE_MODIFIED = "modified";
44 const std::string GNEAttributeCarrier::FEATURE_APPROVED = "approved";
47 const std::string GNEAttributeCarrier::True = toString(true);
48 const std::string GNEAttributeCarrier::False = toString(false);
49 
50 
51 // ===========================================================================
52 // method definitions
53 // ===========================================================================
54 
56  myTagProperty(getTagProperty(tag)),
57  myNet(net) {
58 }
59 
60 
62 
63 
64 const std::string
66  return getAttribute(SUMO_ATTR_ID);
67 }
68 
69 
70 GNENet*
72  return myNet;
73 }
74 
75 
76 void
79  gSelected.select(getGUIGlObject()->getGlID());
80  if (changeFlag) {
81  mySelected = true;
82  }
83  }
84 }
85 
86 
87 void
90  gSelected.deselect(getGUIGlObject()->getGlID());
91  if (changeFlag) {
92  mySelected = false;
93  }
94  }
95 }
96 
97 
98 bool
100  return mySelected;
101 }
102 
103 
104 bool
106  // first check if element is selected
107  if (mySelected) {
108  // get flag for network element
109  const bool networkElement = myTagProperty.isNetworkElement() || myTagProperty.isAdditionalElement();
110  // check current supermode
111  if (networkElement && myNet->getViewNet()->getEditModes().isCurrentSupermodeNetwork()) {
112  return true;
114  return true;
116  return true;
117  } else {
118  return false;
119  }
120  } else {
121  return false;
122  }
123 }
124 
125 
126 void
128  myInGrid = value;
129 }
130 
131 
132 bool
134  return myInGrid;
135 }
136 
137 
138 bool
141 }
142 
143 
144 bool
146  return (myNet->getViewNet()->getFrontAttributeCarrier() == this);
147 }
148 
149 
150 void
152  for (const auto& attrProperty : myTagProperty) {
153  if (attrProperty.hasDefaultValue()) {
154  setAttribute(attrProperty.getAttr(), attrProperty.getDefaultValue());
155  if (attrProperty.isActivatable()) {
156  toggleAttribute(attrProperty.getAttr(), attrProperty.getDefaultActivated());
157  }
158  }
159  }
160 }
161 
162 
163 void
165  throw ProcessError(TL("Nothing to enable, implement in Children"));
166 
167 }
168 
169 
170 void
172  throw ProcessError(TL("Nothing to disable, implement in Children"));
173 }
174 
175 
176 bool
178  // by default, all attributes are enabled
179  return true;
180 }
181 
182 
183 bool
185  // by default, all attributes aren't computed
186  return false;
187 }
188 
189 
190 template<> int
191 GNEAttributeCarrier::parse(const std::string& string) {
192  return StringUtils::toInt(string);
193 }
194 
195 
196 template<> double
197 GNEAttributeCarrier::parse(const std::string& string) {
198  return StringUtils::toDouble(string);
199 }
200 
201 
202 template<> SUMOTime
203 GNEAttributeCarrier::parse(const std::string& string) {
204  return string2time(string);
205 }
206 
207 
208 template<> bool
209 GNEAttributeCarrier::parse(const std::string& string) {
210  return StringUtils::toBool(string);
211 }
212 
213 
214 template<> std::string
215 GNEAttributeCarrier::parse(const std::string& string) {
216  return string;
217 }
218 
219 
220 template<> SUMOVehicleClass
221 GNEAttributeCarrier::parse(const std::string& string) {
222  if (string.size() == 0) {
223  throw EmptyData();
224  } else if (!SumoVehicleClassStrings.hasString(string)) {
225  return SVC_IGNORING;
226  } else {
227  return SumoVehicleClassStrings.get(string);
228  }
229 }
230 
231 
232 template<> RGBColor
233 GNEAttributeCarrier::parse(const std::string& string) {
234  if (string.empty()) {
235  return RGBColor::INVISIBLE;
236  } else {
237  return RGBColor::parseColor(string);
238  }
239 }
240 
241 
242 template<> Position
243 GNEAttributeCarrier::parse(const std::string& string) {
244  if (string.size() == 0) {
245  throw EmptyData();
246  } else {
247  bool ok = true;
248  PositionVector pos = GeomConvHelper::parseShapeReporting(string, "user-supplied position", 0, ok, false, false);
249  if (!ok || (pos.size() != 1)) {
250  throw NumberFormatException("(Position) " + string);
251  } else {
252  return pos[0];
253  }
254  }
255 }
256 
257 
258 template<> PositionVector
259 GNEAttributeCarrier::parse(const std::string& string) {
260  PositionVector posVector;
261  // empty string are allowed (It means empty position vector)
262  if (string.empty()) {
263  return posVector;
264  } else {
265  bool ok = true;
266  posVector = GeomConvHelper::parseShapeReporting(string, "user-supplied shape", 0, ok, false, true);
267  if (!ok) {
268  throw NumberFormatException("(Position List) " + string);
269  } else {
270  return posVector;
271  }
272  }
273 }
274 
275 
276 template<> SUMOVehicleShape
277 GNEAttributeCarrier::parse(const std::string& string) {
278  if ((string == "unknown") || (!SumoVehicleShapeStrings.hasString(string))) {
280  } else {
281  return SumoVehicleShapeStrings.get(string);
282  }
283 }
284 
285 
286 template<> std::vector<std::string>
287 GNEAttributeCarrier::parse(const std::string& string) {
288  return StringTokenizer(string).getVector();
289 }
290 
291 
292 template<> std::set<std::string>
293 GNEAttributeCarrier::parse(const std::string& string) {
294  std::vector<std::string> vectorString = StringTokenizer(string).getVector();
295  std::set<std::string> solution;
296  for (const auto& i : vectorString) {
297  solution.insert(i);
298  }
299  return solution;
300 }
301 
302 
303 template<> std::vector<int>
304 GNEAttributeCarrier::parse(const std::string& string) {
305  std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
306  std::vector<int> parsedIntValues;
307  for (const auto& i : parsedValues) {
308  parsedIntValues.push_back(parse<int>(i));
309  }
310  return parsedIntValues;
311 }
312 
313 
314 template<> std::vector<double>
315 GNEAttributeCarrier::parse(const std::string& string) {
316  std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
317  std::vector<double> parsedDoubleValues;
318  for (const auto& i : parsedValues) {
319  parsedDoubleValues.push_back(parse<double>(i));
320  }
321  return parsedDoubleValues;
322 }
323 
324 
325 template<> std::vector<bool>
326 GNEAttributeCarrier::parse(const std::string& string) {
327  std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
328  std::vector<bool> parsedBoolValues;
329  for (const auto& i : parsedValues) {
330  parsedBoolValues.push_back(parse<bool>(i));
331  }
332  return parsedBoolValues;
333 }
334 
335 
336 template<> std::vector<SumoXMLAttr>
337 GNEAttributeCarrier::parse(const std::string& value) {
338  // Declare string vector
339  std::vector<std::string> attributesStr = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
340  std::vector<SumoXMLAttr> attributes;
341  // Iterate over lanes IDs, retrieve Lanes and add it into parsedLanes
342  for (const auto& attributeStr : attributesStr) {
343  if (SUMOXMLDefinitions::Tags.hasString(attributeStr)) {
344  attributes.push_back(static_cast<SumoXMLAttr>(SUMOXMLDefinitions::Attrs.get(attributeStr)));
345  } else {
346  throw InvalidArgument("Error parsing attributes. Attribute '" + attributeStr + "' doesn't exist");
347  }
348  }
349  return attributes;
350 }
351 
352 
353 template<> std::vector<GNEEdge*>
354 GNEAttributeCarrier::parse(GNENet* net, const std::string& value) {
355  // Declare string vector
356  std::vector<std::string> edgeIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
357  std::vector<GNEEdge*> parsedEdges;
358  // Iterate over edges IDs, retrieve Edges and add it into parsedEdges
359  for (const auto& edgeID : edgeIds) {
360  GNEEdge* retrievedEdge = net->getAttributeCarriers()->retrieveEdge(edgeID, false);
361  if (retrievedEdge) {
362  parsedEdges.push_back(net->getAttributeCarriers()->retrieveEdge(edgeID));
363  } else {
364  throw FormatException("Error parsing parameter " + toString(SUMO_ATTR_EDGES) + ". " +
365  toString(SUMO_TAG_EDGE) + " '" + edgeID + "' doesn't exist");
366  }
367  }
368  return parsedEdges;
369 }
370 
371 
372 template<> std::vector<GNELane*>
373 GNEAttributeCarrier::parse(GNENet* net, const std::string& value) {
374  // Declare string vector
375  std::vector<std::string> laneIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
376  std::vector<GNELane*> parsedLanes;
377  // Iterate over lanes IDs, retrieve Lanes and add it into parsedLanes
378  for (const auto& laneID : laneIds) {
379  GNELane* retrievedLane = net->getAttributeCarriers()->retrieveLane(laneID, false);
380  if (retrievedLane) {
381  parsedLanes.push_back(net->getAttributeCarriers()->retrieveLane(laneID));
382  } else {
383  throw FormatException("Error parsing parameter " + toString(SUMO_ATTR_LANES) + ". " +
384  toString(SUMO_TAG_LANE) + " '" + laneID + "' doesn't exist");
385  }
386  }
387  return parsedLanes;
388 }
389 
390 
391 template<> std::string
392 GNEAttributeCarrier::parseIDs(const std::vector<GNEEdge*>& ACs) {
393  // obtain ID's of edges and return their join
394  std::vector<std::string> edgeIDs;
395  for (const auto& i : ACs) {
396  edgeIDs.push_back(i->getID());
397  }
398  return joinToString(edgeIDs, " ");
399 }
400 
401 
402 template<> std::string
403 GNEAttributeCarrier::parseIDs(const std::vector<GNELane*>& ACs) {
404  // obtain ID's of lanes and return their join
405  std::vector<std::string> laneIDs;
406  for (const auto& i : ACs) {
407  laneIDs.push_back(i->getID());
408  }
409  return joinToString(laneIDs, " ");
410 }
411 
412 
413 bool
414 GNEAttributeCarrier::lanesConsecutives(const std::vector<GNELane*>& lanes) {
415  // we need at least two lanes
416  if (lanes.size() > 1) {
417  // now check that lanes are consecutive (not necessary connected)
418  int currentLane = 0;
419  while (currentLane < ((int)lanes.size() - 1)) {
420  int nextLane = -1;
421  // iterate over outgoing edges of destination junction of edge's lane
422  for (int i = 0; (i < (int)lanes.at(currentLane)->getParentEdge()->getToJunction()->getGNEOutgoingEdges().size()) && (nextLane == -1); i++) {
423  // iterate over lanes of outgoing edges of destination junction of edge's lane
424  for (int j = 0; (j < (int)lanes.at(currentLane)->getParentEdge()->getToJunction()->getGNEOutgoingEdges().at(i)->getLanes().size()) && (nextLane == -1); j++) {
425  // check if lane correspond to the next lane of "lanes"
426  if (lanes.at(currentLane)->getParentEdge()->getToJunction()->getGNEOutgoingEdges().at(i)->getLanes().at(j) == lanes.at(currentLane + 1)) {
427  nextLane = currentLane;
428  }
429  }
430  }
431  if (nextLane == -1) {
432  return false;
433  } else {
434  currentLane++;
435  }
436  }
437  return true;
438  } else {
439  return false;
440  }
441 }
442 
443 
444 template<> std::string
446  std::string result;
447  // Generate an string using the following structure: "key1=value1|key2=value2|...
448  for (const auto& parameter : getACParametersMap()) {
449  result += parameter.first + "=" + parameter.second + "|";
450  }
451  // remove the last "|"
452  if (!result.empty()) {
453  result.pop_back();
454  }
455  return result;
456 }
457 
458 
459 template<> std::vector<std::pair<std::string, std::string> >
461  std::vector<std::pair<std::string, std::string> > result;
462  // Generate a vector string using the following structure: "<key1,value1>, <key2, value2>,...
463  for (const auto& parameter : getACParametersMap()) {
464  result.push_back(std::make_pair(parameter.first, parameter.second));
465  }
466  return result;
467 }
468 
469 
470 void
471 GNEAttributeCarrier::setACParameters(const std::string& parameters, GNEUndoList* undoList) {
472  // declare map
473  Parameterised::Map parametersMap;
474  // separate value in a vector of string using | as separator
475  StringTokenizer parametersTokenizer(parameters, "|", true);
476  // iterate over all values
477  while (parametersTokenizer.hasNext()) {
478  // obtain key and value and save it in myParameters
479  const std::vector<std::string> keyValue = StringTokenizer(parametersTokenizer.next(), "=", true).getVector();
480  if (keyValue.size() == 2) {
481  parametersMap[keyValue.front()] = keyValue.back();
482  }
483  }
484  // set setACParameters map
485  setACParameters(parametersMap, undoList);
486 }
487 
488 
489 void
490 GNEAttributeCarrier::setACParameters(const std::vector<std::pair<std::string, std::string> >& parameters, GNEUndoList* undoList) {
491  // declare parametersMap
492  Parameterised::Map parametersMap;
493  // Generate an string using the following structure: "key1=value1|key2=value2|...
494  for (const auto& parameter : parameters) {
495  parametersMap[parameter.first] = parameter.second;
496  }
497  // set setACParameters map
498  setACParameters(parametersMap, undoList);
499 }
500 
501 
502 void
504  // declare result string
505  std::string paramsStr;
506  // Generate an string using the following structure: "key1=value1|key2=value2|...
507  for (const auto& parameter : parameters) {
508  paramsStr += parameter.first + "=" + parameter.second + "|";
509  }
510  // remove the last "|"
511  if (!paramsStr.empty()) {
512  paramsStr.pop_back();
513  }
514  // set parameters
515  setAttribute(GNE_ATTR_PARAMETERS, paramsStr, undoList);
516 }
517 
518 
519 void
520 GNEAttributeCarrier::addACParameters(const std::string& key, const std::string& attribute, GNEUndoList* undoList) {
521  // get parametersMap
522  Parameterised::Map parametersMap = getACParametersMap();
523  // add (or update) attribute
524  parametersMap[key] = attribute;
525  // set attribute
526  setACParameters(parametersMap, undoList);
527 }
528 
529 
530 void
531 GNEAttributeCarrier::removeACParametersKeys(const std::vector<std::string>& keepKeys, GNEUndoList* undoList) {
532  // declare parametersMap
533  Parameterised::Map newParametersMap;
534  // iterate over parameters map
535  for (const auto& parameter : getACParametersMap()) {
536  // copy to newParametersMap if key is in keepKeys
537  if (std::find(keepKeys.begin(), keepKeys.end(), parameter.first) != keepKeys.end()) {
538  newParametersMap.insert(parameter);
539  }
540  }
541  // set newParametersMap map
542  setACParameters(newParametersMap, undoList);
543 }
544 
545 
546 std::string
548  switch (key) {
549  // Crossings
552  return "No TLS";
553  // connections
554  case SUMO_ATTR_DIR: {
555  // special case for connection directions
556  std::string direction = getAttribute(key);
557  if (direction == "s") {
558  return "Straight (s)";
559  } else if (direction == "t") {
560  return "Turn (t))";
561  } else if (direction == "l") {
562  return "Left (l)";
563  } else if (direction == "r") {
564  return "Right (r)";
565  } else if (direction == "L") {
566  return "Partially left (L)";
567  } else if (direction == "R") {
568  return "Partially right (R)";
569  } else if (direction == "invalid") {
570  return "No direction (Invalid))";
571  } else {
572  return "undefined";
573  }
574  }
575  case SUMO_ATTR_STATE: {
576  // special case for connection states
577  std::string state = getAttribute(key);
578  if (state == "-") {
579  return "Dead end (-)";
580  } else if (state == "=") {
581  return "equal (=)";
582  } else if (state == "m") {
583  return "Minor link (m)";
584  } else if (state == "M") {
585  return "Major link (M)";
586  } else if (state == "O") {
587  return "TLS controller off (O)";
588  } else if (state == "o") {
589  return "TLS yellow flashing (o)";
590  } else if (state == "y") {
591  return "TLS yellow minor link (y)";
592  } else if (state == "Y") {
593  return "TLS yellow major link (Y)";
594  } else if (state == "r") {
595  return "TLS red (r)";
596  } else if (state == "g") {
597  return "TLS green minor (g)";
598  } else if (state == "G") {
599  return "TLS green major (G)";
600  } else if (state == "Z") {
601  return "Zipper (Z)";
602  } else {
603  return "undefined";
604  }
605  }
606  default:
607  return getAttribute(key);
608  }
609 }
610 
611 
612 std::string
614  return getAttribute(key);
615 }
616 
617 
618 const std::string&
620  return myTagProperty.getTagStr();
621 }
622 
623 
624 FXIcon*
626  // define on first access
627  if (myTagProperties.size() == 0) {
629  }
630  // special case for vClass icons
631  if (myTagProperty.vClassIcon()) {
633  } else {
635  }
636 }
637 
638 
639 bool
641  return myIsTemplate;
642 }
643 
644 
645 const GNETagProperties&
647  return myTagProperty;
648 }
649 
650 // ===========================================================================
651 // static methods
652 // ===========================================================================
653 
654 const GNETagProperties&
656  // define on first access
657  if (myTagProperties.size() == 0) {
659  }
660  // check that tag is defined
661  if (myTagProperties.count(tag) == 0) {
662  if (myMergedPlanTagProperties.count(tag) == 0) {
663  throw ProcessError(TLF("TagProperty for tag '%' not defined", toString(tag)));
664  } else {
665  return myMergedPlanTagProperties.at(tag);
666  }
667  } else {
668  return myTagProperties.at(tag);
669  }
670 }
671 
672 
673 const std::vector<GNETagProperties>
674 GNEAttributeCarrier::getTagPropertiesByType(const int tagPropertyCategory, const bool mergeCommonPlans) {
675  std::vector<GNETagProperties> allowedTags;
676  // define on first access
677  if (myTagProperties.size() == 0) {
679  }
680  if (tagPropertyCategory & GNETagProperties::TagType::NETWORKELEMENT) {
681  // fill networkElements tags
682  for (const auto& tagProperty : myTagProperties) {
683  if (tagProperty.second.isNetworkElement()) {
684  allowedTags.push_back(tagProperty.second);
685  }
686  }
687  }
688  if (tagPropertyCategory & GNETagProperties::TagType::ADDITIONALELEMENT) {
689  // fill additional tags (only with pure additionals)
690  for (const auto& tagProperty : myTagProperties) {
691  if (tagProperty.second.isAdditionalPureElement()) {
692  allowedTags.push_back(tagProperty.second);
693  }
694  }
695  }
696  if (tagPropertyCategory & GNETagProperties::TagType::SHAPE) {
697  // fill shape tags
698  for (const auto& tagProperty : myTagProperties) {
699  if (tagProperty.second.isShapeElement()) {
700  allowedTags.push_back(tagProperty.second);
701  }
702  }
703  }
704  if (tagPropertyCategory & GNETagProperties::TagType::TAZELEMENT) {
705  // fill taz tags
706  for (const auto& tagProperty : myTagProperties) {
707  if (tagProperty.second.isTAZElement()) {
708  allowedTags.push_back(tagProperty.second);
709  }
710  }
711  }
712  if (tagPropertyCategory & GNETagProperties::TagType::WIRE) {
713  // fill wire tags
714  for (const auto& tagProperty : myTagProperties) {
715  if (tagProperty.second.isWireElement()) {
716  allowedTags.push_back(tagProperty.second);
717  }
718  }
719  }
720  if (tagPropertyCategory & GNETagProperties::TagType::DEMANDELEMENT) {
721  // fill demand tags
722  for (const auto& tagProperty : myTagProperties) {
723  if (tagProperty.second.isDemandElement()) {
724  if (!mergeCommonPlans || !tagProperty.second.isPlan()) {
725  allowedTags.push_back(tagProperty.second);
726  }
727  }
728  }
729  if (mergeCommonPlans) {
730  for (const auto& mergedPlanTagProperty : myMergedPlanTagProperties) {
731  allowedTags.push_back(mergedPlanTagProperty.second);
732  }
733  }
734  }
735  if (tagPropertyCategory & GNETagProperties::TagType::ROUTE) {
736  // fill route tags
737  for (const auto& tagProperty : myTagProperties) {
738  if (tagProperty.second.isRoute()) {
739  allowedTags.push_back(tagProperty.second);
740  }
741  }
742  }
743  if (tagPropertyCategory & GNETagProperties::TagType::VEHICLE) {
744  // fill vehicle tags
745  for (const auto& tagProperty : myTagProperties) {
746  if (tagProperty.second.isVehicle()) {
747  allowedTags.push_back(tagProperty.second);
748  }
749  }
750  }
751  if (tagPropertyCategory & GNETagProperties::TagType::VEHICLESTOP) {
752  // fill stop (and waypoints) tags
753  for (const auto& tagProperty : myTagProperties) {
754  if (tagProperty.second.isVehicleStop()) {
755  allowedTags.push_back(tagProperty.second);
756  }
757  }
758  }
759  if (tagPropertyCategory & GNETagProperties::TagType::PERSON) {
760  // fill person tags
761  for (const auto& tagProperty : myTagProperties) {
762  if (tagProperty.second.isPerson()) {
763  allowedTags.push_back(tagProperty.second);
764  }
765  }
766  }
767  if (tagPropertyCategory & GNETagProperties::TagType::PERSONPLAN) {
768  // fill person plan tags
769  for (const auto& tagProperty : myTagProperties) {
770  if (tagProperty.second.isPlanPerson()) {
771  allowedTags.push_back(tagProperty.second);
772  }
773  }
774  }
775  if (tagPropertyCategory & GNETagProperties::TagType::PERSONTRIP) {
776  if (mergeCommonPlans) {
777  allowedTags.push_back(myMergedPlanTagProperties.at(SUMO_TAG_PERSONTRIP));
778  } else {
779  // fill demand tags
780  for (const auto& tagProperty : myTagProperties) {
781  if (tagProperty.second.isPlanPersonTrip()) {
782  allowedTags.push_back(tagProperty.second);
783  }
784  }
785  }
786  }
787  if (tagPropertyCategory & GNETagProperties::TagType::WALK) {
788  if (mergeCommonPlans) {
789  allowedTags.push_back(myMergedPlanTagProperties.at(SUMO_TAG_WALK));
790  } else {
791  // fill demand tags
792  for (const auto& tagProperty : myTagProperties) {
793  if (tagProperty.second.isPlanWalk()) {
794  allowedTags.push_back(tagProperty.second);
795  }
796  }
797  }
798  }
799  if (tagPropertyCategory & GNETagProperties::TagType::RIDE) {
800  if (mergeCommonPlans) {
801  allowedTags.push_back(myMergedPlanTagProperties.at(SUMO_TAG_RIDE));
802  } else {
803  // fill demand tags
804  for (const auto& tagProperty : myTagProperties) {
805  if (tagProperty.second.isPlanRide()) {
806  allowedTags.push_back(tagProperty.second);
807  }
808  }
809  }
810  }
811  if (tagPropertyCategory & GNETagProperties::TagType::STOPPERSON) {
812  if (mergeCommonPlans) {
813  allowedTags.push_back(myMergedPlanTagProperties.at(GNE_TAG_STOPPERSON));
814  } else {
815  // fill demand tags
816  for (const auto& tagProperty : myTagProperties) {
817  if (tagProperty.second.isPlanStopPerson()) {
818  allowedTags.push_back(tagProperty.second);
819  }
820  }
821  }
822  }
823  if (tagPropertyCategory & GNETagProperties::TagType::GENERICDATA) {
824  // fill generic data tags
825  for (const auto& tagProperty : myTagProperties) {
826  if (tagProperty.second.isGenericData()) {
827  allowedTags.push_back(tagProperty.second);
828  }
829  }
830  }
831  if (tagPropertyCategory & GNETagProperties::TagType::MEANDATA) {
832  // fill generic data tags
833  for (const auto& tagProperty : myTagProperties) {
834  if (tagProperty.second.isMeanData()) {
835  allowedTags.push_back(tagProperty.second);
836  }
837  }
838  }
839  if (tagPropertyCategory & GNETagProperties::TagType::CONTAINER) {
840  // fill container tags
841  for (const auto& tagProperty : myTagProperties) {
842  if (tagProperty.second.isContainer()) {
843  allowedTags.push_back(tagProperty.second);
844  }
845  }
846  }
847  if (tagPropertyCategory & GNETagProperties::TagType::CONTAINERPLAN) {
848  // fill container plan tags
849  for (const auto& tagProperty : myTagProperties) {
850  if (tagProperty.second.isPlanContainer()) {
851  allowedTags.push_back(tagProperty.second);
852  }
853  }
854  }
855  if (tagPropertyCategory & GNETagProperties::TagType::TRANSPORT) {
856  if (mergeCommonPlans) {
857  allowedTags.push_back(myMergedPlanTagProperties.at(SUMO_TAG_TRANSPORT));
858  } else {
859  // fill demand tags
860  for (const auto& tagProperty : myTagProperties) {
861  if (tagProperty.second.isPlanTransport()) {
862  allowedTags.push_back(tagProperty.second);
863  }
864  }
865  }
866  }
867  if (tagPropertyCategory & GNETagProperties::TagType::TRANSHIP) {
868  if (mergeCommonPlans) {
869  allowedTags.push_back(myMergedPlanTagProperties.at(SUMO_TAG_TRANSHIP));
870  } else {
871  // fill demand tags
872  for (const auto& tagProperty : myTagProperties) {
873  if (tagProperty.second.isPlanTranship()) {
874  allowedTags.push_back(tagProperty.second);
875  }
876  }
877  }
878  }
879  if (tagPropertyCategory & GNETagProperties::TagType::STOPCONTAINER) {
880  if (mergeCommonPlans) {
881  allowedTags.push_back(myMergedPlanTagProperties.at(GNE_TAG_STOPCONTAINER));
882  } else {
883  // fill demand tags
884  for (const auto& tagProperty : myTagProperties) {
885  if (tagProperty.second.isPlanStopContainer()) {
886  allowedTags.push_back(tagProperty.second);
887  }
888  }
889  }
890  }
891  return allowedTags;
892 }
893 
894 
895 const std::vector<GNETagProperties>
897  std::vector<GNETagProperties> result;
898  // fill tags
899  for (const auto& tagProperty : myTagProperties) {
900  if ((mergingTag == SUMO_TAG_PERSONTRIP) && tagProperty.second.isPlanPerson()) {
901  result.push_back(tagProperty.second);
902  } else if ((mergingTag == SUMO_TAG_RIDE) && tagProperty.second.isPlanRide()) {
903  result.push_back(tagProperty.second);
904  } else if ((mergingTag == SUMO_TAG_WALK) && tagProperty.second.isPlanWalk()) {
905  result.push_back(tagProperty.second);
906  } else if ((mergingTag == GNE_TAG_STOPPERSON) && tagProperty.second.isPlanStopPerson()) {
907  result.push_back(tagProperty.second);
908  } else if ((mergingTag == SUMO_TAG_TRANSPORT) && tagProperty.second.isPlanTransport()) {
909  result.push_back(tagProperty.second);
910  } else if ((mergingTag == SUMO_TAG_TRANSHIP) && tagProperty.second.isPlanTranship()) {
911  result.push_back(tagProperty.second);
912  } else if ((mergingTag == GNE_TAG_STOPCONTAINER) && tagProperty.second.isPlanStopContainer()) {
913  result.push_back(tagProperty.second);
914  }
915  }
916  return result;
917 }
918 
919 // ===========================================================================
920 // private
921 // ===========================================================================
922 
923 void
925  for (const auto& attrProperty : myTagProperty) {
926  if (attrProperty.hasDefaultValue()) {
927  setAttribute(attrProperty.getAttr(), attrProperty.getDefaultValue());
928  }
929  }
930 }
931 
932 
933 void
934 GNEAttributeCarrier::toggleAttribute(SumoXMLAttr /*key*/, const bool /*value*/) {
935  throw ProcessError(TL("Nothing to toggle, implement in Children"));
936 }
937 
938 
939 void
941  // fill all groups of ACs
945  fillTAZElements();
948  // demand
953  // persons
959  // containers
964  //data
966  // check integrity of all Tags (function checkTagIntegrity() throws an exception if there is an inconsistency)
967  for (const auto& tagProperty : myTagProperties) {
968  tagProperty.second.checkTagIntegrity();
969  }
970 }
971 
972 
973 void
975  // declare empty GNEAttributeProperties
976  GNEAttributeProperties attrProperty;
977 
978  // obtain Node Types except SumoXMLNodeType::DEAD_END_DEPRECATED
979  const auto& neteditOptions = OptionsCont::getOptions();
980  std::vector<std::string> nodeTypes = SUMOXMLDefinitions::NodeTypes.getStrings();
981  nodeTypes.erase(std::find(nodeTypes.begin(), nodeTypes.end(), toString(SumoXMLNodeType::DEAD_END_DEPRECATED)));
982  nodeTypes.erase(std::find(nodeTypes.begin(), nodeTypes.end(), toString(SumoXMLNodeType::DEAD_END)));
983  nodeTypes.erase(std::find(nodeTypes.begin(), nodeTypes.end(), toString(SumoXMLNodeType::INTERNAL)));
984  // obtain TLTypes (note: avoid insert all TLTypes because some of them are experimental and not documented)
985  std::vector<std::string> TLTypes;
986  TLTypes.push_back(toString(TrafficLightType::STATIC));
987  TLTypes.push_back(toString(TrafficLightType::ACTUATED));
988  TLTypes.push_back(toString(TrafficLightType::DELAYBASED));
989  TLTypes.push_back(toString(TrafficLightType::NEMA));
990  // fill networkElement ACs
991  SumoXMLTag currentTag = SUMO_TAG_JUNCTION;
992  {
993  // set values of tag
994  myTagProperties[currentTag] = GNETagProperties(currentTag,
995  GNETagProperties::TagType::NETWORKELEMENT,
996  GNETagProperties::TagProperty::RTREE,
997  GNETagProperties::TagParents::NO_PARENTS,
998  GNETagProperties::Conflicts::NO_CONFLICTS,
999  GUIIcon::JUNCTION, currentTag, TL("Junction"));
1000  // set values of attributes
1001  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1003  TL("The id of the node"));
1004  myTagProperties[currentTag].addAttribute(attrProperty);
1005 
1007  GNEAttributeProperties::STRING | GNEAttributeProperties::UNIQUE | GNEAttributeProperties::POSITION | GNEAttributeProperties::UPDATEGEOMETRY, // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
1008  TL("The x-y-z position of the node on the plane in meters"));
1009  myTagProperties[currentTag].addAttribute(attrProperty);
1010 
1011  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
1013  TL("An optional type for the node"));
1014  attrProperty.setDiscreteValues(nodeTypes);
1015  myTagProperties[currentTag].addAttribute(attrProperty);
1016 
1017  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
1019  TL("A custom shape for that node"));
1020  myTagProperties[currentTag].addAttribute(attrProperty);
1021 
1024  TL("Optional turning radius (for all corners) for that node in meters"),
1025  "1.5");
1026  myTagProperties[currentTag].addAttribute(attrProperty);
1027 
1030  TL("Whether the junction-blocking-heuristic should be activated at this node"),
1031  "1");
1032  myTagProperties[currentTag].addAttribute(attrProperty);
1033 
1036  TL("How to compute right of way rules at this node"),
1038  attrProperty.setDiscreteValues(SUMOXMLDefinitions::RightOfWayValues.getStrings());
1039  myTagProperties[currentTag].addAttribute(attrProperty);
1040 
1043  TL("Whether this junction is at the fringe of the network"),
1045  attrProperty.setDiscreteValues(SUMOXMLDefinitions::FringeTypeValues.getStrings());
1046  myTagProperties[currentTag].addAttribute(attrProperty);
1047 
1048  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1050  TL("Optional name of junction"));
1051  myTagProperties[currentTag].addAttribute(attrProperty);
1052 
1055  TL("An optional type for the traffic light algorithm"));
1056  attrProperty.setDiscreteValues(TLTypes);
1057  myTagProperties[currentTag].addAttribute(attrProperty);
1058 
1061  TL("An optional layout for the traffic light plan"));
1066  myTagProperties[currentTag].addAttribute(attrProperty);
1067 
1068  attrProperty = GNEAttributeProperties(SUMO_ATTR_TLID,
1070  TL("An optional id for the traffic light program"));
1071  myTagProperties[currentTag].addAttribute(attrProperty);
1072 
1075  TL("Whether this junction is part of a roundabout"), "false");
1076  myTagProperties[currentTag].addAttribute(attrProperty);
1077  }
1078  currentTag = SUMO_TAG_TYPE;
1079  {
1080  // set values of tag
1081  myTagProperties[currentTag] = GNETagProperties(currentTag,
1082  GNETagProperties::TagType::NETWORKELEMENT,
1083  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOTSELECTABLE,
1084  GNETagProperties::TagParents::NO_PARENTS,
1085  GNETagProperties::Conflicts::NO_CONFLICTS,
1086  GUIIcon::EDGETYPE, currentTag, TL("EdgeType"));
1087  // set values of attributes
1088  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1090  TL("The id of the edge"));
1091  myTagProperties[currentTag].addAttribute(attrProperty);
1092 
1095  TL("The number of lanes of the edge"),
1096  toString(neteditOptions.getInt("default.lanenumber")));
1097  myTagProperties[currentTag].addAttribute(attrProperty);
1098 
1099  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
1101  TL("The maximum speed allowed on the edge in m/s"),
1102  toString(neteditOptions.getFloat("default.speed")));
1103  myTagProperties[currentTag].addAttribute(attrProperty);
1104 
1105  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
1107  TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1108  "all");
1109  myTagProperties[currentTag].addAttribute(attrProperty);
1110 
1113  TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1114  myTagProperties[currentTag].addAttribute(attrProperty);
1115 
1118  TL("The spreadType defines how to compute the lane geometry from the edge geometry (used for visualization)"),
1121  myTagProperties[currentTag].addAttribute(attrProperty);
1122 
1125  TL("The priority of the edge"),
1126  toString(neteditOptions.getInt("default.priority")));
1127  myTagProperties[currentTag].addAttribute(attrProperty);
1128 
1129  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1131  TL("Lane width for all lanes of this edge in meters (used for visualization)"),
1132  "default");
1133  myTagProperties[currentTag].addAttribute(attrProperty);
1134 
1137  TL("The width of the sidewalk that should be added as an additional lane"),
1138  "default");
1139  myTagProperties[currentTag].addAttribute(attrProperty);
1140 
1143  TL("The width of the bike lane that should be added as an additional lane"),
1144  "default");
1145  myTagProperties[currentTag].addAttribute(attrProperty);
1146  }
1147  currentTag = SUMO_TAG_LANETYPE;
1148  {
1149  // set values of tag
1150  myTagProperties[currentTag] = GNETagProperties(currentTag,
1151  GNETagProperties::TagType::NETWORKELEMENT,
1152  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOTSELECTABLE,
1153  GNETagProperties::TagParents::NO_PARENTS,
1154  GNETagProperties::Conflicts::NO_CONFLICTS,
1155  GUIIcon::LANETYPE, currentTag, TL("LaneType"));
1156  // set values of attributes
1157  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
1159  TL("The maximum speed allowed on the lane in m/s"),
1160  toString(neteditOptions.getFloat("default.speed")));
1161  myTagProperties[currentTag].addAttribute(attrProperty);
1162 
1163  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
1165  TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1166  "all");
1167  myTagProperties[currentTag].addAttribute(attrProperty);
1168 
1171  TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1172  myTagProperties[currentTag].addAttribute(attrProperty);
1173 
1174  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1176  TL("Lane width for all lanes of this type in meters (used for visualization)"),
1177  "default");
1178  myTagProperties[currentTag].addAttribute(attrProperty);
1179  }
1180  currentTag = SUMO_TAG_EDGE;
1181  {
1182  // set values of tag
1183  myTagProperties[currentTag] = GNETagProperties(currentTag,
1184  GNETagProperties::TagType::NETWORKELEMENT,
1185  GNETagProperties::TagProperty::RTREE,
1186  GNETagProperties::TagParents::NO_PARENTS,
1187  GNETagProperties::Conflicts::NO_CONFLICTS,
1188  GUIIcon::EDGE, currentTag, TL("Edge"));
1189  // set values of attributes
1190  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1192  TL("Edge ID"));
1193  myTagProperties[currentTag].addAttribute(attrProperty);
1194 
1195  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
1197  TL("The name of a node within the nodes-file the edge shall start at"));
1198  myTagProperties[currentTag].addAttribute(attrProperty);
1199 
1200  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
1202  TL("The name of a node within the nodes-file the edge shall end at"));
1203  myTagProperties[currentTag].addAttribute(attrProperty);
1204 
1205  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
1207  TL("The maximum speed allowed on the edge in m/s"),
1208  toString(neteditOptions.getFloat("default.speed")));
1209  myTagProperties[currentTag].addAttribute(attrProperty);
1210 
1213  TL("The priority of the edge"),
1214  toString(neteditOptions.getInt("default.priority")));
1215  myTagProperties[currentTag].addAttribute(attrProperty);
1216 
1219  TL("The number of lanes of the edge"),
1220  toString(neteditOptions.getInt("default.lanenumber")));
1221  myTagProperties[currentTag].addAttribute(attrProperty);
1222 
1223  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
1225  TL("The name of a type within the SUMO edge type file"));
1226  myTagProperties[currentTag].addAttribute(attrProperty);
1227 
1228  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
1230  TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1231  "all");
1232  myTagProperties[currentTag].addAttribute(attrProperty);
1233 
1236  TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1237  myTagProperties[currentTag].addAttribute(attrProperty);
1238 
1239  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
1241  TL("If the shape is given it should start and end with the positions of the from-node and to-node"));
1242  myTagProperties[currentTag].addAttribute(attrProperty);
1243 
1246  TL("The length of the edge in meter"));
1247  myTagProperties[currentTag].addAttribute(attrProperty);
1248 
1251  TL("The spreadType defines how to compute the lane geometry from the edge geometry (used for visualization)"),
1254  myTagProperties[currentTag].addAttribute(attrProperty);
1255 
1256  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1258  TL("street name (does not need to be unique, used for visualization)"));
1259  myTagProperties[currentTag].addAttribute(attrProperty);
1260 
1261  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1263  TL("Lane width for all lanes of this edge in meters (used for visualization)"),
1264  "-1");
1265  myTagProperties[currentTag].addAttribute(attrProperty);
1266 
1269  TL("Move the stop line back from the intersection by the given amount"),
1270  "0.00");
1271  myTagProperties[currentTag].addAttribute(attrProperty);
1272 
1275  TL("Custom position in which shape start (by default position of junction from)"));
1276  myTagProperties[currentTag].addAttribute(attrProperty);
1277 
1280  TL("Custom position in which shape end (by default position of junction from)"));
1281  myTagProperties[currentTag].addAttribute(attrProperty);
1282 
1283  attrProperty = GNEAttributeProperties(GNE_ATTR_BIDIR,
1284  GNEAttributeProperties::BOOL | GNEAttributeProperties::DEFAULTVALUE | GNEAttributeProperties::UNIQUE, // virtual attribute to check of this edge is part of a bidirectional railway (cannot be edited)
1285  TL("Show if edge is bidirectional"),
1286  "0");
1287  myTagProperties[currentTag].addAttribute(attrProperty);
1288 
1291  TL("Distance"),
1292  "0.00");
1293  myTagProperties[currentTag].addAttribute(attrProperty);
1294 
1297  TL("The stop offset as positive value in meters"),
1298  "0.00");
1299  myTagProperties[currentTag].addAttribute(attrProperty);
1300 
1303  TL("Specifies, for which vehicle classes the stopOffset does NOT apply."));
1304  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1305  myTagProperties[currentTag].addAttribute(attrProperty);
1306 
1309  TL("Whether this edge is part of a roundabout"), "false");
1310  myTagProperties[currentTag].addAttribute(attrProperty);
1311  }
1312  currentTag = SUMO_TAG_LANE;
1313  {
1314  // set values of tag
1315  myTagProperties[currentTag] = GNETagProperties(currentTag,
1316  GNETagProperties::TagType::NETWORKELEMENT,
1317  GNETagProperties::TagProperty::NO_PROPERTY,
1318  GNETagProperties::TagParents::NO_PARENTS,
1319  GNETagProperties::Conflicts::NO_CONFLICTS,
1320  GUIIcon::LANE, currentTag, TL("Lane"));
1321  // set values of attributes
1322  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1324  TL("Lane ID (Automatic, non editable)"));
1325  myTagProperties[currentTag].addAttribute(attrProperty);
1326 
1327  attrProperty = GNEAttributeProperties(SUMO_ATTR_INDEX,
1329  TL("The enumeration index of the lane (0 is the rightmost lane, <NUMBER_LANES>-1 is the leftmost one)"));
1330  myTagProperties[currentTag].addAttribute(attrProperty);
1331 
1332  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
1334  TL("Speed in meters per second"),
1335  "13.89");
1336  myTagProperties[currentTag].addAttribute(attrProperty);
1337 
1338  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
1340  TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1341  "all");
1342  myTagProperties[currentTag].addAttribute(attrProperty);
1343 
1346  TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1347  myTagProperties[currentTag].addAttribute(attrProperty);
1348 
1349  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1351  TL("Width in meters (used for visualization)"),
1352  "-1");
1353  myTagProperties[currentTag].addAttribute(attrProperty);
1354 
1357  TL("Move the stop line back from the intersection by the given amount"),
1358  "0.00");
1359  myTagProperties[currentTag].addAttribute(attrProperty);
1360 
1363  TL("Enable or disable lane as acceleration lane"),
1364  "0");
1365  myTagProperties[currentTag].addAttribute(attrProperty);
1366 
1369  TL("If the shape is given it overrides the computation based on edge shape"));
1370  myTagProperties[currentTag].addAttribute(attrProperty);
1371 
1374  TL("If given, this defines the opposite direction lane"));
1375  myTagProperties[currentTag].addAttribute(attrProperty);
1376 
1379  TL("Permit changing left only for to the given vehicle classes"),
1380  "all");
1381  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1382  myTagProperties[currentTag].addAttribute(attrProperty);
1383 
1386  TL("Permit changing right only for to the given vehicle classes"),
1387  "all");
1388  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1389  myTagProperties[currentTag].addAttribute(attrProperty);
1390 
1391  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
1393  TL("Lane type description (optional)"));
1394  myTagProperties[currentTag].addAttribute(attrProperty);
1395 
1398  TL("The stop offset as positive value in meters"),
1399  "0.00");
1400  myTagProperties[currentTag].addAttribute(attrProperty);
1401 
1404  TL("Specifies, for which vehicle classes the stopOffset does NOT apply."));
1405  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1406  myTagProperties[currentTag].addAttribute(attrProperty);
1407  }
1408  currentTag = SUMO_TAG_CROSSING;
1409  {
1410  // set values of tag
1411  myTagProperties[currentTag] = GNETagProperties(currentTag,
1412  GNETagProperties::TagType::NETWORKELEMENT,
1413  GNETagProperties::TagProperty::NO_PROPERTY,
1414  GNETagProperties::TagParents::NO_PARENTS,
1415  GNETagProperties::Conflicts::NO_CONFLICTS,
1416  GUIIcon::CROSSING, currentTag, TL("Crossing"));
1417  // set values of attributes
1418  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1420  TL("Crossing ID"));
1421  myTagProperties[currentTag].addAttribute(attrProperty);
1422 
1423  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
1425  TL("The (road) edges which are crossed"));
1426  myTagProperties[currentTag].addAttribute(attrProperty);
1427 
1430  TL("Whether the pedestrians have priority over the vehicles (automatically set to true at tls-controlled intersections)"),
1431  "0");
1432  myTagProperties[currentTag].addAttribute(attrProperty);
1433 
1434  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1436  TL("The width of the crossings"),
1437  toString(OptionsCont::getOptions().getFloat("default.crossing-width")));
1438  myTagProperties[currentTag].addAttribute(attrProperty);
1439 
1442  TL("sets the tls-index for this crossing"),
1443  "-1");
1444  myTagProperties[currentTag].addAttribute(attrProperty);
1445 
1448  TL("sets the opposite-direction tls-index for this crossing"),
1449  "-1");
1450  myTagProperties[currentTag].addAttribute(attrProperty);
1451 
1454  TL("Overrides default shape of pedestrian crossing"));
1455  myTagProperties[currentTag].addAttribute(attrProperty);
1456  }
1457  currentTag = SUMO_TAG_WALKINGAREA;
1458  {
1459  // set values of tag
1460  myTagProperties[currentTag] = GNETagProperties(currentTag,
1461  GNETagProperties::TagType::NETWORKELEMENT,
1462  GNETagProperties::TagProperty::NOPARAMETERS,
1463  GNETagProperties::TagParents::NO_PARENTS,
1464  GNETagProperties::Conflicts::NO_CONFLICTS,
1465  GUIIcon::WALKINGAREA, currentTag, TL("WalkingArea"));
1466  // set values of attributes
1467  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1469  TL("Walking Area ID"));
1470  myTagProperties[currentTag].addAttribute(attrProperty);
1471 
1472  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
1474  TL("The width of the WalkingArea"),
1475  toString(OptionsCont::getOptions().getFloat("default.sidewalk-width")));
1476  myTagProperties[currentTag].addAttribute(attrProperty);
1477 
1480  TL("The length of the WalkingArea in meter"));
1481  myTagProperties[currentTag].addAttribute(attrProperty);
1482 
1483  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
1485  TL("Overrides default shape of pedestrian sidewalk"));
1486  myTagProperties[currentTag].addAttribute(attrProperty);
1487  }
1488  currentTag = SUMO_TAG_CONNECTION;
1489  {
1490  // set values of tag
1491  myTagProperties[currentTag] = GNETagProperties(currentTag,
1492  GNETagProperties::TagType::NETWORKELEMENT,
1493  GNETagProperties::TagProperty::NO_PROPERTY,
1494  GNETagProperties::TagParents::NO_PARENTS,
1495  GNETagProperties::Conflicts::NO_CONFLICTS,
1496  GUIIcon::CONNECTION, currentTag, TL("Connection"));
1497  // set values of attributes
1498  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
1500  TL("The ID of the edge the vehicles leave"));
1501  myTagProperties[currentTag].addAttribute(attrProperty);
1502 
1503  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
1505  TL("The ID of the edge the vehicles may reach when leaving 'from'"));
1506  myTagProperties[currentTag].addAttribute(attrProperty);
1507 
1510  TL("the lane index of the incoming lane (numbers starting with 0)"));
1511  myTagProperties[currentTag].addAttribute(attrProperty);
1512 
1515  TL("the lane index of the outgoing lane (numbers starting with 0)"));
1516  myTagProperties[currentTag].addAttribute(attrProperty);
1517 
1518  attrProperty = GNEAttributeProperties(SUMO_ATTR_PASS,
1520  TL("if set, vehicles which pass this (lane-2-lane) connection) will not wait"),
1521  "0");
1522  myTagProperties[currentTag].addAttribute(attrProperty);
1523 
1526  TL("if set to false, vehicles which pass this (lane-2-lane) connection) will not worry about blocking the intersection"),
1527  "0");
1528  myTagProperties[currentTag].addAttribute(attrProperty);
1529 
1532  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"),
1534  myTagProperties[currentTag].addAttribute(attrProperty);
1535 
1538  TL("If set to true, This connection will not be TLS-controlled despite its node being controlled"),
1539  "0");
1540  myTagProperties[currentTag].addAttribute(attrProperty);
1541 
1544  TL("Vision distance between vehicles"),
1546  myTagProperties[currentTag].addAttribute(attrProperty);
1547 
1550  TL("sets index of this connection within the controlling traffic light"),
1551  "-1");
1552  myTagProperties[currentTag].addAttribute(attrProperty);
1553 
1556  TL("sets index for the internal junction of this connection within the controlling traffic light"),
1557  "-1");
1558  myTagProperties[currentTag].addAttribute(attrProperty);
1559 
1560  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
1562  TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1563  "all");
1564  myTagProperties[currentTag].addAttribute(attrProperty);
1565 
1568  TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1569  myTagProperties[currentTag].addAttribute(attrProperty);
1570 
1571  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
1573  TL("sets custom speed limit for the connection"),
1575  myTagProperties[currentTag].addAttribute(attrProperty);
1576 
1579  TL("sets custom length for the connection"),
1581  myTagProperties[currentTag].addAttribute(attrProperty);
1582 
1585  TL("sets custom shape for the connection"));
1586  myTagProperties[currentTag].addAttribute(attrProperty);
1587 
1590  TL("Permit changing left only for to the given vehicle classes"),
1591  "all");
1592  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1593  myTagProperties[currentTag].addAttribute(attrProperty);
1594 
1597  TL("Permit changing right only for to the given vehicle classes"),
1598  "all");
1599  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1600  myTagProperties[currentTag].addAttribute(attrProperty);
1601 
1604  TL("if set to true, vehicles will make a turn in 2 steps"),
1605  "0");
1606  myTagProperties[currentTag].addAttribute(attrProperty);
1607 
1608  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
1610  TL("set a custom edge type (for applying vClass-specific speed restrictions)"));
1611  myTagProperties[currentTag].addAttribute(attrProperty);
1612 
1613 
1614  attrProperty = GNEAttributeProperties(SUMO_ATTR_DIR,
1616  TL("turning direction for this connection (computed)"));
1617  myTagProperties[currentTag].addAttribute(attrProperty);
1618 
1619  attrProperty = GNEAttributeProperties(SUMO_ATTR_STATE,
1621  TL("link state for this connection (computed)"));
1622  myTagProperties[currentTag].addAttribute(attrProperty);
1623  }
1624  currentTag = GNE_TAG_INTERNAL_LANE;
1625  {
1626  // set values of tag
1627  myTagProperties[currentTag] = GNETagProperties(currentTag,
1628  GNETagProperties::TagType::INTERNALLANE,
1629  GNETagProperties::TagProperty::NO_PROPERTY,
1630  GNETagProperties::TagParents::NO_PARENTS,
1631  GNETagProperties::Conflicts::NO_CONFLICTS,
1632  GUIIcon::JUNCTION, currentTag, TL("InternalLanes"));
1633  // internal lanes does't have attributes
1634  }
1635 }
1636 
1637 
1638 void
1640  // declare empty GNEAttributeProperties
1641  GNEAttributeProperties attrProperty;
1642 
1643  // fill additional elements
1644  SumoXMLTag currentTag = SUMO_TAG_BUS_STOP;
1645  {
1646  // set values of tag
1647  myTagProperties[currentTag] = GNETagProperties(currentTag,
1648  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::STOPPINGPLACE,
1649  GNETagProperties::TagProperty::MASKSTARTENDPOS,
1650  GNETagProperties::Conflicts::NO_CONFLICTS,
1651  GNETagProperties::Conflicts::POS_LANE_START | GNETagProperties::Conflicts::POS_LANE_END,
1652  GUIIcon::BUSSTOP, currentTag, TL("BusStop"),
1653  {}, FXRGBA(240, 255, 205, 255));
1654  // set values of attributes
1655  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1657  TL("The id of bus stop"));
1658  myTagProperties[currentTag].addAttribute(attrProperty);
1659 
1660  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1662  TL("The name of the lane the bus stop shall be located at"));
1663  myTagProperties[currentTag].addAttribute(attrProperty);
1664 
1667  TL("The begin position on the lane (the lower position on the lane) in meters"));
1668 
1669  myTagProperties[currentTag].addAttribute(attrProperty);
1672  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"));
1673  myTagProperties[currentTag].addAttribute(attrProperty);
1674 
1675  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1677  TL("Name of busStop"));
1678  myTagProperties[currentTag].addAttribute(attrProperty);
1679 
1682  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1683  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1") + std::string("\n") +
1684  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1685  "0");
1686  myTagProperties[currentTag].addAttribute(attrProperty);
1687 
1688  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
1690  TL("Meant to be the names of the bus lines that stop at this bus stop. This is only used for visualization purposes"));
1691  myTagProperties[currentTag].addAttribute(attrProperty);
1692 
1695  TL("Larger numbers of persons trying to enter will create an upstream jam on the sidewalk"),
1696  "6");
1697  myTagProperties[currentTag].addAttribute(attrProperty);
1698 
1701  TL("Optional space definition for vehicles that park at this stop"),
1702  "0.00");
1703  myTagProperties[currentTag].addAttribute(attrProperty);
1704 
1705  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
1707  TL("The RGBA color with which the busStop shall be displayed"));
1708  myTagProperties[currentTag].addAttribute(attrProperty);
1709 
1710  }
1711  currentTag = SUMO_TAG_TRAIN_STOP;
1712  {
1713  // set values of tag
1714  myTagProperties[currentTag] = GNETagProperties(currentTag,
1715  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::STOPPINGPLACE,
1716  GNETagProperties::TagProperty::MASKSTARTENDPOS,
1717  GNETagProperties::Conflicts::NO_CONFLICTS,
1718  GNETagProperties::Conflicts::POS_LANE_START | GNETagProperties::Conflicts::POS_LANE_END,
1719  GUIIcon::TRAINSTOP, currentTag, TL("TrainStop"),
1720  {}, FXRGBA(240, 255, 205, 255));
1721  // set values of attributes
1722  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1724  TL("The id of train stop"));
1725  myTagProperties[currentTag].addAttribute(attrProperty);
1726 
1727  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1729  TL("The name of the lane the train stop shall be located at"));
1730  myTagProperties[currentTag].addAttribute(attrProperty);
1731 
1734  TL("The begin position on the lane (the lower position on the lane) in meters"));
1735 
1736  myTagProperties[currentTag].addAttribute(attrProperty);
1739  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"));
1740  myTagProperties[currentTag].addAttribute(attrProperty);
1741 
1742  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1744  TL("Name of trainStop"));
1745  myTagProperties[currentTag].addAttribute(attrProperty);
1746 
1749  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1750  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1751  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1752  "0");
1753  myTagProperties[currentTag].addAttribute(attrProperty);
1754 
1755  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
1757  TL("Meant to be the names of the train lines that stop at this train stop. This is only used for visualization purposes"));
1758  myTagProperties[currentTag].addAttribute(attrProperty);
1759 
1762  TL("Larger numbers of persons trying to enter will create an upstream jam on the sidewalk"),
1763  "6");
1764  myTagProperties[currentTag].addAttribute(attrProperty);
1765 
1768  TL("Optional space definition for vehicles that park at this stop"),
1769  "0.00");
1770  myTagProperties[currentTag].addAttribute(attrProperty);
1771 
1772  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
1774  TL("The RGBA color with which the trainStop shall be displayed"));
1775  myTagProperties[currentTag].addAttribute(attrProperty);
1776 
1777  }
1778  currentTag = SUMO_TAG_ACCESS;
1779  {
1780  // set values of tag
1781  myTagProperties[currentTag] = GNETagProperties(currentTag,
1782  GNETagProperties::TagType::ADDITIONALELEMENT,
1783  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::REPARENT,
1784  GNETagProperties::Conflicts::NO_CONFLICTS,
1785  GNETagProperties::Conflicts::POS_LANE,
1786  GUIIcon::ACCESS, currentTag, TL("Access"),
1787  {SUMO_TAG_BUS_STOP, SUMO_TAG_TRAIN_STOP}, FXRGBA(240, 255, 205, 255));
1788  // set values of attributes
1789  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1791  TL("The name of the lane the stop access shall be located at"));
1792  myTagProperties[currentTag].addAttribute(attrProperty);
1793 
1796  TL("The position on the lane (the lower position on the lane) in meters"),
1797  "0.00");
1798  myTagProperties[currentTag].addAttribute(attrProperty);
1799 
1802  TL("The walking length of the access in meters"),
1803  "-1.00");
1804  myTagProperties[currentTag].addAttribute(attrProperty);
1805 
1808  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1809  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1810  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1811  "0");
1812  myTagProperties[currentTag].addAttribute(attrProperty);
1813 
1814  }
1815  currentTag = SUMO_TAG_CONTAINER_STOP;
1816  {
1817  // set values of tag
1818  myTagProperties[currentTag] = GNETagProperties(currentTag,
1819  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::STOPPINGPLACE,
1820  GNETagProperties::TagProperty::MASKSTARTENDPOS,
1821  GNETagProperties::Conflicts::NO_CONFLICTS,
1822  GNETagProperties::Conflicts::POS_LANE_START | GNETagProperties::Conflicts::POS_LANE_END,
1823  GUIIcon::CONTAINERSTOP, currentTag, TL("ContainerStop"),
1824  {}, FXRGBA(240, 255, 205, 255));
1825  // set values of attributes
1826  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1828  TL("The id of container stop"));
1829  myTagProperties[currentTag].addAttribute(attrProperty);
1830 
1831  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1833  TL("The name of the lane the container stop shall be located at"));
1834  myTagProperties[currentTag].addAttribute(attrProperty);
1835 
1838  TL("The begin position on the lane (the lower position on the lane) in meters"));
1839  myTagProperties[currentTag].addAttribute(attrProperty);
1840 
1843  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"));
1844  myTagProperties[currentTag].addAttribute(attrProperty);
1845 
1846  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1848  TL("Name of containerStop"));
1849  myTagProperties[currentTag].addAttribute(attrProperty);
1850 
1853  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1854  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1855  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1856  "0");
1857  myTagProperties[currentTag].addAttribute(attrProperty);
1858 
1859  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
1861  TL("meant to be the names of the bus lines that stop at this container stop. This is only used for visualization purposes"));
1862  myTagProperties[currentTag].addAttribute(attrProperty);
1863 
1866  TL("Larger numbers of container trying to enter will create an upstream jam on the sidewalk"),
1867  "6");
1868  myTagProperties[currentTag].addAttribute(attrProperty);
1869 
1872  TL("Optional space definition for vehicles that park at this stop"),
1873  "0.00");
1874  myTagProperties[currentTag].addAttribute(attrProperty);
1875 
1876  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
1878  TL("The RGBA color with which the containerStop shall be displayed"));
1879  myTagProperties[currentTag].addAttribute(attrProperty);
1880  }
1881  currentTag = SUMO_TAG_CHARGING_STATION;
1882  {
1883  // set values of tag
1884  myTagProperties[currentTag] = GNETagProperties(currentTag,
1885  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::STOPPINGPLACE,
1886  GNETagProperties::TagProperty::MASKSTARTENDPOS,
1887  GNETagProperties::Conflicts::NO_CONFLICTS,
1888  GNETagProperties::Conflicts::POS_LANE_START | GNETagProperties::Conflicts::POS_LANE_END,
1889  GUIIcon::CHARGINGSTATION, currentTag, TL("ChargingStation"),
1890  {}, FXRGBA(240, 255, 205, 255));
1891  // set values of attributes
1892  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1894  TL("The id of charging station"));
1895  myTagProperties[currentTag].addAttribute(attrProperty);
1896 
1897  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1899  TL("Lane of the charging station location"));
1900  myTagProperties[currentTag].addAttribute(attrProperty);
1901 
1904  TL("Begin position in the specified lane"));
1905  myTagProperties[currentTag].addAttribute(attrProperty);
1906 
1909  TL("End position in the specified lane"));
1910  myTagProperties[currentTag].addAttribute(attrProperty);
1911 
1912  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
1914  TL("Name of chargingStation"));
1915  myTagProperties[currentTag].addAttribute(attrProperty);
1916 
1919  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1920  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1921  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1922  "0");
1923  myTagProperties[currentTag].addAttribute(attrProperty);
1924 
1927  TL("Charging power in W"),
1928  "22000.00");
1929  myTagProperties[currentTag].addAttribute(attrProperty);
1930 
1933  TL("Charging efficiency [0,1]"),
1934  "0.95");
1935  attrProperty.setRange(0, 1);
1936  myTagProperties[currentTag].addAttribute(attrProperty);
1937 
1940  TL("Enable or disable charge in transit, i.e. vehicle must or must not to stop for charging"),
1941  "0");
1942  myTagProperties[currentTag].addAttribute(attrProperty);
1943 
1946  TL("Time delay after the vehicles has reached / stopped on the charging station, before the energy transfer (charging) begins"),
1947  "0.00");
1948  myTagProperties[currentTag].addAttribute(attrProperty);
1949 
1952  TL("Battery charging type"),
1953  "normal");
1954  attrProperty.setDiscreteValues({"normal", "electric", "fuel"});
1955  myTagProperties[currentTag].addAttribute(attrProperty);
1956 
1959  TL("Waiting time before start charging"),
1960  "900.00");
1961  myTagProperties[currentTag].addAttribute(attrProperty);
1962 
1965  TL("Parking area the charging station is located"),
1966  "");
1967  myTagProperties[currentTag].addAttribute(attrProperty);
1968  }
1969  currentTag = SUMO_TAG_PARKING_AREA;
1970  {
1971  // set values of tag
1972  myTagProperties[currentTag] = GNETagProperties(currentTag,
1973  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::STOPPINGPLACE,
1974  GNETagProperties::TagProperty::MASKSTARTENDPOS,
1975  GNETagProperties::Conflicts::NO_CONFLICTS,
1976  GNETagProperties::Conflicts::POS_LANE_START | GNETagProperties::Conflicts::POS_LANE_END,
1977  GUIIcon::PARKINGAREA, currentTag, TL("ParkingArea"),
1978  {}, FXRGBA(240, 255, 205, 255));
1979  // set values of attributes
1980  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1982  TL("The id of ParkingArea"));
1983  myTagProperties[currentTag].addAttribute(attrProperty);
1984 
1985  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
1987  TL("The name of the lane the Parking Area shall be located at"));
1988  myTagProperties[currentTag].addAttribute(attrProperty);
1989 
1992  TL("The begin position on the lane (the lower position on the lane) in meters"));
1993  myTagProperties[currentTag].addAttribute(attrProperty);
1994 
1997  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"));
1998  myTagProperties[currentTag].addAttribute(attrProperty);
1999 
2002  TL("Lane position in that vehicle must depart when leaves parkingArea"));
2003  myTagProperties[currentTag].addAttribute(attrProperty);
2004 
2005  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2007  TL("Name of parkingArea"));
2008  myTagProperties[currentTag].addAttribute(attrProperty);
2009 
2012  TL("Accepted badges to access this parkingArea"));
2013  myTagProperties[currentTag].addAttribute(attrProperty);
2014 
2017  TL(" The number of parking spaces for road-side parking"),
2018  "0");
2019  myTagProperties[currentTag].addAttribute(attrProperty);
2020 
2023  TL("If set, vehicles will park on the road lane and thereby reducing capacity"),
2024  "0");
2025  myTagProperties[currentTag].addAttribute(attrProperty);
2026 
2029  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2030  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2031  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2032  "0");
2033  myTagProperties[currentTag].addAttribute(attrProperty);
2034 
2035  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
2037  TL("The width of the road-side parking spaces"),
2039  myTagProperties[currentTag].addAttribute(attrProperty);
2040 
2043  TL("The length of the road-side parking spaces. By default (endPos - startPos) / roadsideCapacity"),
2044  "0.00");
2045  myTagProperties[currentTag].addAttribute(attrProperty);
2046 
2047  attrProperty = GNEAttributeProperties(SUMO_ATTR_ANGLE,
2049  TL("The angle of the road-side parking spaces relative to the lane angle, positive means clockwise"),
2050  "0.00");
2051  myTagProperties[currentTag].addAttribute(attrProperty);
2052 
2055  TL("Enable or disable lefthand position"),
2056  "0");
2057  myTagProperties[currentTag].addAttribute(attrProperty);
2058 
2059  }
2060  currentTag = SUMO_TAG_PARKING_SPACE;
2061  {
2062  // set values of tag
2063  myTagProperties[currentTag] = GNETagProperties(currentTag,
2064  GNETagProperties::TagType::ADDITIONALELEMENT,
2065  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::REPARENT | GNETagProperties::TagProperty::RTREE,
2066  GNETagProperties::TagParents::NO_PARENTS,
2067  GNETagProperties::Conflicts::NO_CONFLICTS,
2068  GUIIcon::PARKINGSPACE, currentTag, TL("ParkingSpace"),
2069  {SUMO_TAG_PARKING_AREA}, FXRGBA(240, 255, 205, 255));
2070  // set values of attributes
2072  GNEAttributeProperties::STRING | GNEAttributeProperties::UNIQUE | GNEAttributeProperties::POSITION | GNEAttributeProperties::UPDATEGEOMETRY, // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2073  TL("The x-y-z position of the node on the plane in meters"));
2074  myTagProperties[currentTag].addAttribute(attrProperty);
2075 
2076  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2078  TL("Name of parking space"));
2079  myTagProperties[currentTag].addAttribute(attrProperty);
2080 
2081  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
2083  TL("The width of the road-side parking spaces"));
2084  myTagProperties[currentTag].addAttribute(attrProperty);
2085 
2088  TL("The length of the road-side parking spaces"));
2089  myTagProperties[currentTag].addAttribute(attrProperty);
2090 
2091  attrProperty = GNEAttributeProperties(SUMO_ATTR_ANGLE,
2093  TL("The angle of the road-side parking spaces relative to the lane angle, positive means clockwise"));
2094  myTagProperties[currentTag].addAttribute(attrProperty);
2095 
2096  attrProperty = GNEAttributeProperties(SUMO_ATTR_SLOPE,
2098  TL("The slope of the road-side parking spaces"),
2099  "0.00");
2100  myTagProperties[currentTag].addAttribute(attrProperty);
2101 
2102  }
2103  currentTag = SUMO_TAG_INDUCTION_LOOP;
2104  {
2105  // set values of tag
2106  myTagProperties[currentTag] = GNETagProperties(currentTag,
2107  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2108  GNETagProperties::TagParents::NO_PARENTS,
2109  GNETagProperties::Conflicts::NO_CONFLICTS,
2110  GNETagProperties::Conflicts::POS_LANE,
2111  GUIIcon::E1, currentTag, TL("E1 InductionLoop"),
2112  {}, FXRGBA(210, 233, 255, 255));
2113  // set values of attributes
2114  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2116  TL("The id of E1"));
2117  myTagProperties[currentTag].addAttribute(attrProperty);
2118 
2119  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2121  TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2122  myTagProperties[currentTag].addAttribute(attrProperty);
2123 
2126  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"));
2127  myTagProperties[currentTag].addAttribute(attrProperty);
2128 
2131  TL("The aggregation period the values the detector collects shall be summed up"),
2132  "300.00");
2133  myTagProperties[currentTag].addAttribute(attrProperty);
2134 
2135  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2137  TL("Name of induction loop"));
2138  myTagProperties[currentTag].addAttribute(attrProperty);
2139 
2140  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2142  TL("The path to the output file"));
2143  myTagProperties[currentTag].addAttribute(attrProperty);
2144 
2147  TL("Space separated list of vehicle type ids to consider"));
2148  myTagProperties[currentTag].addAttribute(attrProperty);
2149 
2152  TL("List of edge ids that must all be part of the future route of the vehicle to qualify for detection"));
2153  myTagProperties[currentTag].addAttribute(attrProperty);
2154 
2157  TL("Detect persons instead of vehicles (pedestrians or passengers)"),
2159  attrProperty.setDiscreteValues(SUMOXMLDefinitions::PersonModeValues.getStrings());
2160  myTagProperties[currentTag].addAttribute(attrProperty);
2161 
2164  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2165  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2166  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2167  "0");
2168  myTagProperties[currentTag].addAttribute(attrProperty);
2169  }
2170  currentTag = SUMO_TAG_LANE_AREA_DETECTOR;
2171  {
2172  // set values of tag
2173  myTagProperties[currentTag] = GNETagProperties(currentTag,
2174  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2175  GNETagProperties::TagProperty::NO_PROPERTY,
2176  GNETagProperties::TagParents::NO_PARENTS,
2177  GNETagProperties::Conflicts::NO_CONFLICTS,
2178  GUIIcon::E2, currentTag, TL("E2 LaneAreaDetector"),
2179  {}, FXRGBA(210, 233, 255, 255));
2180  // set values of attributes
2181  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2183  TL("The id of E2"));
2184  myTagProperties[currentTag].addAttribute(attrProperty);
2185 
2186  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2188  TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2189  myTagProperties[currentTag].addAttribute(attrProperty);
2190 
2193  TL("The position on the lane the detector shall be laid on in meters"));
2194  myTagProperties[currentTag].addAttribute(attrProperty);
2195 
2198  TL("The length of the detector in meters"),
2199  "10.00");
2200  myTagProperties[currentTag].addAttribute(attrProperty);
2201 
2204  TL("The aggregation period the values the detector collects shall be summed up"),
2205  "300.00");
2206  myTagProperties[currentTag].addAttribute(attrProperty);
2207 
2208  attrProperty = GNEAttributeProperties(SUMO_ATTR_TLID,
2210  TL("The traffic light that triggers aggregation when switching"));
2211  myTagProperties[currentTag].addAttribute(attrProperty);
2212 
2213  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2215  TL("Name of lane area detector"));
2216  myTagProperties[currentTag].addAttribute(attrProperty);
2217 
2218  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2220  TL("The path to the output file"));
2221  myTagProperties[currentTag].addAttribute(attrProperty);
2222 
2225  TL("Space separated list of vehicle type ids to consider"));
2226  myTagProperties[currentTag].addAttribute(attrProperty);
2227 
2230  TL("List of edge ids that must all be part of the future route of the vehicle to qualify for detection"));
2231  myTagProperties[currentTag].addAttribute(attrProperty);
2232 
2235  TL("Detect persons instead of vehicles (pedestrians or passengers)"),
2237  attrProperty.setDiscreteValues(SUMOXMLDefinitions::PersonModeValues.getStrings());
2238  myTagProperties[currentTag].addAttribute(attrProperty);
2239 
2242  TL("The time-based threshold that describes how much time has to pass until a vehicle is recognized as halting)"),
2243  "1.00");
2244  myTagProperties[currentTag].addAttribute(attrProperty);
2245 
2248  TL("The speed-based threshold that describes how slow a vehicle has to be to be recognized as halting) in m/s"),
2249  "1.39");
2250  myTagProperties[currentTag].addAttribute(attrProperty);
2251 
2254  TL("The maximum distance to the next standing vehicle in order to make this vehicle count as a participant to the jam in m"),
2255  "10.00");
2256  myTagProperties[currentTag].addAttribute(attrProperty);
2257 
2260  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2261  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2262  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2263  "0");
2264  myTagProperties[currentTag].addAttribute(attrProperty);
2265 
2268  TL("Show detector in sumo-gui"),
2269  "1");
2270  myTagProperties[currentTag].addAttribute(attrProperty);
2271  }
2272  currentTag = GNE_TAG_MULTI_LANE_AREA_DETECTOR;
2273  {
2274  // set values of tag
2275  myTagProperties[currentTag] = GNETagProperties(currentTag,
2276  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2277  GNETagProperties::TagProperty::NO_PROPERTY,
2278  GNETagProperties::TagParents::NO_PARENTS,
2279  GNETagProperties::Conflicts::NO_CONFLICTS,
2280  GUIIcon::E2, SUMO_TAG_LANE_AREA_DETECTOR, TL("E2 MultiLaneAreaDetector"),
2281  {}, FXRGBA(210, 233, 255, 255));
2282  // set values of attributes
2283  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2285  TL("The id of Multilane E2"));
2286  myTagProperties[currentTag].addAttribute(attrProperty);
2287 
2288  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANES,
2290  TL("The sequence of lane ids in which the detector shall be laid on"));
2291  myTagProperties[currentTag].addAttribute(attrProperty);
2292 
2295  TL("The position on the lane the detector shall be laid on in meters"));
2296  myTagProperties[currentTag].addAttribute(attrProperty);
2297 
2300  TL("The end position on the lane the detector shall be laid on in meters"));
2301  myTagProperties[currentTag].addAttribute(attrProperty);
2302 
2305  TL("The aggregation period the values the detector collects shall be summed up"),
2306  "300.00");
2307  myTagProperties[currentTag].addAttribute(attrProperty);
2308 
2309  attrProperty = GNEAttributeProperties(SUMO_ATTR_TLID,
2311  TL("The traffic light that triggers aggregation when switching"));
2312  myTagProperties[currentTag].addAttribute(attrProperty);
2313 
2314  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2316  TL("Name of Multilane E2 detector"));
2317  myTagProperties[currentTag].addAttribute(attrProperty);
2318 
2319  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2321  TL("The path to the output file"));
2322  myTagProperties[currentTag].addAttribute(attrProperty);
2323 
2326  TL("Space separated list of vehicle type ids to consider"));
2327  myTagProperties[currentTag].addAttribute(attrProperty);
2328 
2331  TL("List of edge ids that must all be part of the future route of the vehicle to qualify for detection"));
2332  myTagProperties[currentTag].addAttribute(attrProperty);
2333 
2336  TL("Detect persons instead of vehicles (pedestrians or passengers)"),
2338  attrProperty.setDiscreteValues(SUMOXMLDefinitions::PersonModeValues.getStrings());
2339  myTagProperties[currentTag].addAttribute(attrProperty);
2340 
2343  TL("The time-based threshold that describes how much time has to pass until a vehicle is recognized as halting)"),
2344  "1.00");
2345  myTagProperties[currentTag].addAttribute(attrProperty);
2346 
2349  TL("The speed-based threshold that describes how slow a vehicle has to be to be recognized as halting) in m/s"),
2350  "1.39");
2351  myTagProperties[currentTag].addAttribute(attrProperty);
2352 
2355  TL("The maximum distance to the next standing vehicle in order to make this vehicle count as a participant to the jam in m"),
2356  "10.00");
2357  myTagProperties[currentTag].addAttribute(attrProperty);
2358 
2361  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2362  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2363  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2364  "0");
2365  myTagProperties[currentTag].addAttribute(attrProperty);
2366 
2369  TL("Show detector in sumo-gui"),
2370  "1");
2371  myTagProperties[currentTag].addAttribute(attrProperty);
2372  }
2373  currentTag = SUMO_TAG_ENTRY_EXIT_DETECTOR;
2374  {
2375  // set values of tag
2376  myTagProperties[currentTag] = GNETagProperties(currentTag,
2377  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2378  GNETagProperties::TagProperty::RTREE,
2379  GNETagProperties::Conflicts::NO_CONFLICTS,
2380  GNETagProperties::Conflicts::NO_ADDITIONAL_CHILDREN,
2381  GUIIcon::E3, currentTag, TL("E3 EntryExitDetector"),
2382  {}, FXRGBA(210, 233, 255, 255));
2383  // set values of attributes
2384  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2386  TL("The id of E3"));
2387  myTagProperties[currentTag].addAttribute(attrProperty);
2388 
2391  TL("X-Y position of detector in editor (Only used in netedit)"),
2392  "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2393  myTagProperties[currentTag].addAttribute(attrProperty);
2394 
2397  TL("The aggregation period the values the detector collects shall be summed up"),
2398  "300.00");
2399  myTagProperties[currentTag].addAttribute(attrProperty);
2400 
2401  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2403  TL("Name of Entry Exit detector"));
2404  myTagProperties[currentTag].addAttribute(attrProperty);
2405 
2406  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2408  TL("The path to the output file"));
2409  myTagProperties[currentTag].addAttribute(attrProperty);
2410 
2413  TL("Space separated list of vehicle type ids to consider"));
2414  myTagProperties[currentTag].addAttribute(attrProperty);
2415 
2418  TL("List of edge ids that must all be part of the future route of the vehicle to qualify for detection"));
2419  myTagProperties[currentTag].addAttribute(attrProperty);
2420 
2423  TL("Detect persons instead of vehicles (pedestrians or passengers)"),
2425  attrProperty.setDiscreteValues(SUMOXMLDefinitions::PersonModeValues.getStrings());
2426  myTagProperties[currentTag].addAttribute(attrProperty);
2427 
2430  TL("If set to true, no error will be reported if vehicles leave the detector without first entering it"),
2431  "0");
2432  myTagProperties[currentTag].addAttribute(attrProperty);
2433 
2436  TL("The time-based threshold that describes how much time has to pass until a vehicle is recognized as halting) in s"),
2437  "1.00");
2438  myTagProperties[currentTag].addAttribute(attrProperty);
2439 
2442  TL("The speed-based threshold that describes how slow a vehicle has to be to be recognized as halting) in m/s"),
2443  "1.39");
2444  myTagProperties[currentTag].addAttribute(attrProperty);
2445 
2448  TL("Whether no warning should be issued when a vehicle arrives within the detector area."),
2449  "0");
2450  myTagProperties[currentTag].addAttribute(attrProperty);
2451  }
2452  currentTag = SUMO_TAG_DET_ENTRY;
2453  {
2454  // set values of tag
2455  myTagProperties[currentTag] = GNETagProperties(currentTag,
2456  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2457  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::REPARENT,
2458  GNETagProperties::TagParents::NO_PARENTS,
2459  GNETagProperties::Conflicts::NO_CONFLICTS,
2460  GUIIcon::E3ENTRY, currentTag, TL("E3 DetEntry"),
2461  {SUMO_TAG_ENTRY_EXIT_DETECTOR}, FXRGBA(210, 233, 255, 255));
2462  // set values of attributes
2463  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2465  TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2466  myTagProperties[currentTag].addAttribute(attrProperty);
2467 
2470  TL("The position on the lane the detector shall be laid on in meters"));
2471  myTagProperties[currentTag].addAttribute(attrProperty);
2472 
2475  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2476  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2477  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2478  "0");
2479  myTagProperties[currentTag].addAttribute(attrProperty);
2480 
2481  }
2482  currentTag = SUMO_TAG_DET_EXIT;
2483  {
2484  // set values of tag
2485  myTagProperties[currentTag] = GNETagProperties(currentTag,
2486  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2487  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::REPARENT,
2488  GNETagProperties::TagParents::NO_PARENTS,
2489  GNETagProperties::Conflicts::NO_CONFLICTS,
2490  GUIIcon::E3EXIT, currentTag, TL("E3 DetExit"),
2491  {SUMO_TAG_ENTRY_EXIT_DETECTOR}, FXRGBA(210, 233, 255, 255));
2492  // set values of attributes
2493  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2495  TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2496  myTagProperties[currentTag].addAttribute(attrProperty);
2497 
2500  TL("The position on the lane the detector shall be laid on in meters"));
2501  myTagProperties[currentTag].addAttribute(attrProperty);
2502 
2505  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2506  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2507  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2508  "0");
2509  myTagProperties[currentTag].addAttribute(attrProperty);
2510 
2511  }
2512  currentTag = SUMO_TAG_INSTANT_INDUCTION_LOOP;
2513  {
2514  // set values of tag
2515  myTagProperties[currentTag] = GNETagProperties(currentTag,
2516  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::DETECTOR,
2517  GNETagProperties::TagParents::NO_PARENTS,
2518  GNETagProperties::Conflicts::NO_CONFLICTS,
2519  GNETagProperties::Conflicts::POS_LANE,
2520  GUIIcon::E1INSTANT, currentTag, TL("E3 DetExit"),
2521  {}, FXRGBA(210, 233, 255, 255));
2522  // set values of attributes
2523  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2525  TL("The id of Instant Induction Loop (E1Instant)"));
2526  myTagProperties[currentTag].addAttribute(attrProperty);
2527 
2528  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2530  TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2531  myTagProperties[currentTag].addAttribute(attrProperty);
2532 
2535  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"));
2536  myTagProperties[currentTag].addAttribute(attrProperty);
2537 
2538  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2540  TL("Name of instant induction loop"));
2541  myTagProperties[currentTag].addAttribute(attrProperty);
2542 
2543  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2545  TL("The path to the output file"));
2546  myTagProperties[currentTag].addAttribute(attrProperty);
2547 
2550  TL("Space separated list of vehicle type ids to consider"));
2551  myTagProperties[currentTag].addAttribute(attrProperty);
2552 
2555  TL("List of edge ids that must all be part of the future route of the vehicle to qualify for detection"));
2556  myTagProperties[currentTag].addAttribute(attrProperty);
2557 
2560  TL("Detect persons instead of vehicles (pedestrians or passengers)"),
2562  attrProperty.setDiscreteValues(SUMOXMLDefinitions::PersonModeValues.getStrings());
2563  myTagProperties[currentTag].addAttribute(attrProperty);
2564 
2567  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2568  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2569  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2570  "0");
2571  myTagProperties[currentTag].addAttribute(attrProperty);
2572  }
2573  currentTag = SUMO_TAG_ROUTEPROBE;
2574  {
2575  // set values of tag
2576  myTagProperties[currentTag] = GNETagProperties(currentTag,
2577  GNETagProperties::TagType::ADDITIONALELEMENT,
2578  GNETagProperties::TagProperty::CENTERAFTERCREATION,
2579  GNETagProperties::TagParents::NO_PARENTS,
2580  GNETagProperties::Conflicts::NO_CONFLICTS,
2581  GUIIcon::ROUTEPROBE, currentTag, TL("RouteProbe"),
2582  {}, FXRGBA(210, 233, 255, 255));
2583  // set values of attributes
2584  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2586  TL("The id of RouteProbe"));
2587  myTagProperties[currentTag].addAttribute(attrProperty);
2588 
2589  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
2591  TL("The id of an edge in the simulation network"));
2592  myTagProperties[currentTag].addAttribute(attrProperty);
2593 
2596  TL("The frequency in which to report the distribution"),
2597  "3600.00");
2598  myTagProperties[currentTag].addAttribute(attrProperty);
2599 
2600  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2602  TL("Name of route probe"));
2603  myTagProperties[currentTag].addAttribute(attrProperty);
2604 
2605  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
2607  TL("The file for generated output"));
2608  myTagProperties[currentTag].addAttribute(attrProperty);
2609 
2610  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
2612  TL("The time at which to start generating output"),
2613  "0");
2614  myTagProperties[currentTag].addAttribute(attrProperty);
2615  }
2616  currentTag = SUMO_TAG_VSS;
2617  {
2618  // set values of tag
2619  myTagProperties[currentTag] = GNETagProperties(currentTag,
2620  GNETagProperties::TagType::ADDITIONALELEMENT,
2621  GNETagProperties::TagProperty::RTREE | GNETagProperties::TagProperty::DIALOG,
2622  GNETagProperties::TagParents::NO_PARENTS,
2623  GNETagProperties::Conflicts::NO_CONFLICTS,
2624  GUIIcon::VARIABLESPEEDSIGN, currentTag, TL("VariableSpeedSign"),
2625  {}, FXRGBA(210, 233, 255, 255));
2626  // set values of attributes
2627  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2629  TL("The id of Variable Speed Signal"));
2630  myTagProperties[currentTag].addAttribute(attrProperty);
2631 
2634  TL("X-Y position of detector in editor (Only used in netedit)"),
2635  "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2636  myTagProperties[currentTag].addAttribute(attrProperty);
2637 
2638  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANES,
2640  TL("List of Variable Speed Sign lanes"));
2641  myTagProperties[currentTag].addAttribute(attrProperty);
2642 
2643  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2645  TL("Name of Variable Speed Signal"));
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_VSS_SYMBOL;
2654  {
2655  // set values of tag
2656  myTagProperties[currentTag] = GNETagProperties(currentTag,
2657  GNETagProperties::TagType::ADDITIONALELEMENT,
2658  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::NOTSELECTABLE | GNETagProperties::TagProperty::SYMBOL,
2659  GNETagProperties::TagParents::NO_PARENTS,
2660  GNETagProperties::Conflicts::NO_CONFLICTS,
2661  GUIIcon::LANE, currentTag, TL("VariableSpeedSign (lane)"),
2662  {SUMO_TAG_VSS}, FXRGBA(210, 233, 255, 255));
2663  }
2664  currentTag = SUMO_TAG_STEP;
2665  {
2666  // set values of tag
2667  myTagProperties[currentTag] = GNETagProperties(currentTag,
2668  GNETagProperties::TagType::ADDITIONALELEMENT,
2669  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
2670  GNETagProperties::TagParents::NO_PARENTS,
2671  GNETagProperties::Conflicts::NO_CONFLICTS,
2672  GUIIcon::VSSSTEP, currentTag, TL("VariableSpeedSign Step"),
2673  {SUMO_TAG_VSS}, FXRGBA(210, 233, 255, 255));
2674  // set values of attributes
2675  attrProperty = GNEAttributeProperties(SUMO_ATTR_TIME,
2677  TL("Time"));
2678  myTagProperties[currentTag].addAttribute(attrProperty);
2679 
2680  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
2682  TL("Speed"),
2683  "13.89");
2684  myTagProperties[currentTag].addAttribute(attrProperty);
2685  }
2686  currentTag = SUMO_TAG_CALIBRATOR;
2687  {
2688  // set values of tag
2689  myTagProperties[currentTag] = GNETagProperties(currentTag,
2690  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::CALIBRATOR,
2691  GNETagProperties::TagProperty::DIALOG | GNETagProperties::TagProperty::CENTERAFTERCREATION,
2692  GNETagProperties::TagParents::NO_PARENTS,
2693  GNETagProperties::Conflicts::NO_CONFLICTS,
2694  GUIIcon::CALIBRATOR, currentTag, TL("Calibrator"),
2695  {}, FXRGBA(253, 255, 206, 255));
2696  // set values of attributes
2697  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2699  TL("The id of Calibrator"));
2700  myTagProperties[currentTag].addAttribute(attrProperty);
2701 
2702  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
2704  TL("The id of edge in the simulation network"));
2705  myTagProperties[currentTag].addAttribute(attrProperty);
2706 
2709  TL("The position of the calibrator on the specified lane"),
2710  "0.00");
2711  myTagProperties[currentTag].addAttribute(attrProperty);
2712 
2715  TL("The aggregation interval in which to calibrate the flows. Default is step-length"),
2716  "1.00");
2717  myTagProperties[currentTag].addAttribute(attrProperty);
2718 
2719  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2721  TL("Name of Calibrator"));
2722  myTagProperties[currentTag].addAttribute(attrProperty);
2723 
2726  TL("The id of the routeProbe element from which to determine the route distribution for generated vehicles"));
2727  myTagProperties[currentTag].addAttribute(attrProperty);
2728 
2731  TL("The output file for writing calibrator information or NULL"));
2732  myTagProperties[currentTag].addAttribute(attrProperty);
2733 
2736  TL("A threshold value to detect and clear unexpected jamming"),
2737  "0.50");
2738  myTagProperties[currentTag].addAttribute(attrProperty);
2739 
2742  TL("space separated list of vehicle type ids to consider (empty to affect all types)"));
2743  myTagProperties[currentTag].addAttribute(attrProperty);
2744  }
2745  currentTag = GNE_TAG_CALIBRATOR_LANE;
2746  {
2747  // set values of tag
2748  myTagProperties[currentTag] = GNETagProperties(currentTag,
2749  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::CALIBRATOR,
2750  GNETagProperties::TagProperty::DIALOG | GNETagProperties::TagProperty::CENTERAFTERCREATION,
2751  GNETagProperties::TagParents::NO_PARENTS,
2752  GNETagProperties::Conflicts::NO_CONFLICTS,
2753  GUIIcon::CALIBRATOR, SUMO_TAG_CALIBRATOR, TL("CalibratorLane"),
2754  {}, FXRGBA(253, 255, 206, 255));
2755  // set values of attributes
2756  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2758  TL("The id of Calibrator"));
2759  myTagProperties[currentTag].addAttribute(attrProperty);
2760 
2761  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2763  TL("The id of lane in the simulation network"));
2764  myTagProperties[currentTag].addAttribute(attrProperty);
2765 
2768  TL("The position of the calibrator on the specified lane"),
2769  "0.00");
2770  myTagProperties[currentTag].addAttribute(attrProperty);
2771 
2774  TL("The aggregation interval in which to calibrate the flows. Default is step-length"),
2775  "1.00");
2776  myTagProperties[currentTag].addAttribute(attrProperty);
2777 
2778  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2780  TL("Name of calibrator lane"));
2781  myTagProperties[currentTag].addAttribute(attrProperty);
2782 
2785  TL("The id of the routeProbe element from which to determine the route distribution for generated vehicles"));
2786  myTagProperties[currentTag].addAttribute(attrProperty);
2787 
2790  TL("The output file for writing calibrator information or NULL"));
2791  myTagProperties[currentTag].addAttribute(attrProperty);
2792 
2795  TL("A threshold value to detect and clear unexpected jamming"),
2796  "0.50");
2797  myTagProperties[currentTag].addAttribute(attrProperty);
2798 
2801  TL("space separated list of vehicle type ids to consider (empty to affect all types)"));
2802  myTagProperties[currentTag].addAttribute(attrProperty);
2803  }
2804  currentTag = GNE_TAG_CALIBRATOR_FLOW;
2805  {
2806  // set values of tag
2807  myTagProperties[currentTag] = GNETagProperties(currentTag,
2808  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::CALIBRATOR,
2809  GNETagProperties::TagProperty::CHILD,
2810  GNETagProperties::TagParents::NO_PARENTS,
2811  GNETagProperties::Conflicts::NO_CONFLICTS,
2812  GUIIcon::FLOW, SUMO_TAG_FLOW, TL("CalibratorFlow"),
2813  {SUMO_TAG_CALIBRATOR}, FXRGBA(253, 255, 206, 255));
2814  // set values of attributes
2815  attrProperty = GNEAttributeProperties(SUMO_ATTR_ROUTE,
2817  TL("The id of the route the vehicle shall drive along"));
2818  myTagProperties[currentTag].addAttribute(attrProperty);
2819 
2820  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
2822  TL("First calibrator flow departure time"),
2823  "0");
2824  myTagProperties[currentTag].addAttribute(attrProperty);
2825 
2826  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
2828  TL("End of departure interval"),
2829  "3600");
2830  myTagProperties[currentTag].addAttribute(attrProperty);
2831 
2832  // fill common vehicle attributes
2833  fillCommonVehicleAttributes(currentTag);
2834 
2835  // optional attributes (at least one must be defined)
2836  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
2838  TL("The id of the vehicle type to use for this calibrator flow"),
2840  myTagProperties[currentTag].addAttribute(attrProperty);
2841 
2844  TL("Number of vehicles per hour, equally spaced"),
2845  "1800");
2846  myTagProperties[currentTag].addAttribute(attrProperty);
2847 
2848  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
2850  TL("Vehicle's speed"),
2851  "15.0");
2852  myTagProperties[currentTag].addAttribute(attrProperty);
2853  }
2854  currentTag = SUMO_TAG_REROUTER;
2855  {
2856  // set values of tag
2857  myTagProperties[currentTag] = GNETagProperties(currentTag,
2858  GNETagProperties::TagType::ADDITIONALELEMENT,
2859  GNETagProperties::TagProperty::RTREE | GNETagProperties::TagProperty::DIALOG,
2860  GNETagProperties::TagParents::NO_PARENTS,
2861  GNETagProperties::Conflicts::NO_CONFLICTS,
2862  GUIIcon::REROUTER, currentTag, TL("Rerouter"),
2863  {}, FXRGBA(255, 213, 213, 255));
2864 
2865  // set values of attributes
2866  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2868  TL("The id of Rerouter"));
2869  myTagProperties[currentTag].addAttribute(attrProperty);
2870 
2871  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
2873  TL("An edge id or a list of edge ids where vehicles shall be rerouted"));
2874  myTagProperties[currentTag].addAttribute(attrProperty);
2875 
2878  TL("X,Y position in editor (Only used in netedit)"),
2879  "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2880  myTagProperties[currentTag].addAttribute(attrProperty);
2881 
2882  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
2884  TL("Name of Rerouter"));
2885  myTagProperties[currentTag].addAttribute(attrProperty);
2886 
2887  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
2889  TL("The probability for vehicle rerouting (0-1)"),
2890  "1.00");
2891  myTagProperties[currentTag].addAttribute(attrProperty);
2892 
2895  TL("The waiting time threshold (in s) that must be reached to activate rerouting (default -1 which disables the threshold)"),
2896  "0.00");
2897  myTagProperties[currentTag].addAttribute(attrProperty);
2898 
2901  TL("The list of vehicle types that shall be affected by this rerouter (empty to affect all types)"));
2902  myTagProperties[currentTag].addAttribute(attrProperty);
2903 
2904  attrProperty = GNEAttributeProperties(SUMO_ATTR_OFF,
2906  TL("Whether the router should be inactive initially (and switched on in the gui)"),
2907  "0");
2908  myTagProperties[currentTag].addAttribute(attrProperty);
2909 
2912  TL("If rerouter is optional"),
2913  "0");
2914  myTagProperties[currentTag].addAttribute(attrProperty);
2915  }
2916  currentTag = GNE_TAG_REROUTER_SYMBOL;
2917  {
2918  // set values of tag
2919  myTagProperties[currentTag] = GNETagProperties(currentTag,
2920  GNETagProperties::TagType::ADDITIONALELEMENT,
2921  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::NOTSELECTABLE | GNETagProperties::TagProperty::SYMBOL,
2922  GNETagProperties::TagParents::NO_PARENTS,
2923  GNETagProperties::Conflicts::NO_CONFLICTS,
2924  GUIIcon::EDGE, currentTag, TL("Rerouter (Edge)"),
2925  {GNE_TAG_REROUTER_SYMBOL}, FXRGBA(255, 213, 213, 255));
2926  }
2927  currentTag = SUMO_TAG_INTERVAL;
2928  {
2929  // set values of tag
2930  myTagProperties[currentTag] = GNETagProperties(currentTag,
2931  GNETagProperties::TagType::ADDITIONALELEMENT,
2932  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
2933  GNETagProperties::TagParents::NO_PARENTS,
2934  GNETagProperties::Conflicts::NO_CONFLICTS,
2935  GUIIcon::REROUTERINTERVAL, currentTag, TL("Rerouter Interval"),
2936  {SUMO_TAG_REROUTER}, FXRGBA(255, 213, 213, 255));
2937  // set values of attributes
2938  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
2940  TL("Begin"),
2941  "0");
2942  myTagProperties[currentTag].addAttribute(attrProperty);
2943 
2944  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
2946  TL("End"),
2947  "3600");
2948  myTagProperties[currentTag].addAttribute(attrProperty);
2949  }
2950  currentTag = SUMO_TAG_CLOSING_REROUTE;
2951  {
2952  // set values of tag
2953  myTagProperties[currentTag] = GNETagProperties(currentTag,
2954  GNETagProperties::TagType::ADDITIONALELEMENT,
2955  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
2956  GNETagProperties::TagParents::NO_PARENTS,
2957  GNETagProperties::Conflicts::NO_CONFLICTS,
2958  GUIIcon::CLOSINGREROUTE, currentTag, TL("ClosingReroute"),
2959  {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
2960  // set values of attributes
2961  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
2963  TL("Edge ID"));
2964  attrProperty.setSynonym(SUMO_ATTR_ID);
2965  myTagProperties[currentTag].addAttribute(attrProperty);
2966 
2967  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
2969  TL("allowed vehicles"));
2970  myTagProperties[currentTag].addAttribute(attrProperty);
2971 
2974  TL("disallowed vehicles"));
2975  myTagProperties[currentTag].addAttribute(attrProperty);
2976  }
2977  currentTag = SUMO_TAG_CLOSING_LANE_REROUTE;
2978  {
2979  // set values of tag
2980  myTagProperties[currentTag] = GNETagProperties(currentTag,
2981  GNETagProperties::TagType::ADDITIONALELEMENT,
2982  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
2983  GNETagProperties::TagParents::NO_PARENTS,
2984  GNETagProperties::Conflicts::NO_CONFLICTS,
2985  GUIIcon::CLOSINGLANEREROUTE, currentTag, TL("ClosingLaneReroute"),
2986  {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
2987  // set values of attributes
2988  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
2990  TL("Lane ID"));
2991  attrProperty.setSynonym(SUMO_ATTR_ID);
2992  myTagProperties[currentTag].addAttribute(attrProperty);
2993 
2994  attrProperty = GNEAttributeProperties(SUMO_ATTR_ALLOW,
2996  TL("allowed vehicles"));
2997  myTagProperties[currentTag].addAttribute(attrProperty);
2998 
3001  TL("disallowed vehicles"));
3002  myTagProperties[currentTag].addAttribute(attrProperty);
3003  }
3004  currentTag = SUMO_TAG_DEST_PROB_REROUTE;
3005  {
3006  // set values of tag
3007  myTagProperties[currentTag] = GNETagProperties(currentTag,
3008  GNETagProperties::TagType::ADDITIONALELEMENT,
3009  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
3010  GNETagProperties::TagParents::NO_PARENTS,
3011  GNETagProperties::Conflicts::NO_CONFLICTS,
3012  GUIIcon::DESTPROBREROUTE, currentTag, TL("DestinationProbabilityReroute"),
3013  {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
3014  // set values of attributes
3015  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
3017  TL("Edge ID"));
3018  attrProperty.setSynonym(SUMO_ATTR_ID);
3019  myTagProperties[currentTag].addAttribute(attrProperty);
3020 
3021  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
3023  TL("SUMO Probability"),
3024  "1.00");
3025  myTagProperties[currentTag].addAttribute(attrProperty);
3026  }
3027  currentTag = SUMO_TAG_PARKING_AREA_REROUTE;
3028  {
3029  // set values of tag
3030  myTagProperties[currentTag] = GNETagProperties(currentTag,
3031  GNETagProperties::TagType::ADDITIONALELEMENT,
3032  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
3033  GNETagProperties::TagParents::NO_PARENTS,
3034  GNETagProperties::Conflicts::NO_CONFLICTS,
3035  GUIIcon::PARKINGZONEREROUTE, currentTag, TL("ParkingAreaReroute"),
3036  {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
3037  // set values of attributes
3040  TL("ParkingArea ID"));
3041  attrProperty.setSynonym(SUMO_ATTR_ID);
3042  myTagProperties[currentTag].addAttribute(attrProperty);
3043 
3044  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
3046  TL("SUMO Probability"),
3047  "1.00");
3048  myTagProperties[currentTag].addAttribute(attrProperty);
3049 
3052  TL("Enable or disable visibility for parking area reroutes"),
3053  "1");
3054  myTagProperties[currentTag].addAttribute(attrProperty);
3055  }
3056  currentTag = SUMO_TAG_ROUTE_PROB_REROUTE;
3057  {
3058  // set values of tag
3059  myTagProperties[currentTag] = GNETagProperties(currentTag,
3060  GNETagProperties::TagType::ADDITIONALELEMENT,
3061  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
3062  GNETagProperties::TagParents::NO_PARENTS,
3063  GNETagProperties::Conflicts::NO_CONFLICTS,
3064  GUIIcon::ROUTEPROBREROUTE, currentTag, TL("RouteProbabilityReroute"),
3065  {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
3066  // set values of attributes
3067  attrProperty = GNEAttributeProperties(SUMO_ATTR_ROUTE,
3069  TL("Route"));
3070  attrProperty.setSynonym(SUMO_ATTR_ID);
3071  myTagProperties[currentTag].addAttribute(attrProperty);
3072 
3073  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
3075  TL("SUMO Probability"),
3076  "1.00");
3077  myTagProperties[currentTag].addAttribute(attrProperty);
3078  }
3079  currentTag = SUMO_TAG_VAPORIZER;
3080  {
3081  // set values of tag
3082  myTagProperties[currentTag] = GNETagProperties(currentTag,
3083  GNETagProperties::TagType::ADDITIONALELEMENT,
3084  GNETagProperties::TagProperty::CENTERAFTERCREATION,
3085  GNETagProperties::TagParents::NO_PARENTS,
3086  GNETagProperties::Conflicts::NO_CONFLICTS,
3087  GUIIcon::VAPORIZER, currentTag, TL("Vaporizer"),
3088  {}, FXRGBA(253, 255, 206, 255));
3089  // set values of attributes
3090  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3092  TL("Edge in which vaporizer is placed"));
3093  myTagProperties[currentTag].addAttribute(attrProperty);
3094 
3095  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
3097  TL("Start Time"),
3098  "0");
3099  myTagProperties[currentTag].addAttribute(attrProperty);
3100 
3101  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
3103  TL("End Time"),
3104  "3600");
3105  myTagProperties[currentTag].addAttribute(attrProperty);
3106 
3107  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
3109  TL("Name of vaporizer"));
3110  myTagProperties[currentTag].addAttribute(attrProperty);
3111  }
3112 }
3113 
3114 
3115 void
3117  // declare empty GNEAttributeProperties
3118  GNEAttributeProperties attrProperty;
3119 
3120  // fill shape ACs
3121  SumoXMLTag currentTag = SUMO_TAG_POLY;
3122  {
3123  // set values of tag
3124  myTagProperties[currentTag] = GNETagProperties(currentTag,
3125  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE,
3126  GNETagProperties::TagProperty::RTREE | GNETagProperties::TagProperty::CLOSESHAPE | GNETagProperties::TagProperty::GEOSHAPE,
3127  GNETagProperties::TagParents::NO_PARENTS,
3128  GNETagProperties::Conflicts::NO_CONFLICTS,
3129  GUIIcon::POLY, currentTag, TL("Polygon"),
3130  {}, FXRGBA(240, 255, 205, 255));
3131  // set values of attributes
3132  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3134  TL("The id of the polygon"));
3135  myTagProperties[currentTag].addAttribute(attrProperty);
3136 
3137  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
3139  TL("The shape of the polygon"));
3140  myTagProperties[currentTag].addAttribute(attrProperty);
3141 
3142  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
3144  TL("The RGBA color with which the polygon shall be displayed"),
3145  "red");
3146  myTagProperties[currentTag].addAttribute(attrProperty);
3147 
3148  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILL,
3150  TL("An information whether the polygon shall be filled"),
3151  "0");
3152  myTagProperties[currentTag].addAttribute(attrProperty);
3153 
3156  TL("The default line width for drawing an unfilled polygon"),
3157  "1");
3158  myTagProperties[currentTag].addAttribute(attrProperty);
3159 
3160  attrProperty = GNEAttributeProperties(SUMO_ATTR_LAYER,
3162  TL("The layer in which the polygon lies"),
3164  myTagProperties[currentTag].addAttribute(attrProperty);
3165 
3166  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
3168  TL("A typename for the polygon"),
3170  myTagProperties[currentTag].addAttribute(attrProperty);
3171 
3172  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
3174  TL("Polygon's name"));
3175  myTagProperties[currentTag].addAttribute(attrProperty);
3176 
3179  TL("A bitmap to use for rendering this polygon"),
3181  myTagProperties[currentTag].addAttribute(attrProperty);
3182 
3185  TL("Enable or disable use image file as a relative path"),
3187  myTagProperties[currentTag].addAttribute(attrProperty);
3188 
3189  attrProperty = GNEAttributeProperties(SUMO_ATTR_ANGLE,
3191  TL("Angle of rendered image in degree"),
3193  myTagProperties[currentTag].addAttribute(attrProperty);
3194  }
3195  currentTag = SUMO_TAG_POI;
3196  {
3197  // set values of tag
3198  myTagProperties[currentTag] = GNETagProperties(currentTag,
3199  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE,
3200  GNETagProperties::TagProperty::RTREE,
3201  GNETagProperties::TagParents::NO_PARENTS,
3202  GNETagProperties::Conflicts::NO_CONFLICTS,
3203  GUIIcon::POI, currentTag, TL("PointOfInterest"),
3204  {}, FXRGBA(210, 233, 255, 255));
3205  // set values of attributes
3206  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3208  TL("The id of the POI"));
3209  myTagProperties[currentTag].addAttribute(attrProperty);
3210 
3212  GNEAttributeProperties::STRING | GNEAttributeProperties::POSITION | GNEAttributeProperties::UNIQUE | GNEAttributeProperties::UPDATEGEOMETRY, // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
3213  TL("The position in view"));
3214  myTagProperties[currentTag].addAttribute(attrProperty);
3215 
3216  // fill Poi attributes
3217  fillPOIAttributes(currentTag);
3218  }
3219  currentTag = GNE_TAG_POILANE;
3220  {
3221  // set values of tag
3222  myTagProperties[currentTag] = GNETagProperties(currentTag,
3223  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE,
3224  GNETagProperties::TagParents::NO_PARENTS,
3225  GNETagProperties::Conflicts::NO_CONFLICTS,
3226  GNETagProperties::Conflicts::POS_LANE,
3227  GUIIcon::POILANE, SUMO_TAG_POI, TL("PointOfInterestLane"),
3228  {}, FXRGBA(210, 233, 255, 255));
3229  // set values of attributes
3230  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3232  TL("The id of the POI"));
3233  myTagProperties[currentTag].addAttribute(attrProperty);
3234 
3235  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
3237  TL("The name of the lane at which the POI is located at"));
3238  myTagProperties[currentTag].addAttribute(attrProperty);
3239 
3242  TL("The position on the named lane or in the net in meters at which the POI is located at"));
3243  myTagProperties[currentTag].addAttribute(attrProperty);
3244 
3247  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
3248  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
3249  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
3250  "0");
3251  myTagProperties[currentTag].addAttribute(attrProperty);
3252 
3255  TL("The lateral offset on the named lane at which the POI is located at"),
3256  "0.00");
3257  myTagProperties[currentTag].addAttribute(attrProperty);
3258 
3259  // fill Poi attributes
3260  fillPOIAttributes(currentTag);
3261  }
3262  currentTag = GNE_TAG_POIGEO;
3263  {
3264  // set values of tag
3265  myTagProperties[currentTag] = GNETagProperties(currentTag,
3266  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE,
3267  GNETagProperties::TagProperty::RTREE | GNETagProperties::TagProperty::REQUIRE_PROJ,
3268  GNETagProperties::TagParents::NO_PARENTS,
3269  GNETagProperties::Conflicts::NO_CONFLICTS,
3270  GUIIcon::POIGEO, SUMO_TAG_POI, TL("PointOfInterestGeo"),
3271  {}, FXRGBA(210, 233, 255, 255));
3272  // set values of attributes
3273  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3275  TL("The id of the POI"));
3276  myTagProperties[currentTag].addAttribute(attrProperty);
3277 
3278  // set values of attributes
3279  attrProperty = GNEAttributeProperties(SUMO_ATTR_LON,
3281  TL("The longitude position of the parking vehicle on the view"));
3282  myTagProperties[currentTag].addAttribute(attrProperty);
3283 
3284  attrProperty = GNEAttributeProperties(SUMO_ATTR_LAT,
3286  TL("The latitude position of the parking vehicle on the view"));
3287  myTagProperties[currentTag].addAttribute(attrProperty);
3288 
3289  // fill Poi attributes
3290  fillPOIAttributes(currentTag);
3291  }
3292 }
3293 
3294 
3295 void
3297  // declare empty GNEAttributeProperties
3298  GNEAttributeProperties attrProperty;
3299 
3300  // fill TAZ ACs
3301  SumoXMLTag currentTag = SUMO_TAG_TAZ;
3302  {
3303  // set values of tag
3304  myTagProperties[currentTag] = GNETagProperties(currentTag,
3305  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::TAZELEMENT,
3306  GNETagProperties::TagProperty::RTREE,
3307  GNETagProperties::TagParents::NO_PARENTS,
3308  GNETagProperties::Conflicts::NO_CONFLICTS,
3309  GUIIcon::TAZ, currentTag, TL("TrafficAssignmentZones"));
3310  // set values of attributes
3311  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3313  TL("The id of the TAZ"));
3314  myTagProperties[currentTag].addAttribute(attrProperty);
3315 
3316  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
3318  TL("The shape of the TAZ"));
3319  myTagProperties[currentTag].addAttribute(attrProperty);
3320 
3323  TL("TAZ center"));
3324  myTagProperties[currentTag].addAttribute(attrProperty);
3325 
3326  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILL,
3328  TL("An information whether the TAZ shall be filled"),
3329  "0");
3330  myTagProperties[currentTag].addAttribute(attrProperty);
3331 
3332  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
3334  TL("The RGBA color with which the TAZ shall be displayed"),
3335  "red");
3336  myTagProperties[currentTag].addAttribute(attrProperty);
3337 
3338  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
3340  TL("Name of POI"));
3341  myTagProperties[currentTag].addAttribute(attrProperty);
3342  }
3343  currentTag = SUMO_TAG_TAZSOURCE;
3344  {
3345  // set values of tag
3346  myTagProperties[currentTag] = GNETagProperties(currentTag,
3347  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::TAZELEMENT,
3348  GNETagProperties::TagProperty::CHILD,
3349  GNETagProperties::TagParents::NO_PARENTS,
3350  GNETagProperties::Conflicts::NO_CONFLICTS,
3351  GUIIcon::TAZEDGE, currentTag, TL("TAZ Source"),
3352  {SUMO_TAG_TAZ});
3353  // set values of attributes
3354  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
3356  TL("The id of edge in the simulation network"));
3357  attrProperty.setSynonym(SUMO_ATTR_ID);
3358  myTagProperties[currentTag].addAttribute(attrProperty);
3359 
3362  TL("Depart weight associated to this Edge"),
3363  "1");
3364  myTagProperties[currentTag].addAttribute(attrProperty);
3365  }
3366  currentTag = SUMO_TAG_TAZSINK;
3367  {
3368  // set values of tag
3369  myTagProperties[currentTag] = GNETagProperties(currentTag,
3370  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::TAZELEMENT,
3371  GNETagProperties::TagProperty::CHILD,
3372  GNETagProperties::TagParents::NO_PARENTS,
3373  GNETagProperties::Conflicts::NO_CONFLICTS,
3374  GUIIcon::TAZEDGE, currentTag, TL("TAZ Sink"),
3375  {SUMO_TAG_TAZ});
3376  // set values of attributes
3377  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
3379  TL("The id of edge in the simulation network"));
3380  attrProperty.setSynonym(SUMO_ATTR_ID);
3381  myTagProperties[currentTag].addAttribute(attrProperty);
3382 
3385  TL("Arrival weight associated to this Edge"),
3386  "1");
3387  myTagProperties[currentTag].addAttribute(attrProperty);
3388  }
3389 }
3390 
3391 
3392 void
3394  // declare empty GNEAttributeProperties
3395  GNEAttributeProperties attrProperty;
3396 
3397  // fill wire elements
3399  {
3400  // set tag properties
3401  myTagProperties[currentTag] = GNETagProperties(currentTag,
3402  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::WIRE,
3403  GNETagProperties::TagProperty::RTREE,
3404  GNETagProperties::TagParents::NO_PARENTS,
3405  GNETagProperties::Conflicts::NO_CONFLICTS,
3406  GUIIcon::TRACTION_SUBSTATION, currentTag, TL("TractionSubstation"));
3407  // set attribute properties
3408  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3410  TL("Traction substation ID"));
3411  myTagProperties[currentTag].addAttribute(attrProperty);
3412 
3415  TL("X-Y position of detector in editor (Only used in netedit)"),
3416  "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
3417  myTagProperties[currentTag].addAttribute(attrProperty);
3418 
3421  TL("Voltage of at connection point for the overhead wire"),
3422  "600");
3423  myTagProperties[currentTag].addAttribute(attrProperty);
3424 
3427  TL("Current limit of the feeder line"),
3428  "400");
3429  myTagProperties[currentTag].addAttribute(attrProperty);
3430  }
3431  currentTag = SUMO_TAG_OVERHEAD_WIRE_SECTION;
3432  {
3433  // set tag properties
3434  myTagProperties[currentTag] = GNETagProperties(currentTag,
3435  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::WIRE,
3436  GNETagProperties::TagProperty::NO_PROPERTY,
3437  GNETagProperties::TagParents::NO_PARENTS,
3438  GNETagProperties::Conflicts::NO_CONFLICTS,
3439  GUIIcon::OVERHEADWIRE, currentTag, TL("WireSection"));
3440  // set attribute properties
3441  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3443  TL("Overhead wire segment ID"));
3444  myTagProperties[currentTag].addAttribute(attrProperty);
3445 
3448  TL("Substation to which the circuit is connected"));
3449  myTagProperties[currentTag].addAttribute(attrProperty);
3450 
3451  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANES,
3453  TL("List of consecutive lanes of the circuit"));
3454  myTagProperties[currentTag].addAttribute(attrProperty);
3455 
3458  TL("Starting position in the specified lane"),
3459  "0.0");
3460  myTagProperties[currentTag].addAttribute(attrProperty);
3461 
3464  TL("Ending position in the specified lane"),
3466  myTagProperties[currentTag].addAttribute(attrProperty);
3467 
3470  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
3471  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
3472  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
3473  "0");
3474  myTagProperties[currentTag].addAttribute(attrProperty);
3475 
3478  TL("Inner lanes, where placing of overhead wire is restricted"));
3479  myTagProperties[currentTag].addAttribute(attrProperty);
3480  }
3481  currentTag = SUMO_TAG_OVERHEAD_WIRE_CLAMP;
3482  {
3483  // set tag properties
3484  myTagProperties[currentTag] = GNETagProperties(currentTag,
3485  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::WIRE,
3486  GNETagProperties::TagProperty::NO_PROPERTY,
3487  GNETagProperties::TagParents::NO_PARENTS,
3488  GNETagProperties::Conflicts::NO_CONFLICTS,
3489  GUIIcon::OVERHEADWIRE_CLAMP, currentTag, TL("OverheadWireClamp"));
3490  // set attribute properties
3491  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3493  TL("Overhead wire clamp ID"));
3494  myTagProperties[currentTag].addAttribute(attrProperty);
3495 
3498  TL("ID of the overhead wire segment, to the start of which the overhead wire clamp is connected"));
3499  myTagProperties[currentTag].addAttribute(attrProperty);
3500 
3503  TL("ID of the overhead wire segment lane of overheadWireIDStartClamp"));
3504  myTagProperties[currentTag].addAttribute(attrProperty);
3505 
3508  TL("ID of the overhead wire segment, to the end of which the overhead wire clamp is connected"));
3509  myTagProperties[currentTag].addAttribute(attrProperty);
3510 
3513  TL("ID of the overhead wire segment lane of overheadWireIDEndClamp"));
3514  myTagProperties[currentTag].addAttribute(attrProperty);
3515  }
3516 }
3517 
3518 
3519 void
3521  // declare empty GNEAttributeProperties
3522  GNEAttributeProperties attrProperty;
3523 
3524  // fill shape ACs
3525  SumoXMLTag currentTag = GNE_TAG_JPS_WALKABLEAREA;
3526  {
3527  // set values of tag
3528  myTagProperties[currentTag] = GNETagProperties(currentTag,
3529  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE | GNETagProperties::TagType::JUPEDSIM,
3530  GNETagProperties::TagProperty::RTREE,
3531  GNETagProperties::TagParents::NO_PARENTS,
3532  GNETagProperties::Conflicts::NO_CONFLICTS,
3533  GUIIcon::JPS_WALKABLEAREA, SUMO_TAG_POLY, TL("JuPedSim WalkableArea"),
3534  {}, FXRGBA(253, 255, 206, 255));
3535  // set values of attributes
3536  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3538  TL("The id of the walkable area"));
3539  myTagProperties[currentTag].addAttribute(attrProperty);
3540 
3541  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
3543  TL("The shape of the walkable area"));
3544  myTagProperties[currentTag].addAttribute(attrProperty);
3545 
3546 
3547  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
3549  TL("Walkable area's name"));
3550  myTagProperties[currentTag].addAttribute(attrProperty);
3551  }
3552  currentTag = GNE_TAG_JPS_OBSTACLE;
3553  {
3554  // set values of tag
3555  myTagProperties[currentTag] = GNETagProperties(currentTag,
3556  GNETagProperties::TagType::ADDITIONALELEMENT | GNETagProperties::TagType::SHAPE | GNETagProperties::TagType::JUPEDSIM,
3557  GNETagProperties::TagProperty::RTREE,
3558  GNETagProperties::TagParents::NO_PARENTS,
3559  GNETagProperties::Conflicts::NO_CONFLICTS,
3560  GUIIcon::JPS_OBSTACLE, SUMO_TAG_POLY, TL("JuPedSim Obstacle"),
3561  {}, FXRGBA(253, 255, 206, 255));
3562  // set values of attributes
3563  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3565  TL("The id of the obstacle"));
3566  myTagProperties[currentTag].addAttribute(attrProperty);
3567 
3568  attrProperty = GNEAttributeProperties(SUMO_ATTR_SHAPE,
3570  TL("The shape of the obstacle"));
3571  myTagProperties[currentTag].addAttribute(attrProperty);
3572 
3573 
3574  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
3576  TL("Obstacle's name"));
3577  myTagProperties[currentTag].addAttribute(attrProperty);
3578  }
3579 }
3580 
3581 
3582 void
3584  // declare empty GNEAttributeProperties
3585  GNEAttributeProperties attrProperty;
3586 
3587  // fill demand elements
3588  SumoXMLTag currentTag = SUMO_TAG_ROUTE;
3589  {
3590  // set values of tag
3591  myTagProperties[currentTag] = GNETagProperties(currentTag,
3592  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::ROUTE,
3593  GNETagProperties::TagProperty::NO_PROPERTY,
3594  GNETagProperties::TagParents::NO_PARENTS,
3595  GNETagProperties::Conflicts::NO_CONFLICTS,
3596  GUIIcon::ROUTE, currentTag, TL("Route"));
3597 
3598  // set values of attributes
3599  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3601  TL("The id of Route"));
3602  myTagProperties[currentTag].addAttribute(attrProperty);
3603 
3606  TL("Route distribution"));
3607  myTagProperties[currentTag].addAttribute(attrProperty);
3608 
3609  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
3611  TL("The edges the vehicle shall drive along, given as their ids, separated using spaces"));
3612  myTagProperties[currentTag].addAttribute(attrProperty);
3613 
3614  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
3616  TL("This route's color"));
3617  myTagProperties[currentTag].addAttribute(attrProperty);
3618 
3621  TL("The number of times that the edges of this route shall be repeated"),
3622  "0");
3623  myTagProperties[currentTag].addAttribute(attrProperty);
3624 
3627  TL("When defining a repeating route with stops and those stops use the until attribute,") + std::string("\n") +
3628  TL("the times will be shifted forward by 'cycleTime' on each repeat"),
3629  "0");
3630  myTagProperties[currentTag].addAttribute(attrProperty);
3631  }
3632  currentTag = SUMO_TAG_ROUTE_DISTRIBUTION;
3633  {
3634  // set values of tag
3635  myTagProperties[currentTag] = GNETagProperties(currentTag,
3636  GNETagProperties::TagType::DEMANDELEMENT,
3637  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOTSELECTABLE | GNETagProperties::TagProperty::NOPARAMETERS,
3638  GNETagProperties::TagParents::NO_PARENTS,
3639  GNETagProperties::Conflicts::NO_CONFLICTS,
3640  GUIIcon::ROUTEDISTRIBUTION, currentTag, TL("RouteDistribution"));
3641 
3642  // set values of attributes
3643  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3645  TL("The id of route distribution"));
3646  myTagProperties[currentTag].addAttribute(attrProperty);
3647  }
3648  currentTag = GNE_TAG_ROUTE_EMBEDDED;
3649  {
3650  // set values of tag
3651  myTagProperties[currentTag] = GNETagProperties(currentTag,
3652  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::ROUTE,
3653  GNETagProperties::TagProperty::CHILD,
3654  GNETagProperties::TagParents::NO_PARENTS,
3655  GNETagProperties::Conflicts::NO_CONFLICTS,
3656  GUIIcon::ROUTE, SUMO_TAG_ROUTE, TL("RouteEmbedded"),
3658 
3659  // set values of attributes
3660  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
3662  TL("The edges the vehicle shall drive along, given as their ids, separated using spaces"));
3663  myTagProperties[currentTag].addAttribute(attrProperty);
3664 
3665  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
3667  TL("This route's color"));
3668  myTagProperties[currentTag].addAttribute(attrProperty);
3669 
3672  TL("The number of times that the edges of this route shall be repeated"),
3673  "0");
3674  myTagProperties[currentTag].addAttribute(attrProperty);
3675 
3678  TL("When defining a repeating route with stops and those stops use the until attribute,") + std::string("\n") +
3679  TL("the times will be shifted forward by 'cycleTime' on each repeat"),
3680  "0");
3681  myTagProperties[currentTag].addAttribute(attrProperty);
3682  }
3683  currentTag = SUMO_TAG_VTYPE;
3684  {
3685  // set values of tag
3686  myTagProperties[currentTag] = GNETagProperties(currentTag,
3687  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VTYPE,
3688  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOTSELECTABLE | GNETagProperties::TagProperty::VCLASS_ICON,
3689  GNETagProperties::TagParents::NO_PARENTS,
3690  GNETagProperties::Conflicts::NO_CONFLICTS,
3691  GUIIcon::VTYPE, currentTag, TL("VehicleType"));
3692 
3693  // set values of attributes
3694  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3696  TL("type ID"));
3697  myTagProperties[currentTag].addAttribute(attrProperty);
3698 
3701  TL("Type distribution"));
3702  myTagProperties[currentTag].addAttribute(attrProperty);
3703 
3706  TL("An abstract vehicle class"),
3707  "passenger");
3708  attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
3709  myTagProperties[currentTag].addAttribute(attrProperty);
3710 
3711  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
3713  TL("This type's color"));
3714  myTagProperties[currentTag].addAttribute(attrProperty);
3715 
3718  TL("The vehicle's netto-length (length) [m]"));
3719  myTagProperties[currentTag].addAttribute(attrProperty);
3720 
3723  TL("Empty space after leader [m]"));
3724  myTagProperties[currentTag].addAttribute(attrProperty);
3725 
3728  TL("The vehicle's maximum velocity [m/s]"));
3729  myTagProperties[currentTag].addAttribute(attrProperty);
3730 
3733  TL("The vehicle's expected multiplicator for lane speed limits (or a distribution specifier)"));
3734  myTagProperties[currentTag].addAttribute(attrProperty);
3735 
3738  TL("The vehicle's desired maximum velocity (interacts with speedFactor).") + std::string("\n") +
3739  TL("Applicable when no speed limit applies (bicycles, some motorways) [m/s]"));
3740  myTagProperties[currentTag].addAttribute(attrProperty);
3741 
3744  TL("An abstract emission class"));
3746  myTagProperties[currentTag].addAttribute(attrProperty);
3747 
3750  TL("How this vehicle is rendered"));
3751  attrProperty.setDiscreteValues(SumoVehicleShapeStrings.getStrings());
3752  myTagProperties[currentTag].addAttribute(attrProperty);
3753 
3754  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
3756  TL("The vehicle's width [m] (only used for drawing)"),
3757  "1.8");
3758  myTagProperties[currentTag].addAttribute(attrProperty);
3759 
3762  TL("The vehicle's height [m] (only used for drawing)"),
3763  "1.5");
3764  myTagProperties[currentTag].addAttribute(attrProperty);
3765 
3768  TL("The parking badges assigned to the vehicle"));
3769  myTagProperties[currentTag].addAttribute(attrProperty);
3770 
3773  TL("Image file for rendering vehicles of this type (should be grayscale to allow functional coloring)"));
3774  myTagProperties[currentTag].addAttribute(attrProperty);
3775 
3778  TL("The model used for changing lanes"),
3779  "default");
3780  attrProperty.setDiscreteValues(SUMOXMLDefinitions::LaneChangeModels.getStrings());
3781  myTagProperties[currentTag].addAttribute(attrProperty);
3782 
3785  TL("The model used for car-following"),
3786  "Krauss");
3787  attrProperty.setDiscreteValues(SUMOXMLDefinitions::CarFollowModels.getStrings());
3788  myTagProperties[currentTag].addAttribute(attrProperty);
3789 
3792  TL("The number of persons (excluding an autonomous driver) the vehicle can transport"));
3793  myTagProperties[currentTag].addAttribute(attrProperty);
3794 
3797  TL("The number of containers the vehicle can transport"));
3798  myTagProperties[currentTag].addAttribute(attrProperty);
3799 
3802  TL("The time required by a person to board the vehicle"),
3803  "0.50");
3804  myTagProperties[currentTag].addAttribute(attrProperty);
3805 
3808  TL("The time required to load a container onto the vehicle"),
3809  "90.00");
3810  myTagProperties[currentTag].addAttribute(attrProperty);
3811 
3814  TL("The preferred lateral alignment when using the sublane-model"),
3815  "center");
3817  myTagProperties[currentTag].addAttribute(attrProperty);
3818 
3821  TL("The minimum lateral gap at a speed difference of 50km/h when using the sublane-model"),
3822  "0.12");
3823  myTagProperties[currentTag].addAttribute(attrProperty);
3824 
3827  TL("The maximum lateral speed when using the sublane-model"),
3828  "1.00");
3829  myTagProperties[currentTag].addAttribute(attrProperty);
3830 
3833  TL("The interval length for which vehicle performs its decision logic (acceleration and lane-changing)"),
3834  toString(OptionsCont::getOptions().getFloat("default.action-step-length")));
3835  myTagProperties[currentTag].addAttribute(attrProperty);
3836 
3837  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
3839  TL("The probability when being added to a distribution without an explicit probability"),
3841  myTagProperties[currentTag].addAttribute(attrProperty);
3842 
3845  TL("3D model file for this class"));
3846  myTagProperties[currentTag].addAttribute(attrProperty);
3847 
3850  TL("Carriage lengths"));
3851  myTagProperties[currentTag].addAttribute(attrProperty);
3852 
3855  TL("Locomotive lengths"));
3856  myTagProperties[currentTag].addAttribute(attrProperty);
3857 
3860  TL("Gap between carriages"),
3861  "1");
3862  myTagProperties[currentTag].addAttribute(attrProperty);
3863 
3864  // fill VType Car Following Model Values (implemented in a separated function to improve code legibility)
3865  fillCarFollowingModelAttributes(currentTag);
3866 
3867  // fill VType Junction Model Parameters (implemented in a separated function to improve code legibility)
3868  fillJunctionModelAttributes(currentTag);
3869 
3870  // fill VType Lane Change Model Parameters (implemented in a separated function to improve code legibility)
3871  fillLaneChangingModelAttributes(currentTag);
3872  }
3873  currentTag = SUMO_TAG_VTYPE_DISTRIBUTION;
3874  {
3875  // set values of tag
3876  myTagProperties[currentTag] = GNETagProperties(currentTag,
3877  GNETagProperties::TagType::DEMANDELEMENT,
3878  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOTSELECTABLE | GNETagProperties::TagProperty::NOPARAMETERS,
3879  GNETagProperties::TagParents::NO_PARENTS,
3880  GNETagProperties::Conflicts::NO_CONFLICTS,
3881  GUIIcon::VTYPEDISTRIBUTION, currentTag, TL("VehicleTypeDistribution"));
3882 
3883  // set values of attributes
3884  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3886  TL("The id of VehicleType distribution"));
3887  myTagProperties[currentTag].addAttribute(attrProperty);
3888  }
3889 }
3890 
3891 
3892 void
3894  // declare empty GNEAttributeProperties
3895  GNEAttributeProperties attrProperty;
3896 
3897  // fill vehicle ACs
3898  SumoXMLTag currentTag = SUMO_TAG_TRIP;
3899  {
3900  // set values of tag
3901  myTagProperties[currentTag] = GNETagProperties(currentTag,
3902  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE,
3903  GNETagProperties::TagParents::NO_PARENTS,
3904  GNETagProperties::TagParents::VEHICLE_EDGES,
3905  GNETagProperties::Conflicts::NO_CONFLICTS,
3906  GUIIcon::TRIP, currentTag, TL("TripEdges"),
3907  {}, FXRGBA(253, 255, 206, 255), "trip (from-to edges)");
3908 
3909  // set values of attributes
3910  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3912  TL("The ID of trip"));
3913  myTagProperties[currentTag].addAttribute(attrProperty);
3914 
3915  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
3917  TL("The id of the vehicle type to use for this trip"),
3919  myTagProperties[currentTag].addAttribute(attrProperty);
3920 
3921  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
3923  TL("The ID of the edge the trip starts at"));
3924  myTagProperties[currentTag].addAttribute(attrProperty);
3925 
3926  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
3928  TL("The ID of the edge the trip ends at"));
3929  myTagProperties[currentTag].addAttribute(attrProperty);
3930 
3931  attrProperty = GNEAttributeProperties(SUMO_ATTR_VIA,
3933  TL("List of intermediate edge ids which shall be part of the trip"));
3934  myTagProperties[currentTag].addAttribute(attrProperty);
3935 
3936  // add common attributes
3937  fillCommonVehicleAttributes(currentTag);
3938 
3941  TL("The departure time of the (first) trip which is generated using this trip definition"),
3942  "0.00");
3943  myTagProperties[currentTag].addAttribute(attrProperty);
3944  }
3945  currentTag = GNE_TAG_TRIP_JUNCTIONS;
3946  {
3947  // set values of tag
3948  myTagProperties[currentTag] = GNETagProperties(currentTag,
3949  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE,
3950  GNETagProperties::TagParents::NO_PARENTS,
3951  GNETagProperties::TagParents::VEHICLE_JUNCTIONS,
3952  GNETagProperties::Conflicts::NO_CONFLICTS,
3953  GUIIcon::TRIP_JUNCTIONS, SUMO_TAG_TRIP, TL("TripJunctions"),
3954  {}, FXRGBA(255, 213, 213, 255), "trip (from-to junctions)");
3955 
3956  // set values of attributes
3957  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3959  TL("The id of trip"));
3960  myTagProperties[currentTag].addAttribute(attrProperty);
3961 
3962  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
3964  TL("The id of the vehicle type to use for this trip"),
3966  myTagProperties[currentTag].addAttribute(attrProperty);
3967 
3970  TL("The name of the junction the trip starts at"));
3971  myTagProperties[currentTag].addAttribute(attrProperty);
3972 
3975  TL("The name of the junction the trip ends at"));
3976  myTagProperties[currentTag].addAttribute(attrProperty);
3977 
3978  // add common attributes
3979  fillCommonVehicleAttributes(currentTag);
3980 
3983  TL("The departure time of the (first) trip which is generated using this trip definition"),
3984  "0.00");
3985  myTagProperties[currentTag].addAttribute(attrProperty);
3986  }
3987  currentTag = GNE_TAG_TRIP_TAZS;
3988  {
3989  // set values of tag
3990  myTagProperties[currentTag] = GNETagProperties(currentTag,
3991  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE,
3992  GNETagProperties::TagParents::NO_PARENTS,
3993  GNETagProperties::TagParents::VEHICLE_TAZS,
3994  GNETagProperties::Conflicts::NO_CONFLICTS,
3995  GUIIcon::TRIP_TAZS, SUMO_TAG_TRIP, TL("TripTAZs"),
3996  {}, FXRGBA(240, 255, 205, 255), "trip (from-to TAZs)");
3997 
3998  // set values of attributes
3999  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4001  TL("The id of trip"));
4002  myTagProperties[currentTag].addAttribute(attrProperty);
4003 
4004  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4006  TL("The id of the vehicle type to use for this trip"),
4008  myTagProperties[currentTag].addAttribute(attrProperty);
4009 
4012  TL("The name of the TAZ the trip starts at"));
4013  myTagProperties[currentTag].addAttribute(attrProperty);
4014 
4017  TL("The name of the TAZ the trip ends at"));
4018  myTagProperties[currentTag].addAttribute(attrProperty);
4019 
4020  // add common attributes
4021  fillCommonVehicleAttributes(currentTag);
4022 
4025  TL("The departure time of the (first) trip which is generated using this trip definition"),
4026  "0.00");
4027  myTagProperties[currentTag].addAttribute(attrProperty);
4028  }
4029  currentTag = SUMO_TAG_VEHICLE;
4030  {
4031  // set values of tag
4032  myTagProperties[currentTag] = GNETagProperties(currentTag,
4033  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE,
4034  GNETagProperties::TagParents::NO_PARENTS,
4035  GNETagProperties::TagParents::VEHICLE_ROUTE,
4036  GNETagProperties::Conflicts::NO_CONFLICTS,
4037  GUIIcon::VEHICLE, currentTag, TL("VehicleRoute"),
4038  {}, FXRGBA(210, 233, 255, 255), "vehicle (over route)");
4039 
4040  // set values of attributes
4041  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4043  TL("The ID of the vehicle"));
4044  myTagProperties[currentTag].addAttribute(attrProperty);
4045 
4046  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4048  TL("The id of the vehicle type to use for this vehicle"),
4050  myTagProperties[currentTag].addAttribute(attrProperty);
4051 
4052  attrProperty = GNEAttributeProperties(SUMO_ATTR_ROUTE,
4054  TL("The id of the route the vehicle shall drive along"));
4055  myTagProperties[currentTag].addAttribute(attrProperty);
4056 
4059  TL("The index of the edge within route the vehicle starts at"));
4060  myTagProperties[currentTag].addAttribute(attrProperty);
4061 
4064  TL("The index of the edge within route the vehicle ends at"));
4065  myTagProperties[currentTag].addAttribute(attrProperty);
4066 
4067  // add common attributes
4068  fillCommonVehicleAttributes(currentTag);
4069 
4072  TL("The time step at which the vehicle shall enter the network"),
4073  "0.00");
4074  myTagProperties[currentTag].addAttribute(attrProperty);
4075  }
4076  currentTag = GNE_TAG_VEHICLE_WITHROUTE;
4077  {
4078  // set values of tag
4079  myTagProperties[currentTag] = GNETagProperties(currentTag,
4080  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE,
4081  GNETagProperties::TagParents::NO_PARENTS,
4082  GNETagProperties::TagParents::VEHICLE_ROUTE_EMBEDDED,
4083  GNETagProperties::Conflicts::NO_CONFLICTS,
4084  GUIIcon::VEHICLE, SUMO_TAG_VEHICLE, TL("VehicleEmbeddedRoute"),
4085  {}, FXRGBA(210, 233, 255, 255), "vehicle (embedded route)");
4086 
4087  // set values of attributes
4088  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4090  TL("The ID of the vehicle"));
4091  myTagProperties[currentTag].addAttribute(attrProperty);
4092 
4093  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4095  TL("The id of the vehicle type to use for this vehicle"),
4097  myTagProperties[currentTag].addAttribute(attrProperty);
4098 
4101  TL("The index of the edge within route the vehicle starts at"));
4102  myTagProperties[currentTag].addAttribute(attrProperty);
4103 
4106  TL("The index of the edge within route the vehicle ends at"));
4107  myTagProperties[currentTag].addAttribute(attrProperty);
4108 
4109  // add common attributes
4110  fillCommonVehicleAttributes(currentTag);
4111 
4114  TL("The time step at which the vehicle shall enter the network"),
4115  "0.00");
4116  myTagProperties[currentTag].addAttribute(attrProperty);
4117  }
4118  currentTag = SUMO_TAG_FLOW;
4119  {
4120  // set values of tag
4121  myTagProperties[currentTag] = GNETagProperties(currentTag,
4122  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE | GNETagProperties::TagType::FLOW,
4123  GNETagProperties::TagParents::NO_PARENTS,
4124  GNETagProperties::TagParents::VEHICLE_EDGES,
4125  GNETagProperties::Conflicts::NO_CONFLICTS,
4126  GUIIcon::FLOW, currentTag, TL("FlowEdges"),
4127  {}, FXRGBA(253, 255, 206, 255), "flow (from-to edges)");
4128 
4129  // set values of attributes
4130  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4132  TL("The ID of the flow"));
4133  myTagProperties[currentTag].addAttribute(attrProperty);
4134 
4135  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4137  TL("The id of the flow type to use for this flow"),
4139  myTagProperties[currentTag].addAttribute(attrProperty);
4140 
4141  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
4143  TL("The ID of the edge the flow starts at"));
4144  myTagProperties[currentTag].addAttribute(attrProperty);
4145 
4146  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
4148  TL("The ID of the edge the flow ends at"));
4149  myTagProperties[currentTag].addAttribute(attrProperty);
4150 
4151  attrProperty = GNEAttributeProperties(SUMO_ATTR_VIA,
4153  TL("List of intermediate edge ids which shall be part of the flow"));
4154  myTagProperties[currentTag].addAttribute(attrProperty);
4155 
4156  // add common attributes
4157  fillCommonVehicleAttributes(currentTag);
4158 
4159  // add flow attributes
4161  }
4162  currentTag = GNE_TAG_FLOW_JUNCTIONS;
4163  {
4164  // set values of tag
4165  myTagProperties[currentTag] = GNETagProperties(currentTag,
4166  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE | GNETagProperties::TagType::FLOW,
4167  GNETagProperties::TagParents::NO_PARENTS,
4168  GNETagProperties::TagParents::VEHICLE_JUNCTIONS,
4169  GNETagProperties::Conflicts::NO_CONFLICTS,
4170  GUIIcon::FLOW_JUNCTIONS, SUMO_TAG_FLOW, TL("FlowJunctions"),
4171  {}, FXRGBA(255, 213, 213, 255), "flow (from-to junctions)");
4172 
4173  // set values of attributes
4174  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4176  TL("The id of the flow"));
4177  myTagProperties[currentTag].addAttribute(attrProperty);
4178 
4179  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4181  TL("The id of the flow type to use for this flow"),
4183  myTagProperties[currentTag].addAttribute(attrProperty);
4184 
4187  TL("The name of the junction the flow starts at"));
4188  myTagProperties[currentTag].addAttribute(attrProperty);
4189 
4192  TL("The name of the junction the flow ends at"));
4193  myTagProperties[currentTag].addAttribute(attrProperty);
4194 
4195  // add common attributes
4196  fillCommonVehicleAttributes(currentTag);
4197 
4198  // add flow attributes
4200  }
4201  currentTag = GNE_TAG_FLOW_TAZS;
4202  {
4203  // set values of tag
4204  myTagProperties[currentTag] = GNETagProperties(currentTag,
4205  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE | GNETagProperties::TagType::FLOW,
4206  GNETagProperties::TagParents::NO_PARENTS,
4207  GNETagProperties::TagParents::VEHICLE_TAZS,
4208  GNETagProperties::Conflicts::NO_CONFLICTS,
4209  GUIIcon::FLOW_TAZS, SUMO_TAG_FLOW, TL("FlowTAZs"),
4210  {}, FXRGBA(240, 255, 205, 255), "flow (from-to TAZs)");
4211 
4212  // set values of attributes
4213  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4215  TL("The id of the flow"));
4216  myTagProperties[currentTag].addAttribute(attrProperty);
4217 
4218  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4220  TL("The id of the flow type to use for this flow"),
4222  myTagProperties[currentTag].addAttribute(attrProperty);
4223 
4226  TL("The name of the TAZ the flow starts at"));
4227  myTagProperties[currentTag].addAttribute(attrProperty);
4228 
4231  TL("The name of the TAZ the flow ends at"));
4232  myTagProperties[currentTag].addAttribute(attrProperty);
4233 
4234  // add common attributes
4235  fillCommonVehicleAttributes(currentTag);
4236 
4237  // add flow attributes
4239  }
4240  currentTag = GNE_TAG_FLOW_ROUTE;
4241  {
4242  // set values of tag
4243  myTagProperties[currentTag] = GNETagProperties(currentTag,
4244  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE | GNETagProperties::TagType::FLOW,
4245  GNETagProperties::TagParents::NO_PARENTS,
4246  GNETagProperties::TagParents::VEHICLE_ROUTE,
4247  GNETagProperties::Conflicts::NO_CONFLICTS,
4248  GUIIcon::ROUTEFLOW, SUMO_TAG_FLOW, TL("FlowRoute"),
4249  {}, FXRGBA(210, 233, 255, 255), "flow (over route)");
4250 
4251  // set values of attributes
4252  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4254  TL("The id of the flow"));
4255  myTagProperties[currentTag].addAttribute(attrProperty);
4256 
4257  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4259  TL("The id of the flow type to use for this flow"),
4261  myTagProperties[currentTag].addAttribute(attrProperty);
4262 
4263  attrProperty = GNEAttributeProperties(SUMO_ATTR_ROUTE,
4265  TL("The id of the route the flow shall drive along"));
4266  myTagProperties[currentTag].addAttribute(attrProperty);
4267 
4270  TL("The index of the edge within route the flow starts at"));
4271  myTagProperties[currentTag].addAttribute(attrProperty);
4272 
4275  TL("The index of the edge within route the flow ends at"));
4276  myTagProperties[currentTag].addAttribute(attrProperty);
4277 
4278  // add common attributes
4279  fillCommonVehicleAttributes(currentTag);
4280 
4281  // add flow attributes
4283  }
4284  currentTag = GNE_TAG_FLOW_WITHROUTE;
4285  {
4286  // set values of tag
4287  myTagProperties[currentTag] = GNETagProperties(currentTag,
4288  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLE | GNETagProperties::TagType::FLOW,
4289  GNETagProperties::TagParents::NO_PARENTS,
4290  GNETagProperties::TagParents::VEHICLE_ROUTE_EMBEDDED,
4291  GNETagProperties::Conflicts::NO_CONFLICTS,
4292  GUIIcon::ROUTEFLOW, SUMO_TAG_FLOW, TL("FlowEmbeddedRoute"),
4293  {}, FXRGBA(210, 233, 255, 255), "flow (embedded route)");
4294 
4295  // set values of attributes
4296  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4298  TL("The name of the flow"));
4299  myTagProperties[currentTag].addAttribute(attrProperty);
4300 
4301  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
4303  TL("The id of the flow type to use for this flow"),
4305  myTagProperties[currentTag].addAttribute(attrProperty);
4306 
4309  TL("The index of the edge within route the flow starts at"));
4310  myTagProperties[currentTag].addAttribute(attrProperty);
4311 
4314  TL("The index of the edge within route the flow ends at"));
4315  myTagProperties[currentTag].addAttribute(attrProperty);
4316 
4317  // add common attributes
4318  fillCommonVehicleAttributes(currentTag);
4319 
4320  // add flow attributes
4322  }
4323 }
4324 
4325 
4326 void
4328  // declare empty GNEAttributeProperties
4329  GNEAttributeProperties attrProperty;
4330 
4331  // fill stops ACs
4332  SumoXMLTag currentTag = GNE_TAG_STOP_LANE;
4333  {
4334  // set values of tag
4335  myTagProperties[currentTag] = GNETagProperties(currentTag,
4336  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4337  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::MASKSTARTENDPOS,
4338  GNETagProperties::TagParents::NO_PARENTS,
4339  GNETagProperties::Conflicts::NO_CONFLICTS,
4340  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopLane"),
4341  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4342  // set values of attributes
4343  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
4345  TL("The name of the lane the stop shall be located at"));
4346  myTagProperties[currentTag].addAttribute(attrProperty);
4347 
4350  TL("The begin position on the lane (the lower position on the lane) in meters"));
4351  myTagProperties[currentTag].addAttribute(attrProperty);
4352 
4355  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"));
4356  myTagProperties[currentTag].addAttribute(attrProperty);
4357 
4360  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
4361  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
4362  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
4363  "0");
4364  myTagProperties[currentTag].addAttribute(attrProperty);
4365 
4368  TL("The lateral offset on the named lane at which the vehicle must stop"));
4369  myTagProperties[currentTag].addAttribute(attrProperty);
4370 
4371  // fill common stop attributes
4372  fillCommonStopAttributes(currentTag, false);
4373  }
4374  currentTag = GNE_TAG_STOP_BUSSTOP;
4375  {
4376  // set values of tag
4377  myTagProperties[currentTag] = GNETagProperties(currentTag,
4378  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4379  GNETagProperties::TagProperty::CHILD,
4380  GNETagProperties::TagParents::NO_PARENTS,
4381  GNETagProperties::Conflicts::NO_CONFLICTS,
4382  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopBusStop"),
4383  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4384  // set values of attributes
4387  TL("BusStop associated with this stop"));
4388  myTagProperties[currentTag].addAttribute(attrProperty);
4389 
4390  // fill common stop attributes
4391  fillCommonStopAttributes(currentTag, false);
4392  }
4393  currentTag = GNE_TAG_STOP_TRAINSTOP;
4394  {
4395  // set values of tag
4396  myTagProperties[currentTag] = GNETagProperties(currentTag,
4397  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4398  GNETagProperties::TagProperty::CHILD,
4399  GNETagProperties::TagParents::NO_PARENTS,
4400  GNETagProperties::Conflicts::NO_CONFLICTS,
4401  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopTrainStop"),
4402  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4403  // set values of attributes
4406  TL("TrainStop associated with this stop"));
4407  myTagProperties[currentTag].addAttribute(attrProperty);
4408 
4409  // fill common stop attributes
4410  fillCommonStopAttributes(currentTag, false);
4411  }
4412  currentTag = GNE_TAG_STOP_CONTAINERSTOP;
4413  {
4414  // set values of tag
4415  myTagProperties[currentTag] = GNETagProperties(currentTag,
4416  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4417  GNETagProperties::TagProperty::CHILD,
4418  GNETagProperties::TagParents::NO_PARENTS,
4419  GNETagProperties::Conflicts::NO_CONFLICTS,
4420  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopContainerStop"),
4421  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4422  // set values of attributes
4425  TL("ContainerStop associated with this stop"));
4426  myTagProperties[currentTag].addAttribute(attrProperty);
4427 
4428  // fill common stop attributes
4429  fillCommonStopAttributes(currentTag, false);
4430  }
4431  currentTag = GNE_TAG_STOP_CHARGINGSTATION;
4432  {
4433  // set values of tag
4434  myTagProperties[currentTag] = GNETagProperties(currentTag,
4435  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4436  GNETagProperties::TagProperty::CHILD,
4437  GNETagProperties::TagParents::NO_PARENTS,
4438  GNETagProperties::Conflicts::NO_CONFLICTS,
4439  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopChargingStation"),
4440  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4441  // set values of attributes
4444  TL("ChargingStation associated with this stop"));
4445  myTagProperties[currentTag].addAttribute(attrProperty);
4446 
4447  // fill common stop attributes
4448  fillCommonStopAttributes(currentTag, false);
4449  }
4450  currentTag = GNE_TAG_STOP_PARKINGAREA;
4451  {
4452  // set values of tag
4453  myTagProperties[currentTag] = GNETagProperties(currentTag,
4454  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP,
4455  GNETagProperties::TagProperty::CHILD,
4456  GNETagProperties::TagParents::NO_PARENTS,
4457  GNETagProperties::Conflicts::NO_CONFLICTS,
4458  GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopParkingArea"),
4459  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4460  // set values of attributes
4463  TL("ParkingArea associated with this stop"));
4464  myTagProperties[currentTag].addAttribute(attrProperty);
4465 
4466  // fill common stop attributes (no parking)
4467  fillCommonStopAttributes(currentTag, false);
4468  }
4469 }
4470 
4471 
4472 void
4474  // declare empty GNEAttributeProperties
4475  GNEAttributeProperties attrProperty;
4476 
4477  // fill waypoints ACs
4478  SumoXMLTag currentTag = GNE_TAG_WAYPOINT_LANE;
4479  {
4480  // set values of tag
4481  myTagProperties[currentTag] = GNETagProperties(currentTag,
4482  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4483  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::MASKSTARTENDPOS,
4484  GNETagProperties::TagParents::NO_PARENTS,
4485  GNETagProperties::Conflicts::NO_CONFLICTS,
4486  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointLane"),
4487  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4488  // set values of attributes
4489  attrProperty = GNEAttributeProperties(SUMO_ATTR_LANE,
4491  TL("The name of the lane the waypoint shall be located at"));
4492  myTagProperties[currentTag].addAttribute(attrProperty);
4493 
4496  TL("The begin position on the lane (the lower position on the lane) in meters"));
4497  myTagProperties[currentTag].addAttribute(attrProperty);
4498 
4501  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"));
4502  myTagProperties[currentTag].addAttribute(attrProperty);
4503 
4506  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
4507  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
4508  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
4509  "0");
4510  myTagProperties[currentTag].addAttribute(attrProperty);
4511 
4514  TL("The lateral offset on the named lane at which the vehicle must waypoint"));
4515  myTagProperties[currentTag].addAttribute(attrProperty);
4516 
4517  // fill common waypoint (stop) attributes
4518  fillCommonStopAttributes(currentTag, true);
4519  }
4520  currentTag = GNE_TAG_WAYPOINT_BUSSTOP;
4521  {
4522  // set values of tag
4523  myTagProperties[currentTag] = GNETagProperties(currentTag,
4524  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4525  GNETagProperties::TagProperty::CHILD,
4526  GNETagProperties::TagParents::NO_PARENTS,
4527  GNETagProperties::Conflicts::NO_CONFLICTS,
4528  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointBusStop"),
4529  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4530  // set values of attributes
4533  TL("BusWaypoint associated with this waypoint"));
4534  myTagProperties[currentTag].addAttribute(attrProperty);
4535 
4536  // fill common waypoint (stop) attributes
4537  fillCommonStopAttributes(currentTag, true);
4538  }
4539  currentTag = GNE_TAG_WAYPOINT_TRAINSTOP;
4540  {
4541  // set values of tag
4542  myTagProperties[currentTag] = GNETagProperties(currentTag,
4543  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4544  GNETagProperties::TagProperty::CHILD,
4545  GNETagProperties::TagParents::NO_PARENTS,
4546  GNETagProperties::Conflicts::NO_CONFLICTS,
4547  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointTrainStop"),
4548  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4549  // set values of attributes
4552  TL("TrainWaypoint associated with this waypoint"));
4553  myTagProperties[currentTag].addAttribute(attrProperty);
4554 
4555  // fill common waypoint (stop) attributes
4556  fillCommonStopAttributes(currentTag, true);
4557  }
4558  currentTag = GNE_TAG_WAYPOINT_CONTAINERSTOP;
4559  {
4560  // set values of tag
4561  myTagProperties[currentTag] = GNETagProperties(currentTag,
4562  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4563  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4564  GNETagProperties::TagParents::NO_PARENTS,
4565  GNETagProperties::Conflicts::NO_CONFLICTS,
4566  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointContainerStop"),
4567  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4568  // set values of attributes
4571  TL("ContainerWaypoint associated with this waypoint"));
4572  myTagProperties[currentTag].addAttribute(attrProperty);
4573 
4574  // fill common waypoint (stop) attributes
4575  fillCommonStopAttributes(currentTag, true);
4576  }
4577  currentTag = GNE_TAG_WAYPOINT_CHARGINGSTATION;
4578  {
4579  // set values of tag
4580  myTagProperties[currentTag] = GNETagProperties(currentTag,
4581  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4582  GNETagProperties::TagProperty::CHILD,
4583  GNETagProperties::TagParents::NO_PARENTS,
4584  GNETagProperties::Conflicts::NO_CONFLICTS,
4585  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointChargingStation"),
4586  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4587  // set values of attributes
4590  TL("ChargingStation associated with this waypoint"));
4591  myTagProperties[currentTag].addAttribute(attrProperty);
4592 
4593  // fill common waypoint (stop) attributes
4594  fillCommonStopAttributes(currentTag, true);
4595  }
4596  currentTag = GNE_TAG_WAYPOINT_PARKINGAREA;
4597  {
4598  // set values of tag
4599  myTagProperties[currentTag] = GNETagProperties(currentTag,
4600  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::VEHICLESTOP | GNETagProperties::TagType::VEHICLEWAYPOINT,
4601  GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS,
4602  GNETagProperties::TagParents::NO_PARENTS,
4603  GNETagProperties::Conflicts::NO_CONFLICTS,
4604  GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointParkingArea"),
4605  {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4606  // set values of attributes
4609  TL("ParkingArea associated with this waypoint"));
4610  myTagProperties[currentTag].addAttribute(attrProperty);
4611 
4612  // fill common waypoint (stop) attributes
4613  fillCommonStopAttributes(currentTag, true);
4614  }
4615 }
4616 
4617 
4618 void
4620  // declare empty GNEAttributeProperties
4621  GNEAttributeProperties attrProperty;
4622 
4623  // fill vehicle ACs
4624  SumoXMLTag currentTag = SUMO_TAG_PERSON;
4625  {
4626  // set values of tag
4627  myTagProperties[currentTag] = GNETagProperties(currentTag,
4628  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSON,
4629  GNETagProperties::TagProperty::NO_PROPERTY,
4630  GNETagProperties::TagParents::NO_PARENTS,
4631  GNETagProperties::Conflicts::NO_CONFLICTS,
4632  GUIIcon::PERSON, currentTag, TL("Person"));
4633 
4634  // add flow attributes
4635  fillCommonPersonAttributes(currentTag);
4636 
4637  // set specific attribute depart (note: Persons doesn't support triggered and containerTriggered values)
4640  TL("The time step at which the person shall enter the network"),
4641  "0.00");
4642  myTagProperties[currentTag].addAttribute(attrProperty);
4643 
4644  }
4645  currentTag = SUMO_TAG_PERSONFLOW;
4646  {
4647  // set values of tag
4648  myTagProperties[currentTag] = GNETagProperties(currentTag,
4649  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSON | GNETagProperties::TagType::FLOW,
4650  GNETagProperties::TagProperty::NO_PROPERTY,
4651  GNETagProperties::TagParents::NO_PARENTS,
4652  GNETagProperties::Conflicts::NO_CONFLICTS,
4653  GUIIcon::PERSONFLOW, currentTag, TL("PersonFlow"));
4654 
4655  // add flow attributes
4656  fillCommonPersonAttributes(currentTag);
4657 
4658  // add flow attributes
4660  }
4661 }
4662 
4663 
4664 void
4666  // declare empty GNEAttributeProperties
4667  GNEAttributeProperties attrProperty;
4668 
4669  // fill vehicle ACs
4670  SumoXMLTag currentTag = SUMO_TAG_CONTAINER;
4671  {
4672  // set values of tag
4673  myTagProperties[currentTag] = GNETagProperties(currentTag,
4674  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINER,
4675  GNETagProperties::TagProperty::NO_PROPERTY,
4676  GNETagProperties::TagParents::NO_PARENTS,
4677  GNETagProperties::Conflicts::NO_CONFLICTS,
4678  GUIIcon::CONTAINER, currentTag, TL("Container"));
4679 
4680  // add flow attributes
4681  fillCommonContainerAttributes(currentTag);
4682 
4685  TL("The time step at which the container shall enter the network"),
4686  "0.00");
4687  myTagProperties[currentTag].addAttribute(attrProperty);
4688  }
4689  currentTag = SUMO_TAG_CONTAINERFLOW;
4690  {
4691  // set values of tag
4692  myTagProperties[currentTag] = GNETagProperties(currentTag,
4693  GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINER | GNETagProperties::TagType::FLOW,
4694  GNETagProperties::TagProperty::NO_PROPERTY,
4695  GNETagProperties::TagParents::NO_PARENTS,
4696  GNETagProperties::Conflicts::NO_CONFLICTS,
4697  GUIIcon::CONTAINERFLOW, currentTag, TL("ContainerFlow"));
4698 
4699  // add common container attribute
4700  fillCommonContainerAttributes(currentTag);
4701 
4702  // add flow attributes
4704  }
4705 }
4706 
4707 
4708 void
4710  // declare empty GNEAttributeProperties
4711  GNEAttributeProperties attrProperty;
4712  // declare common tag types and properties
4713  const int tagType = GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::TRANSPORT;
4714  const int tagProperty = GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS;
4715  const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
4716  const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
4717  const std::vector<SumoXMLTag> parents({SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW});
4718  const unsigned int color = FXRGBA(240, 255, 205, 255);
4719  const GUIIcon icon = GUIIcon::TRANSPORT_EDGE;
4720  const SumoXMLTag xmlTag = SUMO_TAG_TRANSPORT;
4721  // fill merged tag
4722  myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
4723  0,
4724  conflicts, icon, xmlTag, TL("Container"), parents, color);
4725  // set values of attributes
4727  // from edge
4729  {
4730  // set values of tag
4731  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4732  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_EDGE,
4733  conflicts, icon, xmlTag, TL("Transport: edge->edge"), parents, color);
4734  // set values of attributes
4735  fillPlanParentAttributes(currentTag);
4737  }
4738  currentTag = GNE_TAG_TRANSPORT_EDGE_TAZ;
4739  {
4740  // set values of tag
4741  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4742  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TAZ,
4743  conflicts, icon, xmlTag, TL("Transport: edge->taz"), parents, color);
4744  // set values of attributes
4745  fillPlanParentAttributes(currentTag);
4747  }
4748  currentTag = GNE_TAG_TRANSPORT_EDGE_JUNCTION;
4749  {
4750  // set values of tag
4751  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4752  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
4753  conflicts, icon, xmlTag, TL("Transport: edge->junction"), parents, color);
4754  // set values of attributes
4755  fillPlanParentAttributes(currentTag);
4757  }
4758  currentTag = GNE_TAG_TRANSPORT_EDGE_BUSSTOP;
4759  {
4760  // set values of tag
4761  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4762  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
4763  conflicts, icon, xmlTag, TL("Transport: edge->busStop"), parents, color);
4764  // set values of attributes
4765  fillPlanParentAttributes(currentTag);
4767  }
4768  currentTag = GNE_TAG_TRANSPORT_EDGE_TRAINSTOP;
4769  {
4770  // set values of tag
4771  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4772  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
4773  conflicts, icon, xmlTag, TL("Transport: edge->trainStop"), parents, color);
4774  // set values of attributes
4775  fillPlanParentAttributes(currentTag);
4777  }
4779  {
4780  // set values of tag
4781  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4782  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
4783  conflicts, icon, xmlTag, TL("Transport: edge->containerStop"), parents, color);
4784  // set values of attributes
4785  fillPlanParentAttributes(currentTag);
4787  }
4789  {
4790  // set values of tag
4791  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4792  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
4793  conflicts, icon, xmlTag, TL("Transport: edge->chargingStation"), parents, color);
4794  // set values of attributes
4795  fillPlanParentAttributes(currentTag);
4797  }
4799  {
4800  // set values of tag
4801  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4802  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
4803  conflicts, icon, xmlTag, TL("Transport: edge->parkingArea"), parents, color);
4804  // set values of attributes
4805  fillPlanParentAttributes(currentTag);
4807  }
4808  // from taz
4809  currentTag = GNE_TAG_TRANSPORT_TAZ_EDGE;
4810  {
4811  // set values of tag
4812  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4813  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_EDGE,
4814  conflicts, icon, xmlTag, TL("Transport: taz->taz"), parents, color);
4815  // set values of attributes
4816  fillPlanParentAttributes(currentTag);
4818  }
4819  currentTag = GNE_TAG_TRANSPORT_TAZ_TAZ;
4820  {
4821  // set values of tag
4822  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4823  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TAZ,
4824  conflicts, icon, xmlTag, TL("Transport: taz->taz"), parents, color);
4825  // set values of attributes
4826  fillPlanParentAttributes(currentTag);
4828  }
4829  currentTag = GNE_TAG_TRANSPORT_TAZ_JUNCTION;
4830  {
4831  // set values of tag
4832  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4833  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
4834  conflicts, icon, xmlTag, TL("Transport: taz->junction"), parents, color);
4835  // set values of attributes
4836  fillPlanParentAttributes(currentTag);
4838  }
4839  currentTag = GNE_TAG_TRANSPORT_TAZ_BUSSTOP;
4840  {
4841  // set values of tag
4842  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4843  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
4844  conflicts, icon, xmlTag, TL("Transport: taz->busStop"), parents, color);
4845  // set values of attributes
4846  fillPlanParentAttributes(currentTag);
4848  }
4849  currentTag = GNE_TAG_TRANSPORT_TAZ_TRAINSTOP;
4850  {
4851  // set values of tag
4852  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4853  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
4854  conflicts, icon, xmlTag, TL("Transport: taz->trainStop"), parents, color);
4855  // set values of attributes
4856  fillPlanParentAttributes(currentTag);
4858  }
4860  {
4861  // set values of tag
4862  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4863  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
4864  conflicts, icon, xmlTag, TL("Transport: taz->containerStop"), parents, color);
4865  // set values of attributes
4866  fillPlanParentAttributes(currentTag);
4868  }
4870  {
4871  // set values of tag
4872  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4873  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
4874  conflicts, icon, xmlTag, TL("Transport: taz->chargingStation"), parents, color);
4875  // set values of attributes
4876  fillPlanParentAttributes(currentTag);
4878  }
4879  currentTag = GNE_TAG_TRANSPORT_TAZ_PARKINGAREA;
4880  {
4881  // set values of tag
4882  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4883  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
4884  conflicts, icon, xmlTag, TL("Transport: taz->parkingArea"), parents, color);
4885  // set values of attributes
4886  fillPlanParentAttributes(currentTag);
4888  }
4889  // from junction
4890  currentTag = GNE_TAG_TRANSPORT_JUNCTION_EDGE;
4891  {
4892  // set values of tag
4893  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4894  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_EDGE,
4895  conflicts, icon, xmlTag, TL("Transport: junction->edge"), parents, color);
4896  // set values of attributes
4897  fillPlanParentAttributes(currentTag);
4899  }
4900  currentTag = GNE_TAG_TRANSPORT_JUNCTION_TAZ;
4901  {
4902  // set values of tag
4903  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4904  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TAZ,
4905  conflicts, icon, xmlTag, TL("Transport: junction->taz"), parents, color);
4906  // set values of attributes
4907  fillPlanParentAttributes(currentTag);
4909  }
4911  {
4912  // set values of tag
4913  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4914  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
4915  conflicts, icon, xmlTag, TL("Transport: junction->junction"), parents, color);
4916  // set values of attributes
4917  fillPlanParentAttributes(currentTag);
4919  }
4921  {
4922  // set values of tag
4923  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4924  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
4925  conflicts, icon, xmlTag, TL("Transport: junction->busStop"), parents, color);
4926  // set values of attributes
4927  fillPlanParentAttributes(currentTag);
4929  }
4931  {
4932  // set values of tag
4933  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4934  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
4935  conflicts, icon, xmlTag, TL("Transport: junction->trainStop"), parents, color);
4936  // set values of attributes
4937  fillPlanParentAttributes(currentTag);
4939  }
4941  {
4942  // set values of tag
4943  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4944  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
4945  conflicts, icon, xmlTag, TL("Transport: junction->containerStop"), parents, color);
4946  // set values of attributes
4947  fillPlanParentAttributes(currentTag);
4949  }
4951  {
4952  // set values of tag
4953  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4954  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
4955  conflicts, icon, xmlTag, TL("Transport: junction->chargingStation"), parents, color);
4956  // set values of attributes
4957  fillPlanParentAttributes(currentTag);
4959  }
4961  {
4962  // set values of tag
4963  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4964  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
4965  conflicts, icon, xmlTag, TL("Transport: junction->parkingArea"), parents, color);
4966  // set values of attributes
4967  fillPlanParentAttributes(currentTag);
4969  }
4970  // from busStop
4971  currentTag = GNE_TAG_TRANSPORT_BUSSTOP_EDGE;
4972  {
4973  // set values of tag
4974  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4975  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
4976  conflicts, icon, xmlTag, TL("Transport: busStop->edge"), parents, color);
4977  // set values of attributes
4978  fillPlanParentAttributes(currentTag);
4980  }
4981  currentTag = GNE_TAG_TRANSPORT_BUSSTOP_TAZ;
4982  {
4983  // set values of tag
4984  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4985  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
4986  conflicts, icon, xmlTag, TL("Transport: busStop->taz"), parents, color);
4987  // set values of attributes
4988  fillPlanParentAttributes(currentTag);
4990  }
4992  {
4993  // set values of tag
4994  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4995  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
4996  conflicts, icon, xmlTag, TL("Transport: busStop->junction"), parents, color);
4997  // set values of attributes
4998  fillPlanParentAttributes(currentTag);
5000  }
5001  currentTag = GNE_TAG_TRANSPORT_BUSSTOP_BUSSTOP;
5002  {
5003  // set values of tag
5004  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5005  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5006  conflicts, icon, xmlTag, TL("Transport: busStop->busStop"), parents, color);
5007  // set values of attributes
5008  fillPlanParentAttributes(currentTag);
5010  }
5012  {
5013  // set values of tag
5014  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5015  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5016  conflicts, icon, xmlTag, TL("Transport: busStop->trainStop"), parents, color);
5017  // set values of attributes
5018  fillPlanParentAttributes(currentTag);
5020  }
5022  {
5023  // set values of tag
5024  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5025  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5026  conflicts, icon, xmlTag, TL("Transport: busStop->containerStop"), parents, color);
5027  // set values of attributes
5028  fillPlanParentAttributes(currentTag);
5030  }
5032  {
5033  // set values of tag
5034  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5035  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5036  conflicts, icon, xmlTag, TL("Transport: busStop->chargingStation"), parents, color);
5037  // set values of attributes
5038  fillPlanParentAttributes(currentTag);
5040  }
5042  {
5043  // set values of tag
5044  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5045  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5046  conflicts, icon, xmlTag, TL("Transport: busStop->parkingArea"), parents, color);
5047  // set values of attributes
5048  fillPlanParentAttributes(currentTag);
5050  }
5051  // from trainStop
5052  currentTag = GNE_TAG_TRANSPORT_TRAINSTOP_EDGE;
5053  {
5054  // set values of tag
5055  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5056  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
5057  conflicts, icon, xmlTag, TL("Transport: trainStop->edge"), parents, color);
5058  // set values of attributes
5059  fillPlanParentAttributes(currentTag);
5061  }
5062  currentTag = GNE_TAG_TRANSPORT_TRAINSTOP_TAZ;
5063  {
5064  // set values of tag
5065  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5066  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
5067  conflicts, icon, xmlTag, TL("Transport: trainStop->taz"), parents, color);
5068  // set values of attributes
5069  fillPlanParentAttributes(currentTag);
5071  }
5073  {
5074  // set values of tag
5075  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5076  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5077  conflicts, icon, xmlTag, TL("Transport: trainStop->junction"), parents, color);
5078  // set values of attributes
5079  fillPlanParentAttributes(currentTag);
5081  }
5083  {
5084  // set values of tag
5085  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5086  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5087  conflicts, icon, xmlTag, TL("Transport: trainStop->busStop"), parents, color);
5088  // set values of attributes
5089  fillPlanParentAttributes(currentTag);
5091  }
5093  {
5094  // set values of tag
5095  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5096  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5097  conflicts, icon, xmlTag, TL("Transport: trainStop->trainStop"), parents, color);
5098  // set values of attributes
5099  fillPlanParentAttributes(currentTag);
5101  }
5103  {
5104  // set values of tag
5105  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5106  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5107  conflicts, icon, xmlTag, TL("Transport: trainStop->containerStop"), parents, color);
5108  // set values of attributes
5109  fillPlanParentAttributes(currentTag);
5111  }
5113  {
5114  // set values of tag
5115  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5116  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5117  conflicts, icon, xmlTag, TL("Transport: trainStop->chargingStation"), parents, color);
5118  // set values of attributes
5119  fillPlanParentAttributes(currentTag);
5121  }
5123  {
5124  // set values of tag
5125  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5126  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5127  conflicts, icon, xmlTag, TL("Transport: trainStop->parkingArea"), parents, color);
5128  // set values of attributes
5129  fillPlanParentAttributes(currentTag);
5131  }
5132  // from containerStop
5134  {
5135  // set values of tag
5136  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5137  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
5138  conflicts, icon, xmlTag, TL("Transport: containerStop->edge"), parents, color);
5139  // set values of attributes
5140  fillPlanParentAttributes(currentTag);
5142  }
5144  {
5145  // set values of tag
5146  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5147  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
5148  conflicts, icon, xmlTag, TL("Transport: containerStop->taz"), parents, color);
5149  // set values of attributes
5150  fillPlanParentAttributes(currentTag);
5152  }
5154  {
5155  // set values of tag
5156  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5157  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5158  conflicts, icon, xmlTag, TL("Transport: containerStop->junction"), parents, color);
5159  // set values of attributes
5160  fillPlanParentAttributes(currentTag);
5162  }
5164  {
5165  // set values of tag
5166  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5167  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5168  conflicts, icon, xmlTag, TL("Transport: containerStop->busStop"), parents, color);
5169  // set values of attributes
5170  fillPlanParentAttributes(currentTag);
5172  }
5174  {
5175  // set values of tag
5176  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5177  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5178  conflicts, icon, xmlTag, TL("Transport: containerStop->trainStop"), parents, color);
5179  // set values of attributes
5180  fillPlanParentAttributes(currentTag);
5182  }
5184  {
5185  // set values of tag
5186  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5187  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5188  conflicts, icon, xmlTag, TL("Transport: containerStop->containerStop"), parents, color);
5189  // set values of attributes
5190  fillPlanParentAttributes(currentTag);
5192  }
5194  {
5195  // set values of tag
5196  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5197  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5198  conflicts, icon, xmlTag, TL("Transport: containerStop->chargingStation"), parents, color);
5199  // set values of attributes
5200  fillPlanParentAttributes(currentTag);
5202  }
5204  {
5205  // set values of tag
5206  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5207  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5208  conflicts, icon, xmlTag, TL("Transport: containerStop->parkingArea"), parents, color);
5209  // set values of attributes
5210  fillPlanParentAttributes(currentTag);
5212  }
5213  // from chargingStation
5215  {
5216  // set values of tag
5217  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5218  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_EDGE,
5219  conflicts, icon, xmlTag, TL("Transport: chargingStation->edge"), parents, color);
5220  // set values of attributes
5221  fillPlanParentAttributes(currentTag);
5223  }
5225  {
5226  // set values of tag
5227  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5228  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_TAZ,
5229  conflicts, icon, xmlTag, TL("Transport: chargingStation->taz"), parents, color);
5230  // set values of attributes
5231  fillPlanParentAttributes(currentTag);
5233  }
5235  {
5236  // set values of tag
5237  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5238  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5239  conflicts, icon, xmlTag, TL("Transport: chargingStation->junction"), parents, color);
5240  // set values of attributes
5241  fillPlanParentAttributes(currentTag);
5243  }
5245  {
5246  // set values of tag
5247  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5248  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5249  conflicts, icon, xmlTag, TL("Transport: chargingStation->busStop"), parents, color);
5250  // set values of attributes
5251  fillPlanParentAttributes(currentTag);
5253  }
5255  {
5256  // set values of tag
5257  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5258  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5259  conflicts, icon, xmlTag, TL("Transport: chargingStation->trainStop"), parents, color);
5260  // set values of attributes
5261  fillPlanParentAttributes(currentTag);
5263  }
5265  {
5266  // set values of tag
5267  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5268  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5269  conflicts, icon, xmlTag, TL("Transport: chargingStation->containerStop"), parents, color);
5270  // set values of attributes
5271  fillPlanParentAttributes(currentTag);
5273  }
5275  {
5276  // set values of tag
5277  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5278  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5279  conflicts, icon, xmlTag, TL("Transport: chargingStation->chargingStation"), parents, color);
5280  // set values of attributes
5281  fillPlanParentAttributes(currentTag);
5283  }
5285  {
5286  // set values of tag
5287  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5288  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5289  conflicts, icon, xmlTag, TL("Transport: chargingStation->parkingArea"), parents, color);
5290  // set values of attributes
5291  fillPlanParentAttributes(currentTag);
5293  }
5294  // from parkingArea
5296  {
5297  // set values of tag
5298  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5299  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_EDGE,
5300  conflicts, icon, xmlTag, TL("Transport: parkingArea->edge"), parents, color);
5301  // set values of attributes
5302  fillPlanParentAttributes(currentTag);
5304  }
5305  currentTag = GNE_TAG_TRANSPORT_PARKINGAREA_TAZ;
5306  {
5307  // set values of tag
5308  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5309  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_TAZ,
5310  conflicts, icon, xmlTag, TL("Transport: parkingArea->taz"), parents, color);
5311  // set values of attributes
5312  fillPlanParentAttributes(currentTag);
5314  }
5316  {
5317  // set values of tag
5318  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5319  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5320  conflicts, icon, xmlTag, TL("Transport: parkingArea->junction"), parents, color);
5321  // set values of attributes
5322  fillPlanParentAttributes(currentTag);
5324  }
5326  {
5327  // set values of tag
5328  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5329  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5330  conflicts, icon, xmlTag, TL("Transport: parkingArea->busStop"), parents, color);
5331  // set values of attributes
5332  fillPlanParentAttributes(currentTag);
5334  }
5336  {
5337  // set values of tag
5338  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5339  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5340  conflicts, icon, xmlTag, TL("Transport: parkingArea->trainStop"), parents, color);
5341  // set values of attributes
5342  fillPlanParentAttributes(currentTag);
5344  }
5346  {
5347  // set values of tag
5348  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5349  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5350  conflicts, icon, xmlTag, TL("Transport: parkingArea->containerStop"), parents, color);
5351  // set values of attributes
5352  fillPlanParentAttributes(currentTag);
5354  }
5356  {
5357  // set values of tag
5358  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5359  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5360  conflicts, icon, xmlTag, TL("Transport: parkingArea->chargingStation"), parents, color);
5361  // set values of attributes
5362  fillPlanParentAttributes(currentTag);
5364  }
5366  {
5367  // set values of tag
5368  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5369  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5370  conflicts, icon, xmlTag, TL("Transport: parkingArea->parkingArea"), parents, color);
5371  // set values of attributes
5372  fillPlanParentAttributes(currentTag);
5374  }
5375 }
5376 
5377 
5378 void
5380  // declare empty GNEAttributeProperties
5381  GNEAttributeProperties attrProperty;
5382  // declare common tag types and properties
5383  const int tagType = GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::TRANSHIP;
5384  const int tagProperty = GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS;
5385  const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
5386  const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
5387  const std::vector<SumoXMLTag> parents({SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW});
5388  const unsigned int color = FXRGBA(210, 233, 255, 255);
5389  const GUIIcon icon = GUIIcon::TRANSHIP_EDGES;
5390  const SumoXMLTag xmlTag = SUMO_TAG_TRANSHIP;
5391  // fill merged tag
5392  myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
5393  0,
5394  conflicts, icon, xmlTag, TL("Tranship"), parents, color);
5395  // set values of attributes
5397  // fill tags
5398  SumoXMLTag currentTag = GNE_TAG_TRANSHIP_EDGES;
5399  {
5400  // set values of tag
5401  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5402  GNETagProperties::TagParents::PLAN_CONSECUTIVE_EDGES,
5403  conflicts, icon, xmlTag, TL("Tranship: edges"), parents, color);
5404  // set values of attributes
5405  fillPlanParentAttributes(currentTag);
5407  }
5408  // from edge
5409  currentTag = GNE_TAG_TRANSHIP_EDGE_EDGE;
5410  {
5411  // set values of tag
5412  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5413  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_EDGE,
5414  conflicts, icon, xmlTag, TL("Tranship: edge->edge"), parents, color);
5415  // set values of attributes
5416  fillPlanParentAttributes(currentTag);
5418  }
5419  currentTag = GNE_TAG_TRANSHIP_EDGE_TAZ;
5420  {
5421  // set values of tag
5422  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5423  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TAZ,
5424  conflicts, icon, xmlTag, TL("Tranship: edge->taz"), parents, color);
5425  // set values of attributes
5426  fillPlanParentAttributes(currentTag);
5428  }
5429  currentTag = GNE_TAG_TRANSHIP_EDGE_JUNCTION;
5430  {
5431  // set values of tag
5432  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5433  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5434  conflicts, icon, xmlTag, TL("Tranship: edge->junction"), parents, color);
5435  // set values of attributes
5436  fillPlanParentAttributes(currentTag);
5438  }
5439  currentTag = GNE_TAG_TRANSHIP_EDGE_BUSSTOP;
5440  {
5441  // set values of tag
5442  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5443  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5444  conflicts, icon, xmlTag, TL("Tranship: edge->busStop"), parents, color);
5445  // set values of attributes
5446  fillPlanParentAttributes(currentTag);
5448  }
5449  currentTag = GNE_TAG_TRANSHIP_EDGE_TRAINSTOP;
5450  {
5451  // set values of tag
5452  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5453  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5454  conflicts, icon, xmlTag, TL("Tranship: edge->trainStop"), parents, color);
5455  // set values of attributes
5456  fillPlanParentAttributes(currentTag);
5458  }
5460  {
5461  // set values of tag
5462  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5463  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5464  conflicts, icon, xmlTag, TL("Tranship: edge->containerStop"), parents, color);
5465  // set values of attributes
5466  fillPlanParentAttributes(currentTag);
5468  }
5470  {
5471  // set values of tag
5472  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5473  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5474  conflicts, icon, xmlTag, TL("Tranship: edge->chargingStation"), parents, color);
5475  // set values of attributes
5476  fillPlanParentAttributes(currentTag);
5478  }
5479  currentTag = GNE_TAG_TRANSHIP_EDGE_PARKINGAREA;
5480  {
5481  // set values of tag
5482  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5483  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5484  conflicts, icon, xmlTag, TL("Tranship: edge->parkingArea"), parents, color);
5485  // set values of attributes
5486  fillPlanParentAttributes(currentTag);
5488  }
5489  // from taz
5490  currentTag = GNE_TAG_TRANSHIP_TAZ_EDGE;
5491  {
5492  // set values of tag
5493  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5494  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_EDGE,
5495  conflicts, icon, xmlTag, TL("Tranship: taz->taz"), parents, color);
5496  // set values of attributes
5497  fillPlanParentAttributes(currentTag);
5499  }
5500  currentTag = GNE_TAG_TRANSHIP_TAZ_TAZ;
5501  {
5502  // set values of tag
5503  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5504  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TAZ,
5505  conflicts, icon, xmlTag, TL("Tranship: taz->taz"), parents, color);
5506  // set values of attributes
5507  fillPlanParentAttributes(currentTag);
5509  }
5510  currentTag = GNE_TAG_TRANSHIP_TAZ_JUNCTION;
5511  {
5512  // set values of tag
5513  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5514  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5515  conflicts, icon, xmlTag, TL("Tranship: taz->junction"), parents, color);
5516  // set values of attributes
5517  fillPlanParentAttributes(currentTag);
5519  }
5520  currentTag = GNE_TAG_TRANSHIP_TAZ_BUSSTOP;
5521  {
5522  // set values of tag
5523  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5524  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5525  conflicts, icon, xmlTag, TL("Tranship: taz->busStop"), parents, color);
5526  // set values of attributes
5527  fillPlanParentAttributes(currentTag);
5529  }
5530  currentTag = GNE_TAG_TRANSHIP_TAZ_TRAINSTOP;
5531  {
5532  // set values of tag
5533  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5534  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5535  conflicts, icon, xmlTag, TL("Tranship: taz->trainStop"), parents, color);
5536  // set values of attributes
5537  fillPlanParentAttributes(currentTag);
5539  }
5541  {
5542  // set values of tag
5543  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5544  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5545  conflicts, icon, xmlTag, TL("Tranship: taz->containerStop"), parents, color);
5546  // set values of attributes
5547  fillPlanParentAttributes(currentTag);
5549  }
5551  {
5552  // set values of tag
5553  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5554  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5555  conflicts, icon, xmlTag, TL("Tranship: taz->chargingStation"), parents, color);
5556  // set values of attributes
5557  fillPlanParentAttributes(currentTag);
5559  }
5560  currentTag = GNE_TAG_TRANSHIP_TAZ_PARKINGAREA;
5561  {
5562  // set values of tag
5563  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5564  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5565  conflicts, icon, xmlTag, TL("Tranship: taz->parkingArea"), parents, color);
5566  // set values of attributes
5567  fillPlanParentAttributes(currentTag);
5569  }
5570  // from junction
5571  currentTag = GNE_TAG_TRANSHIP_JUNCTION_EDGE;
5572  {
5573  // set values of tag
5574  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5575  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_EDGE,
5576  conflicts, icon, xmlTag, TL("Tranship: junction->edge"), parents, color);
5577  // set values of attributes
5578  fillPlanParentAttributes(currentTag);
5580  }
5581  currentTag = GNE_TAG_TRANSHIP_JUNCTION_TAZ;
5582  {
5583  // set values of tag
5584  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5585  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TAZ,
5586  conflicts, icon, xmlTag, TL("Tranship: junction->taz"), parents, color);
5587  // set values of attributes
5588  fillPlanParentAttributes(currentTag);
5590  }
5592  {
5593  // set values of tag
5594  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5595  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5596  conflicts, icon, xmlTag, TL("Tranship: junction->junction"), parents, color);
5597  // set values of attributes
5598  fillPlanParentAttributes(currentTag);
5600  }
5601  currentTag = GNE_TAG_TRANSHIP_JUNCTION_BUSSTOP;
5602  {
5603  // set values of tag
5604  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5605  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5606  conflicts, icon, xmlTag, TL("Tranship: junction->busStop"), parents, color);
5607  // set values of attributes
5608  fillPlanParentAttributes(currentTag);
5610  }
5612  {
5613  // set values of tag
5614  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5615  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5616  conflicts, icon, xmlTag, TL("Tranship: junction->trainStop"), parents, color);
5617  // set values of attributes
5618  fillPlanParentAttributes(currentTag);
5620  }
5622  {
5623  // set values of tag
5624  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5625  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5626  conflicts, icon, xmlTag, TL("Tranship: junction->containerStop"), parents, color);
5627  // set values of attributes
5628  fillPlanParentAttributes(currentTag);
5630  }
5632  {
5633  // set values of tag
5634  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5635  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5636  conflicts, icon, xmlTag, TL("Tranship: junction->chargingStation"), parents, color);
5637  // set values of attributes
5638  fillPlanParentAttributes(currentTag);
5640  }
5642  {
5643  // set values of tag
5644  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5645  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5646  conflicts, icon, xmlTag, TL("Tranship: junction->parkingArea"), parents, color);
5647  // set values of attributes
5648  fillPlanParentAttributes(currentTag);
5650  }
5651  // from busStop
5652  currentTag = GNE_TAG_TRANSHIP_BUSSTOP_EDGE;
5653  {
5654  // set values of tag
5655  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5656  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
5657  conflicts, icon, xmlTag, TL("Tranship: busStop->edge"), parents, color);
5658  // set values of attributes
5659  fillPlanParentAttributes(currentTag);
5661  }
5662  currentTag = GNE_TAG_TRANSHIP_BUSSTOP_TAZ;
5663  {
5664  // set values of tag
5665  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5666  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
5667  conflicts, icon, xmlTag, TL("Tranship: busStop->taz"), parents, color);
5668  // set values of attributes
5669  fillPlanParentAttributes(currentTag);
5671  }
5672  currentTag = GNE_TAG_TRANSHIP_BUSSTOP_JUNCTION;
5673  {
5674  // set values of tag
5675  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5676  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5677  conflicts, icon, xmlTag, TL("Tranship: busStop->junction"), parents, color);
5678  // set values of attributes
5679  fillPlanParentAttributes(currentTag);
5681  }
5682  currentTag = GNE_TAG_TRANSHIP_BUSSTOP_BUSSTOP;
5683  {
5684  // set values of tag
5685  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5686  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5687  conflicts, icon, xmlTag, TL("Tranship: busStop->busStop"), parents, color);
5688  // set values of attributes
5689  fillPlanParentAttributes(currentTag);
5691  }
5693  {
5694  // set values of tag
5695  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5696  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5697  conflicts, icon, xmlTag, TL("Tranship: busStop->trainStop"), parents, color);
5698  // set values of attributes
5699  fillPlanParentAttributes(currentTag);
5701  }
5703  {
5704  // set values of tag
5705  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5706  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5707  conflicts, icon, xmlTag, TL("Tranship: busStop->containerStop"), parents, color);
5708  // set values of attributes
5709  fillPlanParentAttributes(currentTag);
5711  }
5713  {
5714  // set values of tag
5715  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5716  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5717  conflicts, icon, xmlTag, TL("Tranship: busStop->chargingStation"), parents, color);
5718  // set values of attributes
5719  fillPlanParentAttributes(currentTag);
5721  }
5723  {
5724  // set values of tag
5725  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5726  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5727  conflicts, icon, xmlTag, TL("Tranship: busStop->parkingArea"), parents, color);
5728  // set values of attributes
5729  fillPlanParentAttributes(currentTag);
5731  }
5732  // from trainStop
5733  currentTag = GNE_TAG_TRANSHIP_TRAINSTOP_EDGE;
5734  {
5735  // set values of tag
5736  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5737  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
5738  conflicts, icon, xmlTag, TL("Tranship: trainStop->edge"), parents, color);
5739  // set values of attributes
5740  fillPlanParentAttributes(currentTag);
5742  }
5743  currentTag = GNE_TAG_TRANSHIP_TRAINSTOP_TAZ;
5744  {
5745  // set values of tag
5746  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5747  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
5748  conflicts, icon, xmlTag, TL("Tranship: trainStop->taz"), parents, color);
5749  // set values of attributes
5750  fillPlanParentAttributes(currentTag);
5752  }
5754  {
5755  // set values of tag
5756  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5757  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5758  conflicts, icon, xmlTag, TL("Tranship: trainStop->junction"), parents, color);
5759  // set values of attributes
5760  fillPlanParentAttributes(currentTag);
5762  }
5764  {
5765  // set values of tag
5766  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5767  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5768  conflicts, icon, xmlTag, TL("Tranship: trainStop->busStop"), parents, color);
5769  // set values of attributes
5770  fillPlanParentAttributes(currentTag);
5772  }
5774  {
5775  // set values of tag
5776  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5777  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5778  conflicts, icon, xmlTag, TL("Tranship: trainStop->trainStop"), parents, color);
5779  // set values of attributes
5780  fillPlanParentAttributes(currentTag);
5782  }
5784  {
5785  // set values of tag
5786  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5787  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5788  conflicts, icon, xmlTag, TL("Tranship: trainStop->containerStop"), parents, color);
5789  // set values of attributes
5790  fillPlanParentAttributes(currentTag);
5792  }
5794  {
5795  // set values of tag
5796  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5797  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5798  conflicts, icon, xmlTag, TL("Tranship: trainStop->chargingStation"), parents, color);
5799  // set values of attributes
5800  fillPlanParentAttributes(currentTag);
5802  }
5804  {
5805  // set values of tag
5806  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5807  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5808  conflicts, icon, xmlTag, TL("Tranship: trainStop->parkingArea"), parents, color);
5809  // set values of attributes
5810  fillPlanParentAttributes(currentTag);
5812  }
5813  // from containerStop
5815  {
5816  // set values of tag
5817  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5818  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
5819  conflicts, icon, xmlTag, TL("Tranship: containerStop->edge"), parents, color);
5820  // set values of attributes
5821  fillPlanParentAttributes(currentTag);
5823  }
5825  {
5826  // set values of tag
5827  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5828  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
5829  conflicts, icon, xmlTag, TL("Tranship: containerStop->taz"), parents, color);
5830  // set values of attributes
5831  fillPlanParentAttributes(currentTag);
5833  }
5835  {
5836  // set values of tag
5837  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5838  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5839  conflicts, icon, xmlTag, TL("Tranship: containerStop->junction"), parents, color);
5840  // set values of attributes
5841  fillPlanParentAttributes(currentTag);
5843  }
5845  {
5846  // set values of tag
5847  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5848  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5849  conflicts, icon, xmlTag, TL("Tranship: containerStop->busStop"), parents, color);
5850  // set values of attributes
5851  fillPlanParentAttributes(currentTag);
5853  }
5855  {
5856  // set values of tag
5857  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5858  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5859  conflicts, icon, xmlTag, TL("Tranship: containerStop->trainStop"), parents, color);
5860  // set values of attributes
5861  fillPlanParentAttributes(currentTag);
5863  }
5865  {
5866  // set values of tag
5867  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5868  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5869  conflicts, icon, xmlTag, TL("Tranship: containerStop->containerStop"), parents, color);
5870  // set values of attributes
5871  fillPlanParentAttributes(currentTag);
5873  }
5875  {
5876  // set values of tag
5877  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5878  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5879  conflicts, icon, xmlTag, TL("Tranship: containerStop->chargingStation"), parents, color);
5880  // set values of attributes
5881  fillPlanParentAttributes(currentTag);
5883  }
5885  {
5886  // set values of tag
5887  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5888  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5889  conflicts, icon, xmlTag, TL("Tranship: containerStop->parkingArea"), parents, color);
5890  // set values of attributes
5891  fillPlanParentAttributes(currentTag);
5893  }
5894  // from chargingStation
5896  {
5897  // set values of tag
5898  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5899  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_EDGE,
5900  conflicts, icon, xmlTag, TL("Tranship: chargingStation->edge"), parents, color);
5901  // set values of attributes
5902  fillPlanParentAttributes(currentTag);
5904  }
5906  {
5907  // set values of tag
5908  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5909  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_TAZ,
5910  conflicts, icon, xmlTag, TL("Tranship: chargingStation->taz"), parents, color);
5911  // set values of attributes
5912  fillPlanParentAttributes(currentTag);
5914  }
5916  {
5917  // set values of tag
5918  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5919  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
5920  conflicts, icon, xmlTag, TL("Tranship: chargingStation->junction"), parents, color);
5921  // set values of attributes
5922  fillPlanParentAttributes(currentTag);
5924  }
5926  {
5927  // set values of tag
5928  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5929  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
5930  conflicts, icon, xmlTag, TL("Tranship: chargingStation->busStop"), parents, color);
5931  // set values of attributes
5932  fillPlanParentAttributes(currentTag);
5934  }
5936  {
5937  // set values of tag
5938  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5939  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
5940  conflicts, icon, xmlTag, TL("Tranship: chargingStation->trainStop"), parents, color);
5941  // set values of attributes
5942  fillPlanParentAttributes(currentTag);
5944  }
5946  {
5947  // set values of tag
5948  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5949  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
5950  conflicts, icon, xmlTag, TL("Tranship: chargingStation->containerStop"), parents, color);
5951  // set values of attributes
5952  fillPlanParentAttributes(currentTag);
5954  }
5956  {
5957  // set values of tag
5958  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5959  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
5960  conflicts, icon, xmlTag, TL("Tranship: chargingStation->chargingStation"), parents, color);
5961  // set values of attributes
5962  fillPlanParentAttributes(currentTag);
5964  }
5966  {
5967  // set values of tag
5968  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5969  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
5970  conflicts, icon, xmlTag, TL("Tranship: chargingStation->parkingArea"), parents, color);
5971  // set values of attributes
5972  fillPlanParentAttributes(currentTag);
5974  }
5975  // from parkingArea
5976  currentTag = GNE_TAG_TRANSHIP_PARKINGAREA_EDGE;
5977  {
5978  // set values of tag
5979  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5980  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_EDGE,
5981  conflicts, icon, xmlTag, TL("Tranship: parkingArea->edge"), parents, color);
5982  // set values of attributes
5983  fillPlanParentAttributes(currentTag);
5985  }
5986  currentTag = GNE_TAG_TRANSHIP_PARKINGAREA_TAZ;
5987  {
5988  // set values of tag
5989  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5990  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_TAZ,
5991  conflicts, icon, xmlTag, TL("Tranship: parkingArea->taz"), parents, color);
5992  // set values of attributes
5993  fillPlanParentAttributes(currentTag);
5995  }
5997  {
5998  // set values of tag
5999  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6000  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
6001  conflicts, icon, xmlTag, TL("Tranship: parkingArea->junction"), parents, color);
6002  // set values of attributes
6003  fillPlanParentAttributes(currentTag);
6005  }
6007  {
6008  // set values of tag
6009  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6010  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
6011  conflicts, icon, xmlTag, TL("Tranship: parkingArea->busStop"), parents, color);
6012  // set values of attributes
6013  fillPlanParentAttributes(currentTag);
6015  }
6017  {
6018  // set values of tag
6019  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6020  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
6021  conflicts, icon, xmlTag, TL("Tranship: parkingArea->trainStop"), parents, color);
6022  // set values of attributes
6023  fillPlanParentAttributes(currentTag);
6025  }
6027  {
6028  // set values of tag
6029  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6030  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
6031  conflicts, icon, xmlTag, TL("Tranship: parkingArea->containerStop"), parents, color);
6032  // set values of attributes
6033  fillPlanParentAttributes(currentTag);
6035  }
6037  {
6038  // set values of tag
6039  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6040  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
6041  conflicts, icon, xmlTag, TL("Tranship: parkingArea->chargingStation"), parents, color);
6042  // set values of attributes
6043  fillPlanParentAttributes(currentTag);
6045  }
6047  {
6048  // set values of tag
6049  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6050  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
6051  conflicts, icon, xmlTag, TL("Tranship: parkingArea->parkingArea"), parents, color);
6052  // set values of attributes
6053  fillPlanParentAttributes(currentTag);
6055  }
6056 }
6057 
6058 
6059 void
6061  // declare empty GNEAttributeProperties
6062  GNEAttributeProperties attrProperty;
6063  // declare common tag types and properties
6064  const int tagType = GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::CONTAINERPLAN | GNETagProperties::TagType::STOPCONTAINER;
6065  const int tagProperty = GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS;
6066  const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
6067  const std::vector<SumoXMLTag> parents({SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW});
6068  const unsigned int color = FXRGBA(255, 213, 213, 255);
6069  const GUIIcon icon = GUIIcon::STOPELEMENT;
6070  const SumoXMLTag xmlTag = SUMO_TAG_STOP;
6071  // fill merged tag
6073  0,
6074  conflicts, icon, xmlTag, TL("ContainerStop"), parents, color);
6075  // set values of attributes
6077  // fill tags
6079  {
6080  // set values of tag
6081  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6082  GNETagProperties::TagParents::PLAN_EDGE,
6083  conflicts, icon, xmlTag, TL("ContainerStop: edge"), parents, color);
6084 
6085  // set values of attributes
6086  fillPlanParentAttributes(currentTag);
6088  }
6089  currentTag = GNE_TAG_STOPCONTAINER_BUSSTOP;
6090  {
6091  // set values of tag
6092  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6093  GNETagProperties::TagParents::PLAN_BUSSTOP,
6094  conflicts, icon, xmlTag, TL("ContainerStop: busStop"), parents, color);
6095 
6096  // set values of attributes
6097  fillPlanParentAttributes(currentTag);
6099  }
6100  currentTag = GNE_TAG_STOPCONTAINER_TRAINSTOP;
6101  {
6102  // set values of tag
6103  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6104  GNETagProperties::TagParents::PLAN_TRAINSTOP,
6105  conflicts, icon, xmlTag, TL("ContainerStop: trainStop"), parents, color);
6106 
6107  // set values of attributes
6108  fillPlanParentAttributes(currentTag);
6110  }
6112  {
6113  // set values of tag
6114  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6115  GNETagProperties::TagParents::PLAN_CONTAINERSTOP,
6116  conflicts, icon, xmlTag, TL("ContainerStop: containerStop"), parents, color);
6117 
6118  // set values of attributes
6119  fillPlanParentAttributes(currentTag);
6121  }
6123  {
6124  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6125  GNETagProperties::TagParents::PLAN_CHARGINGSTATION,
6126  conflicts, icon, xmlTag, TL("ContainerStop: chargingStation"), parents, color);
6127 
6128  // set values of attributes
6129  fillPlanParentAttributes(currentTag);
6131  }
6132  currentTag = GNE_TAG_STOPCONTAINER_PARKINGAREA;
6133  {
6134  // set values of tag
6135  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6136  GNETagProperties::TagParents::PLAN_PARKINGAREA,
6137  conflicts, icon, xmlTag, TL("ContainerStop: parkingArea"), parents, color);
6138 
6139  // set values of attributes
6140  fillPlanParentAttributes(currentTag);
6142  }
6143 }
6144 
6145 
6146 void
6148  // declare empty GNEAttributeProperties
6149  GNEAttributeProperties attrProperty;
6150  // declare common tag types and properties
6151  const int tagType = GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::PERSONTRIP;
6152  const int tagProperty = GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS;
6153  const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
6154  const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
6155  const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
6156  const unsigned int color = FXRGBA(253, 255, 206, 255);
6157  const GUIIcon icon = GUIIcon::PERSONTRIP_EDGE;
6158  const SumoXMLTag xmlTag = SUMO_TAG_PERSONTRIP;
6159  // fill merged tag
6160  myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
6161  0,
6162  conflicts, icon, xmlTag, TL("PersonTrip"), parents, color);
6163  // set values of attributes
6165  // from edge
6167  {
6168  // set values of tag
6169  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6170  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_EDGE,
6171  conflicts, icon, xmlTag, TL("PersonTrip: edge->edge"), parents, color);
6172  // set values of attributes
6173  fillPlanParentAttributes(currentTag);
6175  }
6176  currentTag = GNE_TAG_PERSONTRIP_EDGE_TAZ;
6177  {
6178  // set values of tag
6179  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6180  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TAZ,
6181  conflicts, icon, xmlTag, TL("PersonTrip: edge->taz"), parents, color);
6182  // set values of attributes
6183  fillPlanParentAttributes(currentTag);
6185  }
6186  currentTag = GNE_TAG_PERSONTRIP_EDGE_JUNCTION;
6187  {
6188  // set values of tag
6189  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6190  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
6191  conflicts, icon, xmlTag, TL("PersonTrip: edge->junction"), parents, color);
6192  // set values of attributes
6193  fillPlanParentAttributes(currentTag);
6195  }
6196  currentTag = GNE_TAG_PERSONTRIP_EDGE_BUSSTOP;
6197  {
6198  // set values of tag
6199  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6200  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
6201  conflicts, icon, xmlTag, TL("PersonTrip: edge->busStop"), parents, color);
6202  // set values of attributes
6203  fillPlanParentAttributes(currentTag);
6205  }
6206  currentTag = GNE_TAG_PERSONTRIP_EDGE_TRAINSTOP;
6207  {
6208  // set values of tag
6209  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6210  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
6211  conflicts, icon, xmlTag, TL("PersonTrip: edge->trainStop"), parents, color);
6212  // set values of attributes
6213  fillPlanParentAttributes(currentTag);
6215  }
6217  {
6218  // set values of tag
6219  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6220  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
6221  conflicts, icon, xmlTag, TL("PersonTrip: edge->containerStop"), parents, color);
6222  // set values of attributes
6223  fillPlanParentAttributes(currentTag);
6225  }
6227  {
6228  // set values of tag
6229  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6230  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
6231  conflicts, icon, xmlTag, TL("PersonTrip: edge->chargingStation"), parents, color);
6232  // set values of attributes
6233  fillPlanParentAttributes(currentTag);
6235  }
6237  {
6238  // set values of tag
6239  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6240  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
6241  conflicts, icon, xmlTag, TL("PersonTrip: edge->parkingArea"), parents, color);
6242  // set values of attributes
6243  fillPlanParentAttributes(currentTag);
6245  }
6246  // from taz
6247  currentTag = GNE_TAG_PERSONTRIP_TAZ_EDGE;
6248  {
6249  // set values of tag
6250  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6251  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_EDGE,
6252  conflicts, icon, xmlTag, TL("PersonTrip: taz->taz"), parents, color);
6253  // set values of attributes
6254  fillPlanParentAttributes(currentTag);
6256  }
6257  currentTag = GNE_TAG_PERSONTRIP_TAZ_TAZ;
6258  {
6259  // set values of tag
6260  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6261  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TAZ,
6262  conflicts, icon, xmlTag, TL("PersonTrip: taz->taz"), parents, color);
6263  // set values of attributes
6264  fillPlanParentAttributes(currentTag);
6266  }
6267  currentTag = GNE_TAG_PERSONTRIP_TAZ_JUNCTION;
6268  {
6269  // set values of tag
6270  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6271  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
6272  conflicts, icon, xmlTag, TL("PersonTrip: taz->junction"), parents, color);
6273  // set values of attributes
6274  fillPlanParentAttributes(currentTag);
6276  }
6277  currentTag = GNE_TAG_PERSONTRIP_TAZ_BUSSTOP;
6278  {
6279  // set values of tag
6280  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6281  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
6282  conflicts, icon, xmlTag, TL("PersonTrip: taz->busStop"), parents, color);
6283  // set values of attributes
6284  fillPlanParentAttributes(currentTag);
6286  }
6287  currentTag = GNE_TAG_PERSONTRIP_TAZ_TRAINSTOP;
6288  {
6289  // set values of tag
6290  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6291  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
6292  conflicts, icon, xmlTag, TL("PersonTrip: taz->trainStop"), parents, color);
6293  // set values of attributes
6294  fillPlanParentAttributes(currentTag);
6296  }
6298  {
6299  // set values of tag
6300  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6301  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
6302  conflicts, icon, xmlTag, TL("PersonTrip: taz->containerStop"), parents, color);
6303  // set values of attributes
6304  fillPlanParentAttributes(currentTag);
6306  }
6308  {
6309  // set values of tag
6310  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6311  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
6312  conflicts, icon, xmlTag, TL("PersonTrip: taz->chargingStation"), parents, color);
6313  // set values of attributes
6314  fillPlanParentAttributes(currentTag);
6316  }
6318  {
6319  // set values of tag
6320  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6321  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
6322  conflicts, icon, xmlTag, TL("PersonTrip: taz->parkingArea"), parents, color);
6323  // set values of attributes
6324  fillPlanParentAttributes(currentTag);
6326  }
6327  // from junction
6328  currentTag = GNE_TAG_PERSONTRIP_JUNCTION_EDGE;
6329  {
6330  // set values of tag
6331  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6332  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_EDGE,
6333  conflicts, icon, xmlTag, TL("PersonTrip: junction->edge"), parents, color);
6334  // set values of attributes
6335  fillPlanParentAttributes(currentTag);
6337  }
6338  currentTag = GNE_TAG_PERSONTRIP_JUNCTION_TAZ;
6339  {
6340  // set values of tag
6341  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6342  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TAZ,
6343  conflicts, icon, xmlTag, TL("PersonTrip: junction->taz"), parents, color);
6344  // set values of attributes
6345  fillPlanParentAttributes(currentTag);
6347  }
6349  {
6350  // set values of tag
6351  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6352  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
6353  conflicts, icon, xmlTag, TL("PersonTrip: junction->junction"), parents, color);
6354  // set values of attributes
6355  fillPlanParentAttributes(currentTag);
6357  }
6359  {
6360  // set values of tag
6361  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6362  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
6363  conflicts, icon, xmlTag, TL("PersonTrip: junction->busStop"), parents, color);
6364  // set values of attributes
6365  fillPlanParentAttributes(currentTag);
6367  }
6369  {
6370  // set values of tag
6371  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6372  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
6373  conflicts, icon, xmlTag, TL("PersonTrip: junction->trainStop"), parents, color);
6374  // set values of attributes
6375  fillPlanParentAttributes(currentTag);
6377  }
6379  {
6380  // set values of tag
6381  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6382  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
6383  conflicts, icon, xmlTag, TL("PersonTrip: junction->containerStop"), parents, color);
6384  // set values of attributes
6385  fillPlanParentAttributes(currentTag);
6387  }
6389  {
6390  // set values of tag
6391  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6392  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
6393  conflicts, icon, xmlTag, TL("PersonTrip: junction->chargingStation"), parents, color);
6394  // set values of attributes
6395  fillPlanParentAttributes(currentTag);
6397  }
6399  {
6400  // set values of tag
6401  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6402  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
6403  conflicts, icon, xmlTag, TL("PersonTrip: junction->parkingArea"), parents, color);
6404  // set values of attributes
6405  fillPlanParentAttributes(currentTag);
6407  }
6408  // from busStop
6409  currentTag = GNE_TAG_PERSONTRIP_BUSSTOP_EDGE;
6410  {
6411  // set values of tag
6412  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6413  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
6414  conflicts, icon, xmlTag, TL("PersonTrip: busStop->edge"), parents, color);
6415  // set values of attributes
6416  fillPlanParentAttributes(currentTag);
6418  }
6419  currentTag = GNE_TAG_PERSONTRIP_BUSSTOP_TAZ;
6420  {
6421  // set values of tag
6422  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6423  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
6424  conflicts, icon, xmlTag, TL("PersonTrip: busStop->taz"), parents, color);
6425  // set values of attributes
6426  fillPlanParentAttributes(currentTag);
6428  }
6430  {
6431  // set values of tag
6432  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6433  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
6434  conflicts, icon, xmlTag, TL("PersonTrip: busStop->junction"), parents, color);
6435  // set values of attributes
6436  fillPlanParentAttributes(currentTag);
6438  }
6440  {
6441  // set values of tag
6442  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6443  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
6444  conflicts, icon, xmlTag, TL("PersonTrip: busStop->busStop"), parents, color);
6445  // set values of attributes
6446  fillPlanParentAttributes(currentTag);
6448  }
6450  {
6451  // set values of tag
6452  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6453  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
6454  conflicts, icon, xmlTag, TL("PersonTrip: busStop->trainStop"), parents, color);
6455  // set values of attributes
6456  fillPlanParentAttributes(currentTag);
6458  }
6460  {
6461  // set values of tag
6462  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6463  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
6464  conflicts, icon, xmlTag, TL("PersonTrip: busStop->containerStop"), parents, color);
6465  // set values of attributes
6466  fillPlanParentAttributes(currentTag);
6468  }
6470  {
6471  // set values of tag
6472  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6473  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
6474  conflicts, icon, xmlTag, TL("PersonTrip: busStop->chargingStation"), parents, color);
6475  // set values of attributes
6476  fillPlanParentAttributes(currentTag);
6478  }
6480  {
6481  // set values of tag
6482  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6483  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
6484  conflicts, icon, xmlTag, TL("PersonTrip: busStop->parkingArea"), parents, color);
6485  // set values of attributes
6486  fillPlanParentAttributes(currentTag);
6488  }
6489  // from trainStop
6490  currentTag = GNE_TAG_PERSONTRIP_TRAINSTOP_EDGE;
6491  {
6492  // set values of tag
6493  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6494  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
6495  conflicts, icon, xmlTag, TL("PersonTrip: trainStop->edge"), parents, color);
6496  // set values of attributes
6497  fillPlanParentAttributes(currentTag);
6499  }
6500  currentTag = GNE_TAG_PERSONTRIP_TRAINSTOP_TAZ;
6501  {
6502  // set values of tag
6503  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6504  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
6505  conflicts, icon, xmlTag, TL("PersonTrip: trainStop->taz"), parents, color);
6506  // set values of attributes
6507  fillPlanParentAttributes(currentTag);
6509  }
6511  {
6512  // set values of tag
6513  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6514  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
6515  conflicts, icon, xmlTag, TL("PersonTrip: trainStop->junction"), parents, color);
6516  // set values of attributes
6517  fillPlanParentAttributes(currentTag);
6519  }
6521  {
6522  // set values of tag
6523  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6524  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
6525  conflicts, icon, xmlTag, TL("PersonTrip: trainStop->busStop"), parents, color);
6526  // set values of attributes
6527  fillPlanParentAttributes(currentTag);
6529  }
6531  {
6532  // set values of tag
6533  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6534  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
6535  conflicts, icon, xmlTag, TL("PersonTrip: trainStop->trainStop"), parents, color);
6536  // set values of attributes
6537  fillPlanParentAttributes(currentTag);
6539  }
6541  {
6542  // set values of tag
6543  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6544  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
6545  conflicts, icon, xmlTag, TL("PersonTrip: trainStop->containerStop"), parents, color);
6546  // set values of attributes
6547  fillPlanParentAttributes(currentTag);
6549  }
6551  {
6552  // set values of tag
6553  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6554  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
6555  conflicts, icon, xmlTag, TL("PersonTrip: trainStop->chargingStation"), parents, color);
6556  // set values of attributes
6557  fillPlanParentAttributes(currentTag);
6559  }
6561  {
6562  // set values of tag
6563  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6564  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
6565  conflicts, icon, xmlTag, TL("PersonTrip: trainStop->parkingArea"), parents, color);
6566  // set values of attributes
6567  fillPlanParentAttributes(currentTag);
6569  }
6570  // from containerStop
6572  {
6573  // set values of tag
6574  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6575  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
6576  conflicts, icon, xmlTag, TL("PersonTrip: containerStop->edge"), parents, color);
6577  // set values of attributes
6578  fillPlanParentAttributes(currentTag);
6580  }
6582  {
6583  // set values of tag
6584  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6585  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
6586  conflicts, icon, xmlTag, TL("PersonTrip: containerStop->taz"), parents, color);
6587  // set values of attributes
6588  fillPlanParentAttributes(currentTag);
6590  }
6592  {
6593  // set values of tag
6594  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6595  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
6596  conflicts, icon, xmlTag, TL("PersonTrip: containerStop->junction"), parents, color);
6597  // set values of attributes
6598  fillPlanParentAttributes(currentTag);
6600  }
6602  {
6603  // set values of tag
6604  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6605  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
6606  conflicts, icon, xmlTag, TL("PersonTrip: containerStop->busStop"), parents, color);
6607  // set values of attributes
6608  fillPlanParentAttributes(currentTag);
6610  }
6612  {
6613  // set values of tag
6614  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6615  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
6616  conflicts, icon, xmlTag, TL("PersonTrip: containerStop->trainStop"), parents, color);
6617  // set values of attributes
6618  fillPlanParentAttributes(currentTag);
6620  }
6622  {
6623  // set values of tag
6624  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6625  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
6626  conflicts, icon, xmlTag, TL("PersonTrip: containerStop->containerStop"), parents, color);
6627  // set values of attributes
6628  fillPlanParentAttributes(currentTag);
6630  }
6632  {
6633  // set values of tag
6634  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6635  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
6636  conflicts, icon, xmlTag, TL("PersonTrip: containerStop->chargingStation"), parents, color);
6637  // set values of attributes
6638  fillPlanParentAttributes(currentTag);
6640  }
6642  {
6643  // set values of tag
6644  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6645  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
6646  conflicts, icon, xmlTag, TL("PersonTrip: containerStop->parkingArea"), parents, color);
6647  // set values of attributes
6648  fillPlanParentAttributes(currentTag);
6650  }
6651  // from chargingStation
6653  {
6654  // set values of tag
6655  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6656  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_EDGE,
6657  conflicts, icon, xmlTag, TL("PersonTrip: chargingStation->edge"), parents, color);
6658  // set values of attributes
6659  fillPlanParentAttributes(currentTag);
6661  }
6663  {
6664  // set values of tag
6665  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6666  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_TAZ,
6667  conflicts, icon, xmlTag, TL("PersonTrip: chargingStation->taz"), parents, color);
6668  // set values of attributes
6669  fillPlanParentAttributes(currentTag);
6671  }
6673  {
6674  // set values of tag
6675  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6676  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
6677  conflicts, icon, xmlTag, TL("PersonTrip: chargingStation->junction"), parents, color);
6678  // set values of attributes
6679  fillPlanParentAttributes(currentTag);
6681  }
6683  {
6684  // set values of tag
6685  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6686  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
6687  conflicts, icon, xmlTag, TL("PersonTrip: chargingStation->busStop"), parents, color);
6688  // set values of attributes
6689  fillPlanParentAttributes(currentTag);
6691  }
6693  {
6694  // set values of tag
6695  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6696  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
6697  conflicts, icon, xmlTag, TL("PersonTrip: chargingStation->trainStop"), parents, color);
6698  // set values of attributes
6699  fillPlanParentAttributes(currentTag);
6701  }
6703  {
6704  // set values of tag
6705  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6706  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
6707  conflicts, icon, xmlTag, TL("PersonTrip: chargingStation->containerStop"), parents, color);
6708  // set values of attributes
6709  fillPlanParentAttributes(currentTag);
6711  }
6713  {
6714  // set values of tag
6715  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6716  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
6717  conflicts, icon, xmlTag, TL("PersonTrip: chargingStation->chargingStation"), parents, color);
6718  // set values of attributes
6719  fillPlanParentAttributes(currentTag);
6721  }
6723  {
6724  // set values of tag
6725  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6726  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
6727  conflicts, icon, xmlTag, TL("PersonTrip: chargingStation->parkingArea"), parents, color);
6728  // set values of attributes
6729  fillPlanParentAttributes(currentTag);
6731  }
6732  // from parkingArea
6734  {
6735  // set values of tag
6736  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6737  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_EDGE,
6738  conflicts, icon, xmlTag, TL("PersonTrip: parkingArea->edge"), parents, color);
6739  // set values of attributes
6740  fillPlanParentAttributes(currentTag);
6742  }
6744  {
6745  // set values of tag
6746  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6747  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_TAZ,
6748  conflicts, icon, xmlTag, TL("PersonTrip: parkingArea->taz"), parents, color);
6749  // set values of attributes
6750  fillPlanParentAttributes(currentTag);
6752  }
6754  {
6755  // set values of tag
6756  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6757  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
6758  conflicts, icon, xmlTag, TL("PersonTrip: parkingArea->junction"), parents, color);
6759  // set values of attributes
6760  fillPlanParentAttributes(currentTag);
6762  }
6764  {
6765  // set values of tag
6766  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6767  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
6768  conflicts, icon, xmlTag, TL("PersonTrip: parkingArea->busStop"), parents, color);
6769  // set values of attributes
6770  fillPlanParentAttributes(currentTag);
6772  }
6774  {
6775  // set values of tag
6776  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6777  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
6778  conflicts, icon, xmlTag, TL("PersonTrip: parkingArea->trainStop"), parents, color);
6779  // set values of attributes
6780  fillPlanParentAttributes(currentTag);
6782  }
6784  {
6785  // set values of tag
6786  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6787  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
6788  conflicts, icon, xmlTag, TL("PersonTrip: parkingArea->containerStop"), parents, color);
6789  // set values of attributes
6790  fillPlanParentAttributes(currentTag);
6792  }
6794  {
6795  // set values of tag
6796  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6797  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
6798  conflicts, icon, xmlTag, TL("PersonTrip: parkingArea->chargingStation"), parents, color);
6799  // set values of attributes
6800  fillPlanParentAttributes(currentTag);
6802  }
6804  {
6805  // set values of tag
6806  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6807  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
6808  conflicts, icon, xmlTag, TL("PersonTrip: parkingArea->parkingArea"), parents, color);
6809  // set values of attributes
6810  fillPlanParentAttributes(currentTag);
6812  }
6813 }
6814 
6815 
6816 void
6818  // declare empty GNEAttributeProperties
6819  GNEAttributeProperties attrProperty;
6820  // declare common tag types and properties
6821  const int tagType = GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::WALK;
6822  const int tagProperty = GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS;
6823  const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
6824  const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
6825  const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
6826  const unsigned int color = FXRGBA(240, 255, 205, 255);
6827  const GUIIcon icon = GUIIcon::WALK_EDGES;
6828  const SumoXMLTag xmlTag = SUMO_TAG_WALK;
6829  // fill merged tag
6830  myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
6831  0,
6832  conflicts, icon, xmlTag, TL("Walk"), parents, color);
6833  // set values of attributes
6835  // fill tags
6836  SumoXMLTag currentTag = GNE_TAG_WALK_EDGES;
6837  {
6838  // set values of tag
6839  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6840  GNETagProperties::TagParents::PLAN_CONSECUTIVE_EDGES,
6841  conflicts, icon, xmlTag, TL("Walk: edges"), parents, color);
6842  // set values of attributes
6843  fillPlanParentAttributes(currentTag);
6845  }
6846  currentTag = GNE_TAG_WALK_ROUTE;
6847  {
6848  // set values of tag
6849  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6850  GNETagProperties::TagParents::PLAN_ROUTE,
6851  conflicts, icon, xmlTag, TL("Walk: route"), parents, color);
6852  // set values of attributes
6853  fillPlanParentAttributes(currentTag);
6855  }
6856  // from edge
6857  currentTag = GNE_TAG_WALK_EDGE_EDGE;
6858  {
6859  // set values of tag
6860  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6861  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_EDGE,
6862  conflicts, icon, xmlTag, TL("Walk: edge->edge"), parents, color);
6863  // set values of attributes
6864  fillPlanParentAttributes(currentTag);
6866  }
6867  currentTag = GNE_TAG_WALK_EDGE_TAZ;
6868  {
6869  // set values of tag
6870  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6871  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TAZ,
6872  conflicts, icon, xmlTag, TL("Walk: edge->taz"), parents, color);
6873  // set values of attributes
6874  fillPlanParentAttributes(currentTag);
6876  }
6877  currentTag = GNE_TAG_WALK_EDGE_JUNCTION;
6878  {
6879  // set values of tag
6880  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6881  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
6882  conflicts, icon, xmlTag, TL("Walk: edge->junction"), parents, color);
6883  // set values of attributes
6884  fillPlanParentAttributes(currentTag);
6886  }
6887  currentTag = GNE_TAG_WALK_EDGE_BUSSTOP;
6888  {
6889  // set values of tag
6890  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6891  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
6892  conflicts, icon, xmlTag, TL("Walk: edge->busStop"), parents, color);
6893  // set values of attributes
6894  fillPlanParentAttributes(currentTag);
6896  }
6897  currentTag = GNE_TAG_WALK_EDGE_TRAINSTOP;
6898  {
6899  // set values of tag
6900  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6901  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
6902  conflicts, icon, xmlTag, TL("Walk: edge->trainStop"), parents, color);
6903  // set values of attributes
6904  fillPlanParentAttributes(currentTag);
6906  }
6907  currentTag = GNE_TAG_WALK_EDGE_CONTAINERSTOP;
6908  {
6909  // set values of tag
6910  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6911  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
6912  conflicts, icon, xmlTag, TL("Walk: edge->containerStop"), parents, color);
6913  // set values of attributes
6914  fillPlanParentAttributes(currentTag);
6916  }
6917  currentTag = GNE_TAG_WALK_EDGE_CHARGINGSTATION;
6918  {
6919  // set values of tag
6920  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6921  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
6922  conflicts, icon, xmlTag, TL("Walk: edge->chargingStation"), parents, color);
6923  // set values of attributes
6924  fillPlanParentAttributes(currentTag);
6926  }
6927  currentTag = GNE_TAG_WALK_EDGE_PARKINGAREA;
6928  {
6929  // set values of tag
6930  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6931  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
6932  conflicts, icon, xmlTag, TL("Walk: edge->parkingArea"), parents, color);
6933  // set values of attributes
6934  fillPlanParentAttributes(currentTag);
6936  }
6937  // from taz
6938  currentTag = GNE_TAG_WALK_TAZ_EDGE;
6939  {
6940  // set values of tag
6941  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6942  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_EDGE,
6943  conflicts, icon, xmlTag, TL("Walk: taz->taz"), parents, color);
6944  // set values of attributes
6945  fillPlanParentAttributes(currentTag);
6947  }
6948  currentTag = GNE_TAG_WALK_TAZ_TAZ;
6949  {
6950  // set values of tag
6951  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6952  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TAZ,
6953  conflicts, icon, xmlTag, TL("Walk: taz->taz"), parents, color);
6954  // set values of attributes
6955  fillPlanParentAttributes(currentTag);
6957  }
6958  currentTag = GNE_TAG_WALK_TAZ_JUNCTION;
6959  {
6960  // set values of tag
6961  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6962  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
6963  conflicts, icon, xmlTag, TL("Walk: taz->junction"), parents, color);
6964  // set values of attributes
6965  fillPlanParentAttributes(currentTag);
6967  }
6968  currentTag = GNE_TAG_WALK_TAZ_BUSSTOP;
6969  {
6970  // set values of tag
6971  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6972  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
6973  conflicts, icon, xmlTag, TL("Walk: taz->busStop"), parents, color);
6974  // set values of attributes
6975  fillPlanParentAttributes(currentTag);
6977  }
6978  currentTag = GNE_TAG_WALK_TAZ_TRAINSTOP;
6979  {
6980  // set values of tag
6981  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6982  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
6983  conflicts, icon, xmlTag, TL("Walk: taz->trainStop"), parents, color);
6984  // set values of attributes
6985  fillPlanParentAttributes(currentTag);
6987  }
6988  currentTag = GNE_TAG_WALK_TAZ_CONTAINERSTOP;
6989  {
6990  // set values of tag
6991  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6992  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
6993  conflicts, icon, xmlTag, TL("Walk: taz->containerStop"), parents, color);
6994  // set values of attributes
6995  fillPlanParentAttributes(currentTag);
6997  }
6998  currentTag = GNE_TAG_WALK_TAZ_CHARGINGSTATION;
6999  {
7000  // set values of tag
7001  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7002  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7003  conflicts, icon, xmlTag, TL("Walk: taz->chargingStation"), parents, color);
7004  // set values of attributes
7005  fillPlanParentAttributes(currentTag);
7007  }
7008  currentTag = GNE_TAG_WALK_TAZ_PARKINGAREA;
7009  {
7010  // set values of tag
7011  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7012  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7013  conflicts, icon, xmlTag, TL("Walk: taz->parkingArea"), parents, color);
7014  // set values of attributes
7015  fillPlanParentAttributes(currentTag);
7017  }
7018  // from junction
7019  currentTag = GNE_TAG_WALK_JUNCTION_EDGE;
7020  {
7021  // set values of tag
7022  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7023  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_EDGE,
7024  conflicts, icon, xmlTag, TL("Walk: junction->edge"), parents, color);
7025  // set values of attributes
7026  fillPlanParentAttributes(currentTag);
7028  }
7029  currentTag = GNE_TAG_WALK_JUNCTION_TAZ;
7030  {
7031  // set values of tag
7032  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7033  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TAZ,
7034  conflicts, icon, xmlTag, TL("Walk: junction->taz"), parents, color);
7035  // set values of attributes
7036  fillPlanParentAttributes(currentTag);
7038  }
7039  currentTag = GNE_TAG_WALK_JUNCTION_JUNCTION;
7040  {
7041  // set values of tag
7042  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7043  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7044  conflicts, icon, xmlTag, TL("Walk: junction->junction"), parents, color);
7045  // set values of attributes
7046  fillPlanParentAttributes(currentTag);
7048  }
7049  currentTag = GNE_TAG_WALK_JUNCTION_BUSSTOP;
7050  {
7051  // set values of tag
7052  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7053  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7054  conflicts, icon, xmlTag, TL("Walk: junction->busStop"), parents, color);
7055  // set values of attributes
7056  fillPlanParentAttributes(currentTag);
7058  }
7059  currentTag = GNE_TAG_WALK_JUNCTION_TRAINSTOP;
7060  {
7061  // set values of tag
7062  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7063  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7064  conflicts, icon, xmlTag, TL("Walk: junction->trainStop"), parents, color);
7065  // set values of attributes
7066  fillPlanParentAttributes(currentTag);
7068  }
7070  {
7071  // set values of tag
7072  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7073  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7074  conflicts, icon, xmlTag, TL("Walk: junction->containerStop"), parents, color);
7075  // set values of attributes
7076  fillPlanParentAttributes(currentTag);
7078  }
7080  {
7081  // set values of tag
7082  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7083  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7084  conflicts, icon, xmlTag, TL("Walk: junction->chargingStation"), parents, color);
7085  // set values of attributes
7086  fillPlanParentAttributes(currentTag);
7088  }
7089  currentTag = GNE_TAG_WALK_JUNCTION_PARKINGAREA;
7090  {
7091  // set values of tag
7092  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7093  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7094  conflicts, icon, xmlTag, TL("Walk: junction->parkingArea"), parents, color);
7095  // set values of attributes
7096  fillPlanParentAttributes(currentTag);
7098  }
7099  // from busStop
7100  currentTag = GNE_TAG_WALK_BUSSTOP_EDGE;
7101  {
7102  // set values of tag
7103  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7104  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
7105  conflicts, icon, xmlTag, TL("Walk: busStop->edge"), parents, color);
7106  // set values of attributes
7107  fillPlanParentAttributes(currentTag);
7109  }
7110  currentTag = GNE_TAG_WALK_BUSSTOP_TAZ;
7111  {
7112  // set values of tag
7113  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7114  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
7115  conflicts, icon, xmlTag, TL("Walk: busStop->taz"), parents, color);
7116  // set values of attributes
7117  fillPlanParentAttributes(currentTag);
7119  }
7120  currentTag = GNE_TAG_WALK_BUSSTOP_JUNCTION;
7121  {
7122  // set values of tag
7123  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7124  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7125  conflicts, icon, xmlTag, TL("Walk: busStop->junction"), parents, color);
7126  // set values of attributes
7127  fillPlanParentAttributes(currentTag);
7129  }
7130  currentTag = GNE_TAG_WALK_BUSSTOP_BUSSTOP;
7131  {
7132  // set values of tag
7133  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7134  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7135  conflicts, icon, xmlTag, TL("Walk: busStop->busStop"), parents, color);
7136  // set values of attributes
7137  fillPlanParentAttributes(currentTag);
7139  }
7140  currentTag = GNE_TAG_WALK_BUSSTOP_TRAINSTOP;
7141  {
7142  // set values of tag
7143  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7144  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7145  conflicts, icon, xmlTag, TL("Walk: busStop->trainStop"), parents, color);
7146  // set values of attributes
7147  fillPlanParentAttributes(currentTag);
7149  }
7151  {
7152  // set values of tag
7153  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7154  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7155  conflicts, icon, xmlTag, TL("Walk: busStop->containerStop"), parents, color);
7156  // set values of attributes
7157  fillPlanParentAttributes(currentTag);
7159  }
7161  {
7162  // set values of tag
7163  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7164  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7165  conflicts, icon, xmlTag, TL("Walk: busStop->chargingStation"), parents, color);
7166  // set values of attributes
7167  fillPlanParentAttributes(currentTag);
7169  }
7170  currentTag = GNE_TAG_WALK_BUSSTOP_PARKINGAREA;
7171  {
7172  // set values of tag
7173  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7174  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7175  conflicts, icon, xmlTag, TL("Walk: busStop->parkingArea"), parents, color);
7176  // set values of attributes
7177  fillPlanParentAttributes(currentTag);
7179  }
7180  // from trainStop
7181  currentTag = GNE_TAG_WALK_TRAINSTOP_EDGE;
7182  {
7183  // set values of tag
7184  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7185  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
7186  conflicts, icon, xmlTag, TL("Walk: trainStop->edge"), parents, color);
7187  // set values of attributes
7188  fillPlanParentAttributes(currentTag);
7190  }
7191  currentTag = GNE_TAG_WALK_TRAINSTOP_TAZ;
7192  {
7193  // set values of tag
7194  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7195  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
7196  conflicts, icon, xmlTag, TL("Walk: trainStop->taz"), parents, color);
7197  // set values of attributes
7198  fillPlanParentAttributes(currentTag);
7200  }
7201  currentTag = GNE_TAG_WALK_TRAINSTOP_JUNCTION;
7202  {
7203  // set values of tag
7204  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7205  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7206  conflicts, icon, xmlTag, TL("Walk: trainStop->junction"), parents, color);
7207  // set values of attributes
7208  fillPlanParentAttributes(currentTag);
7210  }
7211  currentTag = GNE_TAG_WALK_TRAINSTOP_BUSSTOP;
7212  {
7213  // set values of tag
7214  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7215  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7216  conflicts, icon, xmlTag, TL("Walk: trainStop->busStop"), parents, color);
7217  // set values of attributes
7218  fillPlanParentAttributes(currentTag);
7220  }
7221  currentTag = GNE_TAG_WALK_TRAINSTOP_TRAINSTOP;
7222  {
7223  // set values of tag
7224  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7225  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7226  conflicts, icon, xmlTag, TL("Walk: trainStop->trainStop"), parents, color);
7227  // set values of attributes
7228  fillPlanParentAttributes(currentTag);
7230  }
7232  {
7233  // set values of tag
7234  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7235  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7236  conflicts, icon, xmlTag, TL("Walk: trainStop->containerStop"), parents, color);
7237  // set values of attributes
7238  fillPlanParentAttributes(currentTag);
7240  }
7242  {
7243  // set values of tag
7244  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7245  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7246  conflicts, icon, xmlTag, TL("Walk: trainStop->chargingStation"), parents, color);
7247  // set values of attributes
7248  fillPlanParentAttributes(currentTag);
7250  }
7252  {
7253  // set values of tag
7254  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7255  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7256  conflicts, icon, xmlTag, TL("Walk: trainStop->parkingArea"), parents, color);
7257  // set values of attributes
7258  fillPlanParentAttributes(currentTag);
7260  }
7261  // from containerStop
7262  currentTag = GNE_TAG_WALK_CONTAINERSTOP_EDGE;
7263  {
7264  // set values of tag
7265  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7266  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
7267  conflicts, icon, xmlTag, TL("Walk: containerStop->edge"), parents, color);
7268  // set values of attributes
7269  fillPlanParentAttributes(currentTag);
7271  }
7272  currentTag = GNE_TAG_WALK_CONTAINERSTOP_TAZ;
7273  {
7274  // set values of tag
7275  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7276  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
7277  conflicts, icon, xmlTag, TL("Walk: containerStop->taz"), parents, color);
7278  // set values of attributes
7279  fillPlanParentAttributes(currentTag);
7281  }
7283  {
7284  // set values of tag
7285  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7286  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7287  conflicts, icon, xmlTag, TL("Walk: containerStop->junction"), parents, color);
7288  // set values of attributes
7289  fillPlanParentAttributes(currentTag);
7291  }
7293  {
7294  // set values of tag
7295  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7296  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7297  conflicts, icon, xmlTag, TL("Walk: containerStop->busStop"), parents, color);
7298  // set values of attributes
7299  fillPlanParentAttributes(currentTag);
7301  }
7303  {
7304  // set values of tag
7305  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7306  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7307  conflicts, icon, xmlTag, TL("Walk: containerStop->trainStop"), parents, color);
7308  // set values of attributes
7309  fillPlanParentAttributes(currentTag);
7311  }
7313  {
7314  // set values of tag
7315  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7316  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7317  conflicts, icon, xmlTag, TL("Walk: containerStop->containerStop"), parents, color);
7318  // set values of attributes
7319  fillPlanParentAttributes(currentTag);
7321  }
7323  {
7324  // set values of tag
7325  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7326  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7327  conflicts, icon, xmlTag, TL("Walk: containerStop->chargingStation"), parents, color);
7328  // set values of attributes
7329  fillPlanParentAttributes(currentTag);
7331  }
7333  {
7334  // set values of tag
7335  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7336  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7337  conflicts, icon, xmlTag, TL("Walk: containerStop->parkingArea"), parents, color);
7338  // set values of attributes
7339  fillPlanParentAttributes(currentTag);
7341  }
7342  // from chargingStation
7343  currentTag = GNE_TAG_WALK_CHARGINGSTATION_EDGE;
7344  {
7345  // set values of tag
7346  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7347  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_EDGE,
7348  conflicts, icon, xmlTag, TL("Walk: chargingStation->edge"), parents, color);
7349  // set values of attributes
7350  fillPlanParentAttributes(currentTag);
7352  }
7353  currentTag = GNE_TAG_WALK_CHARGINGSTATION_TAZ;
7354  {
7355  // set values of tag
7356  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7357  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_TAZ,
7358  conflicts, icon, xmlTag, TL("Walk: chargingStation->taz"), parents, color);
7359  // set values of attributes
7360  fillPlanParentAttributes(currentTag);
7362  }
7364  {
7365  // set values of tag
7366  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7367  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7368  conflicts, icon, xmlTag, TL("Walk: chargingStation->junction"), parents, color);
7369  // set values of attributes
7370  fillPlanParentAttributes(currentTag);
7372  }
7374  {
7375  // set values of tag
7376  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7377  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7378  conflicts, icon, xmlTag, TL("Walk: chargingStation->busStop"), parents, color);
7379  // set values of attributes
7380  fillPlanParentAttributes(currentTag);
7382  }
7384  {
7385  // set values of tag
7386  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7387  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7388  conflicts, icon, xmlTag, TL("Walk: chargingStation->trainStop"), parents, color);
7389  // set values of attributes
7390  fillPlanParentAttributes(currentTag);
7392  }
7394  {
7395  // set values of tag
7396  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7397  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7398  conflicts, icon, xmlTag, TL("Walk: chargingStation->containerStop"), parents, color);
7399  // set values of attributes
7400  fillPlanParentAttributes(currentTag);
7402  }
7404  {
7405  // set values of tag
7406  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7407  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7408  conflicts, icon, xmlTag, TL("Walk: chargingStation->chargingStation"), parents, color);
7409  // set values of attributes
7410  fillPlanParentAttributes(currentTag);
7412  }
7414  {
7415  // set values of tag
7416  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7417  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7418  conflicts, icon, xmlTag, TL("Walk: chargingStation->parkingArea"), parents, color);
7419  // set values of attributes
7420  fillPlanParentAttributes(currentTag);
7422  }
7423  // from parkingArea
7424  currentTag = GNE_TAG_WALK_PARKINGAREA_EDGE;
7425  {
7426  // set values of tag
7427  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7428  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_EDGE,
7429  conflicts, icon, xmlTag, TL("Walk: parkingArea->edge"), parents, color);
7430  // set values of attributes
7431  fillPlanParentAttributes(currentTag);
7433  }
7434  currentTag = GNE_TAG_WALK_PARKINGAREA_TAZ;
7435  {
7436  // set values of tag
7437  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7438  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_TAZ,
7439  conflicts, icon, xmlTag, TL("Walk: parkingArea->taz"), parents, color);
7440  // set values of attributes
7441  fillPlanParentAttributes(currentTag);
7443  }
7444  currentTag = GNE_TAG_WALK_PARKINGAREA_JUNCTION;
7445  {
7446  // set values of tag
7447  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7448  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7449  conflicts, icon, xmlTag, TL("Walk: parkingArea->junction"), parents, color);
7450  // set values of attributes
7451  fillPlanParentAttributes(currentTag);
7453  }
7454  currentTag = GNE_TAG_WALK_PARKINGAREA_BUSSTOP;
7455  {
7456  // set values of tag
7457  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7458  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7459  conflicts, icon, xmlTag, TL("Walk: parkingArea->busStop"), parents, color);
7460  // set values of attributes
7461  fillPlanParentAttributes(currentTag);
7463  }
7465  {
7466  // set values of tag
7467  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7468  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7469  conflicts, icon, xmlTag, TL("Walk: parkingArea->trainStop"), parents, color);
7470  // set values of attributes
7471  fillPlanParentAttributes(currentTag);
7473  }
7475  {
7476  // set values of tag
7477  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7478  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7479  conflicts, icon, xmlTag, TL("Walk: parkingArea->containerStop"), parents, color);
7480  // set values of attributes
7481  fillPlanParentAttributes(currentTag);
7483  }
7485  {
7486  // set values of tag
7487  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7488  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7489  conflicts, icon, xmlTag, TL("Walk: parkingArea->chargingStation"), parents, color);
7490  // set values of attributes
7491  fillPlanParentAttributes(currentTag);
7493  }
7495  {
7496  // set values of tag
7497  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7498  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7499  conflicts, icon, xmlTag, TL("Walk: parkingArea->parkingArea"), parents, color);
7500  // set values of attributes
7501  fillPlanParentAttributes(currentTag);
7503  }
7504 }
7505 
7506 
7507 void
7509  // declare empty GNEAttributeProperties
7510  GNEAttributeProperties attrProperty;
7511  // declare common tag types and properties
7512  const int tagType = GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::RIDE;
7513  const int tagProperty = GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS;
7514  const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
7515  const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
7516  const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
7517  const unsigned int color = FXRGBA(253, 255, 206, 255);
7518  const GUIIcon icon = GUIIcon::RIDE_EDGE;
7519  const SumoXMLTag xmlTag = SUMO_TAG_RIDE;
7520  // fill merged tag
7521  myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
7522  0,
7523  conflicts, icon, xmlTag, TL("PersonTrip"), parents, color);
7524  // set values of attributes
7526  // from edge
7527  SumoXMLTag currentTag = GNE_TAG_RIDE_EDGE_EDGE;
7528  {
7529  // set values of tag
7530  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7531  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_EDGE,
7532  conflicts, icon, xmlTag, TL("Ride: edge->edge"), parents, color);
7533  // set values of attributes
7534  fillPlanParentAttributes(currentTag);
7536  }
7537  currentTag = GNE_TAG_RIDE_EDGE_TAZ;
7538  {
7539  // set values of tag
7540  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7541  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TAZ,
7542  conflicts, icon, xmlTag, TL("Ride: edge->taz"), parents, color);
7543  // set values of attributes
7544  fillPlanParentAttributes(currentTag);
7546  }
7547  currentTag = GNE_TAG_RIDE_EDGE_JUNCTION;
7548  {
7549  // set values of tag
7550  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7551  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7552  conflicts, icon, xmlTag, TL("Ride: edge->junction"), parents, color);
7553  // set values of attributes
7554  fillPlanParentAttributes(currentTag);
7556  }
7557  currentTag = GNE_TAG_RIDE_EDGE_BUSSTOP;
7558  {
7559  // set values of tag
7560  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7561  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7562  conflicts, icon, xmlTag, TL("Ride: edge->busStop"), parents, color);
7563  // set values of attributes
7564  fillPlanParentAttributes(currentTag);
7566  }
7567  currentTag = GNE_TAG_RIDE_EDGE_TRAINSTOP;
7568  {
7569  // set values of tag
7570  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7571  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7572  conflicts, icon, xmlTag, TL("Ride: edge->trainStop"), parents, color);
7573  // set values of attributes
7574  fillPlanParentAttributes(currentTag);
7576  }
7577  currentTag = GNE_TAG_RIDE_EDGE_CONTAINERSTOP;
7578  {
7579  // set values of tag
7580  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7581  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7582  conflicts, icon, xmlTag, TL("Ride: edge->containerStop"), parents, color);
7583  // set values of attributes
7584  fillPlanParentAttributes(currentTag);
7586  }
7587  currentTag = GNE_TAG_RIDE_EDGE_CHARGINGSTATION;
7588  {
7589  // set values of tag
7590  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7591  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7592  conflicts, icon, xmlTag, TL("Ride: edge->chargingStation"), parents, color);
7593  // set values of attributes
7594  fillPlanParentAttributes(currentTag);
7596  }
7597  currentTag = GNE_TAG_RIDE_EDGE_PARKINGAREA;
7598  {
7599  // set values of tag
7600  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7601  GNETagProperties::TagParents::PLAN_FROM_EDGE | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7602  conflicts, icon, xmlTag, TL("Ride: edge->parkingArea"), parents, color);
7603  // set values of attributes
7604  fillPlanParentAttributes(currentTag);
7606  }
7607  // from taz
7608  currentTag = GNE_TAG_RIDE_TAZ_EDGE;
7609  {
7610  // set values of tag
7611  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7612  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_EDGE,
7613  conflicts, icon, xmlTag, TL("Ride: taz->taz"), parents, color);
7614  // set values of attributes
7615  fillPlanParentAttributes(currentTag);
7617  }
7618  currentTag = GNE_TAG_RIDE_TAZ_TAZ;
7619  {
7620  // set values of tag
7621  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7622  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TAZ,
7623  conflicts, icon, xmlTag, TL("Ride: taz->taz"), parents, color);
7624  // set values of attributes
7625  fillPlanParentAttributes(currentTag);
7627  }
7628  currentTag = GNE_TAG_RIDE_TAZ_JUNCTION;
7629  {
7630  // set values of tag
7631  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7632  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7633  conflicts, icon, xmlTag, TL("Ride: taz->junction"), parents, color);
7634  // set values of attributes
7635  fillPlanParentAttributes(currentTag);
7637  }
7638  currentTag = GNE_TAG_RIDE_TAZ_BUSSTOP;
7639  {
7640  // set values of tag
7641  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7642  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7643  conflicts, icon, xmlTag, TL("Ride: taz->busStop"), parents, color);
7644  // set values of attributes
7645  fillPlanParentAttributes(currentTag);
7647  }
7648  currentTag = GNE_TAG_RIDE_TAZ_TRAINSTOP;
7649  {
7650  // set values of tag
7651  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7652  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7653  conflicts, icon, xmlTag, TL("Ride: taz->trainStop"), parents, color);
7654  // set values of attributes
7655  fillPlanParentAttributes(currentTag);
7657  }
7658  currentTag = GNE_TAG_RIDE_TAZ_CONTAINERSTOP;
7659  {
7660  // set values of tag
7661  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7662  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7663  conflicts, icon, xmlTag, TL("Ride: taz->containerStop"), parents, color);
7664  // set values of attributes
7665  fillPlanParentAttributes(currentTag);
7667  }
7668  currentTag = GNE_TAG_RIDE_TAZ_CHARGINGSTATION;
7669  {
7670  // set values of tag
7671  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7672  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7673  conflicts, icon, xmlTag, TL("Ride: taz->chargingStation"), parents, color);
7674  // set values of attributes
7675  fillPlanParentAttributes(currentTag);
7677  }
7678  currentTag = GNE_TAG_RIDE_TAZ_PARKINGAREA;
7679  {
7680  // set values of tag
7681  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7682  GNETagProperties::TagParents::PLAN_FROM_TAZ | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7683  conflicts, icon, xmlTag, TL("Ride: taz->parkingArea"), parents, color);
7684  // set values of attributes
7685  fillPlanParentAttributes(currentTag);
7687  }
7688  // from junction
7689  currentTag = GNE_TAG_RIDE_JUNCTION_EDGE;
7690  {
7691  // set values of tag
7692  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7693  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_EDGE,
7694  conflicts, icon, xmlTag, TL("Ride: junction->edge"), parents, color);
7695  // set values of attributes
7696  fillPlanParentAttributes(currentTag);
7698  }
7699  currentTag = GNE_TAG_RIDE_JUNCTION_TAZ;
7700  {
7701  // set values of tag
7702  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7703  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TAZ,
7704  conflicts, icon, xmlTag, TL("Ride: junction->taz"), parents, color);
7705  // set values of attributes
7706  fillPlanParentAttributes(currentTag);
7708  }
7709  currentTag = GNE_TAG_RIDE_JUNCTION_JUNCTION;
7710  {
7711  // set values of tag
7712  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7713  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7714  conflicts, icon, xmlTag, TL("Ride: junction->junction"), parents, color);
7715  // set values of attributes
7716  fillPlanParentAttributes(currentTag);
7718  }
7719  currentTag = GNE_TAG_RIDE_JUNCTION_BUSSTOP;
7720  {
7721  // set values of tag
7722  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7723  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7724  conflicts, icon, xmlTag, TL("Ride: junction->busStop"), parents, color);
7725  // set values of attributes
7726  fillPlanParentAttributes(currentTag);
7728  }
7729  currentTag = GNE_TAG_RIDE_JUNCTION_TRAINSTOP;
7730  {
7731  // set values of tag
7732  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7733  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7734  conflicts, icon, xmlTag, TL("Ride: junction->trainStop"), parents, color);
7735  // set values of attributes
7736  fillPlanParentAttributes(currentTag);
7738  }
7740  {
7741  // set values of tag
7742  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7743  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7744  conflicts, icon, xmlTag, TL("Ride: junction->containerStop"), parents, color);
7745  // set values of attributes
7746  fillPlanParentAttributes(currentTag);
7748  }
7750  {
7751  // set values of tag
7752  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7753  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7754  conflicts, icon, xmlTag, TL("Ride: junction->chargingStation"), parents, color);
7755  // set values of attributes
7756  fillPlanParentAttributes(currentTag);
7758  }
7759  currentTag = GNE_TAG_RIDE_JUNCTION_PARKINGAREA;
7760  {
7761  // set values of tag
7762  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7763  GNETagProperties::TagParents::PLAN_FROM_JUNCTION | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7764  conflicts, icon, xmlTag, TL("Ride: junction->parkingArea"), parents, color);
7765  // set values of attributes
7766  fillPlanParentAttributes(currentTag);
7768  }
7769  // from busStop
7770  currentTag = GNE_TAG_RIDE_BUSSTOP_EDGE;
7771  {
7772  // set values of tag
7773  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7774  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
7775  conflicts, icon, xmlTag, TL("Ride: busStop->edge"), parents, color);
7776  // set values of attributes
7777  fillPlanParentAttributes(currentTag);
7779  }
7780  currentTag = GNE_TAG_RIDE_BUSSTOP_TAZ;
7781  {
7782  // set values of tag
7783  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7784  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
7785  conflicts, icon, xmlTag, TL("Ride: busStop->taz"), parents, color);
7786  // set values of attributes
7787  fillPlanParentAttributes(currentTag);
7789  }
7790  currentTag = GNE_TAG_RIDE_BUSSTOP_JUNCTION;
7791  {
7792  // set values of tag
7793  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7794  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7795  conflicts, icon, xmlTag, TL("Ride: busStop->junction"), parents, color);
7796  // set values of attributes
7797  fillPlanParentAttributes(currentTag);
7799  }
7800  currentTag = GNE_TAG_RIDE_BUSSTOP_BUSSTOP;
7801  {
7802  // set values of tag
7803  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7804  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7805  conflicts, icon, xmlTag, TL("Ride: busStop->busStop"), parents, color);
7806  // set values of attributes
7807  fillPlanParentAttributes(currentTag);
7809  }
7810  currentTag = GNE_TAG_RIDE_BUSSTOP_TRAINSTOP;
7811  {
7812  // set values of tag
7813  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7814  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7815  conflicts, icon, xmlTag, TL("Ride: busStop->trainStop"), parents, color);
7816  // set values of attributes
7817  fillPlanParentAttributes(currentTag);
7819  }
7821  {
7822  // set values of tag
7823  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7824  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7825  conflicts, icon, xmlTag, TL("Ride: busStop->containerStop"), parents, color);
7826  // set values of attributes
7827  fillPlanParentAttributes(currentTag);
7829  }
7831  {
7832  // set values of tag
7833  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7834  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7835  conflicts, icon, xmlTag, TL("Ride: busStop->chargingStation"), parents, color);
7836  // set values of attributes
7837  fillPlanParentAttributes(currentTag);
7839  }
7840  currentTag = GNE_TAG_RIDE_BUSSTOP_PARKINGAREA;
7841  {
7842  // set values of tag
7843  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7844  GNETagProperties::TagParents::PLAN_FROM_BUSSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7845  conflicts, icon, xmlTag, TL("Ride: busStop->parkingArea"), parents, color);
7846  // set values of attributes
7847  fillPlanParentAttributes(currentTag);
7849  }
7850  // from trainStop
7851  currentTag = GNE_TAG_RIDE_TRAINSTOP_EDGE;
7852  {
7853  // set values of tag
7854  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7855  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
7856  conflicts, icon, xmlTag, TL("Ride: trainStop->edge"), parents, color);
7857  // set values of attributes
7858  fillPlanParentAttributes(currentTag);
7860  }
7861  currentTag = GNE_TAG_RIDE_TRAINSTOP_TAZ;
7862  {
7863  // set values of tag
7864  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7865  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
7866  conflicts, icon, xmlTag, TL("Ride: trainStop->taz"), parents, color);
7867  // set values of attributes
7868  fillPlanParentAttributes(currentTag);
7870  }
7871  currentTag = GNE_TAG_RIDE_TRAINSTOP_JUNCTION;
7872  {
7873  // set values of tag
7874  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7875  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7876  conflicts, icon, xmlTag, TL("Ride: trainStop->junction"), parents, color);
7877  // set values of attributes
7878  fillPlanParentAttributes(currentTag);
7880  }
7881  currentTag = GNE_TAG_RIDE_TRAINSTOP_BUSSTOP;
7882  {
7883  // set values of tag
7884  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7885  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7886  conflicts, icon, xmlTag, TL("Ride: trainStop->busStop"), parents, color);
7887  // set values of attributes
7888  fillPlanParentAttributes(currentTag);
7890  }
7891  currentTag = GNE_TAG_RIDE_TRAINSTOP_TRAINSTOP;
7892  {
7893  // set values of tag
7894  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7895  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7896  conflicts, icon, xmlTag, TL("Ride: trainStop->trainStop"), parents, color);
7897  // set values of attributes
7898  fillPlanParentAttributes(currentTag);
7900  }
7902  {
7903  // set values of tag
7904  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7905  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7906  conflicts, icon, xmlTag, TL("Ride: trainStop->containerStop"), parents, color);
7907  // set values of attributes
7908  fillPlanParentAttributes(currentTag);
7910  }
7912  {
7913  // set values of tag
7914  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7915  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7916  conflicts, icon, xmlTag, TL("Ride: trainStop->chargingStation"), parents, color);
7917  // set values of attributes
7918  fillPlanParentAttributes(currentTag);
7920  }
7922  {
7923  // set values of tag
7924  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7925  GNETagProperties::TagParents::PLAN_FROM_TRAINSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
7926  conflicts, icon, xmlTag, TL("Ride: trainStop->parkingArea"), parents, color);
7927  // set values of attributes
7928  fillPlanParentAttributes(currentTag);
7930  }
7931  // from containerStop
7932  currentTag = GNE_TAG_RIDE_CONTAINERSTOP_EDGE;
7933  {
7934  // set values of tag
7935  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7936  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_EDGE,
7937  conflicts, icon, xmlTag, TL("Ride: containerStop->edge"), parents, color);
7938  // set values of attributes
7939  fillPlanParentAttributes(currentTag);
7941  }
7942  currentTag = GNE_TAG_RIDE_CONTAINERSTOP_TAZ;
7943  {
7944  // set values of tag
7945  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7946  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_TAZ,
7947  conflicts, icon, xmlTag, TL("Ride: containerStop->taz"), parents, color);
7948  // set values of attributes
7949  fillPlanParentAttributes(currentTag);
7951  }
7953  {
7954  // set values of tag
7955  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7956  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
7957  conflicts, icon, xmlTag, TL("Ride: containerStop->junction"), parents, color);
7958  // set values of attributes
7959  fillPlanParentAttributes(currentTag);
7961  }
7963  {
7964  // set values of tag
7965  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7966  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
7967  conflicts, icon, xmlTag, TL("Ride: containerStop->busStop"), parents, color);
7968  // set values of attributes
7969  fillPlanParentAttributes(currentTag);
7971  }
7973  {
7974  // set values of tag
7975  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7976  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
7977  conflicts, icon, xmlTag, TL("Ride: containerStop->trainStop"), parents, color);
7978  // set values of attributes
7979  fillPlanParentAttributes(currentTag);
7981  }
7983  {
7984  // set values of tag
7985  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7986  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
7987  conflicts, icon, xmlTag, TL("Ride: containerStop->containerStop"), parents, color);
7988  // set values of attributes
7989  fillPlanParentAttributes(currentTag);
7991  }
7993  {
7994  // set values of tag
7995  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7996  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
7997  conflicts, icon, xmlTag, TL("Ride: containerStop->chargingStation"), parents, color);
7998  // set values of attributes
7999  fillPlanParentAttributes(currentTag);
8001  }
8003  {
8004  // set values of tag
8005  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8006  GNETagProperties::TagParents::PLAN_FROM_CONTAINERSTOP | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
8007  conflicts, icon, xmlTag, TL("Ride: containerStop->parkingArea"), parents, color);
8008  // set values of attributes
8009  fillPlanParentAttributes(currentTag);
8011  }
8012  // from chargingStation
8013  currentTag = GNE_TAG_RIDE_CHARGINGSTATION_EDGE;
8014  {
8015  // set values of tag
8016  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8017  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_EDGE,
8018  conflicts, icon, xmlTag, TL("Ride: chargingStation->edge"), parents, color);
8019  // set values of attributes
8020  fillPlanParentAttributes(currentTag);
8022  }
8023  currentTag = GNE_TAG_RIDE_CHARGINGSTATION_TAZ;
8024  {
8025  // set values of tag
8026  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
8027  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_TAZ,
8028  conflicts, icon, xmlTag, TL("Ride: chargingStation->taz"), parents, color);
8029  // set values of attributes
8030  fillPlanParentAttributes(currentTag);
8032  }
8034  {
8035  // set values of tag
8036  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8037  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
8038  conflicts, icon, xmlTag, TL("Ride: chargingStation->junction"), parents, color);
8039  // set values of attributes
8040  fillPlanParentAttributes(currentTag);
8042  }
8044  {
8045  // set values of tag
8046  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8047  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
8048  conflicts, icon, xmlTag, TL("Ride: chargingStation->busStop"), parents, color);
8049  // set values of attributes
8050  fillPlanParentAttributes(currentTag);
8052  }
8054  {
8055  // set values of tag
8056  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8057  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
8058  conflicts, icon, xmlTag, TL("Ride: chargingStation->trainStop"), parents, color);
8059  // set values of attributes
8060  fillPlanParentAttributes(currentTag);
8062  }
8064  {
8065  // set values of tag
8066  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8067  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
8068  conflicts, icon, xmlTag, TL("Ride: chargingStation->containerStop"), parents, color);
8069  // set values of attributes
8070  fillPlanParentAttributes(currentTag);
8072  }
8074  {
8075  // set values of tag
8076  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8077  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
8078  conflicts, icon, xmlTag, TL("Ride: chargingStation->chargingStation"), parents, color);
8079  // set values of attributes
8080  fillPlanParentAttributes(currentTag);
8082  }
8084  {
8085  // set values of tag
8086  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8087  GNETagProperties::TagParents::PLAN_FROM_CHARGINGSTATION | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
8088  conflicts, icon, xmlTag, TL("Ride: chargingStation->parkingArea"), parents, color);
8089  // set values of attributes
8090  fillPlanParentAttributes(currentTag);
8092  }
8093  // from parkingArea
8094  currentTag = GNE_TAG_RIDE_PARKINGAREA_EDGE;
8095  {
8096  // set values of tag
8097  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8098  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_EDGE,
8099  conflicts, icon, xmlTag, TL("Ride: parkingArea->edge"), parents, color);
8100  // set values of attributes
8101  fillPlanParentAttributes(currentTag);
8103  }
8104  currentTag = GNE_TAG_RIDE_PARKINGAREA_TAZ;
8105  {
8106  // set values of tag
8107  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
8108  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_TAZ,
8109  conflicts, icon, xmlTag, TL("Ride: parkingArea->taz"), parents, color);
8110  // set values of attributes
8111  fillPlanParentAttributes(currentTag);
8113  }
8114  currentTag = GNE_TAG_RIDE_PARKINGAREA_JUNCTION;
8115  {
8116  // set values of tag
8117  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8118  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_JUNCTION,
8119  conflicts, icon, xmlTag, TL("Ride: parkingArea->junction"), parents, color);
8120  // set values of attributes
8121  fillPlanParentAttributes(currentTag);
8123  }
8124  currentTag = GNE_TAG_RIDE_PARKINGAREA_BUSSTOP;
8125  {
8126  // set values of tag
8127  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8128  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_BUSSTOP,
8129  conflicts, icon, xmlTag, TL("Ride: parkingArea->busStop"), parents, color);
8130  // set values of attributes
8131  fillPlanParentAttributes(currentTag);
8133  }
8135  {
8136  // set values of tag
8137  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8138  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_TRAINSTOP,
8139  conflicts, icon, xmlTag, TL("Ride: parkingArea->trainStop"), parents, color);
8140  // set values of attributes
8141  fillPlanParentAttributes(currentTag);
8143  }
8145  {
8146  // set values of tag
8147  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8148  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_CONTAINERSTOP,
8149  conflicts, icon, xmlTag, TL("Ride: parkingArea->containerStop"), parents, color);
8150  // set values of attributes
8151  fillPlanParentAttributes(currentTag);
8153  }
8155  {
8156  // set values of tag
8157  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8158  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_CHARGINGSTATION,
8159  conflicts, icon, xmlTag, TL("Ride: parkingArea->chargingStation"), parents, color);
8160  // set values of attributes
8161  fillPlanParentAttributes(currentTag);
8163  }
8165  {
8166  // set values of tag
8167  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8168  GNETagProperties::TagParents::PLAN_FROM_PARKINGAREA | GNETagProperties::TagParents::PLAN_TO_PARKINGAREA,
8169  conflicts, icon, xmlTag, TL("Ride: parkingArea->parkingArea"), parents, color);
8170  // set values of attributes
8171  fillPlanParentAttributes(currentTag);
8173  }
8174 }
8175 
8176 
8177 void
8179  // declare empty GNEAttributeProperties
8180  GNEAttributeProperties attrProperty;
8181  // declare common tag types and properties
8182  const int tagType = GNETagProperties::TagType::DEMANDELEMENT | GNETagProperties::TagType::PERSONPLAN | GNETagProperties::TagType::STOPPERSON;
8183  const int tagProperty = GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOPARAMETERS;
8184  const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
8185  const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
8186  const unsigned int color = FXRGBA(255, 213, 213, 255);
8187  const GUIIcon icon = GUIIcon::STOPELEMENT;
8188  const SumoXMLTag xmlTag = SUMO_TAG_STOP;
8189  // fill merged tag
8191  0,
8192  conflicts, icon, xmlTag, TL("PersonStop"), parents, color);
8193  // set values of attributes
8195  // fill tags
8196  SumoXMLTag currentTag = GNE_TAG_STOPPERSON_EDGE;
8197  {
8198  // set values of tag
8199  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8200  GNETagProperties::TagParents::PLAN_EDGE,
8201  conflicts, icon, xmlTag, TL("PersonStop: edge"), parents, color);
8202 
8203  // set values of attributes
8204  fillPlanParentAttributes(currentTag);
8206  }
8207  currentTag = GNE_TAG_STOPPERSON_BUSSTOP;
8208  {
8209  // set values of tag
8210  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8211  GNETagProperties::TagParents::PLAN_BUSSTOP,
8212  conflicts, icon, xmlTag, TL("PersonStop: busStop"), parents, color);
8213 
8214  // set values of attributes
8215  fillPlanParentAttributes(currentTag);
8217  }
8218  currentTag = GNE_TAG_STOPPERSON_TRAINSTOP;
8219  {
8220  // set values of tag
8221  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8222  GNETagProperties::TagParents::PLAN_TRAINSTOP,
8223  conflicts, icon, xmlTag, TL("PersonStop: trainStop"), parents, color);
8224 
8225  // set values of attributes
8226  fillPlanParentAttributes(currentTag);
8228  }
8229  currentTag = GNE_TAG_STOPPERSON_CONTAINERSTOP;
8230  {
8231  // set values of tag
8232  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8233  GNETagProperties::TagParents::PLAN_CONTAINERSTOP,
8234  conflicts, icon, xmlTag, TL("PersonStop: containerStop"), parents, color);
8235 
8236  // set values of attributes
8237  fillPlanParentAttributes(currentTag);
8239  }
8241  {
8242  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8243  GNETagProperties::TagParents::PLAN_CHARGINGSTATION,
8244  conflicts, icon, xmlTag, TL("PersonStop: chargingStation"), parents, color);
8245 
8246  // set values of attributes
8247  fillPlanParentAttributes(currentTag);
8249  }
8250  currentTag = GNE_TAG_STOPPERSON_PARKINGAREA;
8251  {
8252  // set values of tag
8253  myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8254  GNETagProperties::TagParents::PLAN_PARKINGAREA,
8255  conflicts, icon, xmlTag, TL("PersonStop: parkingArea"), parents, color);
8256 
8257  // set values of attributes
8258  fillPlanParentAttributes(currentTag);
8260  }
8261 }
8262 
8263 
8264 void
8266 
8269  TL("The color with which the POI shall be displayed"),
8270  "red");
8271  myTagProperties[currentTag].addAttribute(attrProperty);
8272 
8273  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
8275  TL("A typename for the POI"),
8277  myTagProperties[currentTag].addAttribute(attrProperty);
8278 
8279  attrProperty = GNEAttributeProperties(SUMO_ATTR_ICON,
8281  TL("POI Icon"),
8283  attrProperty.setDiscreteValues(SUMOXMLDefinitions::POIIcons.getStrings());
8284  myTagProperties[currentTag].addAttribute(attrProperty);
8285 
8286  attrProperty = GNEAttributeProperties(SUMO_ATTR_NAME,
8288  TL("Name of POI"));
8289  myTagProperties[currentTag].addAttribute(attrProperty);
8290 
8291  attrProperty = GNEAttributeProperties(SUMO_ATTR_LAYER,
8293  TL("The layer of the POI for drawing and selecting"),
8295  myTagProperties[currentTag].addAttribute(attrProperty);
8296 
8297  attrProperty = GNEAttributeProperties(SUMO_ATTR_WIDTH,
8299  TL("Width of rendered image in meters"),
8301  myTagProperties[currentTag].addAttribute(attrProperty);
8302 
8305  TL("Height of rendered image in meters"),
8307  myTagProperties[currentTag].addAttribute(attrProperty);
8308 
8311  TL("A bitmap to use for rendering this POI"),
8313  myTagProperties[currentTag].addAttribute(attrProperty);
8314 
8317  TL("Enable or disable use image file as a relative path"),
8319  myTagProperties[currentTag].addAttribute(attrProperty);
8320 
8321  attrProperty = GNEAttributeProperties(SUMO_ATTR_ANGLE,
8323  TL("Angle of rendered image in degree"),
8325  myTagProperties[currentTag].addAttribute(attrProperty);
8326 }
8327 
8328 
8329 void
8331  // declare empty GNEAttributeProperties
8332  GNEAttributeProperties attrProperty;
8333 
8334  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
8336  TL("This vehicle's color"),
8337  "yellow");
8338  myTagProperties[currentTag].addAttribute(attrProperty);
8339 
8342  TL("The lane on which the vehicle shall be inserted"),
8343  "first");
8344  myTagProperties[currentTag].addAttribute(attrProperty);
8345 
8348  TL("The position at which the vehicle shall enter the net"),
8349  "base");
8350  myTagProperties[currentTag].addAttribute(attrProperty);
8351 
8354  TL("The speed with which the vehicle shall enter the network"),
8355  "0.00");
8356  myTagProperties[currentTag].addAttribute(attrProperty);
8357 
8360  TL("The lane at which the vehicle shall leave the network"),
8361  "current");
8362  myTagProperties[currentTag].addAttribute(attrProperty);
8363 
8366  TL("The position at which the vehicle shall leave the network"),
8367  "max");
8368  myTagProperties[currentTag].addAttribute(attrProperty);
8369 
8372  TL("The speed with which the vehicle shall leave the network"),
8373  "current");
8374  myTagProperties[currentTag].addAttribute(attrProperty);
8375 
8376  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINE,
8378  TL("A string specifying the id of a public transport line which can be used when specifying person rides"));
8379  myTagProperties[currentTag].addAttribute(attrProperty);
8380 
8383  TL("The number of occupied seats when the vehicle is inserted"),
8384  "0");
8385  myTagProperties[currentTag].addAttribute(attrProperty);
8386 
8389  TL("The number of occupied container places when the vehicle is inserted"),
8390  "0");
8391  myTagProperties[currentTag].addAttribute(attrProperty);
8392 
8395  TL("The lateral position on the departure lane at which the vehicle shall enter the net"),
8396  "center");
8397  myTagProperties[currentTag].addAttribute(attrProperty);
8398 
8401  TL("The lateral position on the arrival lane at which the vehicle shall arrive"),
8402  "center");
8403  myTagProperties[currentTag].addAttribute(attrProperty);
8404 
8407  TL("Insertion checks"),
8409  myTagProperties[currentTag].addAttribute(attrProperty);
8410 }
8411 
8412 
8413 void
8415  // declare empty GNEAttributeProperties
8416  GNEAttributeProperties attrProperty;
8417 
8418  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
8420  TL("First flow departure time"),
8421  "0");
8422  myTagProperties[currentTag].addAttribute(attrProperty);
8423 
8424  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
8426  TL("End of departure interval"),
8427  "3600");
8428  myTagProperties[currentTag].addAttribute(attrProperty);
8429 
8432  TL("probability for emitting a flow each second") + std::string("\n") +
8433  TL("(not together with vehsPerHour or period)"),
8434  "1800");
8435  myTagProperties[currentTag].addAttribute(attrProperty);
8436 
8437  attrProperty = GNEAttributeProperties(perHour,
8439  TL("Number of flows per hour, equally spaced") + std::string("\n") +
8440  TL("(not together with period or probability or poisson)"),
8441  "1800");
8442  myTagProperties[currentTag].addAttribute(attrProperty);
8443 
8446  TL("Insert equally spaced flows at that period") + std::string("\n") +
8447  TL("(not together with vehsPerHour or probability or poisson)"),
8448  "2");
8449  myTagProperties[currentTag].addAttribute(attrProperty);
8450 
8451  attrProperty = GNEAttributeProperties(SUMO_ATTR_PROB,
8453  TL("probability for emitting a flow each second") + std::string("\n") +
8454  TL("(not together with vehsPerHour or period or poisson)"),
8455  "0.5");
8456  myTagProperties[currentTag].addAttribute(attrProperty);
8457 
8460  TL("Insert flow expected vehicles per second with poisson distributed insertion rate") + std::string("\n") +
8461  TL("(not together with period or vehsPerHour or probability)"),
8462  "0.5");
8463  myTagProperties[currentTag].addAttribute(attrProperty);
8464 }
8465 
8466 
8467 void
8469  // declare empty GNEAttributeProperties
8470  GNEAttributeProperties attrProperty;
8471 
8472  attrProperty = GNEAttributeProperties(SUMO_ATTR_ACCEL,
8474  TL("The acceleration ability of vehicles of this type [m/s^2]"),
8475  "2.60");
8476  myTagProperties[currentTag].addAttribute(attrProperty);
8477 
8478  attrProperty = GNEAttributeProperties(SUMO_ATTR_DECEL,
8480  TL("The deceleration ability of vehicles of this type [m/s^2]"),
8481  "4.50");
8482  myTagProperties[currentTag].addAttribute(attrProperty);
8483 
8486  TL("The apparent deceleration of the vehicle as used by the standard model [m/s^2]"),
8487  "4.50");
8488  myTagProperties[currentTag].addAttribute(attrProperty);
8489 
8492  TL("The maximal physically possible deceleration for the vehicle [m/s^2]"),
8493  "4.50");
8494  myTagProperties[currentTag].addAttribute(attrProperty);
8495 
8496  attrProperty = GNEAttributeProperties(SUMO_ATTR_SIGMA,
8498  TL("Car-following model parameter"),
8499  "0.50");
8500  attrProperty.setRange(0, 1);
8501  myTagProperties[currentTag].addAttribute(attrProperty);
8502 
8503  attrProperty = GNEAttributeProperties(SUMO_ATTR_TAU,
8505  TL("Car-following model parameter"),
8506  "1.00");
8507  myTagProperties[currentTag].addAttribute(attrProperty);
8508 
8509  attrProperty = GNEAttributeProperties(SUMO_ATTR_TMP1,
8511  TL("SKRAUSSX parameter 1"));
8512  myTagProperties[currentTag].addAttribute(attrProperty);
8513 
8514  attrProperty = GNEAttributeProperties(SUMO_ATTR_TMP2,
8516  TL("SKRAUSSX parameter 2"));
8517  myTagProperties[currentTag].addAttribute(attrProperty);
8518 
8519  attrProperty = GNEAttributeProperties(SUMO_ATTR_TMP3,
8521  TL("SKRAUSSX parameter 3"));
8522  myTagProperties[currentTag].addAttribute(attrProperty);
8523 
8524  attrProperty = GNEAttributeProperties(SUMO_ATTR_TMP4,
8526  TL("SKRAUSSX parameter 4"));
8527  myTagProperties[currentTag].addAttribute(attrProperty);
8528 
8529  attrProperty = GNEAttributeProperties(SUMO_ATTR_TMP5,
8531  TL("SKRAUSSX parameter 5"));
8532  myTagProperties[currentTag].addAttribute(attrProperty);
8533 
8536  TL("EIDM Look ahead / preview parameter [s]"),
8537  "4.00");
8538  myTagProperties[currentTag].addAttribute(attrProperty);
8539 
8542  TL("EIDM AP Reaction Time parameter [s]"),
8543  "0.50");
8544  myTagProperties[currentTag].addAttribute(attrProperty);
8545 
8548  TL("EIDM Wiener Process parameter for the Driving Error [s]"),
8549  "3.00");
8550  myTagProperties[currentTag].addAttribute(attrProperty);
8551 
8554  TL("EIDM Wiener Process parameter for the Estimation Error [s]"),
8555  "10.00");
8556  myTagProperties[currentTag].addAttribute(attrProperty);
8557 
8560  TL("EIDM Coolness parameter of the Enhanced IDM [-]"),
8561  "0.99");
8562  attrProperty.setRange(0, 1);
8563  myTagProperties[currentTag].addAttribute(attrProperty);
8564 
8567  TL("EIDM leader speed estimation error parameter [-]"),
8568  "0.02");
8569  myTagProperties[currentTag].addAttribute(attrProperty);
8570 
8573  TL("EIDM gap estimation error parameter [-]"),
8574  "0.10");
8575  myTagProperties[currentTag].addAttribute(attrProperty);
8576 
8579  TL("EIDM driving error parameter [-]"),
8580  "0.04");
8581  myTagProperties[currentTag].addAttribute(attrProperty);
8582 
8585  TL("EIDM maximal jerk parameter [m/s^3]"),
8586  "3.00");
8587  myTagProperties[currentTag].addAttribute(attrProperty);
8588 
8591  TL("EIDM maximal negative acceleration between two Action Points (threshold) [m/s^2]"),
8592  "1.00");
8593  myTagProperties[currentTag].addAttribute(attrProperty);
8594 
8597  TL("EIDM Time parameter until vehicle reaches amax after startup/driveoff [s]"),
8598  "1.20");
8599  myTagProperties[currentTag].addAttribute(attrProperty);
8600 
8603  TL("EIDM Flatness parameter of startup/driveoff curve [-]"),
8604  "2.00");
8605  myTagProperties[currentTag].addAttribute(attrProperty);
8606 
8609  TL("EIDM Shift parameter of startup/driveoff curve [-]"),
8610  "0.70");
8611  myTagProperties[currentTag].addAttribute(attrProperty);
8612 
8615  TL("EIDM parameter if model shall include vehicle dynamics into the acceleration calculation [0/1]"),
8616  "0");
8617  myTagProperties[currentTag].addAttribute(attrProperty);
8618 
8621  TL("EIDM parameter how many vehicles are taken into the preview calculation of the driver (at least always 1!) [-]"),
8622  "0");
8623  myTagProperties[currentTag].addAttribute(attrProperty);
8624 
8627  TL("Peter Wagner 2009 parameter"),
8628  "0");
8629  myTagProperties[currentTag].addAttribute(attrProperty);
8630 
8633  TL("Peter Wagner 2009 parameter"),
8634  "0");
8635  myTagProperties[currentTag].addAttribute(attrProperty);
8636 
8639  TL("IDMM parameter"),
8640  "0");
8641  myTagProperties[currentTag].addAttribute(attrProperty);
8642 
8645  TL("IDMM parameter"),
8646  "0");
8647  myTagProperties[currentTag].addAttribute(attrProperty);
8648 
8651  TL("W99 parameter"),
8652  "1.3");
8653  myTagProperties[currentTag].addAttribute(attrProperty);
8654 
8657  TL("W99 parameter"),
8658  "8.0");
8659  myTagProperties[currentTag].addAttribute(attrProperty);
8660 
8663  TL("W99 parameter"),
8664  "-12.0");
8665  myTagProperties[currentTag].addAttribute(attrProperty);
8666 
8669  TL("W99 parameter"),
8670  "-0.25");
8671  myTagProperties[currentTag].addAttribute(attrProperty);
8672 
8675  TL("W99 parameter"),
8676  "0.35");
8677  myTagProperties[currentTag].addAttribute(attrProperty);
8678 
8681  TL("W99 parameter"),
8682  "6.0");
8683  myTagProperties[currentTag].addAttribute(attrProperty);
8684 
8687  TL("W99 parameter"),
8688  "0.25");
8689  myTagProperties[currentTag].addAttribute(attrProperty);
8690 
8693  TL("W99 parameter"),
8694  "2.0");
8695  myTagProperties[currentTag].addAttribute(attrProperty);
8696 
8699  TL("W99 parameter"),
8700  "1.5");
8701  myTagProperties[currentTag].addAttribute(attrProperty);
8702 
8705  TL("Wiedemann parameter"));
8706  myTagProperties[currentTag].addAttribute(attrProperty);
8707 
8710  TL("Wiedemann parameter"));
8711  myTagProperties[currentTag].addAttribute(attrProperty);
8712 
8715  TL("MinGap factor parameter"));
8716  myTagProperties[currentTag].addAttribute(attrProperty);
8717 
8718  attrProperty = GNEAttributeProperties(SUMO_ATTR_K,
8720  TL("K parameter"));
8721  myTagProperties[currentTag].addAttribute(attrProperty);
8722 
8725  TL("Kerner Phi parameter"));
8726  myTagProperties[currentTag].addAttribute(attrProperty);
8727 
8730  TL("IDM Delta parameter"));
8731  myTagProperties[currentTag].addAttribute(attrProperty);
8732 
8735  TL("IDM Stepping parameter"));
8736  myTagProperties[currentTag].addAttribute(attrProperty);
8737 
8740  TL("Train Types"),
8741  "NGT400");
8742  attrProperty.setDiscreteValues(SUMOXMLDefinitions::TrainTypes.getStrings());
8743  myTagProperties[currentTag].addAttribute(attrProperty);
8744 }
8745 
8746 
8747 void
8749  // declare empty GNEAttributeProperties
8750  GNEAttributeProperties attrProperty;
8751 
8754  TL("Minimum distance to pedestrians that are walking towards the conflict point with the ego vehicle."),
8755  "10");
8756  myTagProperties[currentTag].addAttribute(attrProperty);
8757 
8760  TL("The accumulated waiting time after which a vehicle will drive onto an intersection even though this might cause jamming."),
8761  "-1");
8762  myTagProperties[currentTag].addAttribute(attrProperty);
8763 
8766  TL("This value causes vehicles to violate a yellow light if the duration of the yellow phase is lower than the given threshold."),
8767  "-1");
8768  myTagProperties[currentTag].addAttribute(attrProperty);
8769 
8772  TL("This value causes vehicles to violate a red light if the duration of the red phase is lower than the given threshold."),
8773  "-1");
8774  myTagProperties[currentTag].addAttribute(attrProperty);
8775 
8778  TL("This value causes vehicles affected by jmDriveAfterRedTime to slow down when violating a red light."),
8779  "0.0");
8780  myTagProperties[currentTag].addAttribute(attrProperty);
8781 
8784  TL("This value causes vehicles to ignore foe vehicles that have right-of-way with the given probability."),
8785  "0.0");
8786  myTagProperties[currentTag].addAttribute(attrProperty);
8787 
8790  TL("This value is used in conjunction with jmIgnoreFoeProb.") + std::string("\n") +
8791  TL("Only vehicles with a speed below or equal to the given value may be ignored."),
8792  "0.0");
8793  myTagProperties[currentTag].addAttribute(attrProperty);
8794 
8797  TL("This value configures driving imperfection (dawdling) while passing a minor link."),
8798  "0.0");
8799  myTagProperties[currentTag].addAttribute(attrProperty);
8800 
8803  TL("This value defines the minimum time gap when passing ahead of a prioritized vehicle. "),
8804  "1");
8805  myTagProperties[currentTag].addAttribute(attrProperty);
8806 
8809  TL("Willingess of drivers to impede vehicles with higher priority"),
8810  "0.0");
8811  myTagProperties[currentTag].addAttribute(attrProperty);
8812 }
8813 
8814 
8815 void
8817  // declare empty GNEAttributeProperties
8818  GNEAttributeProperties attrProperty;
8819 
8822  TL("The eagerness for performing strategic lane changing. Higher values result in earlier lane-changing."),
8823  "1.0");
8824  myTagProperties[currentTag].addAttribute(attrProperty);
8825 
8828  TL("The willingness for performing cooperative lane changing. Lower values result in reduced cooperation."),
8829  "1.0");
8830  myTagProperties[currentTag].addAttribute(attrProperty);
8831 
8834  TL("The eagerness for performing lane changing to gain speed. Higher values result in more lane-changing."),
8835  "1.0");
8836  myTagProperties[currentTag].addAttribute(attrProperty);
8837 
8840  TL("The eagerness for following the obligation to keep right. Higher values result in earlier lane-changing."),
8841  "1.0");
8842  myTagProperties[currentTag].addAttribute(attrProperty);
8843 
8846  TL("The eagerness for using the configured lateral alignment within the lane.") + std::string("\n") +
8847  TL("Higher values result in increased willingness to sacrifice speed for alignment."),
8848  "1.0");
8849  myTagProperties[currentTag].addAttribute(attrProperty);
8850 
8853  TL("The eagerness for overtaking through the opposite-direction lane. Higher values result in more lane-changing."),
8854  "1.0");
8855  myTagProperties[currentTag].addAttribute(attrProperty);
8856 
8859  TL("Willingness to encroach laterally on other drivers."),
8860  "0.00");
8861  myTagProperties[currentTag].addAttribute(attrProperty);
8862 
8865  TL("Minimum lateral gap when encroaching laterally on other drives (alternative way to define lcPushy)"),
8866  "0.00");
8867  myTagProperties[currentTag].addAttribute(attrProperty);
8868 
8871  TL("Willingness to accept lower front and rear gaps on the target lane."),
8872  "1.0");
8873  myTagProperties[currentTag].addAttribute(attrProperty);
8874 
8877  TL("Dynamic factor for modifying lcAssertive and lcPushy."),
8878  "0.00");
8879  myTagProperties[currentTag].addAttribute(attrProperty);
8880 
8883  TL("Time to reach maximum impatience (of 1). Impatience grows whenever a lane-change manoeuvre is blocked."),
8884  "infinity");
8885  myTagProperties[currentTag].addAttribute(attrProperty);
8886 
8889  TL("Maximum lateral acceleration per second."),
8890  "1.0");
8891  myTagProperties[currentTag].addAttribute(attrProperty);
8892 
8895  TL("Factor for configuring the strategic lookahead distance when a change to the left is necessary (relative to right lookahead)."),
8896  "2.0");
8897  myTagProperties[currentTag].addAttribute(attrProperty);
8898 
8901  TL("Factor for configuring the threshold asymmetry when changing to the left or to the right for speed gain."),
8902  "0.1");
8903  myTagProperties[currentTag].addAttribute(attrProperty);
8904 
8907  TL("Upper bound on lateral speed when standing."),
8908  "0.00");
8909  myTagProperties[currentTag].addAttribute(attrProperty);
8910 
8913  TL("Upper bound on lateral speed while moving computed as lcMaxSpeedLatStanding + lcMaxSpeedLatFactor * getSpeed()"),
8914  "1.00");
8915  myTagProperties[currentTag].addAttribute(attrProperty);
8916 
8919  TL("Distance to an upcoming turn on the vehicles route, below which the alignment") + std::string("\n") +
8920  TL("should be dynamically adapted to match the turn direction."),
8921  "0.00");
8922  myTagProperties[currentTag].addAttribute(attrProperty);
8923 
8926  TL("The probability for violating rules gainst overtaking on the right."),
8927  "0.00");
8928  myTagProperties[currentTag].addAttribute(attrProperty);
8929 
8932  TL("Time threshold for the willingness to change right."),
8933  "-1");
8934  myTagProperties[currentTag].addAttribute(attrProperty);
8935 
8938  TL("Speed difference factor for the eagerness of overtaking a neighbor vehicle before changing lanes (threshold = factor*speedlimit)."),
8939  "0.00");
8940  attrProperty.setRange(-1, 1);
8941  myTagProperties[currentTag].addAttribute(attrProperty);
8942 
8943 }
8944 
8945 
8946 void
8948  // declare empty GNEAttributeProperties
8949  GNEAttributeProperties attrProperty;
8950 
8951  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
8953  TL("The name of the person"));
8954  myTagProperties[currentTag].addAttribute(attrProperty);
8955 
8956  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
8958  TL("The id of the person type to use for this person"),
8960  myTagProperties[currentTag].addAttribute(attrProperty);
8961 
8962  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
8964  TL("This person's color"),
8965  "yellow");
8966  myTagProperties[currentTag].addAttribute(attrProperty);
8967 
8970  TL("The position at which the person shall enter the net"),
8971  "base");
8972  myTagProperties[currentTag].addAttribute(attrProperty);
8973 }
8974 
8975 
8976 void
8978  // declare empty GNEAttributeProperties
8979  GNEAttributeProperties attrProperty;
8980 
8981  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
8983  TL("The name of the container"));
8984  myTagProperties[currentTag].addAttribute(attrProperty);
8985 
8986  attrProperty = GNEAttributeProperties(SUMO_ATTR_TYPE,
8988  TL("The id of the container type to use for this container"),
8990  myTagProperties[currentTag].addAttribute(attrProperty);
8991 
8992  attrProperty = GNEAttributeProperties(SUMO_ATTR_COLOR,
8994  TL("This container's color"),
8995  "yellow");
8996  myTagProperties[currentTag].addAttribute(attrProperty);
8997 
9000  TL("The position at which the container shall enter the net"),
9001  "base");
9002  myTagProperties[currentTag].addAttribute(attrProperty);
9003 }
9004 
9005 
9006 void
9008  // declare empty GNEAttributeProperties
9009  GNEAttributeProperties attrProperty;
9010 
9013  TL("Minimum duration for stopping"),
9014  "60");
9015  attrProperty.setDefaultActivated(true);
9016  myTagProperties[currentTag].addAttribute(attrProperty);
9017 
9018  attrProperty = GNEAttributeProperties(SUMO_ATTR_UNTIL,
9020  TL("The time step at which the route continues"),
9021  "0.00");
9022  myTagProperties[currentTag].addAttribute(attrProperty);
9023 
9026  TL("If set to a non-negative time value, then the stop duration can be extended at most by the extension value in seconds"),
9027  "0");
9028  myTagProperties[currentTag].addAttribute(attrProperty);
9029 
9030  if (!waypoint) {
9033  TL("Whether a person or container or both may end the stop"),
9034  "false");
9035  attrProperty.setDiscreteValues({"false", "person", "container", "join"});
9036  myTagProperties[currentTag].addAttribute(attrProperty);
9037 
9040  TL("List of elements that must board the vehicle before it may continue"));
9041  myTagProperties[currentTag].addAttribute(attrProperty);
9042 
9043  attrProperty = GNEAttributeProperties(SUMO_ATTR_JOIN,
9045  TL("Joins this train to another upon reaching the stop"));
9046  myTagProperties[currentTag].addAttribute(attrProperty);
9047  }
9048 
9051  TL("List of elements that can board the vehicle before it may continue"));
9052  myTagProperties[currentTag].addAttribute(attrProperty);
9053 
9056  TL("Whether the vehicle stops on the road or beside"),
9057  "false");
9058  attrProperty.setDiscreteValues({"true", "false", "opportunistic"});
9059  myTagProperties[currentTag].addAttribute(attrProperty);
9060 
9063  TL("Activity displayed for stopped person in GUI and output files"));
9064  myTagProperties[currentTag].addAttribute(attrProperty);
9065 
9068  TL("Parameter to be applied to the vehicle to track the trip id within a cyclical public transport route"));
9069  myTagProperties[currentTag].addAttribute(attrProperty);
9070 
9071  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINE,
9073  TL("New line attribute to be set on the vehicle when reaching this stop (for cyclical public transport route)"));
9074  myTagProperties[currentTag].addAttribute(attrProperty);
9075 
9076  if (waypoint) {
9077  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
9079  TL("Speed to be kept while driving between startPos and endPos"),
9080  "0.00");
9081  myTagProperties[currentTag].addAttribute(attrProperty);
9082  } else {
9085  TL("Whether the stop may be skipped if no passengers wants to embark or disembark"),
9086  "0");
9087  myTagProperties[currentTag].addAttribute(attrProperty);
9088  }
9089 
9090  attrProperty = GNEAttributeProperties(SUMO_ATTR_JUMP,
9092  TL("transfer time if there shall be a jump from this stop to the next route edge"),
9093  "-1");
9094  myTagProperties[currentTag].addAttribute(attrProperty);
9095 
9096  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPLIT,
9098  TL("Splits the train upon reaching the stop"));
9099  myTagProperties[currentTag].addAttribute(attrProperty);
9100 }
9101 
9102 
9103 void
9105  // get rag property
9106  auto& tagProperty = myTagProperties[currentTag];
9107  // declare empty GNEAttributeProperties
9108  GNEAttributeProperties attrProperty;
9109 
9110  // basic parents
9111  if (tagProperty.planConsecutiveEdges()) {
9112  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
9114  TL("list of consecutive edges"));
9115  myTagProperties[currentTag].addAttribute(attrProperty);
9116 
9119  TL("Arrival position on the last edge"),
9120  "-1");
9121  myTagProperties[currentTag].addAttribute(attrProperty);
9122  }
9123  if (tagProperty.planRoute()) {
9124  attrProperty = GNEAttributeProperties(SUMO_ATTR_ROUTE,
9126  TL("Route ID"));
9127  myTagProperties[currentTag].addAttribute(attrProperty);
9128 
9131  TL("Arrival position on the destination edge"),
9132  "-1");
9133  myTagProperties[currentTag].addAttribute(attrProperty);
9134  }
9135  if (tagProperty.planEdge()) {
9136 
9137  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGE,
9139  TL("Edge ID"));
9140  myTagProperties[currentTag].addAttribute(attrProperty);
9141 
9144  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"));
9145  myTagProperties[currentTag].addAttribute(attrProperty);
9146  }
9147  if (tagProperty.planBusStop()) {
9150  TL("Bus stop ID"));
9151  myTagProperties[currentTag].addAttribute(attrProperty);
9152  }
9153  if (tagProperty.planTrainStop()) {
9156  TL("Train stop ID"));
9157  myTagProperties[currentTag].addAttribute(attrProperty);
9158  }
9159  if (tagProperty.planContainerStop()) {
9162  TL("Container stop ID"));
9163  myTagProperties[currentTag].addAttribute(attrProperty);
9164  }
9165  if (tagProperty.planChargingStation()) {
9168  TL("Charging station ID"));
9169  myTagProperties[currentTag].addAttribute(attrProperty);
9170  }
9171  if (tagProperty.planParkingArea()) {
9174  TL("Parking area ID"));
9175  myTagProperties[currentTag].addAttribute(attrProperty);
9176  }
9177  // from parents
9178  if (tagProperty.planFromEdge()) {
9179  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
9181  TL("Edge start ID"));
9182  myTagProperties[currentTag].addAttribute(attrProperty);
9183  }
9184  if (tagProperty.planFromTAZ()) {
9187  TL("TAZ start ID"));
9188  myTagProperties[currentTag].addAttribute(attrProperty);
9189  }
9190  if (tagProperty.planFromJunction()) {
9193  TL("Junction start ID"));
9194  myTagProperties[currentTag].addAttribute(attrProperty);
9195  }
9196  if (tagProperty.planFromBusStop()) {
9199  TL("BuStop start ID"));
9200  myTagProperties[currentTag].addAttribute(attrProperty);
9201  }
9202  if (tagProperty.planFromTrainStop()) {
9205  TL("TrainStop start ID"));
9206  myTagProperties[currentTag].addAttribute(attrProperty);
9207  }
9208  if (tagProperty.planFromContainerStop()) {
9211  TL("ContainerStop start ID"));
9212  myTagProperties[currentTag].addAttribute(attrProperty);
9213  }
9214  if (tagProperty.planFromChargingStation()) {
9217  TL("ChargingStation start ID"));
9218  myTagProperties[currentTag].addAttribute(attrProperty);
9219  }
9220  if (tagProperty.planFromParkingArea()) {
9223  TL("ParkingArea start ID"));
9224  myTagProperties[currentTag].addAttribute(attrProperty);
9225  }
9226  // to parents
9227  if (tagProperty.planToEdge()) {
9228  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
9230  TL("Edge end ID"));
9231  myTagProperties[currentTag].addAttribute(attrProperty);
9232  // departPos only for tranships
9233  if (tagProperty.isPlanTranship()) {
9234  // depart pos
9237  TL("The position at which the tranship shall enter the net"),
9238  "0");
9239  myTagProperties[currentTag].addAttribute(attrProperty);
9240  }
9243  TL("arrival position on the destination edge"),
9244  "-1");
9245  myTagProperties[currentTag].addAttribute(attrProperty);
9246  }
9247  if (tagProperty.planToTAZ()) {
9250  TL("TAZ end ID"));
9251  myTagProperties[currentTag].addAttribute(attrProperty);
9252  }
9253  if (tagProperty.planToJunction()) {
9256  TL("Junction end ID"));
9257  myTagProperties[currentTag].addAttribute(attrProperty);
9258  }
9259  if (tagProperty.planToBusStop()) {
9262  TL("BuStop end ID"));
9263  myTagProperties[currentTag].addAttribute(attrProperty);
9264  }
9265  if (tagProperty.planToTrainStop()) {
9268  TL("TrainStop end ID"));
9269  myTagProperties[currentTag].addAttribute(attrProperty);
9270  }
9271  if (tagProperty.planToContainerStop()) {
9274  TL("ContainerStop end ID"));
9275  myTagProperties[currentTag].addAttribute(attrProperty);
9276  }
9277  if (tagProperty.planToChargingStation()) {
9280  TL("ChargingStation end ID"));
9281  myTagProperties[currentTag].addAttribute(attrProperty);
9282  }
9283  if (tagProperty.planToParkingArea()) {
9286  TL("ParkingArea end ID"));
9287  myTagProperties[currentTag].addAttribute(attrProperty);
9288  }
9289 }
9290 
9291 
9292 void
9294  // declare empty GNEAttributeProperties
9295  GNEAttributeProperties attrProperty;
9296 
9299  TL("List of possible vehicle types to take"));
9300  tagProperties.addAttribute(attrProperty);
9301 
9302  attrProperty = GNEAttributeProperties(SUMO_ATTR_MODES,
9304  TL("List of possible traffic modes. Walking is always possible regardless of this value"));
9305  tagProperties.addAttribute(attrProperty);
9306 
9307  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
9309  TL("list of vehicle alternatives to take for the person trip"));
9310  tagProperties.addAttribute(attrProperty);
9311 
9314  TL("Walk factor"),
9315  "0.00");
9316  tagProperties.addAttribute(attrProperty);
9317 
9318  attrProperty = GNEAttributeProperties(SUMO_ATTR_GROUP,
9320  TL("id of the travel group. Persons with the same group may share a taxi ride"));
9321  tagProperties.addAttribute(attrProperty);
9322 }
9323 
9324 
9325 void
9327  // declare empty GNEAttributeProperties
9328  GNEAttributeProperties attrProperty;
9329 
9330  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
9332  TL("speed of the person for this tranship in m/s (not together with duration)"),
9333  "1.39");
9334  tagProperties.addAttribute(attrProperty);
9335 
9338  TL("duration of the plan in second (not together with speed)"),
9339  "0");
9340  tagProperties.addAttribute(attrProperty);
9341 }
9342 
9343 
9344 void
9346  // declare empty GNEAttributeProperties
9347  GNEAttributeProperties attrProperty;
9348 
9349  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
9351  TL("list of vehicle alternatives to take for the ride"));
9352  tagProperties.addAttribute(attrProperty);
9353 
9354  attrProperty = GNEAttributeProperties(SUMO_ATTR_GROUP,
9356  TL("id of the travel group. Persons with the same group may share a taxi ride"));
9357  tagProperties.addAttribute(attrProperty);
9358 }
9359 
9360 
9361 void
9363  // declare empty GNEAttributeProperties
9364  GNEAttributeProperties attrProperty;
9365 
9366  attrProperty = GNEAttributeProperties(SUMO_ATTR_LINES,
9368  TL("list of vehicle alternatives to take for the transport"));
9369  tagProperties.addAttribute(attrProperty);
9370 
9371  attrProperty = GNEAttributeProperties(SUMO_ATTR_GROUP,
9373  TL("id of the travel group. Persons with the same group may share a taxi ride"));
9374  tagProperties.addAttribute(attrProperty);
9375 }
9376 
9377 
9378 void
9380  // declare empty GNEAttributeProperties
9381  GNEAttributeProperties attrProperty;
9382 
9383  attrProperty = GNEAttributeProperties(SUMO_ATTR_SPEED,
9385  TL("speed of the person for this tranship in m/s (not together with duration)"),
9386  "1.39");
9387  tagProperties.addAttribute(attrProperty);
9388 
9391  TL("duration of the plan in second (not together with speed)"),
9392  "0");
9393  tagProperties.addAttribute(attrProperty);
9394 }
9395 
9396 
9397 void
9399  // declare empty GNEAttributeProperties
9400  GNEAttributeProperties attrProperty;
9401 
9404  TL("Minimum duration for stopping"),
9405  "60");
9406  attrProperty.setDefaultActivated(true);
9407  tagProperties.addAttribute(attrProperty);
9408 
9409  attrProperty = GNEAttributeProperties(SUMO_ATTR_UNTIL,
9411  TL("The time step at which the route continues"),
9412  "0.00");
9413  tagProperties.addAttribute(attrProperty);
9414 
9417  TL("Activity displayed for stopped person in GUI and output files "));
9418  tagProperties.addAttribute(attrProperty);
9419 
9420  // friendlyPos attribute only for stops over edges
9421  if (tagProperties.hasAttribute(SUMO_ATTR_EDGE)) {
9424  TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
9425  TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
9426  TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
9427  "0");
9428  tagProperties.addAttribute(attrProperty);
9429  }
9430 }
9431 
9432 
9433 void
9435  // declare empty GNEAttributeProperties
9436  GNEAttributeProperties attrProperty;
9437 
9438  // fill data set element
9439  SumoXMLTag currentTag = SUMO_TAG_DATASET;
9440  {
9441  // set values of tag
9442  myTagProperties[currentTag] = GNETagProperties(currentTag,
9443  GNETagProperties::TagType::DATAELEMENT,
9444  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::NOTSELECTABLE,
9445  GNETagProperties::TagParents::NO_PARENTS,
9446  GNETagProperties::Conflicts::NO_CONFLICTS,
9447  GUIIcon::DATASET, currentTag, TL("DataSet"));
9448 
9449  // set values of attributes
9450  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9452  TL("Data set ID"));
9453  myTagProperties[currentTag].addAttribute(attrProperty);
9454 
9455  }
9456  // fill data interval element
9457  currentTag = SUMO_TAG_DATAINTERVAL;
9458  {
9459  // set values of tag
9460  myTagProperties[currentTag] = GNETagProperties(currentTag,
9461  GNETagProperties::TagType::DATAELEMENT,
9462  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::CHILD | GNETagProperties::TagProperty::NOTSELECTABLE,
9463  GNETagProperties::TagParents::NO_PARENTS,
9464  GNETagProperties::Conflicts::NO_CONFLICTS,
9465  GUIIcon::DATAINTERVAL, currentTag, TL("DataInterval"),
9466  {SUMO_TAG_DATASET});
9467 
9468  // set values of attributes
9469  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9471  TL("Interval ID"));
9472  myTagProperties[currentTag].addAttribute(attrProperty);
9473 
9474  // set values of attributes
9475  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
9477  TL("Data interval begin time"),
9478  "0");
9479  myTagProperties[currentTag].addAttribute(attrProperty);
9480 
9481  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
9483  TL("Data interval end time"),
9484  "3600");
9485  myTagProperties[currentTag].addAttribute(attrProperty);
9486  }
9487  // fill edge data element
9488  currentTag = GNE_TAG_EDGEREL_SINGLE;
9489  {
9490  // set values of tag
9491  myTagProperties[currentTag] = GNETagProperties(currentTag,
9492  GNETagProperties::TagType::DATAELEMENT | GNETagProperties::TagType::GENERICDATA,
9493  GNETagProperties::TagProperty::NO_PROPERTY,
9494  GNETagProperties::TagParents::NO_PARENTS,
9495  GNETagProperties::Conflicts::NO_CONFLICTS,
9496  GUIIcon::EDGEDATA, SUMO_TAG_EDGE, TL("EdgeRelationSingle"));
9497 
9498  // set values of attributes
9499  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9501  TL("edge ID"));
9502  myTagProperties[currentTag].addAttribute(attrProperty);
9503  }
9504  currentTag = SUMO_TAG_EDGEREL;
9505  {
9506  // set values of tag
9507  myTagProperties[currentTag] = GNETagProperties(currentTag,
9508  GNETagProperties::TagType::DATAELEMENT | GNETagProperties::TagType::GENERICDATA,
9509  GNETagProperties::TagProperty::NO_PROPERTY,
9510  GNETagProperties::TagParents::NO_PARENTS,
9511  GNETagProperties::Conflicts::NO_CONFLICTS,
9512  GUIIcon::EDGERELDATA, currentTag, TL("EdgeRelation"));
9513 
9514  // set values of attributes
9515  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
9517  TL("The ID of the edge the edgeRel starts at"));
9518  myTagProperties[currentTag].addAttribute(attrProperty);
9519 
9520  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
9522  TL("The ID of the edge the edgeRel ends at"));
9523  myTagProperties[currentTag].addAttribute(attrProperty);
9524  }
9525  currentTag = SUMO_TAG_TAZREL;
9526  {
9527  // set values of tag
9528  myTagProperties[currentTag] = GNETagProperties(currentTag,
9529  GNETagProperties::TagType::DATAELEMENT | GNETagProperties::TagType::GENERICDATA,
9530  GNETagProperties::TagProperty::RTREE | GNETagProperties::TagProperty::CHILD,
9531  GNETagProperties::TagParents::NO_PARENTS,
9532  GNETagProperties::Conflicts::NO_CONFLICTS,
9533  GUIIcon::TAZRELDATA, currentTag, TL("TAZRelation"),
9535 
9536  // set values of attributes
9537  attrProperty = GNEAttributeProperties(SUMO_ATTR_FROM,
9539  TL("The name of the TAZ the TAZRel starts at"));
9540  myTagProperties[currentTag].addAttribute(attrProperty);
9541 
9542  attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
9544  TL("The name of the TAZ the TAZRel ends at"));
9545  myTagProperties[currentTag].addAttribute(attrProperty);
9546  }
9547  currentTag = SUMO_TAG_MEANDATA_EDGE;
9548  {
9549  // set values of tag
9550  myTagProperties[currentTag] = GNETagProperties(currentTag,
9551  GNETagProperties::TagType::MEANDATA,
9552  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::NOTSELECTABLE,
9553  GNETagProperties::TagParents::NO_PARENTS,
9554  GNETagProperties::Conflicts::NO_CONFLICTS,
9555  GUIIcon::MEANDATAEDGE, currentTag, TL("MeanDataEdge"));
9556 
9557  // set values of attributes
9558  fillCommonMeanDataAttributes(currentTag);
9559 
9560  }
9561  currentTag = SUMO_TAG_MEANDATA_LANE;
9562  {
9563  // set values of tag
9564  myTagProperties[currentTag] = GNETagProperties(currentTag,
9565  GNETagProperties::TagType::MEANDATA,
9566  GNETagProperties::TagProperty::NOTDRAWABLE | GNETagProperties::TagProperty::NOPARAMETERS | GNETagProperties::TagProperty::NOTSELECTABLE,
9567  GNETagProperties::TagParents::NO_PARENTS,
9568  GNETagProperties::Conflicts::NO_CONFLICTS,
9569  GUIIcon::MEANDATALANE, currentTag, TL("MeanDataLane"));
9570 
9571  // set values of attributes
9572  fillCommonMeanDataAttributes(currentTag);
9573  }
9574 }
9575 
9576 
9577 void
9579  GNEAttributeProperties attrProperty;
9580 
9581  // fill all meanData attributes
9582  attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9584  TL("The id of this set of measurements"));
9585  myTagProperties[currentTag].addAttribute(attrProperty);
9586 
9587  attrProperty = GNEAttributeProperties(SUMO_ATTR_FILE,
9589  TL("The path to the output file. The path may be relative"));
9590  myTagProperties[currentTag].addAttribute(attrProperty);
9591 
9594  TL("The aggregation period the values the detector collects shall be summed up"));
9595  myTagProperties[currentTag].addAttribute(attrProperty);
9596 
9597  attrProperty = GNEAttributeProperties(SUMO_ATTR_BEGIN,
9599  TL("The time to start writing. If not given, the simulation's begin is used."));
9600  myTagProperties[currentTag].addAttribute(attrProperty);
9601 
9602  attrProperty = GNEAttributeProperties(SUMO_ATTR_END,
9604  TL("The time to end writing. If not given the simulation's end is used."));
9605  myTagProperties[currentTag].addAttribute(attrProperty);
9606 
9609  TL("If set to true, edges/lanes which were not used by a vehicle during this period will not be written"),
9610  "default");
9611  attrProperty.setDiscreteValues({"1", "0", "default"});
9612  myTagProperties[currentTag].addAttribute(attrProperty);
9613 
9616  TL("If set, junction internal edges/lanes will be written as well"),
9617  "0");
9618  myTagProperties[currentTag].addAttribute(attrProperty);
9619 
9622  TL("The maximum travel time in seconds to write if only very small movements occur"),
9623  "100000");
9624  myTagProperties[currentTag].addAttribute(attrProperty);
9625 
9628  TL("Consider an edge/lane unused if it has at most this many sampled seconds"),
9629  "0");
9630  myTagProperties[currentTag].addAttribute(attrProperty);
9631 
9634  TL("The maximum speed to consider a vehicle halting;"),
9635  "0.1");
9636  myTagProperties[currentTag].addAttribute(attrProperty);
9637 
9640  TL("space separated list of vehicle type ids to consider"));
9641  myTagProperties[currentTag].addAttribute(attrProperty);
9642 
9645  TL("whether aggregation should be performed over all vehicles that entered the edge/lane in the aggregation interval"),
9646  "0");
9647  myTagProperties[currentTag].addAttribute(attrProperty);
9648 
9651  TL("Whether pedestrians shall be recorded instead of vehicles. Allowed value is walk"));
9652  myTagProperties[currentTag].addAttribute(attrProperty);
9653 
9656  TL("List of attribute names that shall be written"));
9657  myTagProperties[currentTag].addAttribute(attrProperty);
9658 
9659  attrProperty = GNEAttributeProperties(SUMO_ATTR_EDGES,
9661  TL("Restrict output to the given list of edge ids"));
9662  myTagProperties[currentTag].addAttribute(attrProperty);
9663 
9666  TL("Restrict output to the given list of edges given in file"));
9667  myTagProperties[currentTag].addAttribute(attrProperty);
9668 
9671  TL("Whether the traffic statistic of all edges shall be aggregated into a single value"),
9672  "0");
9673  myTagProperties[currentTag].addAttribute(attrProperty);
9674 }
9675 
9676 
9677 void
9679  if (myTagProperties.size() == 0) {
9681  }
9682  // merge "virtual" netedit tags like '<walk: edge->edge'
9683  static std::map<SumoXMLTag, GNETagProperties> xmlTagProperties;
9684  for (const auto& item : myTagProperties) {
9685  if (xmlTagProperties.count(item.second.getXMLTag()) == 0) {
9686  xmlTagProperties[item.second.getXMLTag()] = item.second;
9687  } else {
9688  std::set<SumoXMLAttr> attrs;
9689  auto& old = xmlTagProperties[item.second.getXMLTag()];
9690  for (auto it = old.begin(); it != old.end(); it++) {
9691  attrs.insert(it->getAttr());
9692  }
9693  for (auto it = item.second.begin(); it != item.second.end(); it++) {
9694  if (attrs.count(it->getAttr()) == 0) {
9695  old.addAttribute(*it);
9696  }
9697  }
9698  }
9699  }
9700  const std::string opt = "attribute-help-output";
9703  dev << "# Netedit attribute help\n";
9704  for (const auto& item : xmlTagProperties) {
9705  if (item.second.begin() == item.second.end()) {
9706  // don't write elements without attributes, they are only used for internal purposes
9707  continue;
9708  }
9709  if (item.second.getParentTags().empty()) {
9710  dev << "\n## " << toString(item.first) << "\n";
9711  } else {
9712  if (item.first == SUMO_TAG_FLOW) {
9713  dev << "\n## " << toString(item.first) << "\n";
9714  dev << "also child element of ";
9715  } else {
9716  dev << "\n### " << toString(item.first) << "\n";
9717  dev << "child element of ";
9718  }
9719  bool sep = false;
9720  for (const auto& pTag : item.second.getParentTags()) {
9721  if (sep) {
9722  dev << ", ";
9723  } else {
9724  sep = true;
9725  }
9726  dev << "[" << toString(pTag) << "](#" << StringUtils::to_lower_case(toString(pTag)) << ")";
9727  }
9728  dev << "\n\n";
9729  }
9730  dev << "| Attribute | Type | Description |\n";
9731  dev << "|-----------|------|-------------|\n";
9732  for (const auto& attr : item.second) {
9733  dev << "|" << toString(attr.getAttr()) << "|"
9734  << attr.getDescription() << "|"
9735  << StringUtils::replace(attr.getDefinition(), "\n", " ");
9736  if (attr.getDefaultValue() != "") {
9737  dev << " *default:* **" << attr.getDefaultValue() << "**";
9738  }
9739  dev << "|\n";
9740  }
9741  }
9742 }
9743 
9744 
9745 /****************************************************************************/
long long int SUMOTime
Definition: GUI.h:35
GUISelectedStorage gSelected
A global holder of selected objects.
GUIIcon
An enumeration of icons used by the gui applications.
Definition: GUIIcons.h:33
@ PARKINGSPACE
@ MEANDATALANE
@ CONTAINERFLOW
@ CLOSINGREROUTE
@ MEANDATAEDGE
@ CONTAINERSTOP
@ TRANSHIP_EDGES
@ TRIP_JUNCTIONS
@ DATAINTERVAL
@ FLOW_JUNCTIONS
@ ROUTEPROBREROUTE
@ JPS_WALKABLEAREA
@ TRACTION_SUBSTATION
@ ROUTEDISTRIBUTION
@ CHARGINGSTATION
@ TRANSPORT_EDGE
@ PARKINGZONEREROUTE
@ CLOSINGLANEREROUTE
@ JPS_OBSTACLE
@ DESTPROBREROUTE
@ REROUTERINTERVAL
@ VTYPEDISTRIBUTION
@ VARIABLESPEEDSIGN
@ OVERHEADWIRE
@ PERSONTRIP_EDGE
@ 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_RIDE_CHARGINGSTATION_CHARGINGSTATION
@ GNE_TAG_TRIP_JUNCTIONS
a trip between junctions
@ SUMO_TAG_TRACTION_SUBSTATION
A traction substation.
@ GNE_TAG_TRANSHIP_TAZ_TAZ
@ GNE_TAG_TRANSPORT_CONTAINERSTOP_TRAINSTOP
@ GNE_TAG_TRANSPORT_CONTAINERSTOP_BUSSTOP
@ GNE_TAG_TRANSHIP_PARKINGAREA_BUSSTOP
@ GNE_TAG_TRANSPORT_TAZ_CONTAINERSTOP
@ GNE_TAG_TRANSHIP_PARKINGAREA_CHARGINGSTATION
@ GNE_TAG_RIDE_EDGE_TAZ
@ GNE_TAG_WALK_BUSSTOP_BUSSTOP
@ GNE_TAG_TRANSPORT_JUNCTION_CHARGINGSTATION
@ GNE_TAG_TRIP_TAZS
a single trip definition that uses TAZs
@ GNE_TAG_TRANSHIP_JUNCTION_EDGE
@ GNE_TAG_PERSONTRIP_EDGE_EDGE
@ GNE_TAG_PERSONTRIP_TAZ_EDGE
@ GNE_TAG_TRANSHIP_JUNCTION_CONTAINERSTOP
@ GNE_TAG_PERSONTRIP_EDGE_CONTAINERSTOP
@ GNE_TAG_WALK_EDGE_TAZ
@ GNE_TAG_WALK_PARKINGAREA_CHARGINGSTATION
@ SUMO_TAG_INTERVAL
an aggreagated-output interval
@ GNE_TAG_WALK_CHARGINGSTATION_JUNCTION
@ GNE_TAG_RIDE_CHARGINGSTATION_TAZ
@ GNE_TAG_PERSONTRIP_CONTAINERSTOP_TAZ
@ SUMO_TAG_CLOSING_REROUTE
reroute of type closing
@ GNE_TAG_RIDE_CONTAINERSTOP_BUSSTOP
@ GNE_TAG_TRANSPORT_BUSSTOP_JUNCTION
@ GNE_TAG_RIDE_BUSSTOP_BUSSTOP
@ GNE_TAG_WALK_PARKINGAREA_CONTAINERSTOP
@ GNE_TAG_PERSONTRIP_TAZ_CONTAINERSTOP
@ GNE_TAG_TRANSHIP_CHARGINGSTATION_BUSSTOP
@ GNE_TAG_PERSONTRIP_CHARGINGSTATION_TRAINSTOP
@ GNE_TAG_PERSONTRIP_EDGE_JUNCTION
@ GNE_TAG_TRANSPORT_CHARGINGSTATION_JUNCTION
@ GNE_TAG_TRANSHIP_TRAINSTOP_CHARGINGSTATION
@ GNE_TAG_RIDE_CONTAINERSTOP_CONTAINERSTOP
@ SUMO_TAG_REROUTER
A rerouter.
@ GNE_TAG_TRANSHIP_TRAINSTOP_EDGE
@ SUMO_TAG_EDGEREL
a relation between two edges
@ GNE_TAG_WAYPOINT_PARKINGAREA
@ GNE_TAG_WALK_TAZ_BUSSTOP
@ GNE_TAG_PERSONTRIP_EDGE_PARKINGAREA
@ SUMO_TAG_DATAINTERVAL
@ GNE_TAG_PERSONTRIP_TRAINSTOP_EDGE
@ GNE_TAG_PERSONTRIP_TRAINSTOP_CONTAINERSTOP
@ GNE_TAG_MULTI_LANE_AREA_DETECTOR
an e2 detector over multiple lanes (placed here due create Additional Frame)
@ GNE_TAG_PERSONTRIP_PARKINGAREA_TRAINSTOP
@ GNE_TAG_STOPCONTAINER_TRAINSTOP
@ GNE_TAG_RIDE_JUNCTION_BUSSTOP
@ GNE_TAG_RIDE_PARKINGAREA_CONTAINERSTOP
@ GNE_TAG_PERSONTRIP_CHARGINGSTATION_PARKINGAREA
@ GNE_TAG_PERSONTRIP_TRAINSTOP_PARKINGAREA
@ GNE_TAG_TRANSPORT_TAZ_PARKINGAREA
@ SUMO_TAG_ROUTEPROBE
a routeprobe detector
@ GNE_TAG_PERSONTRIP_TAZ_CHARGINGSTATION
@ GNE_TAG_RIDE_CONTAINERSTOP_EDGE
@ GNE_TAG_STOP_PARKINGAREA
stop placed over a parking area
@ GNE_TAG_TRANSHIP_TAZ_EDGE
@ GNE_TAG_WALK_BUSSTOP_CHARGINGSTATION
@ GNE_TAG_PERSONTRIP_BUSSTOP_EDGE
@ GNE_TAG_WALK_TRAINSTOP_CHARGINGSTATION
@ SUMO_TAG_TAZ
a traffic assignment zone
@ GNE_TAG_WALK_PARKINGAREA_TRAINSTOP
@ GNE_TAG_WALK_PARKINGAREA_PARKINGAREA
@ GNE_TAG_TRANSPORT_EDGE_TRAINSTOP
@ GNE_TAG_WALK_BUSSTOP_TRAINSTOP
@ GNE_TAG_TRANSHIP_EDGE_CHARGINGSTATION
@ GNE_TAG_PERSONTRIP_TAZ_TRAINSTOP
@ GNE_TAG_STOPCONTAINER
@ GNE_TAG_TRANSPORT_CONTAINERSTOP_CHARGINGSTATION
@ GNE_TAG_TRANSPORT_CHARGINGSTATION_TAZ
@ GNE_TAG_WALK_TAZ_CONTAINERSTOP
@ GNE_TAG_WALK_PARKINGAREA_JUNCTION
@ GNE_TAG_WALK_CONTAINERSTOP_EDGE
@ SUMO_TAG_CHARGING_STATION
A Charging Station.
@ GNE_TAG_TRANSHIP_JUNCTION_BUSSTOP
@ GNE_TAG_PERSONTRIP_EDGE_CHARGINGSTATION
@ GNE_TAG_TRANSPORT_EDGE_PARKINGAREA
@ GNE_TAG_TRANSPORT_TRAINSTOP_JUNCTION
@ GNE_TAG_TRANSHIP_PARKINGAREA_JUNCTION
@ SUMO_TAG_VTYPE
description of a vehicle/person/container type
@ GNE_TAG_TRANSHIP_BUSSTOP_CHARGINGSTATION
@ GNE_TAG_TRANSPORT_TAZ_TRAINSTOP
@ SUMO_TAG_ACCESS
An access point for a train stop.
@ GNE_TAG_WALK_EDGE_PARKINGAREA
@ GNE_TAG_TRANSPORT_EDGE_BUSSTOP
@ GNE_TAG_TRANSPORT_CONTAINERSTOP_EDGE
@ SUMO_TAG_WALK
@ GNE_TAG_TRANSPORT_CHARGINGSTATION_PARKINGAREA
@ GNE_TAG_WALK_PARKINGAREA_EDGE
@ GNE_TAG_TRANSHIP_EDGE_EDGE
@ GNE_TAG_RIDE_TAZ_EDGE
@ GNE_TAG_RIDE_TRAINSTOP_JUNCTION
@ SUMO_TAG_TRANSHIP
@ GNE_TAG_WALK_EDGES
@ GNE_TAG_RIDE_TRAINSTOP_CONTAINERSTOP
@ GNE_TAG_TRANSPORT_JUNCTION_PARKINGAREA
@ SUMO_TAG_CONTAINER_STOP
A container stop.
@ GNE_TAG_STOP_BUSSTOP
stop placed over a busStop
@ GNE_TAG_RIDE_CHARGINGSTATION_EDGE
@ GNE_TAG_RIDE_CHARGINGSTATION_CONTAINERSTOP
@ GNE_TAG_WALK_CONTAINERSTOP_CHARGINGSTATION
@ SUMO_TAG_CONTAINERFLOW
@ GNE_TAG_TRANSHIP_PARKINGAREA_CONTAINERSTOP
@ SUMO_TAG_PARKING_AREA_REROUTE
entry for an alternative parking zone
@ GNE_TAG_TRANSPORT_TRAINSTOP_TAZ
@ GNE_TAG_WALK_BUSSTOP_JUNCTION
@ GNE_TAG_TRANSHIP_CHARGINGSTATION_TRAINSTOP
@ GNE_TAG_TRANSHIP_EDGE_CONTAINERSTOP
@ GNE_TAG_WALK_CONTAINERSTOP_JUNCTION
@ GNE_TAG_TRANSPORT_PARKINGAREA_PARKINGAREA
@ GNE_TAG_RIDE_EDGE_JUNCTION
@ GNE_TAG_WAYPOINT_TRAINSTOP
@ GNE_TAG_TRANSPORT_CHARGINGSTATION_TRAINSTOP
@ GNE_TAG_TRANSPORT_TRAINSTOP_TRAINSTOP
@ GNE_TAG_RIDE_PARKINGAREA_TAZ
@ GNE_TAG_WALK_CHARGINGSTATION_TRAINSTOP
@ GNE_TAG_PERSONTRIP_BUSSTOP_CONTAINERSTOP
@ SUMO_TAG_TAZSINK
a sink within a district (connection road)
@ GNE_TAG_EDGEREL_SINGLE
@ GNE_TAG_TRANSPORT_TRAINSTOP_CONTAINERSTOP
@ GNE_TAG_WAYPOINT_CONTAINERSTOP
@ GNE_TAG_PERSONTRIP_PARKINGAREA_TAZ
@ GNE_TAG_STOPCONTAINER_EDGE
@ GNE_TAG_WAYPOINT_BUSSTOP
@ GNE_TAG_WALK_TRAINSTOP_TAZ
@ GNE_TAG_PERSONTRIP_PARKINGAREA_JUNCTION
@ GNE_TAG_TRANSPORT_JUNCTION_BUSSTOP
@ SUMO_TAG_BUS_STOP
A bus stop.
@ SUMO_TAG_POI
begin/end of the description of a Point of interest
@ GNE_TAG_TRANSHIP_JUNCTION_PARKINGAREA
@ GNE_TAG_STOPCONTAINER_PARKINGAREA
@ GNE_TAG_PERSONTRIP_CONTAINERSTOP_TRAINSTOP
@ GNE_TAG_TRANSPORT_CHARGINGSTATION_CONTAINERSTOP
@ GNE_TAG_WAYPOINT_CHARGINGSTATION
@ GNE_TAG_TRANSPORT_TRAINSTOP_CHARGINGSTATION
@ GNE_TAG_TRANSPORT_PARKINGAREA_CONTAINERSTOP
@ GNE_TAG_STOPPERSON_BUSSTOP
@ GNE_TAG_STOPPERSON
@ GNE_TAG_INTERNAL_LANE
internal lane
@ GNE_TAG_TRANSPORT_BUSSTOP_CONTAINERSTOP
@ SUMO_TAG_STOP
stop for vehicles
@ GNE_TAG_PERSONTRIP_BUSSTOP_TRAINSTOP
@ SUMO_TAG_MEANDATA_LANE
a lane based mean data detector
@ GNE_TAG_RIDE_PARKINGAREA_BUSSTOP
@ SUMO_TAG_STEP
trigger: a step description
@ GNE_TAG_PERSONTRIP_CHARGINGSTATION_TAZ
@ GNE_TAG_RIDE_TAZ_TRAINSTOP
@ GNE_TAG_PERSONTRIP_CONTAINERSTOP_EDGE
@ GNE_TAG_TRANSHIP_CONTAINERSTOP_PARKINGAREA
@ GNE_TAG_PERSONTRIP_JUNCTION_BUSSTOP
@ GNE_TAG_TRANSHIP_BUSSTOP_CONTAINERSTOP
@ GNE_TAG_PERSONTRIP_CHARGINGSTATION_BUSSTOP
@ SUMO_TAG_VEHICLE
description of a vehicle
@ GNE_TAG_TRANSPORT_PARKINGAREA_EDGE
@ 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
@ GNE_TAG_RIDE_PARKINGAREA_JUNCTION
@ GNE_TAG_TRANSHIP_PARKINGAREA_TRAINSTOP
@ GNE_TAG_RIDE_JUNCTION_JUNCTION
@ GNE_TAG_WALK_BUSSTOP_CONTAINERSTOP
@ GNE_TAG_RIDE_BUSSTOP_TAZ
@ GNE_TAG_PERSONTRIP_TAZ_PARKINGAREA
@ GNE_TAG_TRANSHIP_BUSSTOP_JUNCTION
@ GNE_TAG_RIDE_JUNCTION_PARKINGAREA
@ SUMO_TAG_OVERHEAD_WIRE_CLAMP
An overhead wire clamp (connection of wires in opposite directions)
@ GNE_TAG_TRANSPORT_EDGE_TAZ
@ GNE_TAG_PERSONTRIP_CONTAINERSTOP_PARKINGAREA
@ GNE_TAG_WALK_JUNCTION_PARKINGAREA
@ GNE_TAG_TRANSHIP_EDGE_TAZ
@ GNE_TAG_RIDE_TRAINSTOP_TAZ
@ GNE_TAG_RIDE_TRAINSTOP_CHARGINGSTATION
@ GNE_TAG_WALK_CHARGINGSTATION_BUSSTOP
@ GNE_TAG_PERSONTRIP_JUNCTION_TRAINSTOP
@ GNE_TAG_VSS_SYMBOL
VSS Symbol.
@ GNE_TAG_RIDE_JUNCTION_TRAINSTOP
@ GNE_TAG_WALK_CONTAINERSTOP_TAZ
@ GNE_TAG_FLOW_JUNCTIONS
a flow between junctions
@ GNE_TAG_PERSONTRIP_TRAINSTOP_BUSSTOP
@ GNE_TAG_TRANSHIP_BUSSTOP_EDGE
@ GNE_TAG_TRANSHIP_TRAINSTOP_JUNCTION
@ GNE_TAG_POIGEO
Point of interest over view with GEO attributes.
@ GNE_TAG_TRANSPORT_CHARGINGSTATION_CHARGINGSTATION
@ GNE_TAG_TRANSHIP_EDGE_JUNCTION
@ GNE_TAG_PERSONTRIP_BUSSTOP_JUNCTION
@ GNE_TAG_TRANSHIP_EDGES
@ SUMO_TAG_LANETYPE
lane type
@ GNE_TAG_TRANSHIP_TAZ_TRAINSTOP
@ GNE_TAG_STOP_CONTAINERSTOP
stop placed over a containerStop
@ GNE_TAG_WALK_JUNCTION_CONTAINERSTOP
@ GNE_TAG_STOPCONTAINER_CONTAINERSTOP
@ GNE_TAG_FLOW_WITHROUTE
description of a vehicle with an embedded route
@ GNE_TAG_RIDE_TAZ_CONTAINERSTOP
@ GNE_TAG_RIDE_BUSSTOP_TRAINSTOP
@ GNE_TAG_TRANSHIP_CHARGINGSTATION_EDGE
@ 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.
@ GNE_TAG_TRANSPORT_CONTAINERSTOP_TAZ
@ SUMO_TAG_TRANSPORT
@ GNE_TAG_WALK_TRAINSTOP_EDGE
@ GNE_TAG_RIDE_EDGE_EDGE
@ GNE_TAG_PERSONTRIP_PARKINGAREA_EDGE
@ GNE_TAG_TRANSPORT_BUSSTOP_CHARGINGSTATION
@ GNE_TAG_RIDE_JUNCTION_CONTAINERSTOP
@ GNE_TAG_TRANSPORT_PARKINGAREA_TAZ
@ GNE_TAG_PERSONTRIP_PARKINGAREA_CONTAINERSTOP
@ SUMO_TAG_WALKINGAREA
walking area for pedestrians
@ GNE_TAG_PERSONTRIP_TRAINSTOP_TRAINSTOP
@ GNE_TAG_TRANSPORT_EDGE_EDGE
@ GNE_TAG_WALK_EDGE_TRAINSTOP
@ GNE_TAG_WALK_TAZ_CHARGINGSTATION
@ 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_STOPCONTAINER_BUSSTOP
@ GNE_TAG_WALK_JUNCTION_TAZ
@ SUMO_TAG_DET_ENTRY
an e3 entry point
@ GNE_TAG_WALK_JUNCTION_CHARGINGSTATION
@ GNE_TAG_WALK_CHARGINGSTATION_TAZ
@ GNE_TAG_PERSONTRIP_TAZ_BUSSTOP
@ GNE_TAG_RIDE_PARKINGAREA_CHARGINGSTATION
@ GNE_TAG_RIDE_BUSSTOP_JUNCTION
@ GNE_TAG_PERSONTRIP_CHARGINGSTATION_JUNCTION
@ GNE_TAG_PERSONTRIP_CHARGINGSTATION_CHARGINGSTATION
@ GNE_TAG_WALK_JUNCTION_JUNCTION
@ SUMO_TAG_PARKING_SPACE
A parking space for a single vehicle within a parking area.
@ GNE_TAG_TRANSPORT_BUSSTOP_TAZ
@ GNE_TAG_RIDE_JUNCTION_CHARGINGSTATION
@ GNE_TAG_TRANSPORT_PARKINGAREA_TRAINSTOP
@ SUMO_TAG_CONTAINER
@ SUMO_TAG_JUNCTION
begin/end of the description of a junction
@ GNE_TAG_TRANSHIP_PARKINGAREA_TAZ
@ SUMO_TAG_CROSSING
crossing between edges for pedestrians
@ GNE_TAG_TRANSHIP_PARKINGAREA_PARKINGAREA
@ GNE_TAG_WALK_CONTAINERSTOP_PARKINGAREA
@ GNE_TAG_TRANSHIP_TAZ_PARKINGAREA
@ GNE_TAG_WALK_EDGE_EDGE
@ GNE_TAG_PERSONTRIP_TAZ_TAZ
@ GNE_TAG_TRANSPORT_CONTAINERSTOP_JUNCTION
@ GNE_TAG_TRANSHIP_TAZ_BUSSTOP
@ GNE_TAG_TRANSPORT_TAZ_EDGE
@ GNE_TAG_TRANSHIP_CHARGINGSTATION_CHARGINGSTATION
@ SUMO_TAG_ROUTE
begin/end of the description of a route
@ GNE_TAG_RIDE_EDGE_CHARGINGSTATION
@ SUMO_TAG_MEANDATA_EDGE
an edge based mean data detector
@ GNE_TAG_TRANSPORT_TAZ_TAZ
@ 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_CHARGINGSTATION_EDGE
@ GNE_TAG_PERSONTRIP_EDGE_BUSSTOP
@ GNE_TAG_TRANSPORT_EDGE_JUNCTION
@ GNE_TAG_WALK_CHARGINGSTATION_CONTAINERSTOP
@ GNE_TAG_TRANSPORT_TAZ_BUSSTOP
@ GNE_TAG_WALK_BUSSTOP_PARKINGAREA
@ GNE_TAG_WALK_CHARGINGSTATION_PARKINGAREA
@ GNE_TAG_TRANSPORT_JUNCTION_JUNCTION
@ GNE_TAG_PERSONTRIP_CHARGINGSTATION_CONTAINERSTOP
@ GNE_TAG_TRANSHIP_BUSSTOP_TRAINSTOP
@ GNE_TAG_PERSONTRIP_BUSSTOP_TAZ
@ GNE_TAG_RIDE_TAZ_PARKINGAREA
@ GNE_TAG_WALK_CONTAINERSTOP_BUSSTOP
@ SUMO_TAG_TRAIN_STOP
A train stop (alias for bus stop)
@ GNE_TAG_RIDE_CHARGINGSTATION_PARKINGAREA
@ GNE_TAG_RIDE_CHARGINGSTATION_BUSSTOP
@ GNE_TAG_PERSONTRIP_CONTAINERSTOP_CONTAINERSTOP
@ GNE_TAG_TRANSHIP_CONTAINERSTOP_TAZ
@ GNE_TAG_TRANSPORT_CHARGINGSTATION_EDGE
@ GNE_TAG_PERSONTRIP_BUSSTOP_CHARGINGSTATION
@ 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
@ GNE_TAG_RIDE_JUNCTION_TAZ
@ GNE_TAG_TRANSPORT_TRAINSTOP_BUSSTOP
@ SUMO_TAG_INSTANT_INDUCTION_LOOP
An instantenous induction loop.
@ GNE_TAG_WALK_JUNCTION_TRAINSTOP
@ GNE_TAG_RIDE_TAZ_TAZ
@ GNE_TAG_TRANSHIP_EDGE_TRAINSTOP
@ GNE_TAG_TRANSHIP_TRAINSTOP_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_PARKINGAREA_PARKINGAREA
@ GNE_TAG_WALK_TRAINSTOP_PARKINGAREA
@ 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_RIDE_TAZ_JUNCTION
@ GNE_TAG_PERSONTRIP_JUNCTION_PARKINGAREA
@ GNE_TAG_TRANSPORT_BUSSTOP_TRAINSTOP
@ GNE_TAG_TRANSPORT_TRAINSTOP_PARKINGAREA
@ GNE_TAG_TRANSPORT_PARKINGAREA_JUNCTION
@ GNE_TAG_STOPPERSON_CONTAINERSTOP
@ GNE_TAG_WALK_BUSSTOP_TAZ
@ GNE_TAG_RIDE_CONTAINERSTOP_CHARGINGSTATION
@ GNE_TAG_TRANSPORT_CONTAINERSTOP_CONTAINERSTOP
@ GNE_TAG_PERSONTRIP_BUSSTOP_BUSSTOP
@ GNE_TAG_TRANSHIP_BUSSTOP_PARKINGAREA
@ GNE_TAG_PERSONTRIP_JUNCTION_JUNCTION
@ GNE_TAG_TRANSHIP_CONTAINERSTOP_JUNCTION
@ GNE_TAG_WALK_TAZ_TAZ
@ GNE_TAG_WALK_TRAINSTOP_BUSSTOP
@ GNE_TAG_TRANSHIP_JUNCTION_TRAINSTOP
@ GNE_TAG_WALK_TAZ_EDGE
@ GNE_TAG_PERSONTRIP_TAZ_JUNCTION
@ GNE_TAG_WAYPOINT_LANE
@ GNE_TAG_JPS_OBSTACLE
polygon used for draw juPedSim obstacles
@ GNE_TAG_WALK_EDGE_CHARGINGSTATION
@ GNE_TAG_TRANSPORT_JUNCTION_TAZ
@ GNE_TAG_TRANSPORT_PARKINGAREA_BUSSTOP
@ GNE_TAG_RIDE_EDGE_TRAINSTOP
@ GNE_TAG_TRANSHIP_TAZ_JUNCTION
@ SUMO_TAG_PERSON
@ SUMO_TAG_DET_EXIT
an e3 exit point
@ SUMO_TAG_PERSONTRIP
@ SUMO_TAG_TYPE
type (edge)
@ GNE_TAG_TRANSHIP_JUNCTION_CHARGINGSTATION
@ GNE_TAG_WALK_TRAINSTOP_CONTAINERSTOP
@ GNE_TAG_WALK_JUNCTION_BUSSTOP
@ GNE_TAG_TRANSHIP_JUNCTION_JUNCTION
@ GNE_TAG_PERSONTRIP_CONTAINERSTOP_JUNCTION
@ GNE_TAG_WALK_JUNCTION_EDGE
@ GNE_TAG_PERSONTRIP_BUSSTOP_PARKINGAREA
@ GNE_TAG_TRANSHIP_CONTAINERSTOP_TRAINSTOP
@ GNE_TAG_PERSONTRIP_PARKINGAREA_BUSSTOP
@ SUMO_TAG_VAPORIZER
vaporizer of vehicles
@ GNE_TAG_RIDE_CHARGINGSTATION_JUNCTION
@ SUMO_TAG_LANE_AREA_DETECTOR
alternative tag for e2 detector
@ GNE_TAG_RIDE_BUSSTOP_CHARGINGSTATION
@ GNE_TAG_TRANSPORT_JUNCTION_TRAINSTOP
@ GNE_TAG_REROUTER_SYMBOL
Rerouter Symbol.
@ GNE_TAG_STOP_LANE
stop placed over a lane
@ GNE_TAG_WALK_EDGE_CONTAINERSTOP
@ GNE_TAG_WALK_TRAINSTOP_JUNCTION
@ GNE_TAG_TRANSHIP_CHARGINGSTATION_PARKINGAREA
@ GNE_TAG_STOPPERSON_CHARGINGSTATION
@ GNE_TAG_TRANSHIP_CHARGINGSTATION_TAZ
@ GNE_TAG_TRANSPORT_BUSSTOP_EDGE
@ GNE_TAG_TRANSHIP_CONTAINERSTOP_BUSSTOP
@ GNE_TAG_WALK_PARKINGAREA_TAZ
@ GNE_TAG_PERSONTRIP_JUNCTION_EDGE
@ GNE_TAG_RIDE_CONTAINERSTOP_PARKINGAREA
@ GNE_TAG_RIDE_CHARGINGSTATION_TRAINSTOP
@ GNE_TAG_STOPPERSON_TRAINSTOP
@ GNE_TAG_TRANSPORT_CHARGINGSTATION_BUSSTOP
@ GNE_TAG_PERSONTRIP_PARKINGAREA_CHARGINGSTATION
@ GNE_TAG_TRANSHIP_CHARGINGSTATION_CONTAINERSTOP
@ SUMO_TAG_TAZREL
a relation between two TAZs
@ GNE_TAG_TRANSHIP_EDGE_BUSSTOP
@ GNE_TAG_RIDE_BUSSTOP_PARKINGAREA
@ GNE_TAG_WALK_EDGE_JUNCTION
@ GNE_TAG_RIDE_PARKINGAREA_EDGE
@ GNE_TAG_PERSONTRIP_JUNCTION_TAZ
@ GNE_TAG_TRANSHIP_PARKINGAREA_EDGE
@ GNE_TAG_TRANSPORT_PARKINGAREA_CHARGINGSTATION
@ GNE_TAG_TRANSHIP_TRAINSTOP_CONTAINERSTOP
@ SUMO_TAG_TAZSOURCE
a source within a district (connection road)
@ GNE_TAG_PERSONTRIP_JUNCTION_CONTAINERSTOP
@ GNE_TAG_WALK_TRAINSTOP_TRAINSTOP
@ GNE_TAG_WALK_CHARGINGSTATION_EDGE
@ GNE_TAG_TRANSHIP_EDGE_PARKINGAREA
@ GNE_TAG_WALK_EDGE_BUSSTOP
@ GNE_TAG_PERSONTRIP_PARKINGAREA_PARKINGAREA
@ GNE_TAG_TRANSHIP_TRAINSTOP_BUSSTOP
@ GNE_TAG_TRANSHIP_BUSSTOP_BUSSTOP
@ GNE_TAG_TRANSPORT_TRAINSTOP_EDGE
@ 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_PERSONTRIP_TRAINSTOP_CHARGINGSTATION
@ GNE_TAG_TRANSPORT_EDGE_CHARGINGSTATION
@ GNE_TAG_TRANSHIP_CONTAINERSTOP_CONTAINERSTOP
@ GNE_TAG_ROUTE_EMBEDDED
embedded route
@ GNE_TAG_WALK_CONTAINERSTOP_TRAINSTOP
@ GNE_TAG_RIDE_EDGE_PARKINGAREA
@ GNE_TAG_TRANSHIP_CHARGINGSTATION_JUNCTION
@ GNE_TAG_RIDE_BUSSTOP_CONTAINERSTOP
@ 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_PERSONTRIP_CONTAINERSTOP_CHARGINGSTATION
@ GNE_TAG_RIDE_JUNCTION_EDGE
@ GNE_TAG_TRANSHIP_TRAINSTOP_PARKINGAREA
@ GNE_TAG_PERSONTRIP_CONTAINERSTOP_BUSSTOP
@ GNE_TAG_TRANSHIP_JUNCTION_TAZ
@ GNE_TAG_TRANSPORT_JUNCTION_CONTAINERSTOP
@ GNE_TAG_TRANSPORT_TAZ_CHARGINGSTATION
@ GNE_TAG_TRANSPORT_TAZ_JUNCTION
@ GNE_TAG_RIDE_TRAINSTOP_TRAINSTOP
@ GNE_TAG_TRANSPORT_JUNCTION_EDGE
@ GNE_TAG_TRANSPORT_BUSSTOP_BUSSTOP
@ GNE_TAG_WALK_PARKINGAREA_BUSSTOP
@ SUMO_TAG_CALIBRATOR
A calibrator placed over edge.
@ GNE_TAG_RIDE_CONTAINERSTOP_TAZ
@ GNE_TAG_STOPCONTAINER_CHARGINGSTATION
@ SUMO_TAG_ENTRY_EXIT_DETECTOR
alternative tag for e3 detector
@ GNE_TAG_TRANSPORT_BUSSTOP_PARKINGAREA
@ GNE_TAG_WALK_TAZ_PARKINGAREA
@ GNE_TAG_TRANSHIP_TAZ_CHARGINGSTATION
@ GNE_TAG_TRANSHIP_BUSSTOP_TAZ
@ GNE_TAG_PERSONTRIP_TRAINSTOP_JUNCTION
@ GNE_TAG_RIDE_CONTAINERSTOP_TRAINSTOP
@ GNE_TAG_RIDE_TAZ_CHARGINGSTATION
@ SUMO_TAG_VSS
A variable speed sign.
@ GNE_TAG_STOPPERSON_EDGE
@ GNE_TAG_RIDE_CONTAINERSTOP_JUNCTION
@ GNE_TAG_PERSONTRIP_JUNCTION_CHARGINGSTATION
@ GNE_TAG_RIDE_PARKINGAREA_TRAINSTOP
@ GNE_TAG_TRANSPORT_CONTAINERSTOP_PARKINGAREA
@ GNE_TAG_TRANSHIP_CONTAINERSTOP_CHARGINGSTATION
@ GNE_TAG_WALK_ROUTE
@ GNE_TAG_PERSONTRIP_EDGE_TAZ
@ GNE_TAG_RIDE_TAZ_BUSSTOP
@ GNE_TAG_WALK_CONTAINERSTOP_CONTAINERSTOP
@ GNE_TAG_RIDE_TRAINSTOP_PARKINGAREA
@ SUMO_TAG_PERSONFLOW
@ GNE_TAG_TRANSHIP_CONTAINERSTOP_EDGE
@ SUMO_TAG_TRIP
a single trip definition (used by router)
@ GNE_TAG_WALK_CHARGINGSTATION_CHARGINGSTATION
@ GNE_TAG_TRANSHIP_TRAINSTOP_TAZ
@ GNE_TAG_RIDE_EDGE_CONTAINERSTOP
@ GNE_TAG_STOPPERSON_PARKINGAREA
@ SUMO_TAG_EDGE
begin/end of the description of an edge
@ GNE_TAG_RIDE_TRAINSTOP_EDGE
@ GNE_TAG_TRANSHIP_TAZ_CONTAINERSTOP
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_NEXT_EDGES
@ 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_GROUP
@ 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_SHOW_DETECTOR
@ 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
@ GNE_ATTR_FROM_CHARGINGSTATION
@ SUMO_ATTR_ONROAD
@ SUMO_ATTR_LAT
@ SUMO_ATTR_WALKFACTOR
@ 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_OPEN_ENTRY
@ 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
static void fillPersonTripCommonAttributes(GNETagProperties &tagProperties)
fill person trip common attributes
static void fillPlanStopCommonAttributes(GNETagProperties &tagProperties)
fill plan stop common attributes
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 std::map< SumoXMLTag, GNETagProperties > myMergedPlanTagProperties
map with the merged tags properties
void setInGrid(bool value)
FXIcon * getACIcon() const
get FXIcon associated to this AC
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 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 fillWalkCommonAttributes(GNETagProperties &tagProperties)
fill walk common attributes
static void fillPersonStopElements()
fill person stop elements
static const std::vector< GNETagProperties > getTagPropertiesByType(const int tagPropertyCategory, const bool mergeCommonPlans)
get tagProperties associated to the given GNETagProperties::TagType (NETWORKELEMENT,...
static void fillTransportCommonAttributes(GNETagProperties &tagProperties)
fill transport 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....
bool myInGrid
boolean to check if this AC is in grid
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
static void fillTranshipCommonAttributes(GNETagProperties &tagProperties)
fill ride common 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
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 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
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
bool inGrid() const
check if this AC was inserted in grid
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 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 const std::vector< GNETagProperties > getTagPropertiesByMergingTag(SumoXMLTag mergingTag)
get tagProperties associated to the given merging tag
static void fillContainerTranshipElements()
fill container tranship elements
static void fillRideCommonAttributes(GNETagProperties &tagProperties)
fill ride common attributes
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:123
GNEViewNet * getViewNet() const
get view net
Definition: GNENet.cpp:2136
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
void addAttribute(const GNEAttributeProperties &attributeProperty)
add attribute (duplicated attributed aren't allowed)
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)
bool hasAttribute(SumoXMLAttr attr) const
check if current TagProperties owns the attribute "attr"
const GNEAttributeCarrier * getFrontAttributeCarrier() const
get front attributeCarrier
const GNEViewNetHelper::EditModes & getEditModes() const
get edit modes
Definition: GNEViewNet.cpp:723
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< PersonMode > PersonModeValues
person modes
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