Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
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>
31
32#include "GNEAttributeCarrier.h"
33
34
35// ===========================================================================
36// static members
37// ===========================================================================
38
39std::map<SumoXMLTag, GNETagProperties> GNEAttributeCarrier::myTagProperties;
40std::map<SumoXMLTag, GNETagProperties> GNEAttributeCarrier::myMergedPlanTagProperties;
41const std::string GNEAttributeCarrier::FEATURE_LOADED = "loaded";
42const std::string GNEAttributeCarrier::FEATURE_GUESSED = "guessed";
43const std::string GNEAttributeCarrier::FEATURE_MODIFIED = "modified";
44const std::string GNEAttributeCarrier::FEATURE_APPROVED = "approved";
47const std::string GNEAttributeCarrier::True = toString(true);
48const 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
64const std::string
68
69
70GNENet*
72 return myNet;
73}
74
75
76void
79 gSelected.select(getGUIGlObject()->getGlID());
80 if (changeFlag) {
81 mySelected = true;
82 }
83 }
84}
85
86
87void
90 gSelected.deselect(getGUIGlObject()->getGlID());
91 if (changeFlag) {
92 mySelected = false;
93 }
94 }
95}
96
97
98bool
102
103
104bool
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
126void
128 myInGrid = value;
129}
130
131
132bool
134 return myInGrid;
135}
136
137
138bool
142
143
144bool
148
149
150void
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
163void
165 throw ProcessError(TL("Nothing to enable, implement in Children"));
166
167}
168
169
170void
172 throw ProcessError(TL("Nothing to disable, implement in Children"));
173}
174
175
176bool
178 // by default, all attributes are enabled
179 return true;
180}
181
182
183bool
185 // by default, all attributes aren't computed
186 return false;
187}
188
189
190template<> int
191GNEAttributeCarrier::parse(const std::string& string) {
192 return StringUtils::toInt(string);
193}
194
195
196template<> double
197GNEAttributeCarrier::parse(const std::string& string) {
198 return StringUtils::toDouble(string);
199}
200
201
202template<> SUMOTime
203GNEAttributeCarrier::parse(const std::string& string) {
204 return string2time(string);
205}
206
207
208template<> bool
209GNEAttributeCarrier::parse(const std::string& string) {
210 return StringUtils::toBool(string);
211}
212
213
214template<> std::string
215GNEAttributeCarrier::parse(const std::string& string) {
216 return string;
217}
218
219
220template<> SUMOVehicleClass
221GNEAttributeCarrier::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
232template<> RGBColor
233GNEAttributeCarrier::parse(const std::string& string) {
234 if (string.empty()) {
235 return RGBColor::INVISIBLE;
236 } else {
237 return RGBColor::parseColor(string);
238 }
239}
240
241
242template<> Position
243GNEAttributeCarrier::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
258template<> PositionVector
259GNEAttributeCarrier::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
276template<> SUMOVehicleShape
277GNEAttributeCarrier::parse(const std::string& string) {
278 if ((string == "unknown") || (!SumoVehicleShapeStrings.hasString(string))) {
280 } else {
281 return SumoVehicleShapeStrings.get(string);
282 }
283}
284
285
286template<> std::vector<std::string>
287GNEAttributeCarrier::parse(const std::string& string) {
288 return StringTokenizer(string).getVector();
289}
290
291
292template<> std::set<std::string>
293GNEAttributeCarrier::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
303template<> std::vector<int>
304GNEAttributeCarrier::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
314template<> std::vector<double>
315GNEAttributeCarrier::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
325template<> std::vector<bool>
326GNEAttributeCarrier::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
336template<> std::vector<SumoXMLAttr>
337GNEAttributeCarrier::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
353template<> std::vector<GNEEdge*>
354GNEAttributeCarrier::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
372template<> std::vector<GNELane*>
373GNEAttributeCarrier::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
391template<> std::string
392GNEAttributeCarrier::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
402template<> std::string
403GNEAttributeCarrier::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
413bool
414GNEAttributeCarrier::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
444template<> 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
459template<> 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
470void
471GNEAttributeCarrier::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
489void
490GNEAttributeCarrier::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
502void
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
519void
520GNEAttributeCarrier::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
530void
531GNEAttributeCarrier::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
546std::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
612std::string
616
617
618const std::string&
622
623
624FXIcon*
626 // define on first access
627 if (myTagProperties.size() == 0) {
629 }
630 // special case for vClass icons
633 } else {
635 }
636}
637
638
639bool
643
644
645const GNETagProperties&
649
650// ===========================================================================
651// static methods
652// ===========================================================================
653
654const 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
673const std::vector<GNETagProperties>
674GNEAttributeCarrier::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
895const 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
923void
925 for (const auto& attrProperty : myTagProperty) {
926 if (attrProperty.hasDefaultValue()) {
927 setAttribute(attrProperty.getAttr(), attrProperty.getDefaultValue());
928 }
929 }
930}
931
932
933void
934GNEAttributeCarrier::toggleAttribute(SumoXMLAttr /*key*/, const bool /*value*/) {
935 throw ProcessError(TL("Nothing to toggle, implement in Children"));
936}
937
938
939void
941 // fill all groups of ACs
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
973void
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,
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
1013 TL("An optional type for the node"));
1014 attrProperty.setDiscreteValues(nodeTypes);
1015 myTagProperties[currentTag].addAttribute(attrProperty);
1016
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"),
1039 myTagProperties[currentTag].addAttribute(attrProperty);
1040
1043 TL("Whether this junction is at the fringe of the network"),
1046 myTagProperties[currentTag].addAttribute(attrProperty);
1047
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
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,
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
1101 TL("The maximum speed allowed on the edge in m/s"),
1102 toString(neteditOptions.getFloat("default.speed")));
1103 myTagProperties[currentTag].addAttribute(attrProperty);
1104
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
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,
1155 GUIIcon::LANETYPE, currentTag, TL("LaneType"));
1156 // set values of attributes
1159 TL("The maximum speed allowed on the lane in m/s"),
1160 toString(neteditOptions.getFloat("default.speed")));
1161 myTagProperties[currentTag].addAttribute(attrProperty);
1162
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
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,
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
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
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
1225 TL("The name of a type within the SUMO edge type file"));
1226 myTagProperties[currentTag].addAttribute(attrProperty);
1227
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
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
1258 TL("street name (does not need to be unique, used for visualization)"));
1259 myTagProperties[currentTag].addAttribute(attrProperty);
1260
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
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,
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
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
1334 TL("Speed in meters per second"),
1335 "13.89");
1336 myTagProperties[currentTag].addAttribute(attrProperty);
1337
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
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
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,
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
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
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,
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
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
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,
1496 GUIIcon::CONNECTION, currentTag, TL("Connection"));
1497 // set values of attributes
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
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
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
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
1610 TL("set a custom edge type (for applying vClass-specific speed restrictions)"));
1611 myTagProperties[currentTag].addAttribute(attrProperty);
1612
1613
1616 TL("turning direction for this connection (computed)"));
1617 myTagProperties[currentTag].addAttribute(attrProperty);
1618
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,
1632 GUIIcon::JUNCTION, currentTag, TL("InternalLanes"));
1633 // internal lanes does't have attributes
1634 }
1635}
1636
1637
1638void
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,
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
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
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
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
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,
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
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
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
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
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,
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
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,
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
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
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
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
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,
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
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
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,
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
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
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
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
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,
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
2078 TL("Name of parking space"));
2079 myTagProperties[currentTag].addAttribute(attrProperty);
2080
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
2093 TL("The angle of the road-side parking spaces relative to the lane angle, positive means clockwise"));
2094 myTagProperties[currentTag].addAttribute(attrProperty);
2095
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,
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
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
2137 TL("Name of induction loop"));
2138 myTagProperties[currentTag].addAttribute(attrProperty);
2139
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,
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
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
2210 TL("The traffic light that triggers aggregation when switching"));
2211 myTagProperties[currentTag].addAttribute(attrProperty);
2212
2215 TL("Name of lane area detector"));
2216 myTagProperties[currentTag].addAttribute(attrProperty);
2217
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 }
2273 {
2274 // set values of tag
2275 myTagProperties[currentTag] = GNETagProperties(currentTag,
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
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
2311 TL("The traffic light that triggers aggregation when switching"));
2312 myTagProperties[currentTag].addAttribute(attrProperty);
2313
2316 TL("Name of Multilane E2 detector"));
2317 myTagProperties[currentTag].addAttribute(attrProperty);
2318
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,
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
2403 TL("Name of Entry Exit detector"));
2404 myTagProperties[currentTag].addAttribute(attrProperty);
2405
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,
2460 GUIIcon::E3ENTRY, currentTag, TL("E3 DetEntry"),
2461 {SUMO_TAG_ENTRY_EXIT_DETECTOR}, FXRGBA(210, 233, 255, 255));
2462 // set values of attributes
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,
2490 GUIIcon::E3EXIT, currentTag, TL("E3 DetExit"),
2491 {SUMO_TAG_ENTRY_EXIT_DETECTOR}, FXRGBA(210, 233, 255, 255));
2492 // set values of attributes
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 }
2513 {
2514 // set values of tag
2515 myTagProperties[currentTag] = GNETagProperties(currentTag,
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
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
2540 TL("Name of instant induction loop"));
2541 myTagProperties[currentTag].addAttribute(attrProperty);
2542
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,
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
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
2602 TL("Name of route probe"));
2603 myTagProperties[currentTag].addAttribute(attrProperty);
2604
2607 TL("The file for generated output"));
2608 myTagProperties[currentTag].addAttribute(attrProperty);
2609
2612 TL("The time at which to start generating output"),
2613 "0");
2614 myTagProperties[currentTag].addAttribute(attrProperty);
2615
2618 TL("Space separated list of vehicle type ids to consider (empty to affect all types)"));
2619 myTagProperties[currentTag].addAttribute(attrProperty);
2620 }
2621 currentTag = SUMO_TAG_VSS;
2622 {
2623 // set values of tag
2624 myTagProperties[currentTag] = GNETagProperties(currentTag,
2629 GUIIcon::VARIABLESPEEDSIGN, currentTag, TL("VariableSpeedSign"),
2630 {}, FXRGBA(210, 233, 255, 255));
2631 // set values of attributes
2632 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2634 TL("The id of Variable Speed Signal"));
2635 myTagProperties[currentTag].addAttribute(attrProperty);
2636
2639 TL("X-Y position of detector in editor (Only used in netedit)"),
2640 "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2641 myTagProperties[currentTag].addAttribute(attrProperty);
2642
2645 TL("List of Variable Speed Sign lanes"));
2646 myTagProperties[currentTag].addAttribute(attrProperty);
2647
2650 TL("Name of Variable Speed Signal"));
2651 myTagProperties[currentTag].addAttribute(attrProperty);
2652
2655 TL("Space separated list of vehicle type ids to consider (empty to affect all types)"));
2656 myTagProperties[currentTag].addAttribute(attrProperty);
2657 }
2658 currentTag = GNE_TAG_VSS_SYMBOL;
2659 {
2660 // set values of tag
2661 myTagProperties[currentTag] = GNETagProperties(currentTag,
2666 GUIIcon::LANE, currentTag, TL("VariableSpeedSign (lane)"),
2667 {SUMO_TAG_VSS}, FXRGBA(210, 233, 255, 255));
2668 }
2669 currentTag = SUMO_TAG_STEP;
2670 {
2671 // set values of tag
2672 myTagProperties[currentTag] = GNETagProperties(currentTag,
2677 GUIIcon::VSSSTEP, currentTag, TL("VariableSpeedSign Step"),
2678 {SUMO_TAG_VSS}, FXRGBA(210, 233, 255, 255));
2679 // set values of attributes
2682 TL("Time"));
2683 myTagProperties[currentTag].addAttribute(attrProperty);
2684
2687 TL("Speed"),
2688 "13.89");
2689 myTagProperties[currentTag].addAttribute(attrProperty);
2690 }
2691 currentTag = SUMO_TAG_CALIBRATOR;
2692 {
2693 // set values of tag
2694 myTagProperties[currentTag] = GNETagProperties(currentTag,
2699 GUIIcon::CALIBRATOR, currentTag, TL("Calibrator"),
2700 {}, FXRGBA(253, 255, 206, 255));
2701 // set values of attributes
2702 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2704 TL("The id of Calibrator"));
2705 myTagProperties[currentTag].addAttribute(attrProperty);
2706
2709 TL("The id of edge in the simulation network"));
2710 myTagProperties[currentTag].addAttribute(attrProperty);
2711
2714 TL("The position of the calibrator on the specified lane"),
2715 "0.00");
2716 myTagProperties[currentTag].addAttribute(attrProperty);
2717
2720 TL("The aggregation interval in which to calibrate the flows. Default is step-length"),
2721 "1.00");
2722 myTagProperties[currentTag].addAttribute(attrProperty);
2723
2726 TL("Name of Calibrator"));
2727 myTagProperties[currentTag].addAttribute(attrProperty);
2728
2731 TL("The id of the routeProbe element from which to determine the route distribution for generated vehicles"));
2732 myTagProperties[currentTag].addAttribute(attrProperty);
2733
2736 TL("The output file for writing calibrator information or NULL"));
2737 myTagProperties[currentTag].addAttribute(attrProperty);
2738
2741 TL("A threshold value to detect and clear unexpected jamming"),
2742 "0.50");
2743 myTagProperties[currentTag].addAttribute(attrProperty);
2744
2747 TL("space separated list of vehicle type ids to consider (empty to affect all types)"));
2748 myTagProperties[currentTag].addAttribute(attrProperty);
2749 }
2750 currentTag = GNE_TAG_CALIBRATOR_LANE;
2751 {
2752 // set values of tag
2753 myTagProperties[currentTag] = GNETagProperties(currentTag,
2758 GUIIcon::CALIBRATOR, SUMO_TAG_CALIBRATOR, TL("CalibratorLane"),
2759 {}, FXRGBA(253, 255, 206, 255));
2760 // set values of attributes
2761 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2763 TL("The id of Calibrator"));
2764 myTagProperties[currentTag].addAttribute(attrProperty);
2765
2768 TL("The id of lane in the simulation network"));
2769 myTagProperties[currentTag].addAttribute(attrProperty);
2770
2773 TL("The position of the calibrator on the specified lane"),
2774 "0.00");
2775 myTagProperties[currentTag].addAttribute(attrProperty);
2776
2779 TL("The aggregation interval in which to calibrate the flows. Default is step-length"),
2780 "1.00");
2781 myTagProperties[currentTag].addAttribute(attrProperty);
2782
2785 TL("Name of calibrator lane"));
2786 myTagProperties[currentTag].addAttribute(attrProperty);
2787
2790 TL("The id of the routeProbe element from which to determine the route distribution for generated vehicles"));
2791 myTagProperties[currentTag].addAttribute(attrProperty);
2792
2795 TL("The output file for writing calibrator information or NULL"));
2796 myTagProperties[currentTag].addAttribute(attrProperty);
2797
2800 TL("A threshold value to detect and clear unexpected jamming"),
2801 "0.50");
2802 myTagProperties[currentTag].addAttribute(attrProperty);
2803
2806 TL("space separated list of vehicle type ids to consider (empty to affect all types)"));
2807 myTagProperties[currentTag].addAttribute(attrProperty);
2808 }
2809 currentTag = GNE_TAG_CALIBRATOR_FLOW;
2810 {
2811 // set values of tag
2812 myTagProperties[currentTag] = GNETagProperties(currentTag,
2817 GUIIcon::FLOW, SUMO_TAG_FLOW, TL("CalibratorFlow"),
2818 {SUMO_TAG_CALIBRATOR}, FXRGBA(253, 255, 206, 255));
2819 // set values of attributes
2822 TL("The id of the route the vehicle shall drive along"));
2823 myTagProperties[currentTag].addAttribute(attrProperty);
2824
2827 TL("First calibrator flow departure time"),
2828 "0");
2829 myTagProperties[currentTag].addAttribute(attrProperty);
2830
2833 TL("End of departure interval"),
2834 "3600");
2835 myTagProperties[currentTag].addAttribute(attrProperty);
2836
2837 // fill common vehicle attributes
2838 fillCommonVehicleAttributes(currentTag);
2839
2840 // optional attributes (at least one must be defined)
2843 TL("The id of the vehicle type to use for this calibrator flow"),
2845 myTagProperties[currentTag].addAttribute(attrProperty);
2846
2849 TL("Number of vehicles per hour, equally spaced"),
2850 "1800");
2851 myTagProperties[currentTag].addAttribute(attrProperty);
2852
2855 TL("Vehicle's speed"),
2856 "15.0");
2857 myTagProperties[currentTag].addAttribute(attrProperty);
2858 }
2859 currentTag = SUMO_TAG_REROUTER;
2860 {
2861 // set values of tag
2862 myTagProperties[currentTag] = GNETagProperties(currentTag,
2867 GUIIcon::REROUTER, currentTag, TL("Rerouter"),
2868 {}, FXRGBA(255, 213, 213, 255));
2869
2870 // set values of attributes
2871 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2873 TL("The id of Rerouter"));
2874 myTagProperties[currentTag].addAttribute(attrProperty);
2875
2878 TL("An edge id or a list of edge ids where vehicles shall be rerouted"));
2879 myTagProperties[currentTag].addAttribute(attrProperty);
2880
2883 TL("X,Y position in editor (Only used in netedit)"),
2884 "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2885 myTagProperties[currentTag].addAttribute(attrProperty);
2886
2889 TL("Name of Rerouter"));
2890 myTagProperties[currentTag].addAttribute(attrProperty);
2891
2894 TL("The probability for vehicle rerouting (0-1)"),
2895 "1.00");
2896 myTagProperties[currentTag].addAttribute(attrProperty);
2897
2900 TL("The waiting time threshold (in s) that must be reached to activate rerouting (default -1 which disables the threshold)"),
2901 "0.00");
2902 myTagProperties[currentTag].addAttribute(attrProperty);
2903
2906 TL("The list of vehicle types that shall be affected by this rerouter (empty to affect all types)"));
2907 myTagProperties[currentTag].addAttribute(attrProperty);
2908
2911 TL("Whether the router should be inactive initially (and switched on in the gui)"),
2912 "0");
2913 myTagProperties[currentTag].addAttribute(attrProperty);
2914
2917 TL("If rerouter is optional"),
2918 "0");
2919 myTagProperties[currentTag].addAttribute(attrProperty);
2920 }
2921 currentTag = GNE_TAG_REROUTER_SYMBOL;
2922 {
2923 // set values of tag
2924 myTagProperties[currentTag] = GNETagProperties(currentTag,
2929 GUIIcon::EDGE, currentTag, TL("Rerouter (Edge)"),
2930 {GNE_TAG_REROUTER_SYMBOL}, FXRGBA(255, 213, 213, 255));
2931 }
2932 currentTag = SUMO_TAG_INTERVAL;
2933 {
2934 // set values of tag
2935 myTagProperties[currentTag] = GNETagProperties(currentTag,
2940 GUIIcon::REROUTERINTERVAL, currentTag, TL("Rerouter Interval"),
2941 {SUMO_TAG_REROUTER}, FXRGBA(255, 213, 213, 255));
2942 // set values of attributes
2945 TL("Begin"),
2946 "0");
2947 myTagProperties[currentTag].addAttribute(attrProperty);
2948
2951 TL("End"),
2952 "3600");
2953 myTagProperties[currentTag].addAttribute(attrProperty);
2954 }
2955 currentTag = SUMO_TAG_CLOSING_REROUTE;
2956 {
2957 // set values of tag
2958 myTagProperties[currentTag] = GNETagProperties(currentTag,
2963 GUIIcon::CLOSINGREROUTE, currentTag, TL("ClosingReroute"),
2964 {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
2965 // set values of attributes
2968 TL("Edge ID"));
2969 attrProperty.setSynonym(SUMO_ATTR_ID);
2970 myTagProperties[currentTag].addAttribute(attrProperty);
2971
2974 TL("allowed vehicles"));
2975 myTagProperties[currentTag].addAttribute(attrProperty);
2976
2979 TL("disallowed vehicles"));
2980 myTagProperties[currentTag].addAttribute(attrProperty);
2981 }
2982 currentTag = SUMO_TAG_CLOSING_LANE_REROUTE;
2983 {
2984 // set values of tag
2985 myTagProperties[currentTag] = GNETagProperties(currentTag,
2990 GUIIcon::CLOSINGLANEREROUTE, currentTag, TL("ClosingLaneReroute"),
2991 {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
2992 // set values of attributes
2995 TL("Lane ID"));
2996 attrProperty.setSynonym(SUMO_ATTR_ID);
2997 myTagProperties[currentTag].addAttribute(attrProperty);
2998
3001 TL("allowed vehicles"));
3002 myTagProperties[currentTag].addAttribute(attrProperty);
3003
3006 TL("disallowed vehicles"));
3007 myTagProperties[currentTag].addAttribute(attrProperty);
3008 }
3009 currentTag = SUMO_TAG_DEST_PROB_REROUTE;
3010 {
3011 // set values of tag
3012 myTagProperties[currentTag] = GNETagProperties(currentTag,
3017 GUIIcon::DESTPROBREROUTE, currentTag, TL("DestinationProbabilityReroute"),
3018 {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
3019 // set values of attributes
3022 TL("Edge ID"));
3023 attrProperty.setSynonym(SUMO_ATTR_ID);
3024 myTagProperties[currentTag].addAttribute(attrProperty);
3025
3028 TL("SUMO Probability"),
3029 "1.00");
3030 myTagProperties[currentTag].addAttribute(attrProperty);
3031 }
3032 currentTag = SUMO_TAG_PARKING_AREA_REROUTE;
3033 {
3034 // set values of tag
3035 myTagProperties[currentTag] = GNETagProperties(currentTag,
3040 GUIIcon::PARKINGZONEREROUTE, currentTag, TL("ParkingAreaReroute"),
3041 {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
3042 // set values of attributes
3045 TL("ParkingArea ID"));
3046 attrProperty.setSynonym(SUMO_ATTR_ID);
3047 myTagProperties[currentTag].addAttribute(attrProperty);
3048
3051 TL("SUMO Probability"),
3052 "1.00");
3053 myTagProperties[currentTag].addAttribute(attrProperty);
3054
3057 TL("Enable or disable visibility for parking area reroutes"),
3058 "1");
3059 myTagProperties[currentTag].addAttribute(attrProperty);
3060 }
3061 currentTag = SUMO_TAG_ROUTE_PROB_REROUTE;
3062 {
3063 // set values of tag
3064 myTagProperties[currentTag] = GNETagProperties(currentTag,
3069 GUIIcon::ROUTEPROBREROUTE, currentTag, TL("RouteProbabilityReroute"),
3070 {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
3071 // set values of attributes
3074 TL("Route"));
3075 attrProperty.setSynonym(SUMO_ATTR_ID);
3076 myTagProperties[currentTag].addAttribute(attrProperty);
3077
3080 TL("SUMO Probability"),
3081 "1.00");
3082 myTagProperties[currentTag].addAttribute(attrProperty);
3083 }
3084 currentTag = SUMO_TAG_VAPORIZER;
3085 {
3086 // set values of tag
3087 myTagProperties[currentTag] = GNETagProperties(currentTag,
3092 GUIIcon::VAPORIZER, currentTag, TL("Vaporizer"),
3093 {}, FXRGBA(253, 255, 206, 255));
3094 // set values of attributes
3095 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3097 TL("Edge in which vaporizer is placed"));
3098 myTagProperties[currentTag].addAttribute(attrProperty);
3099
3102 TL("Start Time"),
3103 "0");
3104 myTagProperties[currentTag].addAttribute(attrProperty);
3105
3108 TL("End Time"),
3109 "3600");
3110 myTagProperties[currentTag].addAttribute(attrProperty);
3111
3114 TL("Name of vaporizer"));
3115 myTagProperties[currentTag].addAttribute(attrProperty);
3116 }
3117}
3118
3119
3120void
3122 // declare empty GNEAttributeProperties
3123 GNEAttributeProperties attrProperty;
3124
3125 // fill shape ACs
3126 SumoXMLTag currentTag = SUMO_TAG_POLY;
3127 {
3128 // set values of tag
3129 myTagProperties[currentTag] = GNETagProperties(currentTag,
3134 GUIIcon::POLY, currentTag, TL("Polygon"),
3135 {}, FXRGBA(240, 255, 205, 255));
3136 // set values of attributes
3137 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3139 TL("The id of the polygon"));
3140 myTagProperties[currentTag].addAttribute(attrProperty);
3141
3144 TL("The shape of the polygon"));
3145 myTagProperties[currentTag].addAttribute(attrProperty);
3146
3149 TL("The RGBA color with which the polygon shall be displayed"),
3150 "red");
3151 myTagProperties[currentTag].addAttribute(attrProperty);
3152
3155 TL("An information whether the polygon shall be filled"),
3156 "0");
3157 myTagProperties[currentTag].addAttribute(attrProperty);
3158
3161 TL("The default line width for drawing an unfilled polygon"),
3162 "1");
3163 myTagProperties[currentTag].addAttribute(attrProperty);
3164
3167 TL("The layer in which the polygon lies"),
3169 myTagProperties[currentTag].addAttribute(attrProperty);
3170
3173 TL("A typename for the polygon"),
3175 myTagProperties[currentTag].addAttribute(attrProperty);
3176
3179 TL("Polygon's name"));
3180 myTagProperties[currentTag].addAttribute(attrProperty);
3181
3184 TL("A bitmap to use for rendering this polygon"),
3186 myTagProperties[currentTag].addAttribute(attrProperty);
3187
3190 TL("Enable or disable use image file as a relative path"),
3192 myTagProperties[currentTag].addAttribute(attrProperty);
3193
3196 TL("Angle of rendered image in degree"),
3198 myTagProperties[currentTag].addAttribute(attrProperty);
3199 }
3200 currentTag = SUMO_TAG_POI;
3201 {
3202 // set values of tag
3203 myTagProperties[currentTag] = GNETagProperties(currentTag,
3208 GUIIcon::POI, currentTag, TL("PointOfInterest"),
3209 {}, FXRGBA(210, 233, 255, 255));
3210 // set values of attributes
3211 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3213 TL("The id of the POI"));
3214 myTagProperties[currentTag].addAttribute(attrProperty);
3215
3217 GNEAttributeProperties::STRING | GNEAttributeProperties::POSITION | GNEAttributeProperties::UNIQUE | GNEAttributeProperties::UPDATEGEOMETRY, // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
3218 TL("The position in view"));
3219 myTagProperties[currentTag].addAttribute(attrProperty);
3220
3221 // fill Poi attributes
3222 fillPOIAttributes(currentTag);
3223 }
3224 currentTag = GNE_TAG_POILANE;
3225 {
3226 // set values of tag
3227 myTagProperties[currentTag] = GNETagProperties(currentTag,
3232 GUIIcon::POILANE, SUMO_TAG_POI, TL("PointOfInterestLane"),
3233 {}, FXRGBA(210, 233, 255, 255));
3234 // set values of attributes
3235 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3237 TL("The id of the POI"));
3238 myTagProperties[currentTag].addAttribute(attrProperty);
3239
3242 TL("The name of the lane at which the POI is located at"));
3243 myTagProperties[currentTag].addAttribute(attrProperty);
3244
3247 TL("The position on the named lane or in the net in meters at which the POI is located at"));
3248 myTagProperties[currentTag].addAttribute(attrProperty);
3249
3252 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
3253 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
3254 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
3255 "0");
3256 myTagProperties[currentTag].addAttribute(attrProperty);
3257
3260 TL("The lateral offset on the named lane at which the POI is located at"),
3261 "0.00");
3262 myTagProperties[currentTag].addAttribute(attrProperty);
3263
3264 // fill Poi attributes
3265 fillPOIAttributes(currentTag);
3266 }
3267 currentTag = GNE_TAG_POIGEO;
3268 {
3269 // set values of tag
3270 myTagProperties[currentTag] = GNETagProperties(currentTag,
3275 GUIIcon::POIGEO, SUMO_TAG_POI, TL("PointOfInterestGeo"),
3276 {}, FXRGBA(210, 233, 255, 255));
3277 // set values of attributes
3278 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3280 TL("The id of the POI"));
3281 myTagProperties[currentTag].addAttribute(attrProperty);
3282
3283 // set values of attributes
3286 TL("The longitude position of the parking vehicle on the view"));
3287 myTagProperties[currentTag].addAttribute(attrProperty);
3288
3291 TL("The latitude position of the parking vehicle on the view"));
3292 myTagProperties[currentTag].addAttribute(attrProperty);
3293
3294 // fill Poi attributes
3295 fillPOIAttributes(currentTag);
3296 }
3297}
3298
3299
3300void
3302 // declare empty GNEAttributeProperties
3303 GNEAttributeProperties attrProperty;
3304
3305 // fill TAZ ACs
3306 SumoXMLTag currentTag = SUMO_TAG_TAZ;
3307 {
3308 // set values of tag
3309 myTagProperties[currentTag] = GNETagProperties(currentTag,
3314 GUIIcon::TAZ, currentTag, TL("TrafficAssignmentZones"));
3315 // set values of attributes
3316 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3318 TL("The id of the TAZ"));
3319 myTagProperties[currentTag].addAttribute(attrProperty);
3320
3323 TL("The shape of the TAZ"));
3324 myTagProperties[currentTag].addAttribute(attrProperty);
3325
3328 TL("TAZ center"));
3329 myTagProperties[currentTag].addAttribute(attrProperty);
3330
3333 TL("An information whether the TAZ shall be filled"),
3334 "0");
3335 myTagProperties[currentTag].addAttribute(attrProperty);
3336
3339 TL("The RGBA color with which the TAZ shall be displayed"),
3340 "red");
3341 myTagProperties[currentTag].addAttribute(attrProperty);
3342
3345 TL("Name of POI"));
3346 myTagProperties[currentTag].addAttribute(attrProperty);
3347 }
3348 currentTag = SUMO_TAG_TAZSOURCE;
3349 {
3350 // set values of tag
3351 myTagProperties[currentTag] = GNETagProperties(currentTag,
3356 GUIIcon::TAZEDGE, currentTag, TL("TAZ Source"),
3357 {SUMO_TAG_TAZ});
3358 // set values of attributes
3361 TL("The id of edge in the simulation network"));
3362 attrProperty.setSynonym(SUMO_ATTR_ID);
3363 myTagProperties[currentTag].addAttribute(attrProperty);
3364
3367 TL("Depart weight associated to this Edge"),
3368 "1");
3369 myTagProperties[currentTag].addAttribute(attrProperty);
3370 }
3371 currentTag = SUMO_TAG_TAZSINK;
3372 {
3373 // set values of tag
3374 myTagProperties[currentTag] = GNETagProperties(currentTag,
3379 GUIIcon::TAZEDGE, currentTag, TL("TAZ Sink"),
3380 {SUMO_TAG_TAZ});
3381 // set values of attributes
3384 TL("The id of edge in the simulation network"));
3385 attrProperty.setSynonym(SUMO_ATTR_ID);
3386 myTagProperties[currentTag].addAttribute(attrProperty);
3387
3390 TL("Arrival weight associated to this Edge"),
3391 "1");
3392 myTagProperties[currentTag].addAttribute(attrProperty);
3393 }
3394}
3395
3396
3397void
3399 // declare empty GNEAttributeProperties
3400 GNEAttributeProperties attrProperty;
3401
3402 // fill wire elements
3404 {
3405 // set tag properties
3406 myTagProperties[currentTag] = GNETagProperties(currentTag,
3411 GUIIcon::TRACTION_SUBSTATION, currentTag, TL("TractionSubstation"));
3412 // set attribute properties
3413 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3415 TL("Traction substation ID"));
3416 myTagProperties[currentTag].addAttribute(attrProperty);
3417
3420 TL("X-Y position of detector in editor (Only used in netedit)"),
3421 "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
3422 myTagProperties[currentTag].addAttribute(attrProperty);
3423
3426 TL("Voltage of at connection point for the overhead wire"),
3427 "600");
3428 myTagProperties[currentTag].addAttribute(attrProperty);
3429
3432 TL("Current limit of the feeder line"),
3433 "400");
3434 myTagProperties[currentTag].addAttribute(attrProperty);
3435 }
3436 currentTag = SUMO_TAG_OVERHEAD_WIRE_SECTION;
3437 {
3438 // set tag properties
3439 myTagProperties[currentTag] = GNETagProperties(currentTag,
3444 GUIIcon::OVERHEADWIRE, currentTag, TL("WireSection"));
3445 // set attribute properties
3446 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3448 TL("Overhead wire segment ID"));
3449 myTagProperties[currentTag].addAttribute(attrProperty);
3450
3453 TL("Substation to which the circuit is connected"));
3454 myTagProperties[currentTag].addAttribute(attrProperty);
3455
3458 TL("List of consecutive lanes of the circuit"));
3459 myTagProperties[currentTag].addAttribute(attrProperty);
3460
3463 TL("Starting position in the specified lane"),
3464 "0.0");
3465 myTagProperties[currentTag].addAttribute(attrProperty);
3466
3469 TL("Ending position in the specified lane"),
3471 myTagProperties[currentTag].addAttribute(attrProperty);
3472
3475 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
3476 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
3477 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
3478 "0");
3479 myTagProperties[currentTag].addAttribute(attrProperty);
3480
3483 TL("Inner lanes, where placing of overhead wire is restricted"));
3484 myTagProperties[currentTag].addAttribute(attrProperty);
3485 }
3486 currentTag = SUMO_TAG_OVERHEAD_WIRE_CLAMP;
3487 {
3488 // set tag properties
3489 myTagProperties[currentTag] = GNETagProperties(currentTag,
3494 GUIIcon::OVERHEADWIRE_CLAMP, currentTag, TL("OverheadWireClamp"));
3495 // set attribute properties
3496 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3498 TL("Overhead wire clamp ID"));
3499 myTagProperties[currentTag].addAttribute(attrProperty);
3500
3503 TL("ID of the overhead wire segment, to the start of which the overhead wire clamp is connected"));
3504 myTagProperties[currentTag].addAttribute(attrProperty);
3505
3508 TL("ID of the overhead wire segment lane of overheadWireIDStartClamp"));
3509 myTagProperties[currentTag].addAttribute(attrProperty);
3510
3513 TL("ID of the overhead wire segment, to the end of which the overhead wire clamp is connected"));
3514 myTagProperties[currentTag].addAttribute(attrProperty);
3515
3518 TL("ID of the overhead wire segment lane of overheadWireIDEndClamp"));
3519 myTagProperties[currentTag].addAttribute(attrProperty);
3520 }
3521}
3522
3523
3524void
3526 // declare empty GNEAttributeProperties
3527 GNEAttributeProperties attrProperty;
3528
3529 // fill shape ACs
3531 {
3532 // set values of tag
3533 myTagProperties[currentTag] = GNETagProperties(currentTag,
3538 GUIIcon::JPS_WALKABLEAREA, SUMO_TAG_POLY, TL("JuPedSim WalkableArea"),
3539 {}, FXRGBA(253, 255, 206, 255));
3540 // set values of attributes
3541 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3543 TL("The id of the walkable area"));
3544 myTagProperties[currentTag].addAttribute(attrProperty);
3545
3548 TL("The shape of the walkable area"));
3549 myTagProperties[currentTag].addAttribute(attrProperty);
3550
3551
3554 TL("Walkable area's name"));
3555 myTagProperties[currentTag].addAttribute(attrProperty);
3556 }
3557 currentTag = GNE_TAG_JPS_OBSTACLE;
3558 {
3559 // set values of tag
3560 myTagProperties[currentTag] = GNETagProperties(currentTag,
3565 GUIIcon::JPS_OBSTACLE, SUMO_TAG_POLY, TL("JuPedSim Obstacle"),
3566 {}, FXRGBA(253, 255, 206, 255));
3567 // set values of attributes
3568 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3570 TL("The id of the obstacle"));
3571 myTagProperties[currentTag].addAttribute(attrProperty);
3572
3575 TL("The shape of the obstacle"));
3576 myTagProperties[currentTag].addAttribute(attrProperty);
3577
3578
3581 TL("Obstacle's name"));
3582 myTagProperties[currentTag].addAttribute(attrProperty);
3583 }
3584}
3585
3586
3587void
3589 // declare empty GNEAttributeProperties
3590 GNEAttributeProperties attrProperty;
3591
3592 // fill demand elements
3593 SumoXMLTag currentTag = SUMO_TAG_ROUTE;
3594 {
3595 // set values of tag
3596 myTagProperties[currentTag] = GNETagProperties(currentTag,
3601 GUIIcon::ROUTE, currentTag, TL("Route"));
3602
3603 // set values of attributes
3604 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3606 TL("The id of Route"));
3607 myTagProperties[currentTag].addAttribute(attrProperty);
3608
3611 TL("Route distribution"));
3612 myTagProperties[currentTag].addAttribute(attrProperty);
3613
3616 TL("The edges the vehicle shall drive along, given as their ids, separated using spaces"));
3617 myTagProperties[currentTag].addAttribute(attrProperty);
3618
3621 TL("This route's color"));
3622 myTagProperties[currentTag].addAttribute(attrProperty);
3623
3626 TL("The number of times that the edges of this route shall be repeated"),
3627 "0");
3628 myTagProperties[currentTag].addAttribute(attrProperty);
3629
3632 TL("When defining a repeating route with stops and those stops use the until attribute,") + std::string("\n") +
3633 TL("the times will be shifted forward by 'cycleTime' on each repeat"),
3634 "0");
3635 myTagProperties[currentTag].addAttribute(attrProperty);
3636 }
3637 currentTag = SUMO_TAG_ROUTE_DISTRIBUTION;
3638 {
3639 // set values of tag
3640 myTagProperties[currentTag] = GNETagProperties(currentTag,
3645 GUIIcon::ROUTEDISTRIBUTION, currentTag, TL("RouteDistribution"));
3646
3647 // set values of attributes
3648 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3650 TL("The id of route distribution"));
3651 myTagProperties[currentTag].addAttribute(attrProperty);
3652 }
3653 currentTag = GNE_TAG_ROUTE_EMBEDDED;
3654 {
3655 // set values of tag
3656 myTagProperties[currentTag] = GNETagProperties(currentTag,
3661 GUIIcon::ROUTE, SUMO_TAG_ROUTE, TL("RouteEmbedded"),
3663
3664 // set values of attributes
3667 TL("The edges the vehicle shall drive along, given as their ids, separated using spaces"));
3668 myTagProperties[currentTag].addAttribute(attrProperty);
3669
3672 TL("This route's color"));
3673 myTagProperties[currentTag].addAttribute(attrProperty);
3674
3677 TL("The number of times that the edges of this route shall be repeated"),
3678 "0");
3679 myTagProperties[currentTag].addAttribute(attrProperty);
3680
3683 TL("When defining a repeating route with stops and those stops use the until attribute,") + std::string("\n") +
3684 TL("the times will be shifted forward by 'cycleTime' on each repeat"),
3685 "0");
3686 myTagProperties[currentTag].addAttribute(attrProperty);
3687 }
3688 currentTag = SUMO_TAG_VTYPE;
3689 {
3690 // set values of tag
3691 myTagProperties[currentTag] = GNETagProperties(currentTag,
3696 GUIIcon::VTYPE, currentTag, TL("VehicleType"));
3697
3698 // set values of attributes
3699 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3701 TL("type ID"));
3702 myTagProperties[currentTag].addAttribute(attrProperty);
3703
3706 TL("Type distribution"));
3707 myTagProperties[currentTag].addAttribute(attrProperty);
3708
3711 TL("An abstract vehicle class"),
3712 "passenger");
3713 attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
3714 myTagProperties[currentTag].addAttribute(attrProperty);
3715
3718 TL("This type's color"));
3719 myTagProperties[currentTag].addAttribute(attrProperty);
3720
3723 TL("The vehicle's netto-length (length) [m]"));
3724 myTagProperties[currentTag].addAttribute(attrProperty);
3725
3728 TL("Empty space after leader [m]"));
3729 myTagProperties[currentTag].addAttribute(attrProperty);
3730
3733 TL("The vehicle's maximum velocity [m/s]"));
3734 myTagProperties[currentTag].addAttribute(attrProperty);
3735
3738 TL("The vehicle's expected multiplicator for lane speed limits (or a distribution specifier)"));
3739 myTagProperties[currentTag].addAttribute(attrProperty);
3740
3743 TL("The vehicle's desired maximum velocity (interacts with speedFactor).") + std::string("\n") +
3744 TL("Applicable when no speed limit applies (bicycles, some motorways) [m/s]"));
3745 myTagProperties[currentTag].addAttribute(attrProperty);
3746
3749 TL("An abstract emission class"));
3751 myTagProperties[currentTag].addAttribute(attrProperty);
3752
3755 TL("How this vehicle is rendered"));
3756 attrProperty.setDiscreteValues(SumoVehicleShapeStrings.getStrings());
3757 myTagProperties[currentTag].addAttribute(attrProperty);
3758
3761 TL("The vehicle's width [m] (only used for drawing)"),
3762 "1.8");
3763 myTagProperties[currentTag].addAttribute(attrProperty);
3764
3767 TL("The vehicle's height [m] (only used for drawing)"),
3768 "1.5");
3769 myTagProperties[currentTag].addAttribute(attrProperty);
3770
3773 TL("The parking badges assigned to the vehicle"));
3774 myTagProperties[currentTag].addAttribute(attrProperty);
3775
3778 TL("Image file for rendering vehicles of this type (should be grayscale to allow functional coloring)"));
3779 myTagProperties[currentTag].addAttribute(attrProperty);
3780
3783 TL("The model used for changing lanes"),
3784 "default");
3786 myTagProperties[currentTag].addAttribute(attrProperty);
3787
3790 TL("The model used for car-following"),
3791 "Krauss");
3792 attrProperty.setDiscreteValues(SUMOXMLDefinitions::CarFollowModels.getStrings());
3793 myTagProperties[currentTag].addAttribute(attrProperty);
3794
3797 TL("The number of persons (excluding an autonomous driver) the vehicle can transport"));
3798 myTagProperties[currentTag].addAttribute(attrProperty);
3799
3802 TL("The number of containers the vehicle can transport"));
3803 myTagProperties[currentTag].addAttribute(attrProperty);
3804
3807 TL("The time required by a person to board the vehicle"),
3808 "0.50");
3809 myTagProperties[currentTag].addAttribute(attrProperty);
3810
3813 TL("The time required to load a container onto the vehicle"),
3814 "90.00");
3815 myTagProperties[currentTag].addAttribute(attrProperty);
3816
3819 TL("The preferred lateral alignment when using the sublane-model"),
3820 "center");
3822 myTagProperties[currentTag].addAttribute(attrProperty);
3823
3826 TL("The minimum lateral gap at a speed difference of 50km/h when using the sublane-model"),
3827 "0.12");
3828 myTagProperties[currentTag].addAttribute(attrProperty);
3829
3832 TL("The maximum lateral speed when using the sublane-model"),
3833 "1.00");
3834 myTagProperties[currentTag].addAttribute(attrProperty);
3835
3838 TL("The interval length for which vehicle performs its decision logic (acceleration and lane-changing)"),
3839 toString(OptionsCont::getOptions().getFloat("default.action-step-length")));
3840 myTagProperties[currentTag].addAttribute(attrProperty);
3841
3844 TL("The probability when being added to a distribution without an explicit probability"),
3846 myTagProperties[currentTag].addAttribute(attrProperty);
3847
3850 TL("3D model file for this class"));
3851 myTagProperties[currentTag].addAttribute(attrProperty);
3852
3855 TL("Carriage lengths"));
3856 myTagProperties[currentTag].addAttribute(attrProperty);
3857
3860 TL("Locomotive lengths"));
3861 myTagProperties[currentTag].addAttribute(attrProperty);
3862
3865 TL("Gap between carriages"),
3866 "1");
3867 myTagProperties[currentTag].addAttribute(attrProperty);
3868
3869 // fill VType Car Following Model Values (implemented in a separated function to improve code legibility)
3871
3872 // fill VType Junction Model Parameters (implemented in a separated function to improve code legibility)
3873 fillJunctionModelAttributes(currentTag);
3874
3875 // fill VType Lane Change Model Parameters (implemented in a separated function to improve code legibility)
3877 }
3878 currentTag = SUMO_TAG_VTYPE_DISTRIBUTION;
3879 {
3880 // set values of tag
3881 myTagProperties[currentTag] = GNETagProperties(currentTag,
3886 GUIIcon::VTYPEDISTRIBUTION, currentTag, TL("VehicleTypeDistribution"));
3887
3888 // set values of attributes
3889 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3891 TL("The id of VehicleType distribution"));
3892 myTagProperties[currentTag].addAttribute(attrProperty);
3893 }
3894}
3895
3896
3897void
3899 // declare empty GNEAttributeProperties
3900 GNEAttributeProperties attrProperty;
3901
3902 // fill vehicle ACs
3903 SumoXMLTag currentTag = SUMO_TAG_TRIP;
3904 {
3905 // set values of tag
3906 myTagProperties[currentTag] = GNETagProperties(currentTag,
3911 GUIIcon::TRIP, currentTag, TL("TripEdges"),
3912 {}, FXRGBA(253, 255, 206, 255), "trip (from-to edges)");
3913
3914 // set values of attributes
3915 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3917 TL("The ID of trip"));
3918 myTagProperties[currentTag].addAttribute(attrProperty);
3919
3922 TL("The id of the vehicle type to use for this trip"),
3924 myTagProperties[currentTag].addAttribute(attrProperty);
3925
3928 TL("The ID of the edge the trip starts at"));
3929 myTagProperties[currentTag].addAttribute(attrProperty);
3930
3931 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
3933 TL("The ID of the edge the trip ends at"));
3934 myTagProperties[currentTag].addAttribute(attrProperty);
3935
3938 TL("List of intermediate edge ids which shall be part of the trip"));
3939 myTagProperties[currentTag].addAttribute(attrProperty);
3940
3941 // add common attributes
3942 fillCommonVehicleAttributes(currentTag);
3943
3946 TL("The departure time of the (first) trip which is generated using this trip definition"),
3947 "0.00");
3948 myTagProperties[currentTag].addAttribute(attrProperty);
3949 }
3950 currentTag = GNE_TAG_TRIP_JUNCTIONS;
3951 {
3952 // set values of tag
3953 myTagProperties[currentTag] = GNETagProperties(currentTag,
3958 GUIIcon::TRIP_JUNCTIONS, SUMO_TAG_TRIP, TL("TripJunctions"),
3959 {}, FXRGBA(255, 213, 213, 255), "trip (from-to junctions)");
3960
3961 // set values of attributes
3962 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3964 TL("The id of trip"));
3965 myTagProperties[currentTag].addAttribute(attrProperty);
3966
3969 TL("The id of the vehicle type to use for this trip"),
3971 myTagProperties[currentTag].addAttribute(attrProperty);
3972
3975 TL("The name of the junction the trip starts at"));
3976 myTagProperties[currentTag].addAttribute(attrProperty);
3977
3980 TL("The name of the junction the trip ends at"));
3981 myTagProperties[currentTag].addAttribute(attrProperty);
3982
3983 // add common attributes
3984 fillCommonVehicleAttributes(currentTag);
3985
3988 TL("The departure time of the (first) trip which is generated using this trip definition"),
3989 "0.00");
3990 myTagProperties[currentTag].addAttribute(attrProperty);
3991 }
3992 currentTag = GNE_TAG_TRIP_TAZS;
3993 {
3994 // set values of tag
3995 myTagProperties[currentTag] = GNETagProperties(currentTag,
4000 GUIIcon::TRIP_TAZS, SUMO_TAG_TRIP, TL("TripTAZs"),
4001 {}, FXRGBA(240, 255, 205, 255), "trip (from-to TAZs)");
4002
4003 // set values of attributes
4004 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4006 TL("The id of trip"));
4007 myTagProperties[currentTag].addAttribute(attrProperty);
4008
4011 TL("The id of the vehicle type to use for this trip"),
4013 myTagProperties[currentTag].addAttribute(attrProperty);
4014
4017 TL("The name of the TAZ the trip starts at"));
4018 myTagProperties[currentTag].addAttribute(attrProperty);
4019
4022 TL("The name of the TAZ the trip ends at"));
4023 myTagProperties[currentTag].addAttribute(attrProperty);
4024
4025 // add common attributes
4026 fillCommonVehicleAttributes(currentTag);
4027
4030 TL("The departure time of the (first) trip which is generated using this trip definition"),
4031 "0.00");
4032 myTagProperties[currentTag].addAttribute(attrProperty);
4033 }
4034 currentTag = SUMO_TAG_VEHICLE;
4035 {
4036 // set values of tag
4037 myTagProperties[currentTag] = GNETagProperties(currentTag,
4042 GUIIcon::VEHICLE, currentTag, TL("VehicleRoute"),
4043 {}, FXRGBA(210, 233, 255, 255), "vehicle (over route)");
4044
4045 // set values of attributes
4046 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4048 TL("The ID of the vehicle"));
4049 myTagProperties[currentTag].addAttribute(attrProperty);
4050
4053 TL("The id of the vehicle type to use for this vehicle"),
4055 myTagProperties[currentTag].addAttribute(attrProperty);
4056
4059 TL("The id of the route the vehicle shall drive along"));
4060 myTagProperties[currentTag].addAttribute(attrProperty);
4061
4064 TL("The index of the edge within route the vehicle starts at"));
4065 myTagProperties[currentTag].addAttribute(attrProperty);
4066
4069 TL("The index of the edge within route the vehicle ends at"));
4070 myTagProperties[currentTag].addAttribute(attrProperty);
4071
4072 // add common attributes
4073 fillCommonVehicleAttributes(currentTag);
4074
4077 TL("The time step at which the vehicle shall enter the network"),
4078 "0.00");
4079 myTagProperties[currentTag].addAttribute(attrProperty);
4080 }
4081 currentTag = GNE_TAG_VEHICLE_WITHROUTE;
4082 {
4083 // set values of tag
4084 myTagProperties[currentTag] = GNETagProperties(currentTag,
4089 GUIIcon::VEHICLE, SUMO_TAG_VEHICLE, TL("VehicleEmbeddedRoute"),
4090 {}, FXRGBA(210, 233, 255, 255), "vehicle (embedded route)");
4091
4092 // set values of attributes
4093 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4095 TL("The ID of the vehicle"));
4096 myTagProperties[currentTag].addAttribute(attrProperty);
4097
4100 TL("The id of the vehicle type to use for this vehicle"),
4102 myTagProperties[currentTag].addAttribute(attrProperty);
4103
4106 TL("The index of the edge within route the vehicle starts at"));
4107 myTagProperties[currentTag].addAttribute(attrProperty);
4108
4111 TL("The index of the edge within route the vehicle ends at"));
4112 myTagProperties[currentTag].addAttribute(attrProperty);
4113
4114 // add common attributes
4115 fillCommonVehicleAttributes(currentTag);
4116
4119 TL("The time step at which the vehicle shall enter the network"),
4120 "0.00");
4121 myTagProperties[currentTag].addAttribute(attrProperty);
4122 }
4123 currentTag = SUMO_TAG_FLOW;
4124 {
4125 // set values of tag
4126 myTagProperties[currentTag] = GNETagProperties(currentTag,
4131 GUIIcon::FLOW, currentTag, TL("FlowEdges"),
4132 {}, FXRGBA(253, 255, 206, 255), "flow (from-to edges)");
4133
4134 // set values of attributes
4135 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4137 TL("The ID of the flow"));
4138 myTagProperties[currentTag].addAttribute(attrProperty);
4139
4142 TL("The id of the flow type to use for this flow"),
4144 myTagProperties[currentTag].addAttribute(attrProperty);
4145
4148 TL("The ID of the edge the flow starts at"));
4149 myTagProperties[currentTag].addAttribute(attrProperty);
4150
4151 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
4153 TL("The ID of the edge the flow ends at"));
4154 myTagProperties[currentTag].addAttribute(attrProperty);
4155
4158 TL("List of intermediate edge ids which shall be part of the flow"));
4159 myTagProperties[currentTag].addAttribute(attrProperty);
4160
4161 // add common attributes
4162 fillCommonVehicleAttributes(currentTag);
4163
4164 // add flow attributes
4166 }
4167 currentTag = GNE_TAG_FLOW_JUNCTIONS;
4168 {
4169 // set values of tag
4170 myTagProperties[currentTag] = GNETagProperties(currentTag,
4175 GUIIcon::FLOW_JUNCTIONS, SUMO_TAG_FLOW, TL("FlowJunctions"),
4176 {}, FXRGBA(255, 213, 213, 255), "flow (from-to junctions)");
4177
4178 // set values of attributes
4179 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4181 TL("The id of the flow"));
4182 myTagProperties[currentTag].addAttribute(attrProperty);
4183
4186 TL("The id of the flow type to use for this flow"),
4188 myTagProperties[currentTag].addAttribute(attrProperty);
4189
4192 TL("The name of the junction the flow starts at"));
4193 myTagProperties[currentTag].addAttribute(attrProperty);
4194
4197 TL("The name of the junction the flow ends at"));
4198 myTagProperties[currentTag].addAttribute(attrProperty);
4199
4200 // add common attributes
4201 fillCommonVehicleAttributes(currentTag);
4202
4203 // add flow attributes
4205 }
4206 currentTag = GNE_TAG_FLOW_TAZS;
4207 {
4208 // set values of tag
4209 myTagProperties[currentTag] = GNETagProperties(currentTag,
4214 GUIIcon::FLOW_TAZS, SUMO_TAG_FLOW, TL("FlowTAZs"),
4215 {}, FXRGBA(240, 255, 205, 255), "flow (from-to TAZs)");
4216
4217 // set values of attributes
4218 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4220 TL("The id of the flow"));
4221 myTagProperties[currentTag].addAttribute(attrProperty);
4222
4225 TL("The id of the flow type to use for this flow"),
4227 myTagProperties[currentTag].addAttribute(attrProperty);
4228
4231 TL("The name of the TAZ the flow starts at"));
4232 myTagProperties[currentTag].addAttribute(attrProperty);
4233
4236 TL("The name of the TAZ the flow ends at"));
4237 myTagProperties[currentTag].addAttribute(attrProperty);
4238
4239 // add common attributes
4240 fillCommonVehicleAttributes(currentTag);
4241
4242 // add flow attributes
4244 }
4245 currentTag = GNE_TAG_FLOW_ROUTE;
4246 {
4247 // set values of tag
4248 myTagProperties[currentTag] = GNETagProperties(currentTag,
4253 GUIIcon::ROUTEFLOW, SUMO_TAG_FLOW, TL("FlowRoute"),
4254 {}, FXRGBA(210, 233, 255, 255), "flow (over route)");
4255
4256 // set values of attributes
4257 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4259 TL("The id of the flow"));
4260 myTagProperties[currentTag].addAttribute(attrProperty);
4261
4264 TL("The id of the flow type to use for this flow"),
4266 myTagProperties[currentTag].addAttribute(attrProperty);
4267
4270 TL("The id of the route the flow shall drive along"));
4271 myTagProperties[currentTag].addAttribute(attrProperty);
4272
4275 TL("The index of the edge within route the flow starts at"));
4276 myTagProperties[currentTag].addAttribute(attrProperty);
4277
4280 TL("The index of the edge within route the flow ends at"));
4281 myTagProperties[currentTag].addAttribute(attrProperty);
4282
4283 // add common attributes
4284 fillCommonVehicleAttributes(currentTag);
4285
4286 // add flow attributes
4288 }
4289 currentTag = GNE_TAG_FLOW_WITHROUTE;
4290 {
4291 // set values of tag
4292 myTagProperties[currentTag] = GNETagProperties(currentTag,
4297 GUIIcon::ROUTEFLOW, SUMO_TAG_FLOW, TL("FlowEmbeddedRoute"),
4298 {}, FXRGBA(210, 233, 255, 255), "flow (embedded route)");
4299
4300 // set values of attributes
4301 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4303 TL("The name of the flow"));
4304 myTagProperties[currentTag].addAttribute(attrProperty);
4305
4308 TL("The id of the flow type to use for this flow"),
4310 myTagProperties[currentTag].addAttribute(attrProperty);
4311
4314 TL("The index of the edge within route the flow starts at"));
4315 myTagProperties[currentTag].addAttribute(attrProperty);
4316
4319 TL("The index of the edge within route the flow ends at"));
4320 myTagProperties[currentTag].addAttribute(attrProperty);
4321
4322 // add common attributes
4323 fillCommonVehicleAttributes(currentTag);
4324
4325 // add flow attributes
4327 }
4328}
4329
4330
4331void
4333 // declare empty GNEAttributeProperties
4334 GNEAttributeProperties attrProperty;
4335
4336 // fill stops ACs
4337 SumoXMLTag currentTag = GNE_TAG_STOP_LANE;
4338 {
4339 // set values of tag
4340 myTagProperties[currentTag] = GNETagProperties(currentTag,
4346 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4347 // set values of attributes
4350 TL("The name of the lane the stop shall be located at"));
4351 myTagProperties[currentTag].addAttribute(attrProperty);
4352
4355 TL("The begin position on the lane (the lower position on the lane) in meters"));
4356 myTagProperties[currentTag].addAttribute(attrProperty);
4357
4360 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"));
4361 myTagProperties[currentTag].addAttribute(attrProperty);
4362
4365 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
4366 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
4367 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
4368 "0");
4369 myTagProperties[currentTag].addAttribute(attrProperty);
4370
4373 TL("The lateral offset on the named lane at which the vehicle must stop"));
4374 myTagProperties[currentTag].addAttribute(attrProperty);
4375
4376 // fill common stop attributes
4377 fillCommonStopAttributes(currentTag, false);
4378 }
4379 currentTag = GNE_TAG_STOP_BUSSTOP;
4380 {
4381 // set values of tag
4382 myTagProperties[currentTag] = GNETagProperties(currentTag,
4387 GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopBusStop"),
4388 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4389 // set values of attributes
4392 TL("BusStop associated with this stop"));
4393 myTagProperties[currentTag].addAttribute(attrProperty);
4394
4395 // fill common stop attributes
4396 fillCommonStopAttributes(currentTag, false);
4397 }
4398 currentTag = GNE_TAG_STOP_TRAINSTOP;
4399 {
4400 // set values of tag
4401 myTagProperties[currentTag] = GNETagProperties(currentTag,
4406 GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopTrainStop"),
4407 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4408 // set values of attributes
4411 TL("TrainStop associated with this stop"));
4412 myTagProperties[currentTag].addAttribute(attrProperty);
4413
4414 // fill common stop attributes
4415 fillCommonStopAttributes(currentTag, false);
4416 }
4417 currentTag = GNE_TAG_STOP_CONTAINERSTOP;
4418 {
4419 // set values of tag
4420 myTagProperties[currentTag] = GNETagProperties(currentTag,
4425 GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopContainerStop"),
4426 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4427 // set values of attributes
4430 TL("ContainerStop associated with this stop"));
4431 myTagProperties[currentTag].addAttribute(attrProperty);
4432
4433 // fill common stop attributes
4434 fillCommonStopAttributes(currentTag, false);
4435 }
4436 currentTag = GNE_TAG_STOP_CHARGINGSTATION;
4437 {
4438 // set values of tag
4439 myTagProperties[currentTag] = GNETagProperties(currentTag,
4444 GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopChargingStation"),
4445 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4446 // set values of attributes
4449 TL("ChargingStation associated with this stop"));
4450 myTagProperties[currentTag].addAttribute(attrProperty);
4451
4452 // fill common stop attributes
4453 fillCommonStopAttributes(currentTag, false);
4454 }
4455 currentTag = GNE_TAG_STOP_PARKINGAREA;
4456 {
4457 // set values of tag
4458 myTagProperties[currentTag] = GNETagProperties(currentTag,
4463 GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopParkingArea"),
4464 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4465 // set values of attributes
4468 TL("ParkingArea associated with this stop"));
4469 myTagProperties[currentTag].addAttribute(attrProperty);
4470
4471 // fill common stop attributes (no parking)
4472 fillCommonStopAttributes(currentTag, false);
4473 }
4474}
4475
4476
4477void
4479 // declare empty GNEAttributeProperties
4480 GNEAttributeProperties attrProperty;
4481
4482 // fill waypoints ACs
4483 SumoXMLTag currentTag = GNE_TAG_WAYPOINT_LANE;
4484 {
4485 // set values of tag
4486 myTagProperties[currentTag] = GNETagProperties(currentTag,
4491 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointLane"),
4492 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4493 // set values of attributes
4496 TL("The name of the lane the waypoint shall be located at"));
4497 myTagProperties[currentTag].addAttribute(attrProperty);
4498
4501 TL("The begin position on the lane (the lower position on the lane) in meters"));
4502 myTagProperties[currentTag].addAttribute(attrProperty);
4503
4506 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"));
4507 myTagProperties[currentTag].addAttribute(attrProperty);
4508
4511 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
4512 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
4513 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
4514 "0");
4515 myTagProperties[currentTag].addAttribute(attrProperty);
4516
4519 TL("The lateral offset on the named lane at which the vehicle must waypoint"));
4520 myTagProperties[currentTag].addAttribute(attrProperty);
4521
4522 // fill common waypoint (stop) attributes
4523 fillCommonStopAttributes(currentTag, true);
4524 }
4525 currentTag = GNE_TAG_WAYPOINT_BUSSTOP;
4526 {
4527 // set values of tag
4528 myTagProperties[currentTag] = GNETagProperties(currentTag,
4533 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointBusStop"),
4534 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4535 // set values of attributes
4538 TL("BusWaypoint associated with this waypoint"));
4539 myTagProperties[currentTag].addAttribute(attrProperty);
4540
4541 // fill common waypoint (stop) attributes
4542 fillCommonStopAttributes(currentTag, true);
4543 }
4544 currentTag = GNE_TAG_WAYPOINT_TRAINSTOP;
4545 {
4546 // set values of tag
4547 myTagProperties[currentTag] = GNETagProperties(currentTag,
4552 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointTrainStop"),
4553 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4554 // set values of attributes
4557 TL("TrainWaypoint associated with this waypoint"));
4558 myTagProperties[currentTag].addAttribute(attrProperty);
4559
4560 // fill common waypoint (stop) attributes
4561 fillCommonStopAttributes(currentTag, true);
4562 }
4563 currentTag = GNE_TAG_WAYPOINT_CONTAINERSTOP;
4564 {
4565 // set values of tag
4566 myTagProperties[currentTag] = GNETagProperties(currentTag,
4571 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointContainerStop"),
4572 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4573 // set values of attributes
4576 TL("ContainerWaypoint associated with this waypoint"));
4577 myTagProperties[currentTag].addAttribute(attrProperty);
4578
4579 // fill common waypoint (stop) attributes
4580 fillCommonStopAttributes(currentTag, true);
4581 }
4583 {
4584 // set values of tag
4585 myTagProperties[currentTag] = GNETagProperties(currentTag,
4590 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointChargingStation"),
4591 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4592 // set values of attributes
4595 TL("ChargingStation associated with this waypoint"));
4596 myTagProperties[currentTag].addAttribute(attrProperty);
4597
4598 // fill common waypoint (stop) attributes
4599 fillCommonStopAttributes(currentTag, true);
4600 }
4601 currentTag = GNE_TAG_WAYPOINT_PARKINGAREA;
4602 {
4603 // set values of tag
4604 myTagProperties[currentTag] = GNETagProperties(currentTag,
4609 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointParkingArea"),
4610 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4611 // set values of attributes
4614 TL("ParkingArea associated with this waypoint"));
4615 myTagProperties[currentTag].addAttribute(attrProperty);
4616
4617 // fill common waypoint (stop) attributes
4618 fillCommonStopAttributes(currentTag, true);
4619 }
4620}
4621
4622
4623void
4625 // declare empty GNEAttributeProperties
4626 GNEAttributeProperties attrProperty;
4627
4628 // fill vehicle ACs
4629 SumoXMLTag currentTag = SUMO_TAG_PERSON;
4630 {
4631 // set values of tag
4632 myTagProperties[currentTag] = GNETagProperties(currentTag,
4637 GUIIcon::PERSON, currentTag, TL("Person"));
4638
4639 // add flow attributes
4640 fillCommonPersonAttributes(currentTag);
4641
4642 // set specific attribute depart (note: Persons doesn't support triggered and containerTriggered values)
4645 TL("The time step at which the person shall enter the network"),
4646 "0.00");
4647 myTagProperties[currentTag].addAttribute(attrProperty);
4648
4649 }
4650 currentTag = SUMO_TAG_PERSONFLOW;
4651 {
4652 // set values of tag
4653 myTagProperties[currentTag] = GNETagProperties(currentTag,
4658 GUIIcon::PERSONFLOW, currentTag, TL("PersonFlow"));
4659
4660 // add flow attributes
4661 fillCommonPersonAttributes(currentTag);
4662
4663 // add flow attributes
4665 }
4666}
4667
4668
4669void
4671 // declare empty GNEAttributeProperties
4672 GNEAttributeProperties attrProperty;
4673
4674 // fill vehicle ACs
4675 SumoXMLTag currentTag = SUMO_TAG_CONTAINER;
4676 {
4677 // set values of tag
4678 myTagProperties[currentTag] = GNETagProperties(currentTag,
4683 GUIIcon::CONTAINER, currentTag, TL("Container"));
4684
4685 // add flow attributes
4687
4690 TL("The time step at which the container shall enter the network"),
4691 "0.00");
4692 myTagProperties[currentTag].addAttribute(attrProperty);
4693 }
4694 currentTag = SUMO_TAG_CONTAINERFLOW;
4695 {
4696 // set values of tag
4697 myTagProperties[currentTag] = GNETagProperties(currentTag,
4702 GUIIcon::CONTAINERFLOW, currentTag, TL("ContainerFlow"));
4703
4704 // add common container attribute
4706
4707 // add flow attributes
4709 }
4710}
4711
4712
4713void
4715 // declare empty GNEAttributeProperties
4716 GNEAttributeProperties attrProperty;
4717 // declare common tag types and properties
4720 const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
4721 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
4722 const std::vector<SumoXMLTag> parents({SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW});
4723 const unsigned int color = FXRGBA(240, 255, 205, 255);
4724 const GUIIcon icon = GUIIcon::TRANSPORT_EDGE;
4725 const SumoXMLTag xmlTag = SUMO_TAG_TRANSPORT;
4726 // fill merged tag
4727 myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
4728 0,
4729 conflicts, icon, xmlTag, TL("Container"), parents, color);
4730 // set values of attributes
4732 // from edge
4734 {
4735 // set values of tag
4736 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4738 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("edge")), parents, color);
4739 // set values of attributes
4740 fillPlanParentAttributes(currentTag);
4742 }
4743 currentTag = GNE_TAG_TRANSPORT_EDGE_TAZ;
4744 {
4745 // set values of tag
4746 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4748 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("taz")), parents, color);
4749 // set values of attributes
4750 fillPlanParentAttributes(currentTag);
4752 }
4754 {
4755 // set values of tag
4756 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4758 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("junction")), parents, color);
4759 // set values of attributes
4760 fillPlanParentAttributes(currentTag);
4762 }
4763 currentTag = GNE_TAG_TRANSPORT_EDGE_BUSSTOP;
4764 {
4765 // set values of tag
4766 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4768 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("busStop")), parents, color);
4769 // set values of attributes
4770 fillPlanParentAttributes(currentTag);
4772 }
4774 {
4775 // set values of tag
4776 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4778 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("trainStop")), parents, color);
4779 // set values of attributes
4780 fillPlanParentAttributes(currentTag);
4782 }
4784 {
4785 // set values of tag
4786 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4788 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("containerStop")), parents, color);
4789 // set values of attributes
4790 fillPlanParentAttributes(currentTag);
4792 }
4794 {
4795 // set values of tag
4796 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4798 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("chargingStation")), parents, color);
4799 // set values of attributes
4800 fillPlanParentAttributes(currentTag);
4802 }
4804 {
4805 // set values of tag
4806 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4808 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("parkingArea")), parents, color);
4809 // set values of attributes
4810 fillPlanParentAttributes(currentTag);
4812 }
4813 // from taz
4814 currentTag = GNE_TAG_TRANSPORT_TAZ_EDGE;
4815 {
4816 // set values of tag
4817 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4819 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("taz")), parents, color);
4820 // set values of attributes
4821 fillPlanParentAttributes(currentTag);
4823 }
4824 currentTag = GNE_TAG_TRANSPORT_TAZ_TAZ;
4825 {
4826 // set values of tag
4827 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4829 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("taz")), parents, color);
4830 // set values of attributes
4831 fillPlanParentAttributes(currentTag);
4833 }
4834 currentTag = GNE_TAG_TRANSPORT_TAZ_JUNCTION;
4835 {
4836 // set values of tag
4837 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4839 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("junction")), parents, color);
4840 // set values of attributes
4841 fillPlanParentAttributes(currentTag);
4843 }
4844 currentTag = GNE_TAG_TRANSPORT_TAZ_BUSSTOP;
4845 {
4846 // set values of tag
4847 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4849 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("busStop")), parents, color);
4850 // set values of attributes
4851 fillPlanParentAttributes(currentTag);
4853 }
4855 {
4856 // set values of tag
4857 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4859 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("trainStop")), parents, color);
4860 // set values of attributes
4861 fillPlanParentAttributes(currentTag);
4863 }
4865 {
4866 // set values of tag
4867 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4869 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("containerStop")), parents, color);
4870 // set values of attributes
4871 fillPlanParentAttributes(currentTag);
4873 }
4875 {
4876 // set values of tag
4877 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4879 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("chargingStation")), parents, color);
4880 // set values of attributes
4881 fillPlanParentAttributes(currentTag);
4883 }
4885 {
4886 // set values of tag
4887 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4889 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("parkingArea")), parents, color);
4890 // set values of attributes
4891 fillPlanParentAttributes(currentTag);
4893 }
4894 // from junction
4896 {
4897 // set values of tag
4898 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4900 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("edge")), parents, color);
4901 // set values of attributes
4902 fillPlanParentAttributes(currentTag);
4904 }
4905 currentTag = GNE_TAG_TRANSPORT_JUNCTION_TAZ;
4906 {
4907 // set values of tag
4908 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4910 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("taz")), parents, color);
4911 // set values of attributes
4912 fillPlanParentAttributes(currentTag);
4914 }
4916 {
4917 // set values of tag
4918 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4920 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("junction")), parents, color);
4921 // set values of attributes
4922 fillPlanParentAttributes(currentTag);
4924 }
4926 {
4927 // set values of tag
4928 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4930 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("busStop")), parents, color);
4931 // set values of attributes
4932 fillPlanParentAttributes(currentTag);
4934 }
4936 {
4937 // set values of tag
4938 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4940 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("trainStop")), parents, color);
4941 // set values of attributes
4942 fillPlanParentAttributes(currentTag);
4944 }
4946 {
4947 // set values of tag
4948 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4950 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("containerStop")), parents, color);
4951 // set values of attributes
4952 fillPlanParentAttributes(currentTag);
4954 }
4956 {
4957 // set values of tag
4958 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4960 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("chargingStation")), parents, color);
4961 // set values of attributes
4962 fillPlanParentAttributes(currentTag);
4964 }
4966 {
4967 // set values of tag
4968 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4970 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("parkingArea")), parents, color);
4971 // set values of attributes
4972 fillPlanParentAttributes(currentTag);
4974 }
4975 // from busStop
4976 currentTag = GNE_TAG_TRANSPORT_BUSSTOP_EDGE;
4977 {
4978 // set values of tag
4979 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4981 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("edge")), parents, color);
4982 // set values of attributes
4983 fillPlanParentAttributes(currentTag);
4985 }
4986 currentTag = GNE_TAG_TRANSPORT_BUSSTOP_TAZ;
4987 {
4988 // set values of tag
4989 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4991 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("taz")), parents, color);
4992 // set values of attributes
4993 fillPlanParentAttributes(currentTag);
4995 }
4997 {
4998 // set values of tag
4999 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5001 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("junction")), parents, color);
5002 // set values of attributes
5003 fillPlanParentAttributes(currentTag);
5005 }
5007 {
5008 // set values of tag
5009 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5011 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("busStop")), parents, color);
5012 // set values of attributes
5013 fillPlanParentAttributes(currentTag);
5015 }
5017 {
5018 // set values of tag
5019 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5021 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("trainStop")), parents, color);
5022 // set values of attributes
5023 fillPlanParentAttributes(currentTag);
5025 }
5027 {
5028 // set values of tag
5029 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5031 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("containerStop")), parents, color);
5032 // set values of attributes
5033 fillPlanParentAttributes(currentTag);
5035 }
5037 {
5038 // set values of tag
5039 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5041 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("chargingStation")), parents, color);
5042 // set values of attributes
5043 fillPlanParentAttributes(currentTag);
5045 }
5047 {
5048 // set values of tag
5049 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5051 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("parkingArea")), parents, color);
5052 // set values of attributes
5053 fillPlanParentAttributes(currentTag);
5055 }
5056 // from trainStop
5058 {
5059 // set values of tag
5060 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5062 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("edge")), parents, color);
5063 // set values of attributes
5064 fillPlanParentAttributes(currentTag);
5066 }
5068 {
5069 // set values of tag
5070 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5072 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("taz")), parents, color);
5073 // set values of attributes
5074 fillPlanParentAttributes(currentTag);
5076 }
5078 {
5079 // set values of tag
5080 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5082 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("junction")), parents, color);
5083 // set values of attributes
5084 fillPlanParentAttributes(currentTag);
5086 }
5088 {
5089 // set values of tag
5090 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5092 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("busStop")), parents, color);
5093 // set values of attributes
5094 fillPlanParentAttributes(currentTag);
5096 }
5098 {
5099 // set values of tag
5100 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5102 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("trainStop")), parents, color);
5103 // set values of attributes
5104 fillPlanParentAttributes(currentTag);
5106 }
5108 {
5109 // set values of tag
5110 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5112 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("containerStop")), parents, color);
5113 // set values of attributes
5114 fillPlanParentAttributes(currentTag);
5116 }
5118 {
5119 // set values of tag
5120 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5122 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("chargingStation")), parents, color);
5123 // set values of attributes
5124 fillPlanParentAttributes(currentTag);
5126 }
5128 {
5129 // set values of tag
5130 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5132 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("parkingArea")), parents, color);
5133 // set values of attributes
5134 fillPlanParentAttributes(currentTag);
5136 }
5137 // from containerStop
5139 {
5140 // set values of tag
5141 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5143 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("edge")), parents, color);
5144 // set values of attributes
5145 fillPlanParentAttributes(currentTag);
5147 }
5149 {
5150 // set values of tag
5151 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5153 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("taz")), parents, color);
5154 // set values of attributes
5155 fillPlanParentAttributes(currentTag);
5157 }
5159 {
5160 // set values of tag
5161 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5163 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("junction")), parents, color);
5164 // set values of attributes
5165 fillPlanParentAttributes(currentTag);
5167 }
5169 {
5170 // set values of tag
5171 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5173 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("busStop")), parents, color);
5174 // set values of attributes
5175 fillPlanParentAttributes(currentTag);
5177 }
5179 {
5180 // set values of tag
5181 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5183 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("trainStop")), parents, color);
5184 // set values of attributes
5185 fillPlanParentAttributes(currentTag);
5187 }
5189 {
5190 // set values of tag
5191 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5193 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("containerStop")), parents, color);
5194 // set values of attributes
5195 fillPlanParentAttributes(currentTag);
5197 }
5199 {
5200 // set values of tag
5201 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5203 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("chargingStation")), parents, color);
5204 // set values of attributes
5205 fillPlanParentAttributes(currentTag);
5207 }
5209 {
5210 // set values of tag
5211 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5213 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("parkingArea")), parents, color);
5214
5215 // set values of attributes
5216 fillPlanParentAttributes(currentTag);
5218 }
5219 // from chargingStation
5221 {
5222 // set values of tag
5223 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5225 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("edge")), parents, color);
5226 // set values of attributes
5227 fillPlanParentAttributes(currentTag);
5229 }
5231 {
5232 // set values of tag
5233 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5235 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("taz")), parents, color);
5236 // set values of attributes
5237 fillPlanParentAttributes(currentTag);
5239 }
5241 {
5242 // set values of tag
5243 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5245 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("junction")), parents, color);
5246 // set values of attributes
5247 fillPlanParentAttributes(currentTag);
5249 }
5251 {
5252 // set values of tag
5253 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5255 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("busStop")), parents, color);
5256 // set values of attributes
5257 fillPlanParentAttributes(currentTag);
5259 }
5261 {
5262 // set values of tag
5263 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5265 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("trainStop")), parents, color);
5266 // set values of attributes
5267 fillPlanParentAttributes(currentTag);
5269 }
5271 {
5272 // set values of tag
5273 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5275 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("containerStop")), parents, color);
5276 // set values of attributes
5277 fillPlanParentAttributes(currentTag);
5279 }
5281 {
5282 // set values of tag
5283 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5285 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("chargingStation")), parents, color);
5286 // set values of attributes
5287 fillPlanParentAttributes(currentTag);
5289 }
5291 {
5292 // set values of tag
5293 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5295 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("parkingArea")), parents, color);
5296 // set values of attributes
5297 fillPlanParentAttributes(currentTag);
5299 }
5300 // from parkingArea
5302 {
5303 // set values of tag
5304 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5306 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("edge")), parents, color);
5307 // set values of attributes
5308 fillPlanParentAttributes(currentTag);
5310 }
5312 {
5313 // set values of tag
5314 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5316 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("taz")), parents, color);
5317 // set values of attributes
5318 fillPlanParentAttributes(currentTag);
5320 }
5322 {
5323 // set values of tag
5324 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5326 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("junction")), parents, color);
5327 // set values of attributes
5328 fillPlanParentAttributes(currentTag);
5330 }
5332 {
5333 // set values of tag
5334 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5336 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("busStop")), parents, color);
5337 // set values of attributes
5338 fillPlanParentAttributes(currentTag);
5340 }
5342 {
5343 // set values of tag
5344 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5346 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("trainStop")), parents, color);
5347 // set values of attributes
5348 fillPlanParentAttributes(currentTag);
5350 }
5352 {
5353 // set values of tag
5354 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5356 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("containerStop")), parents, color);
5357 // set values of attributes
5358 fillPlanParentAttributes(currentTag);
5360 }
5362 {
5363 // set values of tag
5364 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5366 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("chargingStation")), parents, color);
5367 // set values of attributes
5368 fillPlanParentAttributes(currentTag);
5370 }
5372 {
5373 // set values of tag
5374 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5376 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("parkingArea")), parents, color);
5377 // set values of attributes
5378 fillPlanParentAttributes(currentTag);
5380 }
5381}
5382
5383
5384void
5386 // declare empty GNEAttributeProperties
5387 GNEAttributeProperties attrProperty;
5388 // declare common tag types and properties
5391 const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
5392 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
5393 const std::vector<SumoXMLTag> parents({SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW});
5394 const unsigned int color = FXRGBA(210, 233, 255, 255);
5395 const GUIIcon icon = GUIIcon::TRANSHIP_EDGES;
5396 const SumoXMLTag xmlTag = SUMO_TAG_TRANSHIP;
5397 // fill merged tag
5398 myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
5399 0,
5400 conflicts, icon, xmlTag, TL("Tranship"), parents, color);
5401 // set values of attributes
5403 // fill tags
5405 {
5406 // set values of tag
5407 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5409 conflicts, icon, xmlTag, TL("Tranship: edges"), parents, color);
5410 // set values of attributes
5411 fillPlanParentAttributes(currentTag);
5413 }
5414 // from edge
5415 currentTag = GNE_TAG_TRANSHIP_EDGE_EDGE;
5416 {
5417 // set values of tag
5418 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5420 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("edge")), parents, color);
5421 // set values of attributes
5422 fillPlanParentAttributes(currentTag);
5424 }
5425 currentTag = GNE_TAG_TRANSHIP_EDGE_TAZ;
5426 {
5427 // set values of tag
5428 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5430 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("taz")), parents, color);
5431 // set values of attributes
5432 fillPlanParentAttributes(currentTag);
5434 }
5435 currentTag = GNE_TAG_TRANSHIP_EDGE_JUNCTION;
5436 {
5437 // set values of tag
5438 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5440 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("junction")), parents, color);
5441 // set values of attributes
5442 fillPlanParentAttributes(currentTag);
5444 }
5445 currentTag = GNE_TAG_TRANSHIP_EDGE_BUSSTOP;
5446 {
5447 // set values of tag
5448 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5450 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("busStop")), parents, color);
5451 // set values of attributes
5452 fillPlanParentAttributes(currentTag);
5454 }
5456 {
5457 // set values of tag
5458 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5460 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("trainStop")), parents, color);
5461 // set values of attributes
5462 fillPlanParentAttributes(currentTag);
5464 }
5466 {
5467 // set values of tag
5468 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5470 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("containerStop")), parents, color);
5471 // set values of attributes
5472 fillPlanParentAttributes(currentTag);
5474 }
5476 {
5477 // set values of tag
5478 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5480 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("chargingStation")), parents, color);
5481 // set values of attributes
5482 fillPlanParentAttributes(currentTag);
5484 }
5486 {
5487 // set values of tag
5488 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5490 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("parkingArea")), parents, color);
5491 // set values of attributes
5492 fillPlanParentAttributes(currentTag);
5494 }
5495 // from taz
5496 currentTag = GNE_TAG_TRANSHIP_TAZ_EDGE;
5497 {
5498 // set values of tag
5499 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5501 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("taz")), parents, color);
5502 // set values of attributes
5503 fillPlanParentAttributes(currentTag);
5505 }
5506 currentTag = GNE_TAG_TRANSHIP_TAZ_TAZ;
5507 {
5508 // set values of tag
5509 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5511 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("taz")), parents, color);
5512 // set values of attributes
5513 fillPlanParentAttributes(currentTag);
5515 }
5516 currentTag = GNE_TAG_TRANSHIP_TAZ_JUNCTION;
5517 {
5518 // set values of tag
5519 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5521 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("junction")), parents, color);
5522 // set values of attributes
5523 fillPlanParentAttributes(currentTag);
5525 }
5526 currentTag = GNE_TAG_TRANSHIP_TAZ_BUSSTOP;
5527 {
5528 // set values of tag
5529 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5531 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("busStop")), parents, color);
5532 // set values of attributes
5533 fillPlanParentAttributes(currentTag);
5535 }
5536 currentTag = GNE_TAG_TRANSHIP_TAZ_TRAINSTOP;
5537 {
5538 // set values of tag
5539 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5541 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("trainStop")), parents, color);
5542 // set values of attributes
5543 fillPlanParentAttributes(currentTag);
5545 }
5547 {
5548 // set values of tag
5549 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5551 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("containerStop")), parents, color);
5552 // set values of attributes
5553 fillPlanParentAttributes(currentTag);
5555 }
5557 {
5558 // set values of tag
5559 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5561 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("chargingStation")), parents, color);
5562 // set values of attributes
5563 fillPlanParentAttributes(currentTag);
5565 }
5567 {
5568 // set values of tag
5569 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5571 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("parkingArea")), parents, color);
5572 // set values of attributes
5573 fillPlanParentAttributes(currentTag);
5575 }
5576 // from junction
5577 currentTag = GNE_TAG_TRANSHIP_JUNCTION_EDGE;
5578 {
5579 // set values of tag
5580 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5582 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("edge")), parents, color);
5583 // set values of attributes
5584 fillPlanParentAttributes(currentTag);
5586 }
5587 currentTag = GNE_TAG_TRANSHIP_JUNCTION_TAZ;
5588 {
5589 // set values of tag
5590 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5592 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("taz")), parents, color);
5593 // set values of attributes
5594 fillPlanParentAttributes(currentTag);
5596 }
5598 {
5599 // set values of tag
5600 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5602 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("junction")), parents, color);
5603 // set values of attributes
5604 fillPlanParentAttributes(currentTag);
5606 }
5608 {
5609 // set values of tag
5610 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5612 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("busStop")), parents, color);
5613 // set values of attributes
5614 fillPlanParentAttributes(currentTag);
5616 }
5618 {
5619 // set values of tag
5620 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5622 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("trainStop")), parents, color);
5623 // set values of attributes
5624 fillPlanParentAttributes(currentTag);
5626 }
5628 {
5629 // set values of tag
5630 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5632 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("containerStop")), parents, color);
5633 // set values of attributes
5634 fillPlanParentAttributes(currentTag);
5636 }
5638 {
5639 // set values of tag
5640 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5642 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("chargingStation")), parents, color);
5643 // set values of attributes
5644 fillPlanParentAttributes(currentTag);
5646 }
5648 {
5649 // set values of tag
5650 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5652 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("parkingArea")), parents, color);
5653 // set values of attributes
5654 fillPlanParentAttributes(currentTag);
5656 }
5657 // from busStop
5658 currentTag = GNE_TAG_TRANSHIP_BUSSTOP_EDGE;
5659 {
5660 // set values of tag
5661 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5663 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("edge")), parents, color);
5664 // set values of attributes
5665 fillPlanParentAttributes(currentTag);
5667 }
5668 currentTag = GNE_TAG_TRANSHIP_BUSSTOP_TAZ;
5669 {
5670 // set values of tag
5671 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5673 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("taz")), parents, color);
5674 // set values of attributes
5675 fillPlanParentAttributes(currentTag);
5677 }
5679 {
5680 // set values of tag
5681 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5683 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("junction")), parents, color);
5684 // set values of attributes
5685 fillPlanParentAttributes(currentTag);
5687 }
5689 {
5690 // set values of tag
5691 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5693 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("busStop")), parents, color);
5694 // set values of attributes
5695 fillPlanParentAttributes(currentTag);
5697 }
5699 {
5700 // set values of tag
5701 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5703 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("trainStop")), parents, color);
5704 // set values of attributes
5705 fillPlanParentAttributes(currentTag);
5707 }
5709 {
5710 // set values of tag
5711 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5713 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("containerStop")), parents, color);
5714 // set values of attributes
5715 fillPlanParentAttributes(currentTag);
5717 }
5719 {
5720 // set values of tag
5721 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5723 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("chargingStation")), parents, color);
5724 // set values of attributes
5725 fillPlanParentAttributes(currentTag);
5727 }
5729 {
5730 // set values of tag
5731 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5733 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("parkingArea")), parents, color);
5734 // set values of attributes
5735 fillPlanParentAttributes(currentTag);
5737 }
5738 // from trainStop
5740 {
5741 // set values of tag
5742 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5744 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("edge")), parents, color);
5745 // set values of attributes
5746 fillPlanParentAttributes(currentTag);
5748 }
5749 currentTag = GNE_TAG_TRANSHIP_TRAINSTOP_TAZ;
5750 {
5751 // set values of tag
5752 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5754 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("taz")), parents, color);
5755 // set values of attributes
5756 fillPlanParentAttributes(currentTag);
5758 }
5760 {
5761 // set values of tag
5762 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5764 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("junction")), parents, color);
5765 // set values of attributes
5766 fillPlanParentAttributes(currentTag);
5768 }
5770 {
5771 // set values of tag
5772 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5774 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("busStop")), parents, color);
5775 // set values of attributes
5776 fillPlanParentAttributes(currentTag);
5778 }
5780 {
5781 // set values of tag
5782 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5784 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("trainStop")), parents, color);
5785 // set values of attributes
5786 fillPlanParentAttributes(currentTag);
5788 }
5790 {
5791 // set values of tag
5792 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5794 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("containerStop")), parents, color);
5795 // set values of attributes
5796 fillPlanParentAttributes(currentTag);
5798 }
5800 {
5801 // set values of tag
5802 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5804 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("chargingStation")), parents, color);
5805 // set values of attributes
5806 fillPlanParentAttributes(currentTag);
5808 }
5810 {
5811 // set values of tag
5812 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5814 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("parkingArea")), parents, color);
5815 // set values of attributes
5816 fillPlanParentAttributes(currentTag);
5818 }
5819 // from containerStop
5821 {
5822 // set values of tag
5823 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5825 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("edge")), parents, color);
5826 // set values of attributes
5827 fillPlanParentAttributes(currentTag);
5829 }
5831 {
5832 // set values of tag
5833 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5835 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("taz")), parents, color);
5836 // set values of attributes
5837 fillPlanParentAttributes(currentTag);
5839 }
5841 {
5842 // set values of tag
5843 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5845 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("junction")), parents, color);
5846 // set values of attributes
5847 fillPlanParentAttributes(currentTag);
5849 }
5851 {
5852 // set values of tag
5853 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5855 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("busStop")), parents, color);
5856 // set values of attributes
5857 fillPlanParentAttributes(currentTag);
5859 }
5861 {
5862 // set values of tag
5863 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5865 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("trainStop")), parents, color);
5866 // set values of attributes
5867 fillPlanParentAttributes(currentTag);
5869 }
5871 {
5872 // set values of tag
5873 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5875 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("containerStop")), parents, color);
5876 // set values of attributes
5877 fillPlanParentAttributes(currentTag);
5879 }
5881 {
5882 // set values of tag
5883 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5885 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("chargingStation")), parents, color);
5886 // set values of attributes
5887 fillPlanParentAttributes(currentTag);
5889 }
5891 {
5892 // set values of tag
5893 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5895 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("parkingArea")), parents, color);
5896 // set values of attributes
5897 fillPlanParentAttributes(currentTag);
5899 }
5900 // from chargingStation
5902 {
5903 // set values of tag
5904 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5906 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("edge")), parents, color);
5907 // set values of attributes
5908 fillPlanParentAttributes(currentTag);
5910 }
5912 {
5913 // set values of tag
5914 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5916 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("taz")), parents, color);
5917 // set values of attributes
5918 fillPlanParentAttributes(currentTag);
5920 }
5922 {
5923 // set values of tag
5924 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5926 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("junction")), parents, color);
5927 // set values of attributes
5928 fillPlanParentAttributes(currentTag);
5930 }
5932 {
5933 // set values of tag
5934 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5936 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("busStop")), parents, color);
5937 // set values of attributes
5938 fillPlanParentAttributes(currentTag);
5940 }
5942 {
5943 // set values of tag
5944 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5946 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("trainStop")), parents, color);
5947 // set values of attributes
5948 fillPlanParentAttributes(currentTag);
5950 }
5952 {
5953 // set values of tag
5954 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5956 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("containerStop")), parents, color);
5957 // set values of attributes
5958 fillPlanParentAttributes(currentTag);
5960 }
5962 {
5963 // set values of tag
5964 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5966 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("chargingStation")), parents, color);
5967 // set values of attributes
5968 fillPlanParentAttributes(currentTag);
5970 }
5972 {
5973 // set values of tag
5974 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5976 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("parkingArea")), parents, color);
5977 // set values of attributes
5978 fillPlanParentAttributes(currentTag);
5980 }
5981 // from parkingArea
5983 {
5984 // set values of tag
5985 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5987 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("edge")), parents, color);
5988 // set values of attributes
5989 fillPlanParentAttributes(currentTag);
5991 }
5993 {
5994 // set values of tag
5995 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5997 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("taz")), parents, color);
5998 // set values of attributes
5999 fillPlanParentAttributes(currentTag);
6001 }
6003 {
6004 // set values of tag
6005 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6007 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("junction")), parents, color);
6008 // set values of attributes
6009 fillPlanParentAttributes(currentTag);
6011 }
6013 {
6014 // set values of tag
6015 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6017 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("busStop")), parents, color);
6018 // set values of attributes
6019 fillPlanParentAttributes(currentTag);
6021 }
6023 {
6024 // set values of tag
6025 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6027 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("trainStop")), parents, color);
6028 // set values of attributes
6029 fillPlanParentAttributes(currentTag);
6031 }
6033 {
6034 // set values of tag
6035 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6037 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("containerStop")), parents, color);
6038 // set values of attributes
6039 fillPlanParentAttributes(currentTag);
6041 }
6043 {
6044 // set values of tag
6045 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6047 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("chargingStation")), parents, color);
6048 // set values of attributes
6049 fillPlanParentAttributes(currentTag);
6051 }
6053 {
6054 // set values of tag
6055 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6057 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("parkingArea")), parents, color);
6058 // set values of attributes
6059 fillPlanParentAttributes(currentTag);
6061 }
6062}
6063
6064
6065void
6067 // declare empty GNEAttributeProperties
6068 GNEAttributeProperties attrProperty;
6069 // declare common tag types and properties
6072 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
6073 const std::vector<SumoXMLTag> parents({SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW});
6074 const unsigned int color = FXRGBA(255, 213, 213, 255);
6075 const GUIIcon icon = GUIIcon::STOPELEMENT;
6076 const SumoXMLTag xmlTag = SUMO_TAG_STOP;
6077 // fill merged tag
6079 0,
6080 conflicts, icon, xmlTag, TL("ContainerStop"), parents, color);
6081 // set values of attributes
6083 // fill tags
6085 {
6086 // set values of tag
6087 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6089 conflicts, icon, xmlTag, TL("ContainerStop: edge"), parents, color);
6090
6091 // set values of attributes
6092 fillPlanParentAttributes(currentTag);
6094 }
6095 currentTag = GNE_TAG_STOPCONTAINER_BUSSTOP;
6096 {
6097 // set values of tag
6098 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6100 conflicts, icon, xmlTag, TL("ContainerStop: busStop"), parents, color);
6101
6102 // set values of attributes
6103 fillPlanParentAttributes(currentTag);
6105 }
6107 {
6108 // set values of tag
6109 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6111 conflicts, icon, xmlTag, TL("ContainerStop: trainStop"), parents, color);
6112
6113 // set values of attributes
6114 fillPlanParentAttributes(currentTag);
6116 }
6118 {
6119 // set values of tag
6120 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6122 conflicts, icon, xmlTag, TL("ContainerStop: containerStop"), parents, color);
6123
6124 // set values of attributes
6125 fillPlanParentAttributes(currentTag);
6127 }
6129 {
6130 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6132 conflicts, icon, xmlTag, TL("ContainerStop: chargingStation"), parents, color);
6133
6134 // set values of attributes
6135 fillPlanParentAttributes(currentTag);
6137 }
6139 {
6140 // set values of tag
6141 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6143 conflicts, icon, xmlTag, TL("ContainerStop: parkingArea"), parents, color);
6144
6145 // set values of attributes
6146 fillPlanParentAttributes(currentTag);
6148 }
6149}
6150
6151
6152void
6154 // declare empty GNEAttributeProperties
6155 GNEAttributeProperties attrProperty;
6156 // declare common tag types and properties
6159 const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
6160 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
6161 const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
6162 const unsigned int color = FXRGBA(253, 255, 206, 255);
6163 const GUIIcon icon = GUIIcon::PERSONTRIP_EDGE;
6164 const SumoXMLTag xmlTag = SUMO_TAG_PERSONTRIP;
6165 // fill merged tag
6166 myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
6167 0,
6168 conflicts, icon, xmlTag, TL("PersonTrip"), parents, color);
6169 // set values of attributes
6171 // from edge
6173 {
6174 // set values of tag
6175 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6177 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("edge")), parents, color);
6178 // set values of attributes
6179 fillPlanParentAttributes(currentTag);
6181 }
6182 currentTag = GNE_TAG_PERSONTRIP_EDGE_TAZ;
6183 {
6184 // set values of tag
6185 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6187 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("taz")), parents, color);
6188 // set values of attributes
6189 fillPlanParentAttributes(currentTag);
6191 }
6193 {
6194 // set values of tag
6195 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6197 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("junction")), parents, color);
6198 // set values of attributes
6199 fillPlanParentAttributes(currentTag);
6201 }
6203 {
6204 // set values of tag
6205 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6207 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("busStop")), parents, color);
6208 // set values of attributes
6209 fillPlanParentAttributes(currentTag);
6211 }
6213 {
6214 // set values of tag
6215 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6217 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("trainStop")), parents, color);
6218 // set values of attributes
6219 fillPlanParentAttributes(currentTag);
6221 }
6223 {
6224 // set values of tag
6225 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6227 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("containerStop")), parents, color);
6228 // set values of attributes
6229 fillPlanParentAttributes(currentTag);
6231 }
6233 {
6234 // set values of tag
6235 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6237 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("chargingStation")), parents, color);
6238 // set values of attributes
6239 fillPlanParentAttributes(currentTag);
6241 }
6243 {
6244 // set values of tag
6245 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6247 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("parkingArea")), parents, color);
6248 // set values of attributes
6249 fillPlanParentAttributes(currentTag);
6251 }
6252 // from taz
6253 currentTag = GNE_TAG_PERSONTRIP_TAZ_EDGE;
6254 {
6255 // set values of tag
6256 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6258 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("taz")), parents, color);
6259 // set values of attributes
6260 fillPlanParentAttributes(currentTag);
6262 }
6263 currentTag = GNE_TAG_PERSONTRIP_TAZ_TAZ;
6264 {
6265 // set values of tag
6266 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6268 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("taz")), parents, color);
6269 // set values of attributes
6270 fillPlanParentAttributes(currentTag);
6272 }
6274 {
6275 // set values of tag
6276 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6278 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("junction")), parents, color);
6279 // set values of attributes
6280 fillPlanParentAttributes(currentTag);
6282 }
6283 currentTag = GNE_TAG_PERSONTRIP_TAZ_BUSSTOP;
6284 {
6285 // set values of tag
6286 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6288 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("busStop")), parents, color);
6289 // set values of attributes
6290 fillPlanParentAttributes(currentTag);
6292 }
6294 {
6295 // set values of tag
6296 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6298 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("trainStop")), parents, color);
6299 // set values of attributes
6300 fillPlanParentAttributes(currentTag);
6302 }
6304 {
6305 // set values of tag
6306 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6308 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("containerStop")), parents, color);
6309 // set values of attributes
6310 fillPlanParentAttributes(currentTag);
6312 }
6314 {
6315 // set values of tag
6316 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6318 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("chargingStation")), parents, color);
6319 // set values of attributes
6320 fillPlanParentAttributes(currentTag);
6322 }
6324 {
6325 // set values of tag
6326 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6328 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("parkingArea")), parents, color);
6329 // set values of attributes
6330 fillPlanParentAttributes(currentTag);
6332 }
6333 // from junction
6335 {
6336 // set values of tag
6337 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6339 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("edge")), parents, color);
6340 // set values of attributes
6341 fillPlanParentAttributes(currentTag);
6343 }
6345 {
6346 // set values of tag
6347 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6349 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("taz")), parents, color);
6350 // set values of attributes
6351 fillPlanParentAttributes(currentTag);
6353 }
6355 {
6356 // set values of tag
6357 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6359 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("junction")), parents, color);
6360 // set values of attributes
6361 fillPlanParentAttributes(currentTag);
6363 }
6365 {
6366 // set values of tag
6367 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6369 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("busStop")), parents, color);
6370 // set values of attributes
6371 fillPlanParentAttributes(currentTag);
6373 }
6375 {
6376 // set values of tag
6377 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6379 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("trainStop")), parents, color);
6380 // set values of attributes
6381 fillPlanParentAttributes(currentTag);
6383 }
6385 {
6386 // set values of tag
6387 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6389 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("containerStop")), parents, color);
6390 // set values of attributes
6391 fillPlanParentAttributes(currentTag);
6393 }
6395 {
6396 // set values of tag
6397 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6399 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("chargingStation")), parents, color);
6400 // set values of attributes
6401 fillPlanParentAttributes(currentTag);
6403 }
6405 {
6406 // set values of tag
6407 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6409 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("parkingArea")), parents, color);
6410 // set values of attributes
6411 fillPlanParentAttributes(currentTag);
6413 }
6414 // from busStop
6416 {
6417 // set values of tag
6418 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6420 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("edge")), parents, color);
6421 // set values of attributes
6422 fillPlanParentAttributes(currentTag);
6424 }
6425 currentTag = GNE_TAG_PERSONTRIP_BUSSTOP_TAZ;
6426 {
6427 // set values of tag
6428 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6430 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("taz")), parents, color);
6431 // set values of attributes
6432 fillPlanParentAttributes(currentTag);
6434 }
6436 {
6437 // set values of tag
6438 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6440 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("junction")), parents, color);
6441 // set values of attributes
6442 fillPlanParentAttributes(currentTag);
6444 }
6446 {
6447 // set values of tag
6448 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6450 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("busStop")), parents, color);
6451 // set values of attributes
6452 fillPlanParentAttributes(currentTag);
6454 }
6456 {
6457 // set values of tag
6458 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6460 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("trainStop")), parents, color);
6461 // set values of attributes
6462 fillPlanParentAttributes(currentTag);
6464 }
6466 {
6467 // set values of tag
6468 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6470 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("containerStop")), parents, color);
6471 // set values of attributes
6472 fillPlanParentAttributes(currentTag);
6474 }
6476 {
6477 // set values of tag
6478 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6480 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("chargingStation")), parents, color);
6481 // set values of attributes
6482 fillPlanParentAttributes(currentTag);
6484 }
6486 {
6487 // set values of tag
6488 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6490 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("parkingArea")), parents, color);
6491 // set values of attributes
6492 fillPlanParentAttributes(currentTag);
6494 }
6495 // from trainStop
6497 {
6498 // set values of tag
6499 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6501 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("edge")), parents, color);
6502 // set values of attributes
6503 fillPlanParentAttributes(currentTag);
6505 }
6507 {
6508 // set values of tag
6509 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6511 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("taz")), parents, color);
6512 // set values of attributes
6513 fillPlanParentAttributes(currentTag);
6515 }
6517 {
6518 // set values of tag
6519 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6521 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("junction")), parents, color);
6522 // set values of attributes
6523 fillPlanParentAttributes(currentTag);
6525 }
6527 {
6528 // set values of tag
6529 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6531 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("busStop")), parents, color);
6532 // set values of attributes
6533 fillPlanParentAttributes(currentTag);
6535 }
6537 {
6538 // set values of tag
6539 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6541 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("trainStop")), parents, color);
6542 // set values of attributes
6543 fillPlanParentAttributes(currentTag);
6545 }
6547 {
6548 // set values of tag
6549 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6551 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("containerStop")), parents, color);
6552 // set values of attributes
6553 fillPlanParentAttributes(currentTag);
6555 }
6557 {
6558 // set values of tag
6559 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6561 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("chargingStation")), parents, color);
6562 // set values of attributes
6563 fillPlanParentAttributes(currentTag);
6565 }
6567 {
6568 // set values of tag
6569 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6571 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("parkingArea")), parents, color);
6572 // set values of attributes
6573 fillPlanParentAttributes(currentTag);
6575 }
6576 // from containerStop
6578 {
6579 // set values of tag
6580 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6582 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("edge")), parents, color);
6583 // set values of attributes
6584 fillPlanParentAttributes(currentTag);
6586 }
6588 {
6589 // set values of tag
6590 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6592 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("taz")), parents, color);
6593 // set values of attributes
6594 fillPlanParentAttributes(currentTag);
6596 }
6598 {
6599 // set values of tag
6600 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6602 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("junction")), parents, color);
6603 // set values of attributes
6604 fillPlanParentAttributes(currentTag);
6606 }
6608 {
6609 // set values of tag
6610 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6612 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("busStop")), parents, color);
6613 // set values of attributes
6614 fillPlanParentAttributes(currentTag);
6616 }
6618 {
6619 // set values of tag
6620 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6622 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("trainStop")), parents, color);
6623 // set values of attributes
6624 fillPlanParentAttributes(currentTag);
6626 }
6628 {
6629 // set values of tag
6630 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6632 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("containerStop")), parents, color);
6633 // set values of attributes
6634 fillPlanParentAttributes(currentTag);
6636 }
6638 {
6639 // set values of tag
6640 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6642 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("chargingStation")), parents, color);
6643 // set values of attributes
6644 fillPlanParentAttributes(currentTag);
6646 }
6648 {
6649 // set values of tag
6650 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6652 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("parkingArea")), parents, color);
6653 // set values of attributes
6654 fillPlanParentAttributes(currentTag);
6656 }
6657 // from chargingStation
6659 {
6660 // set values of tag
6661 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6663 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("edge")), parents, color);
6664 // set values of attributes
6665 fillPlanParentAttributes(currentTag);
6667 }
6669 {
6670 // set values of tag
6671 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6673 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("taz")), parents, color);
6674 // set values of attributes
6675 fillPlanParentAttributes(currentTag);
6677 }
6679 {
6680 // set values of tag
6681 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6683 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("junction")), parents, color);
6684 // set values of attributes
6685 fillPlanParentAttributes(currentTag);
6687 }
6689 {
6690 // set values of tag
6691 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6693 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("busStop")), parents, color);
6694 // set values of attributes
6695 fillPlanParentAttributes(currentTag);
6697 }
6699 {
6700 // set values of tag
6701 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6703 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("trainStop")), parents, color);
6704 // set values of attributes
6705 fillPlanParentAttributes(currentTag);
6707 }
6709 {
6710 // set values of tag
6711 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6713 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("containerStop")), parents, color);
6714 // set values of attributes
6715 fillPlanParentAttributes(currentTag);
6717 }
6719 {
6720 // set values of tag
6721 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6723 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("chargingStation")), parents, color);
6724 // set values of attributes
6725 fillPlanParentAttributes(currentTag);
6727 }
6729 {
6730 // set values of tag
6731 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6733 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("parkingArea")), parents, color);
6734 // set values of attributes
6735 fillPlanParentAttributes(currentTag);
6737 }
6738 // from parkingArea
6740 {
6741 // set values of tag
6742 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6744 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("edge")), parents, color);
6745 // set values of attributes
6746 fillPlanParentAttributes(currentTag);
6748 }
6750 {
6751 // set values of tag
6752 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6754 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("taz")), parents, color);
6755 // set values of attributes
6756 fillPlanParentAttributes(currentTag);
6758 }
6760 {
6761 // set values of tag
6762 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6764 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("junction")), parents, color);
6765 // set values of attributes
6766 fillPlanParentAttributes(currentTag);
6768 }
6770 {
6771 // set values of tag
6772 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6774 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("busStop")), parents, color);
6775 // set values of attributes
6776 fillPlanParentAttributes(currentTag);
6778 }
6780 {
6781 // set values of tag
6782 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6784 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("trainStop")), parents, color);
6785 // set values of attributes
6786 fillPlanParentAttributes(currentTag);
6788 }
6790 {
6791 // set values of tag
6792 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6794 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("containerStop")), parents, color);
6795 // set values of attributes
6796 fillPlanParentAttributes(currentTag);
6798 }
6800 {
6801 // set values of tag
6802 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6804 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("chargingStation")), parents, color);
6805 // set values of attributes
6806 fillPlanParentAttributes(currentTag);
6808 }
6810 {
6811 // set values of tag
6812 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6814 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("parkingArea")), parents, color);
6815 // set values of attributes
6816 fillPlanParentAttributes(currentTag);
6818 }
6819}
6820
6821
6822void
6824 // declare empty GNEAttributeProperties
6825 GNEAttributeProperties attrProperty;
6826 // declare common tag types and properties
6829 const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
6830 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
6831 const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
6832 const unsigned int color = FXRGBA(240, 255, 205, 255);
6833 const GUIIcon icon = GUIIcon::WALK_EDGES;
6834 const SumoXMLTag xmlTag = SUMO_TAG_WALK;
6835 // fill merged tag
6836 myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
6837 0,
6838 conflicts, icon, xmlTag, TL("Walk"), parents, color);
6839 // set values of attributes
6841 // fill tags
6842 SumoXMLTag currentTag = GNE_TAG_WALK_EDGES;
6843 {
6844 // set values of tag
6845 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6847 conflicts, icon, xmlTag, TL("Walk: edges"), parents, color);
6848 // set values of attributes
6849 fillPlanParentAttributes(currentTag);
6851 }
6852 currentTag = GNE_TAG_WALK_ROUTE;
6853 {
6854 // set values of tag
6855 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6857 conflicts, icon, xmlTag, TL("Walk: route"), parents, color);
6858 // set values of attributes
6859 fillPlanParentAttributes(currentTag);
6861 }
6862 // from edge
6863 currentTag = GNE_TAG_WALK_EDGE_EDGE;
6864 {
6865 // set values of tag
6866 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6868 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("edge")), parents, color);
6869 // set values of attributes
6870 fillPlanParentAttributes(currentTag);
6872 }
6873 currentTag = GNE_TAG_WALK_EDGE_TAZ;
6874 {
6875 // set values of tag
6876 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6878 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("taz")), parents, color);
6879 // set values of attributes
6880 fillPlanParentAttributes(currentTag);
6882 }
6883 currentTag = GNE_TAG_WALK_EDGE_JUNCTION;
6884 {
6885 // set values of tag
6886 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6888 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("junction")), parents, color);
6889 // set values of attributes
6890 fillPlanParentAttributes(currentTag);
6892 }
6893 currentTag = GNE_TAG_WALK_EDGE_BUSSTOP;
6894 {
6895 // set values of tag
6896 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6898 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("busStop")), parents, color);
6899 // set values of attributes
6900 fillPlanParentAttributes(currentTag);
6902 }
6903 currentTag = GNE_TAG_WALK_EDGE_TRAINSTOP;
6904 {
6905 // set values of tag
6906 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6908 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("trainStop")), parents, color);
6909 // set values of attributes
6910 fillPlanParentAttributes(currentTag);
6912 }
6914 {
6915 // set values of tag
6916 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6918 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("containerStop")), parents, color);
6919 // set values of attributes
6920 fillPlanParentAttributes(currentTag);
6922 }
6924 {
6925 // set values of tag
6926 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6928 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("chargingStation")), parents, color);
6929 // set values of attributes
6930 fillPlanParentAttributes(currentTag);
6932 }
6933 currentTag = GNE_TAG_WALK_EDGE_PARKINGAREA;
6934 {
6935 // set values of tag
6936 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6938 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("parkingArea")), parents, color);
6939 // set values of attributes
6940 fillPlanParentAttributes(currentTag);
6942 }
6943 // from taz
6944 currentTag = GNE_TAG_WALK_TAZ_EDGE;
6945 {
6946 // set values of tag
6947 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6949 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("taz")), parents, color);
6950 // set values of attributes
6951 fillPlanParentAttributes(currentTag);
6953 }
6954 currentTag = GNE_TAG_WALK_TAZ_TAZ;
6955 {
6956 // set values of tag
6957 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6959 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("taz")), parents, color);
6960 // set values of attributes
6961 fillPlanParentAttributes(currentTag);
6963 }
6964 currentTag = GNE_TAG_WALK_TAZ_JUNCTION;
6965 {
6966 // set values of tag
6967 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6969 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("junction")), parents, color);
6970 // set values of attributes
6971 fillPlanParentAttributes(currentTag);
6973 }
6974 currentTag = GNE_TAG_WALK_TAZ_BUSSTOP;
6975 {
6976 // set values of tag
6977 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6979 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("busStop")), parents, color);
6980 // set values of attributes
6981 fillPlanParentAttributes(currentTag);
6983 }
6984 currentTag = GNE_TAG_WALK_TAZ_TRAINSTOP;
6985 {
6986 // set values of tag
6987 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6989 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("trainStop")), parents, color);
6990 // set values of attributes
6991 fillPlanParentAttributes(currentTag);
6993 }
6994 currentTag = GNE_TAG_WALK_TAZ_CONTAINERSTOP;
6995 {
6996 // set values of tag
6997 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6999 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("containerStop")), parents, color);
7000 // set values of attributes
7001 fillPlanParentAttributes(currentTag);
7003 }
7005 {
7006 // set values of tag
7007 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7009 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("chargingStation")), parents, color);
7010 // set values of attributes
7011 fillPlanParentAttributes(currentTag);
7013 }
7014 currentTag = GNE_TAG_WALK_TAZ_PARKINGAREA;
7015 {
7016 // set values of tag
7017 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7019 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("parkingArea")), parents, color);
7020 // set values of attributes
7021 fillPlanParentAttributes(currentTag);
7023 }
7024 // from junction
7025 currentTag = GNE_TAG_WALK_JUNCTION_EDGE;
7026 {
7027 // set values of tag
7028 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7030 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("edge")), parents, color);
7031 // set values of attributes
7032 fillPlanParentAttributes(currentTag);
7034 }
7035 currentTag = GNE_TAG_WALK_JUNCTION_TAZ;
7036 {
7037 // set values of tag
7038 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7040 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("taz")), parents, color);
7041 // set values of attributes
7042 fillPlanParentAttributes(currentTag);
7044 }
7045 currentTag = GNE_TAG_WALK_JUNCTION_JUNCTION;
7046 {
7047 // set values of tag
7048 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7050 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("junction")), parents, color);
7051 // set values of attributes
7052 fillPlanParentAttributes(currentTag);
7054 }
7055 currentTag = GNE_TAG_WALK_JUNCTION_BUSSTOP;
7056 {
7057 // set values of tag
7058 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7060 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("busStop")), parents, color);
7061 // set values of attributes
7062 fillPlanParentAttributes(currentTag);
7064 }
7066 {
7067 // set values of tag
7068 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7070 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("trainStop")), parents, color);
7071 // set values of attributes
7072 fillPlanParentAttributes(currentTag);
7074 }
7076 {
7077 // set values of tag
7078 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7080 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("containerStop")), parents, color);
7081 // set values of attributes
7082 fillPlanParentAttributes(currentTag);
7084 }
7086 {
7087 // set values of tag
7088 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7090 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("chargingStation")), parents, color);
7091 // set values of attributes
7092 fillPlanParentAttributes(currentTag);
7094 }
7096 {
7097 // set values of tag
7098 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7100 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("parkingArea")), parents, color);
7101 // set values of attributes
7102 fillPlanParentAttributes(currentTag);
7104 }
7105 // from busStop
7106 currentTag = GNE_TAG_WALK_BUSSTOP_EDGE;
7107 {
7108 // set values of tag
7109 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7111 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("edge")), parents, color);
7112 // set values of attributes
7113 fillPlanParentAttributes(currentTag);
7115 }
7116 currentTag = GNE_TAG_WALK_BUSSTOP_TAZ;
7117 {
7118 // set values of tag
7119 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7121 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("taz")), parents, color);
7122 // set values of attributes
7123 fillPlanParentAttributes(currentTag);
7125 }
7126 currentTag = GNE_TAG_WALK_BUSSTOP_JUNCTION;
7127 {
7128 // set values of tag
7129 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7131 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("junction")), parents, color);
7132 // set values of attributes
7133 fillPlanParentAttributes(currentTag);
7135 }
7136 currentTag = GNE_TAG_WALK_BUSSTOP_BUSSTOP;
7137 {
7138 // set values of tag
7139 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7141 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("busStop")), parents, color);
7142 // set values of attributes
7143 fillPlanParentAttributes(currentTag);
7145 }
7146 currentTag = GNE_TAG_WALK_BUSSTOP_TRAINSTOP;
7147 {
7148 // set values of tag
7149 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7151 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("trainStop")), parents, color);
7152 // set values of attributes
7153 fillPlanParentAttributes(currentTag);
7155 }
7157 {
7158 // set values of tag
7159 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7161 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("containerStop")), parents, color);
7162 // set values of attributes
7163 fillPlanParentAttributes(currentTag);
7165 }
7167 {
7168 // set values of tag
7169 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7171 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("chargingStation")), parents, color);
7172 // set values of attributes
7173 fillPlanParentAttributes(currentTag);
7175 }
7177 {
7178 // set values of tag
7179 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7181 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("parkingArea")), parents, color);
7182 // set values of attributes
7183 fillPlanParentAttributes(currentTag);
7185 }
7186 // from trainStop
7187 currentTag = GNE_TAG_WALK_TRAINSTOP_EDGE;
7188 {
7189 // set values of tag
7190 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7192 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("edge")), parents, color);
7193 // set values of attributes
7194 fillPlanParentAttributes(currentTag);
7196 }
7197 currentTag = GNE_TAG_WALK_TRAINSTOP_TAZ;
7198 {
7199 // set values of tag
7200 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7202 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("taz")), parents, color);
7203 // set values of attributes
7204 fillPlanParentAttributes(currentTag);
7206 }
7208 {
7209 // set values of tag
7210 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7212 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("junction")), parents, color);
7213 // set values of attributes
7214 fillPlanParentAttributes(currentTag);
7216 }
7217 currentTag = GNE_TAG_WALK_TRAINSTOP_BUSSTOP;
7218 {
7219 // set values of tag
7220 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7222 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("busStop")), parents, color);
7223 // set values of attributes
7224 fillPlanParentAttributes(currentTag);
7226 }
7228 {
7229 // set values of tag
7230 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7232 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("trainStop")), parents, color);
7233 // set values of attributes
7234 fillPlanParentAttributes(currentTag);
7236 }
7238 {
7239 // set values of tag
7240 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7242 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("containerStop")), parents, color);
7243 // set values of attributes
7244 fillPlanParentAttributes(currentTag);
7246 }
7248 {
7249 // set values of tag
7250 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7252 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("chargingStation")), parents, color);
7253 // set values of attributes
7254 fillPlanParentAttributes(currentTag);
7256 }
7258 {
7259 // set values of tag
7260 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7262 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("parkingArea")), parents, color);
7263 // set values of attributes
7264 fillPlanParentAttributes(currentTag);
7266 }
7267 // from containerStop
7269 {
7270 // set values of tag
7271 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7273 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("edge")), parents, color);
7274 // set values of attributes
7275 fillPlanParentAttributes(currentTag);
7277 }
7278 currentTag = GNE_TAG_WALK_CONTAINERSTOP_TAZ;
7279 {
7280 // set values of tag
7281 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7283 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("taz")), parents, color);
7284 // set values of attributes
7285 fillPlanParentAttributes(currentTag);
7287 }
7289 {
7290 // set values of tag
7291 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7293 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("junction")), parents, color);
7294 // set values of attributes
7295 fillPlanParentAttributes(currentTag);
7297 }
7299 {
7300 // set values of tag
7301 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7303 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("busStop")), parents, color);
7304 // set values of attributes
7305 fillPlanParentAttributes(currentTag);
7307 }
7309 {
7310 // set values of tag
7311 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7313 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("trainStop")), parents, color);
7314 // set values of attributes
7315 fillPlanParentAttributes(currentTag);
7317 }
7319 {
7320 // set values of tag
7321 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7323 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("containerStop")), parents, color);
7324 // set values of attributes
7325 fillPlanParentAttributes(currentTag);
7327 }
7329 {
7330 // set values of tag
7331 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7333 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("chargingStation")), parents, color);
7334 // set values of attributes
7335 fillPlanParentAttributes(currentTag);
7337 }
7339 {
7340 // set values of tag
7341 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7343 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("parkingArea")), parents, color);
7344 // set values of attributes
7345 fillPlanParentAttributes(currentTag);
7347 }
7348 // from chargingStation
7350 {
7351 // set values of tag
7352 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7354 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("edge")), parents, color);
7355 // set values of attributes
7356 fillPlanParentAttributes(currentTag);
7358 }
7360 {
7361 // set values of tag
7362 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7364 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("taz")), parents, color);
7365 // set values of attributes
7366 fillPlanParentAttributes(currentTag);
7368 }
7370 {
7371 // set values of tag
7372 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7374 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("junction")), parents, color);
7375 // set values of attributes
7376 fillPlanParentAttributes(currentTag);
7378 }
7380 {
7381 // set values of tag
7382 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7384 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("busStop")), parents, color);
7385 // set values of attributes
7386 fillPlanParentAttributes(currentTag);
7388 }
7390 {
7391 // set values of tag
7392 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7394 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("trainStop")), parents, color);
7395 // set values of attributes
7396 fillPlanParentAttributes(currentTag);
7398 }
7400 {
7401 // set values of tag
7402 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7404 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("containerStop")), parents, color);
7405 // set values of attributes
7406 fillPlanParentAttributes(currentTag);
7408 }
7410 {
7411 // set values of tag
7412 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7414 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("chargingStation")), parents, color);
7415 // set values of attributes
7416 fillPlanParentAttributes(currentTag);
7418 }
7420 {
7421 // set values of tag
7422 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7424 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("parkingArea")), parents, color);
7425 // set values of attributes
7426 fillPlanParentAttributes(currentTag);
7428 }
7429 // from parkingArea
7430 currentTag = GNE_TAG_WALK_PARKINGAREA_EDGE;
7431 {
7432 // set values of tag
7433 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7435 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("edge")), parents, color);
7436 // set values of attributes
7437 fillPlanParentAttributes(currentTag);
7439 }
7440 currentTag = GNE_TAG_WALK_PARKINGAREA_TAZ;
7441 {
7442 // set values of tag
7443 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7445 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("taz")), parents, color);
7446 // set values of attributes
7447 fillPlanParentAttributes(currentTag);
7449 }
7451 {
7452 // set values of tag
7453 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7455 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("junction")), parents, color);
7456 // set values of attributes
7457 fillPlanParentAttributes(currentTag);
7459 }
7461 {
7462 // set values of tag
7463 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7465 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("busStop")), parents, color);
7466 // set values of attributes
7467 fillPlanParentAttributes(currentTag);
7469 }
7471 {
7472 // set values of tag
7473 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7475 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("trainStop")), parents, color);
7476 // set values of attributes
7477 fillPlanParentAttributes(currentTag);
7479 }
7481 {
7482 // set values of tag
7483 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7485 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("containerStop")), parents, color);
7486 // set values of attributes
7487 fillPlanParentAttributes(currentTag);
7489 }
7491 {
7492 // set values of tag
7493 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7495 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("chargingStation")), parents, color);
7496 // set values of attributes
7497 fillPlanParentAttributes(currentTag);
7499 }
7501 {
7502 // set values of tag
7503 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7505 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("parkingArea")), parents, color);
7506 // set values of attributes
7507 fillPlanParentAttributes(currentTag);
7509 }
7510}
7511
7512
7513void
7515 // declare empty GNEAttributeProperties
7516 GNEAttributeProperties attrProperty;
7517 // declare common tag types and properties
7520 const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
7521 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
7522 const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
7523 const unsigned int color = FXRGBA(253, 255, 206, 255);
7524 const GUIIcon icon = GUIIcon::RIDE_EDGE;
7525 const SumoXMLTag xmlTag = SUMO_TAG_RIDE;
7526 // fill merged tag
7527 myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
7528 0,
7529 conflicts, icon, xmlTag, TL("PersonTrip"), parents, color);
7530 // set values of attributes
7532 // from edge
7534 {
7535 // set values of tag
7536 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7538 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("edge")), parents, color);
7539 // set values of attributes
7540 fillPlanParentAttributes(currentTag);
7542 }
7543 currentTag = GNE_TAG_RIDE_EDGE_TAZ;
7544 {
7545 // set values of tag
7546 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7548 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("taz")), parents, color);
7549 // set values of attributes
7550 fillPlanParentAttributes(currentTag);
7552 }
7553 currentTag = GNE_TAG_RIDE_EDGE_JUNCTION;
7554 {
7555 // set values of tag
7556 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7558 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("junction")), parents, color);
7559 // set values of attributes
7560 fillPlanParentAttributes(currentTag);
7562 }
7563 currentTag = GNE_TAG_RIDE_EDGE_BUSSTOP;
7564 {
7565 // set values of tag
7566 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7568 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("busStop")), parents, color);
7569 // set values of attributes
7570 fillPlanParentAttributes(currentTag);
7572 }
7573 currentTag = GNE_TAG_RIDE_EDGE_TRAINSTOP;
7574 {
7575 // set values of tag
7576 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7578 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("trainStop")), parents, color);
7579 // set values of attributes
7580 fillPlanParentAttributes(currentTag);
7582 }
7584 {
7585 // set values of tag
7586 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7588 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("containerStop")), parents, color);
7589 // set values of attributes
7590 fillPlanParentAttributes(currentTag);
7592 }
7594 {
7595 // set values of tag
7596 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7598 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("chargingStation")), parents, color);
7599 // set values of attributes
7600 fillPlanParentAttributes(currentTag);
7602 }
7603 currentTag = GNE_TAG_RIDE_EDGE_PARKINGAREA;
7604 {
7605 // set values of tag
7606 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7608 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("parkingArea")), parents, color);
7609 // set values of attributes
7610 fillPlanParentAttributes(currentTag);
7612 }
7613 // from taz
7614 currentTag = GNE_TAG_RIDE_TAZ_EDGE;
7615 {
7616 // set values of tag
7617 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7619 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("taz")), parents, color);
7620 // set values of attributes
7621 fillPlanParentAttributes(currentTag);
7623 }
7624 currentTag = GNE_TAG_RIDE_TAZ_TAZ;
7625 {
7626 // set values of tag
7627 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7629 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("taz")), parents, color);
7630 // set values of attributes
7631 fillPlanParentAttributes(currentTag);
7633 }
7634 currentTag = GNE_TAG_RIDE_TAZ_JUNCTION;
7635 {
7636 // set values of tag
7637 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7639 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("junction")), parents, color);
7640 // set values of attributes
7641 fillPlanParentAttributes(currentTag);
7643 }
7644 currentTag = GNE_TAG_RIDE_TAZ_BUSSTOP;
7645 {
7646 // set values of tag
7647 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7649 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("busStop")), parents, color);
7650 // set values of attributes
7651 fillPlanParentAttributes(currentTag);
7653 }
7654 currentTag = GNE_TAG_RIDE_TAZ_TRAINSTOP;
7655 {
7656 // set values of tag
7657 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7659 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("trainStop")), parents, color);
7660 // set values of attributes
7661 fillPlanParentAttributes(currentTag);
7663 }
7664 currentTag = GNE_TAG_RIDE_TAZ_CONTAINERSTOP;
7665 {
7666 // set values of tag
7667 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7669 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("containerStop")), parents, color);
7670 // set values of attributes
7671 fillPlanParentAttributes(currentTag);
7673 }
7675 {
7676 // set values of tag
7677 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7679 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("chargingStation")), parents, color);
7680 // set values of attributes
7681 fillPlanParentAttributes(currentTag);
7683 }
7684 currentTag = GNE_TAG_RIDE_TAZ_PARKINGAREA;
7685 {
7686 // set values of tag
7687 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7689 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("parkingArea")), parents, color);
7690 // set values of attributes
7691 fillPlanParentAttributes(currentTag);
7693 }
7694 // from junction
7695 currentTag = GNE_TAG_RIDE_JUNCTION_EDGE;
7696 {
7697 // set values of tag
7698 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7700 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("edge")), parents, color);
7701 // set values of attributes
7702 fillPlanParentAttributes(currentTag);
7704 }
7705 currentTag = GNE_TAG_RIDE_JUNCTION_TAZ;
7706 {
7707 // set values of tag
7708 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7710 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("taz")), parents, color);
7711 // set values of attributes
7712 fillPlanParentAttributes(currentTag);
7714 }
7715 currentTag = GNE_TAG_RIDE_JUNCTION_JUNCTION;
7716 {
7717 // set values of tag
7718 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7720 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("junction")), parents, color);
7721 // set values of attributes
7722 fillPlanParentAttributes(currentTag);
7724 }
7725 currentTag = GNE_TAG_RIDE_JUNCTION_BUSSTOP;
7726 {
7727 // set values of tag
7728 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7730 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("busStop")), parents, color);
7731 // set values of attributes
7732 fillPlanParentAttributes(currentTag);
7734 }
7736 {
7737 // set values of tag
7738 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7740 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("trainStop")), parents, color);
7741 // set values of attributes
7742 fillPlanParentAttributes(currentTag);
7744 }
7746 {
7747 // set values of tag
7748 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7750 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("containerStop")), parents, color);
7751 // set values of attributes
7752 fillPlanParentAttributes(currentTag);
7754 }
7756 {
7757 // set values of tag
7758 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7760 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("chargingStation")), parents, color);
7761 // set values of attributes
7762 fillPlanParentAttributes(currentTag);
7764 }
7766 {
7767 // set values of tag
7768 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7770 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("parkingArea")), parents, color);
7771 // set values of attributes
7772 fillPlanParentAttributes(currentTag);
7774 }
7775 // from busStop
7776 currentTag = GNE_TAG_RIDE_BUSSTOP_EDGE;
7777 {
7778 // set values of tag
7779 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7781 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("edge")), parents, color);
7782 // set values of attributes
7783 fillPlanParentAttributes(currentTag);
7785 }
7786 currentTag = GNE_TAG_RIDE_BUSSTOP_TAZ;
7787 {
7788 // set values of tag
7789 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7791 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("taz")), parents, color);
7792 // set values of attributes
7793 fillPlanParentAttributes(currentTag);
7795 }
7796 currentTag = GNE_TAG_RIDE_BUSSTOP_JUNCTION;
7797 {
7798 // set values of tag
7799 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7801 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("junction")), parents, color);
7802 // set values of attributes
7803 fillPlanParentAttributes(currentTag);
7805 }
7806 currentTag = GNE_TAG_RIDE_BUSSTOP_BUSSTOP;
7807 {
7808 // set values of tag
7809 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7811 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("busStop")), parents, color);
7812 // set values of attributes
7813 fillPlanParentAttributes(currentTag);
7815 }
7816 currentTag = GNE_TAG_RIDE_BUSSTOP_TRAINSTOP;
7817 {
7818 // set values of tag
7819 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7821 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("trainStop")), parents, color);
7822 // set values of attributes
7823 fillPlanParentAttributes(currentTag);
7825 }
7827 {
7828 // set values of tag
7829 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7831 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("containerStop")), parents, color);
7832 // set values of attributes
7833 fillPlanParentAttributes(currentTag);
7835 }
7837 {
7838 // set values of tag
7839 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7841 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("chargingStation")), parents, color);
7842 // set values of attributes
7843 fillPlanParentAttributes(currentTag);
7845 }
7847 {
7848 // set values of tag
7849 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7851 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("parkingArea")), parents, color);
7852 // set values of attributes
7853 fillPlanParentAttributes(currentTag);
7855 }
7856 // from trainStop
7857 currentTag = GNE_TAG_RIDE_TRAINSTOP_EDGE;
7858 {
7859 // set values of tag
7860 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7862 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("edge")), parents, color);
7863 // set values of attributes
7864 fillPlanParentAttributes(currentTag);
7866 }
7867 currentTag = GNE_TAG_RIDE_TRAINSTOP_TAZ;
7868 {
7869 // set values of tag
7870 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7872 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("taz")), parents, color);
7873 // set values of attributes
7874 fillPlanParentAttributes(currentTag);
7876 }
7878 {
7879 // set values of tag
7880 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7882 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("junction")), parents, color);
7883 // set values of attributes
7884 fillPlanParentAttributes(currentTag);
7886 }
7887 currentTag = GNE_TAG_RIDE_TRAINSTOP_BUSSTOP;
7888 {
7889 // set values of tag
7890 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7892 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("busStop")), parents, color);
7893 // set values of attributes
7894 fillPlanParentAttributes(currentTag);
7896 }
7898 {
7899 // set values of tag
7900 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7902 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("trainStop")), parents, color);
7903 // set values of attributes
7904 fillPlanParentAttributes(currentTag);
7906 }
7908 {
7909 // set values of tag
7910 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7912 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("containerStop")), parents, color);
7913 // set values of attributes
7914 fillPlanParentAttributes(currentTag);
7916 }
7918 {
7919 // set values of tag
7920 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7922 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("chargingStation")), parents, color);
7923 // set values of attributes
7924 fillPlanParentAttributes(currentTag);
7926 }
7928 {
7929 // set values of tag
7930 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7932 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("parkingArea")), parents, color);
7933 // set values of attributes
7934 fillPlanParentAttributes(currentTag);
7936 }
7937 // from containerStop
7939 {
7940 // set values of tag
7941 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7943 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("edge")), parents, color);
7944 // set values of attributes
7945 fillPlanParentAttributes(currentTag);
7947 }
7948 currentTag = GNE_TAG_RIDE_CONTAINERSTOP_TAZ;
7949 {
7950 // set values of tag
7951 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7953 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("taz")), parents, color);
7954 // set values of attributes
7955 fillPlanParentAttributes(currentTag);
7957 }
7959 {
7960 // set values of tag
7961 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7963 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("junction")), parents, color);
7964 // set values of attributes
7965 fillPlanParentAttributes(currentTag);
7967 }
7969 {
7970 // set values of tag
7971 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7973 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("busStop")), parents, color);
7974 // set values of attributes
7975 fillPlanParentAttributes(currentTag);
7977 }
7979 {
7980 // set values of tag
7981 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7983 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("trainStop")), parents, color);
7984 // set values of attributes
7985 fillPlanParentAttributes(currentTag);
7987 }
7989 {
7990 // set values of tag
7991 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7993 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("containerStop")), parents, color);
7994 // set values of attributes
7995 fillPlanParentAttributes(currentTag);
7997 }
7999 {
8000 // set values of tag
8001 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8003 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("chargingStation")), parents, color);
8004 // set values of attributes
8005 fillPlanParentAttributes(currentTag);
8007 }
8009 {
8010 // set values of tag
8011 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8013 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("parkingArea")), parents, color);
8014 // set values of attributes
8015 fillPlanParentAttributes(currentTag);
8017 }
8018 // from chargingStation
8020 {
8021 // set values of tag
8022 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8024 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("edge")), parents, color);
8025 // set values of attributes
8026 fillPlanParentAttributes(currentTag);
8028 }
8030 {
8031 // set values of tag
8032 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
8034 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("taz")), parents, color);
8035 // set values of attributes
8036 fillPlanParentAttributes(currentTag);
8038 }
8040 {
8041 // set values of tag
8042 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8044 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("junction")), parents, color);
8045 // set values of attributes
8046 fillPlanParentAttributes(currentTag);
8048 }
8050 {
8051 // set values of tag
8052 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8054 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("busStop")), parents, color);
8055 // set values of attributes
8056 fillPlanParentAttributes(currentTag);
8058 }
8060 {
8061 // set values of tag
8062 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8064 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("trainStop")), parents, color);
8065 // set values of attributes
8066 fillPlanParentAttributes(currentTag);
8068 }
8070 {
8071 // set values of tag
8072 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8074 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("containerStop")), parents, color);
8075 // set values of attributes
8076 fillPlanParentAttributes(currentTag);
8078 }
8080 {
8081 // set values of tag
8082 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8084 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("chargingStation")), parents, color);
8085 // set values of attributes
8086 fillPlanParentAttributes(currentTag);
8088 }
8090 {
8091 // set values of tag
8092 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8094 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("parkingArea")), parents, color);
8095 // set values of attributes
8096 fillPlanParentAttributes(currentTag);
8098 }
8099 // from parkingArea
8100 currentTag = GNE_TAG_RIDE_PARKINGAREA_EDGE;
8101 {
8102 // set values of tag
8103 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8105 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("edge")), parents, color);
8106 // set values of attributes
8107 fillPlanParentAttributes(currentTag);
8109 }
8110 currentTag = GNE_TAG_RIDE_PARKINGAREA_TAZ;
8111 {
8112 // set values of tag
8113 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
8115 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("taz")), parents, color);
8116 // set values of attributes
8117 fillPlanParentAttributes(currentTag);
8119 }
8121 {
8122 // set values of tag
8123 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8125 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("junction")), parents, color);
8126 // set values of attributes
8127 fillPlanParentAttributes(currentTag);
8129 }
8131 {
8132 // set values of tag
8133 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8135 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("busStop")), parents, color);
8136 // set values of attributes
8137 fillPlanParentAttributes(currentTag);
8139 }
8141 {
8142 // set values of tag
8143 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8145 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("trainStop")), parents, color);
8146 // set values of attributes
8147 fillPlanParentAttributes(currentTag);
8149 }
8151 {
8152 // set values of tag
8153 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8155 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("containerStop")), parents, color);
8156 // set values of attributes
8157 fillPlanParentAttributes(currentTag);
8159 }
8161 {
8162 // set values of tag
8163 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8165 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("chargingStation")), parents, color);
8166 // set values of attributes
8167 fillPlanParentAttributes(currentTag);
8169 }
8171 {
8172 // set values of tag
8173 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8175 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("parkingArea")), parents, color);
8176 // set values of attributes
8177 fillPlanParentAttributes(currentTag);
8179 }
8180}
8181
8182
8183void
8185 // declare empty GNEAttributeProperties
8186 GNEAttributeProperties attrProperty;
8187 // declare common tag types and properties
8190 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
8191 const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
8192 const unsigned int color = FXRGBA(255, 213, 213, 255);
8193 const GUIIcon icon = GUIIcon::STOPELEMENT;
8194 const SumoXMLTag xmlTag = SUMO_TAG_STOP;
8195 // fill merged tag
8197 0,
8198 conflicts, icon, xmlTag, TL("PersonStop"), parents, color);
8199 // set values of attributes
8201 // fill tags
8203 {
8204 // set values of tag
8205 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8207 conflicts, icon, xmlTag, TL("PersonStop: edge"), parents, color);
8208
8209 // set values of attributes
8210 fillPlanParentAttributes(currentTag);
8212 }
8213 currentTag = GNE_TAG_STOPPERSON_BUSSTOP;
8214 {
8215 // set values of tag
8216 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8218 conflicts, icon, xmlTag, TL("PersonStop: busStop"), parents, color);
8219
8220 // set values of attributes
8221 fillPlanParentAttributes(currentTag);
8223 }
8224 currentTag = GNE_TAG_STOPPERSON_TRAINSTOP;
8225 {
8226 // set values of tag
8227 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8229 conflicts, icon, xmlTag, TL("PersonStop: trainStop"), parents, color);
8230
8231 // set values of attributes
8232 fillPlanParentAttributes(currentTag);
8234 }
8236 {
8237 // set values of tag
8238 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8240 conflicts, icon, xmlTag, TL("PersonStop: containerStop"), parents, color);
8241
8242 // set values of attributes
8243 fillPlanParentAttributes(currentTag);
8245 }
8247 {
8248 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8250 conflicts, icon, xmlTag, TL("PersonStop: chargingStation"), parents, color);
8251
8252 // set values of attributes
8253 fillPlanParentAttributes(currentTag);
8255 }
8256 currentTag = GNE_TAG_STOPPERSON_PARKINGAREA;
8257 {
8258 // set values of tag
8259 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8261 conflicts, icon, xmlTag, TL("PersonStop: parkingArea"), parents, color);
8262
8263 // set values of attributes
8264 fillPlanParentAttributes(currentTag);
8266 }
8267}
8268
8269
8270void
8272
8275 TL("The color with which the POI shall be displayed"),
8276 "red");
8277 myTagProperties[currentTag].addAttribute(attrProperty);
8278
8281 TL("A typename for the POI"),
8283 myTagProperties[currentTag].addAttribute(attrProperty);
8284
8287 TL("POI Icon"),
8289 attrProperty.setDiscreteValues(SUMOXMLDefinitions::POIIcons.getStrings());
8290 myTagProperties[currentTag].addAttribute(attrProperty);
8291
8294 TL("Name of POI"));
8295 myTagProperties[currentTag].addAttribute(attrProperty);
8296
8299 TL("The layer of the POI for drawing and selecting"),
8301 myTagProperties[currentTag].addAttribute(attrProperty);
8302
8305 TL("Width of rendered image in meters"),
8307 myTagProperties[currentTag].addAttribute(attrProperty);
8308
8311 TL("Height of rendered image in meters"),
8313 myTagProperties[currentTag].addAttribute(attrProperty);
8314
8317 TL("A bitmap to use for rendering this POI"),
8319 myTagProperties[currentTag].addAttribute(attrProperty);
8320
8323 TL("Enable or disable use image file as a relative path"),
8325 myTagProperties[currentTag].addAttribute(attrProperty);
8326
8329 TL("Angle of rendered image in degree"),
8331 myTagProperties[currentTag].addAttribute(attrProperty);
8332}
8333
8334
8335void
8337 // declare empty GNEAttributeProperties
8338 GNEAttributeProperties attrProperty;
8339
8342 TL("This vehicle's color"),
8343 "yellow");
8344 myTagProperties[currentTag].addAttribute(attrProperty);
8345
8348 TL("The lane on which the vehicle shall be inserted"),
8349 "first");
8350 myTagProperties[currentTag].addAttribute(attrProperty);
8351
8354 TL("The position at which the vehicle shall enter the net"),
8355 "base");
8356 myTagProperties[currentTag].addAttribute(attrProperty);
8357
8360 TL("The speed with which the vehicle shall enter the network"),
8361 "0.00");
8362 myTagProperties[currentTag].addAttribute(attrProperty);
8363
8366 TL("The lane at which the vehicle shall leave the network"),
8367 "current");
8368 myTagProperties[currentTag].addAttribute(attrProperty);
8369
8372 TL("The position at which the vehicle shall leave the network"),
8373 "max");
8374 myTagProperties[currentTag].addAttribute(attrProperty);
8375
8378 TL("The speed with which the vehicle shall leave the network"),
8379 "current");
8380 myTagProperties[currentTag].addAttribute(attrProperty);
8381
8384 TL("A string specifying the id of a public transport line which can be used when specifying person rides"));
8385 myTagProperties[currentTag].addAttribute(attrProperty);
8386
8389 TL("The number of occupied seats when the vehicle is inserted"),
8390 "0");
8391 myTagProperties[currentTag].addAttribute(attrProperty);
8392
8395 TL("The number of occupied container places when the vehicle is inserted"),
8396 "0");
8397 myTagProperties[currentTag].addAttribute(attrProperty);
8398
8401 TL("The lateral position on the departure lane at which the vehicle shall enter the net"),
8402 "center");
8403 myTagProperties[currentTag].addAttribute(attrProperty);
8404
8407 TL("The lateral position on the arrival lane at which the vehicle shall arrive"),
8408 "center");
8409 myTagProperties[currentTag].addAttribute(attrProperty);
8410
8413 TL("Insertion checks"),
8415 myTagProperties[currentTag].addAttribute(attrProperty);
8416}
8417
8418
8419void
8421 // declare empty GNEAttributeProperties
8422 GNEAttributeProperties attrProperty;
8423
8426 TL("First flow departure time"),
8427 "0");
8428 myTagProperties[currentTag].addAttribute(attrProperty);
8429
8432 TL("End of departure interval"),
8433 "3600");
8434 myTagProperties[currentTag].addAttribute(attrProperty);
8435
8438 TL("probability for emitting a flow each second") + std::string("\n") +
8439 TL("(not together with vehsPerHour or period)"),
8440 "1800");
8441 myTagProperties[currentTag].addAttribute(attrProperty);
8442
8443 attrProperty = GNEAttributeProperties(perHour,
8445 TL("Number of flows per hour, equally spaced") + std::string("\n") +
8446 TL("(not together with period or probability or poisson)"),
8447 "1800");
8448 myTagProperties[currentTag].addAttribute(attrProperty);
8449
8452 TL("Insert equally spaced flows at that period") + std::string("\n") +
8453 TL("(not together with vehsPerHour or probability or poisson)"),
8454 "2");
8455 myTagProperties[currentTag].addAttribute(attrProperty);
8456
8459 TL("probability for emitting a flow each second") + std::string("\n") +
8460 TL("(not together with vehsPerHour or period or poisson)"),
8461 "0.5");
8462 myTagProperties[currentTag].addAttribute(attrProperty);
8463
8466 TL("Insert flow expected vehicles per second with poisson distributed insertion rate") + std::string("\n") +
8467 TL("(not together with period or vehsPerHour or probability)"),
8468 "0.5");
8469 myTagProperties[currentTag].addAttribute(attrProperty);
8470}
8471
8472
8473void
8475 // declare empty GNEAttributeProperties
8476 GNEAttributeProperties attrProperty;
8477
8480 TL("The acceleration ability of vehicles of this type [m/s^2]"),
8481 "2.60");
8482 myTagProperties[currentTag].addAttribute(attrProperty);
8483
8486 TL("The deceleration ability of vehicles of this type [m/s^2]"),
8487 "4.50");
8488 myTagProperties[currentTag].addAttribute(attrProperty);
8489
8492 TL("The apparent deceleration of the vehicle as used by the standard model [m/s^2]"),
8493 "4.50");
8494 myTagProperties[currentTag].addAttribute(attrProperty);
8495
8498 TL("The maximal physically possible deceleration for the vehicle [m/s^2]"),
8499 "4.50");
8500 myTagProperties[currentTag].addAttribute(attrProperty);
8501
8504 TL("Car-following model parameter"),
8505 "0.50");
8506 attrProperty.setRange(0, 1);
8507 myTagProperties[currentTag].addAttribute(attrProperty);
8508
8511 TL("Car-following model parameter"),
8512 "1.00");
8513 myTagProperties[currentTag].addAttribute(attrProperty);
8514
8517 TL("SKRAUSSX parameter 1"));
8518 myTagProperties[currentTag].addAttribute(attrProperty);
8519
8522 TL("SKRAUSSX parameter 2"));
8523 myTagProperties[currentTag].addAttribute(attrProperty);
8524
8527 TL("SKRAUSSX parameter 3"));
8528 myTagProperties[currentTag].addAttribute(attrProperty);
8529
8532 TL("SKRAUSSX parameter 4"));
8533 myTagProperties[currentTag].addAttribute(attrProperty);
8534
8537 TL("SKRAUSSX parameter 5"));
8538 myTagProperties[currentTag].addAttribute(attrProperty);
8539
8542 TL("EIDM Look ahead / preview parameter [s]"),
8543 "4.00");
8544 myTagProperties[currentTag].addAttribute(attrProperty);
8545
8548 TL("EIDM AP Reaction Time parameter [s]"),
8549 "0.50");
8550 myTagProperties[currentTag].addAttribute(attrProperty);
8551
8554 TL("EIDM Wiener Process parameter for the Driving Error [s]"),
8555 "3.00");
8556 myTagProperties[currentTag].addAttribute(attrProperty);
8557
8560 TL("EIDM Wiener Process parameter for the Estimation Error [s]"),
8561 "10.00");
8562 myTagProperties[currentTag].addAttribute(attrProperty);
8563
8566 TL("EIDM Coolness parameter of the Enhanced IDM [-]"),
8567 "0.99");
8568 attrProperty.setRange(0, 1);
8569 myTagProperties[currentTag].addAttribute(attrProperty);
8570
8573 TL("EIDM leader speed estimation error parameter [-]"),
8574 "0.02");
8575 myTagProperties[currentTag].addAttribute(attrProperty);
8576
8579 TL("EIDM gap estimation error parameter [-]"),
8580 "0.10");
8581 myTagProperties[currentTag].addAttribute(attrProperty);
8582
8585 TL("EIDM driving error parameter [-]"),
8586 "0.04");
8587 myTagProperties[currentTag].addAttribute(attrProperty);
8588
8591 TL("EIDM maximal jerk parameter [m/s^3]"),
8592 "3.00");
8593 myTagProperties[currentTag].addAttribute(attrProperty);
8594
8597 TL("EIDM maximal negative acceleration between two Action Points (threshold) [m/s^2]"),
8598 "1.00");
8599 myTagProperties[currentTag].addAttribute(attrProperty);
8600
8603 TL("EIDM Time parameter until vehicle reaches amax after startup/driveoff [s]"),
8604 "1.20");
8605 myTagProperties[currentTag].addAttribute(attrProperty);
8606
8609 TL("EIDM Flatness parameter of startup/driveoff curve [-]"),
8610 "2.00");
8611 myTagProperties[currentTag].addAttribute(attrProperty);
8612
8615 TL("EIDM Shift parameter of startup/driveoff curve [-]"),
8616 "0.70");
8617 myTagProperties[currentTag].addAttribute(attrProperty);
8618
8621 TL("EIDM parameter if model shall include vehicle dynamics into the acceleration calculation [0/1]"),
8622 "0");
8623 myTagProperties[currentTag].addAttribute(attrProperty);
8624
8627 TL("EIDM parameter how many vehicles are taken into the preview calculation of the driver (at least always 1!) [-]"),
8628 "0");
8629 myTagProperties[currentTag].addAttribute(attrProperty);
8630
8633 TL("Peter Wagner 2009 parameter"),
8634 "0");
8635 myTagProperties[currentTag].addAttribute(attrProperty);
8636
8639 TL("Peter Wagner 2009 parameter"),
8640 "0");
8641 myTagProperties[currentTag].addAttribute(attrProperty);
8642
8645 TL("IDMM parameter"),
8646 "0");
8647 myTagProperties[currentTag].addAttribute(attrProperty);
8648
8651 TL("IDMM parameter"),
8652 "0");
8653 myTagProperties[currentTag].addAttribute(attrProperty);
8654
8657 TL("W99 parameter"),
8658 "1.3");
8659 myTagProperties[currentTag].addAttribute(attrProperty);
8660
8663 TL("W99 parameter"),
8664 "8.0");
8665 myTagProperties[currentTag].addAttribute(attrProperty);
8666
8669 TL("W99 parameter"),
8670 "-12.0");
8671 myTagProperties[currentTag].addAttribute(attrProperty);
8672
8675 TL("W99 parameter"),
8676 "-0.25");
8677 myTagProperties[currentTag].addAttribute(attrProperty);
8678
8681 TL("W99 parameter"),
8682 "0.35");
8683 myTagProperties[currentTag].addAttribute(attrProperty);
8684
8687 TL("W99 parameter"),
8688 "6.0");
8689 myTagProperties[currentTag].addAttribute(attrProperty);
8690
8693 TL("W99 parameter"),
8694 "0.25");
8695 myTagProperties[currentTag].addAttribute(attrProperty);
8696
8699 TL("W99 parameter"),
8700 "2.0");
8701 myTagProperties[currentTag].addAttribute(attrProperty);
8702
8705 TL("W99 parameter"),
8706 "1.5");
8707 myTagProperties[currentTag].addAttribute(attrProperty);
8708
8711 TL("Wiedemann parameter"));
8712 myTagProperties[currentTag].addAttribute(attrProperty);
8713
8716 TL("Wiedemann parameter"));
8717 myTagProperties[currentTag].addAttribute(attrProperty);
8718
8721 TL("MinGap factor parameter"));
8722 myTagProperties[currentTag].addAttribute(attrProperty);
8723
8724 attrProperty = GNEAttributeProperties(SUMO_ATTR_K,
8726 TL("K parameter"));
8727 myTagProperties[currentTag].addAttribute(attrProperty);
8728
8731 TL("Kerner Phi parameter"));
8732 myTagProperties[currentTag].addAttribute(attrProperty);
8733
8736 TL("IDM Delta parameter"));
8737 myTagProperties[currentTag].addAttribute(attrProperty);
8738
8741 TL("IDM Stepping parameter"));
8742 myTagProperties[currentTag].addAttribute(attrProperty);
8743
8746 TL("Train Types"),
8747 "NGT400");
8748 attrProperty.setDiscreteValues(SUMOXMLDefinitions::TrainTypes.getStrings());
8749 myTagProperties[currentTag].addAttribute(attrProperty);
8750}
8751
8752
8753void
8755 // declare empty GNEAttributeProperties
8756 GNEAttributeProperties attrProperty;
8757
8760 TL("Minimum distance to pedestrians that are walking towards the conflict point with the ego vehicle."),
8761 "10");
8762 myTagProperties[currentTag].addAttribute(attrProperty);
8763
8766 TL("The accumulated waiting time after which a vehicle will drive onto an intersection even though this might cause jamming."),
8767 "-1");
8768 myTagProperties[currentTag].addAttribute(attrProperty);
8769
8772 TL("This value causes vehicles to violate a yellow light if the duration of the yellow phase is lower than the given threshold."),
8773 "-1");
8774 myTagProperties[currentTag].addAttribute(attrProperty);
8775
8778 TL("This value causes vehicles to violate a red light if the duration of the red phase is lower than the given threshold."),
8779 "-1");
8780 myTagProperties[currentTag].addAttribute(attrProperty);
8781
8784 TL("This value causes vehicles affected by jmDriveAfterRedTime to slow down when violating a red light."),
8785 "0.0");
8786 myTagProperties[currentTag].addAttribute(attrProperty);
8787
8790 TL("This value causes vehicles to ignore foe vehicles that have right-of-way with the given probability."),
8791 "0.0");
8792 myTagProperties[currentTag].addAttribute(attrProperty);
8793
8796 TL("This value is used in conjunction with jmIgnoreFoeProb.") + std::string("\n") +
8797 TL("Only vehicles with a speed below or equal to the given value may be ignored."),
8798 "0.0");
8799 myTagProperties[currentTag].addAttribute(attrProperty);
8800
8803 TL("This value configures driving imperfection (dawdling) while passing a minor link."),
8804 "0.0");
8805 myTagProperties[currentTag].addAttribute(attrProperty);
8806
8809 TL("This value defines the minimum time gap when passing ahead of a prioritized vehicle. "),
8810 "1");
8811 myTagProperties[currentTag].addAttribute(attrProperty);
8812
8815 TL("Willingess of drivers to impede vehicles with higher priority"),
8816 "0.0");
8817 myTagProperties[currentTag].addAttribute(attrProperty);
8818}
8819
8820
8821void
8823 // declare empty GNEAttributeProperties
8824 GNEAttributeProperties attrProperty;
8825
8828 TL("The eagerness for performing strategic lane changing. Higher values result in earlier lane-changing."),
8829 "1.0");
8830 myTagProperties[currentTag].addAttribute(attrProperty);
8831
8834 TL("The willingness for performing cooperative lane changing. Lower values result in reduced cooperation."),
8835 "1.0");
8836 myTagProperties[currentTag].addAttribute(attrProperty);
8837
8840 TL("The eagerness for performing lane changing to gain speed. Higher values result in more lane-changing."),
8841 "1.0");
8842 myTagProperties[currentTag].addAttribute(attrProperty);
8843
8846 TL("The eagerness for following the obligation to keep right. Higher values result in earlier lane-changing."),
8847 "1.0");
8848 myTagProperties[currentTag].addAttribute(attrProperty);
8849
8852 TL("The eagerness for using the configured lateral alignment within the lane.") + std::string("\n") +
8853 TL("Higher values result in increased willingness to sacrifice speed for alignment."),
8854 "1.0");
8855 myTagProperties[currentTag].addAttribute(attrProperty);
8856
8859 TL("The eagerness for overtaking through the opposite-direction lane. Higher values result in more lane-changing."),
8860 "1.0");
8861 myTagProperties[currentTag].addAttribute(attrProperty);
8862
8865 TL("Willingness to encroach laterally on other drivers."),
8866 "0.00");
8867 myTagProperties[currentTag].addAttribute(attrProperty);
8868
8871 TL("Minimum lateral gap when encroaching laterally on other drives (alternative way to define lcPushy)"),
8872 "0.00");
8873 myTagProperties[currentTag].addAttribute(attrProperty);
8874
8877 TL("Willingness to accept lower front and rear gaps on the target lane."),
8878 "1.0");
8879 myTagProperties[currentTag].addAttribute(attrProperty);
8880
8883 TL("Dynamic factor for modifying lcAssertive and lcPushy."),
8884 "0.00");
8885 myTagProperties[currentTag].addAttribute(attrProperty);
8886
8889 TL("Time to reach maximum impatience (of 1). Impatience grows whenever a lane-change manoeuvre is blocked."),
8890 "infinity");
8891 myTagProperties[currentTag].addAttribute(attrProperty);
8892
8895 TL("Maximum lateral acceleration per second."),
8896 "1.0");
8897 myTagProperties[currentTag].addAttribute(attrProperty);
8898
8901 TL("Factor for configuring the strategic lookahead distance when a change to the left is necessary (relative to right lookahead)."),
8902 "2.0");
8903 myTagProperties[currentTag].addAttribute(attrProperty);
8904
8907 TL("Factor for configuring the threshold asymmetry when changing to the left or to the right for speed gain."),
8908 "0.1");
8909 myTagProperties[currentTag].addAttribute(attrProperty);
8910
8913 TL("Upper bound on lateral speed when standing."),
8914 "0.00");
8915 myTagProperties[currentTag].addAttribute(attrProperty);
8916
8919 TL("Upper bound on lateral speed while moving computed as lcMaxSpeedLatStanding + lcMaxSpeedLatFactor * getSpeed()"),
8920 "1.00");
8921 myTagProperties[currentTag].addAttribute(attrProperty);
8922
8925 TL("Distance to an upcoming turn on the vehicles route, below which the alignment") + std::string("\n") +
8926 TL("should be dynamically adapted to match the turn direction."),
8927 "0.00");
8928 myTagProperties[currentTag].addAttribute(attrProperty);
8929
8932 TL("The probability for violating rules gainst overtaking on the right."),
8933 "0.00");
8934 myTagProperties[currentTag].addAttribute(attrProperty);
8935
8938 TL("Time threshold for the willingness to change right."),
8939 "-1");
8940 myTagProperties[currentTag].addAttribute(attrProperty);
8941
8944 TL("Speed difference factor for the eagerness of overtaking a neighbor vehicle before changing lanes (threshold = factor*speedlimit)."),
8945 "0.00");
8946 attrProperty.setRange(-1, 1);
8947 myTagProperties[currentTag].addAttribute(attrProperty);
8948
8949}
8950
8951
8952void
8954 // declare empty GNEAttributeProperties
8955 GNEAttributeProperties attrProperty;
8956
8957 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
8959 TL("The name of the person"));
8960 myTagProperties[currentTag].addAttribute(attrProperty);
8961
8964 TL("The id of the person type to use for this person"),
8966 myTagProperties[currentTag].addAttribute(attrProperty);
8967
8970 TL("This person's color"),
8971 "yellow");
8972 myTagProperties[currentTag].addAttribute(attrProperty);
8973
8976 TL("The position at which the person shall enter the net"),
8977 "base");
8978 myTagProperties[currentTag].addAttribute(attrProperty);
8979}
8980
8981
8982void
8984 // declare empty GNEAttributeProperties
8985 GNEAttributeProperties attrProperty;
8986
8987 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
8989 TL("The name of the container"));
8990 myTagProperties[currentTag].addAttribute(attrProperty);
8991
8994 TL("The id of the container type to use for this container"),
8996 myTagProperties[currentTag].addAttribute(attrProperty);
8997
9000 TL("This container's color"),
9001 "yellow");
9002 myTagProperties[currentTag].addAttribute(attrProperty);
9003
9006 TL("The position at which the container shall enter the net"),
9007 "base");
9008 myTagProperties[currentTag].addAttribute(attrProperty);
9009}
9010
9011
9012void
9014 // declare empty GNEAttributeProperties
9015 GNEAttributeProperties attrProperty;
9016
9019 TL("Minimum duration for stopping"),
9020 "60");
9021 attrProperty.setDefaultActivated(true);
9022 myTagProperties[currentTag].addAttribute(attrProperty);
9023
9026 TL("The time step at which the route continues"),
9027 "0.00");
9028 myTagProperties[currentTag].addAttribute(attrProperty);
9029
9032 TL("If set to a non-negative time value, then the stop duration can be extended at most by the extension value in seconds"),
9033 "0");
9034 myTagProperties[currentTag].addAttribute(attrProperty);
9035
9036 if (!waypoint) {
9039 TL("Whether a person or container or both may end the stop"),
9040 "false");
9041 attrProperty.setDiscreteValues({"false", "person", "container", "join"});
9042 myTagProperties[currentTag].addAttribute(attrProperty);
9043
9046 TL("List of elements that must board the vehicle before it may continue"));
9047 myTagProperties[currentTag].addAttribute(attrProperty);
9048
9051 TL("Joins this train to another upon reaching the stop"));
9052 myTagProperties[currentTag].addAttribute(attrProperty);
9053 }
9054
9057 TL("List of elements that can board the vehicle before it may continue"));
9058 myTagProperties[currentTag].addAttribute(attrProperty);
9059
9062 TL("Whether the vehicle stops on the road or beside"),
9063 "false");
9064 attrProperty.setDiscreteValues({"true", "false", "opportunistic"});
9065 myTagProperties[currentTag].addAttribute(attrProperty);
9066
9069 TL("Activity displayed for stopped person in GUI and output files"));
9070 myTagProperties[currentTag].addAttribute(attrProperty);
9071
9074 TL("Parameter to be applied to the vehicle to track the trip id within a cyclical public transport route"));
9075 myTagProperties[currentTag].addAttribute(attrProperty);
9076
9079 TL("New line attribute to be set on the vehicle when reaching this stop (for cyclical public transport route)"));
9080 myTagProperties[currentTag].addAttribute(attrProperty);
9081
9082 if (waypoint) {
9085 TL("Speed to be kept while driving between startPos and endPos"),
9086 "0.00");
9087 myTagProperties[currentTag].addAttribute(attrProperty);
9088 } else {
9091 TL("Whether the stop may be skipped if no passengers wants to embark or disembark"),
9092 "0");
9093 myTagProperties[currentTag].addAttribute(attrProperty);
9094 }
9095
9098 TL("transfer time if there shall be a jump from this stop to the next route edge"),
9099 "-1");
9100 myTagProperties[currentTag].addAttribute(attrProperty);
9101
9104 TL("Splits the train upon reaching the stop"));
9105 myTagProperties[currentTag].addAttribute(attrProperty);
9106}
9107
9108
9109void
9111 // get rag property
9112 auto& tagProperty = myTagProperties[currentTag];
9113 // declare empty GNEAttributeProperties
9114 GNEAttributeProperties attrProperty;
9115
9116 // basic parents
9117 if (tagProperty.planConsecutiveEdges()) {
9120 TL("list of consecutive edges"));
9121 myTagProperties[currentTag].addAttribute(attrProperty);
9122
9125 TL("Arrival position on the last edge"),
9126 "-1");
9127 myTagProperties[currentTag].addAttribute(attrProperty);
9128 }
9129 if (tagProperty.planRoute()) {
9132 TL("Route ID"));
9133 myTagProperties[currentTag].addAttribute(attrProperty);
9134
9137 TL("Arrival position on the destination edge"),
9138 "-1");
9139 myTagProperties[currentTag].addAttribute(attrProperty);
9140 }
9141 if (tagProperty.planEdge()) {
9142
9145 TL("Edge ID"));
9146 myTagProperties[currentTag].addAttribute(attrProperty);
9147
9150 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"));
9151 myTagProperties[currentTag].addAttribute(attrProperty);
9152 }
9153 if (tagProperty.planBusStop()) {
9156 TL("Bus stop ID"));
9157 myTagProperties[currentTag].addAttribute(attrProperty);
9158 }
9159 if (tagProperty.planTrainStop()) {
9162 TL("Train stop ID"));
9163 myTagProperties[currentTag].addAttribute(attrProperty);
9164 }
9165 if (tagProperty.planContainerStop()) {
9168 TL("Container stop ID"));
9169 myTagProperties[currentTag].addAttribute(attrProperty);
9170 }
9171 if (tagProperty.planChargingStation()) {
9174 TL("Charging station ID"));
9175 myTagProperties[currentTag].addAttribute(attrProperty);
9176 }
9177 if (tagProperty.planParkingArea()) {
9180 TL("Parking area ID"));
9181 myTagProperties[currentTag].addAttribute(attrProperty);
9182 }
9183 // from parents
9184 if (tagProperty.planFromEdge()) {
9187 TL("Edge start ID"));
9188 myTagProperties[currentTag].addAttribute(attrProperty);
9189 }
9190 if (tagProperty.planFromTAZ()) {
9193 TL("TAZ start ID"));
9194 myTagProperties[currentTag].addAttribute(attrProperty);
9195 }
9196 if (tagProperty.planFromJunction()) {
9199 TL("Junction start ID"));
9200 myTagProperties[currentTag].addAttribute(attrProperty);
9201 }
9202 if (tagProperty.planFromBusStop()) {
9205 TL("BuStop start ID"));
9206 myTagProperties[currentTag].addAttribute(attrProperty);
9207 }
9208 if (tagProperty.planFromTrainStop()) {
9211 TL("TrainStop start ID"));
9212 myTagProperties[currentTag].addAttribute(attrProperty);
9213 }
9214 if (tagProperty.planFromContainerStop()) {
9217 TL("ContainerStop start ID"));
9218 myTagProperties[currentTag].addAttribute(attrProperty);
9219 }
9220 if (tagProperty.planFromChargingStation()) {
9223 TL("ChargingStation start ID"));
9224 myTagProperties[currentTag].addAttribute(attrProperty);
9225 }
9226 if (tagProperty.planFromParkingArea()) {
9229 TL("ParkingArea start ID"));
9230 myTagProperties[currentTag].addAttribute(attrProperty);
9231 }
9232 // to parents
9233 if (tagProperty.planToEdge()) {
9234 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
9236 TL("Edge end ID"));
9237 myTagProperties[currentTag].addAttribute(attrProperty);
9238 // departPos only for tranships
9239 if (tagProperty.isPlanTranship()) {
9240 // depart pos
9243 TL("The position at which the tranship shall enter the net"),
9244 "0");
9245 myTagProperties[currentTag].addAttribute(attrProperty);
9246 }
9249 TL("arrival position on the destination edge"),
9250 "-1");
9251 myTagProperties[currentTag].addAttribute(attrProperty);
9252 }
9253 if (tagProperty.planToTAZ()) {
9256 TL("TAZ end ID"));
9257 myTagProperties[currentTag].addAttribute(attrProperty);
9258 }
9259 if (tagProperty.planToJunction()) {
9262 TL("Junction end ID"));
9263 myTagProperties[currentTag].addAttribute(attrProperty);
9264 }
9265 if (tagProperty.planToBusStop()) {
9268 TL("BuStop end ID"));
9269 myTagProperties[currentTag].addAttribute(attrProperty);
9270 }
9271 if (tagProperty.planToTrainStop()) {
9274 TL("TrainStop end ID"));
9275 myTagProperties[currentTag].addAttribute(attrProperty);
9276 }
9277 if (tagProperty.planToContainerStop()) {
9280 TL("ContainerStop end ID"));
9281 myTagProperties[currentTag].addAttribute(attrProperty);
9282 }
9283 if (tagProperty.planToChargingStation()) {
9286 TL("ChargingStation end ID"));
9287 myTagProperties[currentTag].addAttribute(attrProperty);
9288 }
9289 if (tagProperty.planToParkingArea()) {
9292 TL("ParkingArea end ID"));
9293 myTagProperties[currentTag].addAttribute(attrProperty);
9294 }
9295}
9296
9297
9298void
9300 // declare empty GNEAttributeProperties
9301 GNEAttributeProperties attrProperty;
9302
9305 TL("List of possible vehicle types to take"));
9306 tagProperties.addAttribute(attrProperty);
9307
9310 TL("List of possible traffic modes. Walking is always possible regardless of this value"));
9311 tagProperties.addAttribute(attrProperty);
9312
9315 TL("list of vehicle alternatives to take for the person trip"));
9316 tagProperties.addAttribute(attrProperty);
9317
9320 TL("Walk factor"),
9321 "0.00");
9322 tagProperties.addAttribute(attrProperty);
9323
9326 TL("id of the travel group. Persons with the same group may share a taxi ride"));
9327 tagProperties.addAttribute(attrProperty);
9328}
9329
9330
9331void
9333 // declare empty GNEAttributeProperties
9334 GNEAttributeProperties attrProperty;
9335
9338 TL("speed of the person for this tranship in m/s (not together with duration)"),
9339 "1.39");
9340 tagProperties.addAttribute(attrProperty);
9341
9344 TL("duration of the plan in second (not together with speed)"),
9345 "0");
9346 tagProperties.addAttribute(attrProperty);
9347}
9348
9349
9350void
9352 // declare empty GNEAttributeProperties
9353 GNEAttributeProperties attrProperty;
9354
9357 TL("list of vehicle alternatives to take for the ride"));
9358 tagProperties.addAttribute(attrProperty);
9359
9362 TL("id of the travel group. Persons with the same group may share a taxi ride"));
9363 tagProperties.addAttribute(attrProperty);
9364}
9365
9366
9367void
9369 // declare empty GNEAttributeProperties
9370 GNEAttributeProperties attrProperty;
9371
9374 TL("list of vehicle alternatives to take for the transport"));
9375 tagProperties.addAttribute(attrProperty);
9376
9379 TL("id of the travel group. Persons with the same group may share a taxi ride"));
9380 tagProperties.addAttribute(attrProperty);
9381}
9382
9383
9384void
9386 // declare empty GNEAttributeProperties
9387 GNEAttributeProperties attrProperty;
9388
9391 TL("speed of the person for this tranship in m/s (not together with duration)"),
9392 "1.39");
9393 tagProperties.addAttribute(attrProperty);
9394
9397 TL("duration of the plan in second (not together with speed)"),
9398 "0");
9399 tagProperties.addAttribute(attrProperty);
9400}
9401
9402
9403void
9405 // declare empty GNEAttributeProperties
9406 GNEAttributeProperties attrProperty;
9407
9410 TL("Minimum duration for stopping"),
9411 "60");
9412 attrProperty.setDefaultActivated(true);
9413 tagProperties.addAttribute(attrProperty);
9414
9417 TL("The time step at which the route continues"),
9418 "0.00");
9419 tagProperties.addAttribute(attrProperty);
9420
9423 TL("Activity displayed for stopped person in GUI and output files "));
9424 tagProperties.addAttribute(attrProperty);
9425
9426 // friendlyPos attribute only for stops over edges
9427 if (tagProperties.hasAttribute(SUMO_ATTR_EDGE)) {
9430 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
9431 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
9432 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
9433 "0");
9434 tagProperties.addAttribute(attrProperty);
9435 }
9436}
9437
9438
9439void
9441 // declare empty GNEAttributeProperties
9442 GNEAttributeProperties attrProperty;
9443
9444 // fill data set element
9445 SumoXMLTag currentTag = SUMO_TAG_DATASET;
9446 {
9447 // set values of tag
9448 myTagProperties[currentTag] = GNETagProperties(currentTag,
9453 GUIIcon::DATASET, currentTag, TL("DataSet"));
9454
9455 // set values of attributes
9456 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9458 TL("Data set ID"));
9459 myTagProperties[currentTag].addAttribute(attrProperty);
9460
9461 }
9462 // fill data interval element
9463 currentTag = SUMO_TAG_DATAINTERVAL;
9464 {
9465 // set values of tag
9466 myTagProperties[currentTag] = GNETagProperties(currentTag,
9471 GUIIcon::DATAINTERVAL, currentTag, TL("DataInterval"),
9473
9474 // set values of attributes
9475 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9477 TL("Interval ID"));
9478 myTagProperties[currentTag].addAttribute(attrProperty);
9479
9480 // set values of attributes
9483 TL("Data interval begin time"),
9484 "0");
9485 myTagProperties[currentTag].addAttribute(attrProperty);
9486
9489 TL("Data interval end time"),
9490 "3600");
9491 myTagProperties[currentTag].addAttribute(attrProperty);
9492 }
9493 // fill edge data element
9494 currentTag = GNE_TAG_EDGEREL_SINGLE;
9495 {
9496 // set values of tag
9497 myTagProperties[currentTag] = GNETagProperties(currentTag,
9502 GUIIcon::EDGEDATA, SUMO_TAG_EDGE, TL("EdgeRelationSingle"));
9503
9504 // set values of attributes
9505 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9507 TL("edge ID"));
9508 myTagProperties[currentTag].addAttribute(attrProperty);
9509 }
9510 currentTag = SUMO_TAG_EDGEREL;
9511 {
9512 // set values of tag
9513 myTagProperties[currentTag] = GNETagProperties(currentTag,
9518 GUIIcon::EDGERELDATA, currentTag, TL("EdgeRelation"));
9519
9520 // set values of attributes
9523 TL("The ID of the edge the edgeRel starts at"));
9524 myTagProperties[currentTag].addAttribute(attrProperty);
9525
9526 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
9528 TL("The ID of the edge the edgeRel ends at"));
9529 myTagProperties[currentTag].addAttribute(attrProperty);
9530 }
9531 currentTag = SUMO_TAG_TAZREL;
9532 {
9533 // set values of tag
9534 myTagProperties[currentTag] = GNETagProperties(currentTag,
9539 GUIIcon::TAZRELDATA, currentTag, TL("TAZRelation"),
9541
9542 // set values of attributes
9545 TL("The name of the TAZ the TAZRel starts at"));
9546 myTagProperties[currentTag].addAttribute(attrProperty);
9547
9548 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
9550 TL("The name of the TAZ the TAZRel ends at"));
9551 myTagProperties[currentTag].addAttribute(attrProperty);
9552 }
9553 currentTag = SUMO_TAG_MEANDATA_EDGE;
9554 {
9555 // set values of tag
9556 myTagProperties[currentTag] = GNETagProperties(currentTag,
9561 GUIIcon::MEANDATAEDGE, currentTag, TL("MeanDataEdge"));
9562
9563 // set values of attributes
9564 fillCommonMeanDataAttributes(currentTag);
9565
9566 }
9567 currentTag = SUMO_TAG_MEANDATA_LANE;
9568 {
9569 // set values of tag
9570 myTagProperties[currentTag] = GNETagProperties(currentTag,
9575 GUIIcon::MEANDATALANE, currentTag, TL("MeanDataLane"));
9576
9577 // set values of attributes
9578 fillCommonMeanDataAttributes(currentTag);
9579 }
9580}
9581
9582
9583void
9585 GNEAttributeProperties attrProperty;
9586
9587 // fill all meanData attributes
9588 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9590 TL("The id of this set of measurements"));
9591 myTagProperties[currentTag].addAttribute(attrProperty);
9592
9595 TL("The path to the output file. The path may be relative"));
9596 myTagProperties[currentTag].addAttribute(attrProperty);
9597
9600 TL("The aggregation period the values the detector collects shall be summed up"));
9601 myTagProperties[currentTag].addAttribute(attrProperty);
9602
9605 TL("The time to start writing. If not given, the simulation's begin is used."));
9606 myTagProperties[currentTag].addAttribute(attrProperty);
9607
9610 TL("The time to end writing. If not given the simulation's end is used."));
9611 myTagProperties[currentTag].addAttribute(attrProperty);
9612
9615 TL("If set to true, edges/lanes which were not used by a vehicle during this period will not be written"),
9616 "default");
9617 attrProperty.setDiscreteValues({"1", "0", "default"});
9618 myTagProperties[currentTag].addAttribute(attrProperty);
9619
9622 TL("If set, junction internal edges/lanes will be written as well"),
9623 "0");
9624 myTagProperties[currentTag].addAttribute(attrProperty);
9625
9628 TL("The maximum travel time in seconds to write if only very small movements occur"),
9629 "100000");
9630 myTagProperties[currentTag].addAttribute(attrProperty);
9631
9634 TL("Consider an edge/lane unused if it has at most this many sampled seconds"),
9635 "0");
9636 myTagProperties[currentTag].addAttribute(attrProperty);
9637
9640 TL("The maximum speed to consider a vehicle halting;"),
9641 "0.1");
9642 myTagProperties[currentTag].addAttribute(attrProperty);
9643
9646 TL("space separated list of vehicle type ids to consider"));
9647 myTagProperties[currentTag].addAttribute(attrProperty);
9648
9651 TL("whether aggregation should be performed over all vehicles that entered the edge/lane in the aggregation interval"),
9652 "0");
9653 myTagProperties[currentTag].addAttribute(attrProperty);
9654
9657 TL("Whether pedestrians shall be recorded instead of vehicles. Allowed value is walk"));
9658 myTagProperties[currentTag].addAttribute(attrProperty);
9659
9662 TL("List of attribute names that shall be written"));
9663 myTagProperties[currentTag].addAttribute(attrProperty);
9664
9667 TL("Restrict output to the given list of edge ids"));
9668 myTagProperties[currentTag].addAttribute(attrProperty);
9669
9672 TL("Restrict output to the given list of edges given in file"));
9673 myTagProperties[currentTag].addAttribute(attrProperty);
9674
9677 TL("Whether the traffic statistic of all edges shall be aggregated into a single value"),
9678 "0");
9679 myTagProperties[currentTag].addAttribute(attrProperty);
9680}
9681
9682
9683void
9685 if (myTagProperties.size() == 0) {
9687 }
9688 // merge "virtual" netedit tags like '<walk: edge->edge'
9689 static std::map<SumoXMLTag, GNETagProperties> xmlTagProperties;
9690 for (const auto& item : myTagProperties) {
9691 if (xmlTagProperties.count(item.second.getXMLTag()) == 0) {
9692 xmlTagProperties[item.second.getXMLTag()] = item.second;
9693 } else {
9694 std::set<SumoXMLAttr> attrs;
9695 auto& old = xmlTagProperties[item.second.getXMLTag()];
9696 for (auto it = old.begin(); it != old.end(); it++) {
9697 attrs.insert(it->getAttr());
9698 }
9699 for (auto it = item.second.begin(); it != item.second.end(); it++) {
9700 if (attrs.count(it->getAttr()) == 0) {
9701 old.addAttribute(*it);
9702 }
9703 }
9704 }
9705 }
9706 const std::string opt = "attribute-help-output";
9709 dev << "# Netedit attribute help\n";
9710 for (const auto& item : xmlTagProperties) {
9711 if (item.second.begin() == item.second.end()) {
9712 // don't write elements without attributes, they are only used for internal purposes
9713 continue;
9714 }
9715 if (item.second.getParentTags().empty()) {
9716 dev << "\n## " << toString(item.first) << "\n";
9717 } else {
9718 if (item.first == SUMO_TAG_FLOW) {
9719 dev << "\n## " << toString(item.first) << "\n";
9720 dev << "also child element of ";
9721 } else {
9722 dev << "\n### " << toString(item.first) << "\n";
9723 dev << "child element of ";
9724 }
9725 bool sep = false;
9726 for (const auto& pTag : item.second.getParentTags()) {
9727 if (sep) {
9728 dev << ", ";
9729 } else {
9730 sep = true;
9731 }
9732 dev << "[" << toString(pTag) << "](#" << StringUtils::to_lower_case(toString(pTag)) << ")";
9733 }
9734 dev << "\n\n";
9735 }
9736 dev << "| Attribute | Type | Description |\n";
9737 dev << "|-----------|------|-------------|\n";
9738 for (const auto& attr : item.second) {
9739 dev << "|" << toString(attr.getAttr()) << "|"
9740 << attr.getDescription() << "|"
9741 << StringUtils::replace(attr.getDefinition(), "\n", " ");
9742 if (attr.getDefaultValue() != "") {
9743 dev << " *default:* **" << attr.getDefaultValue() << "**";
9744 }
9745 dev << "|\n";
9746 }
9747 }
9748}
9749
9750
9751/****************************************************************************/
long long int SUMOTime
Definition GUI.h:36
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< SUMOVehicleShape > SumoVehicleShapeStrings(sumoVehicleShapeStringInitializer, SUMOVehicleShape::UNKNOWN, false)
StringBijection< SUMOVehicleClass > SumoVehicleClassStrings(sumoVehicleClassStringInitializer, SVC_CUSTOM2, 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
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
const GNETagProperties & getTagProperty() const
get tagProperty associated with this Attribute Carrier
bool isTemplate() const
check if this AC is template
virtual const Parameterised::Map & getACParametersMap() const =0
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
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
virtual GUIGlObject * getGUIGlObject()=0
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:125
GNEViewNet * getViewNet() const
get view net
Definition GNENet.cpp:2147
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
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:364
static const double UNSPECIFIED_CONTPOS
unspecified internal junction position
Definition NBEdge.h:358
static const double UNSPECIFIED_VISIBILITY_DISTANCE
unspecified foe visibility for connections
Definition NBEdge.h:361
static const double UNSPECIFIED_SPEED
unspecified lane speed
Definition NBEdge.h:352
static OptionsCont & getOptions()
Retrieves the options.
Static storage of an output device and its base (abstract) implementation.
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
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.
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 const std::string format(const std::string &format, T value, Targs... Fargs)
adds a new formatted message
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
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