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
21#include <netedit/GNENet.h>
22#include <netedit/GNEViewNet.h>
33
34#include "GNEAttributeCarrier.h"
35
36
37// ===========================================================================
38// static members
39// ===========================================================================
40
41std::map<SumoXMLTag, GNETagProperties> GNEAttributeCarrier::myTagProperties;
42std::map<SumoXMLTag, GNETagProperties> GNEAttributeCarrier::myMergedPlanTagProperties;
47const std::string GNEAttributeCarrier::FEATURE_LOADED = "loaded";
48const std::string GNEAttributeCarrier::FEATURE_GUESSED = "guessed";
49const std::string GNEAttributeCarrier::FEATURE_MODIFIED = "modified";
50const std::string GNEAttributeCarrier::FEATURE_APPROVED = "approved";
52const std::string GNEAttributeCarrier::True = toString(true);
53const std::string GNEAttributeCarrier::False = toString(false);
54
55
56// ===========================================================================
57// method definitions
58// ===========================================================================
59
61 myTagProperty(getTagProperty(tag)),
62 myNet(net) {
63}
64
65
67
68
69const std::string
73
74
75GNENet*
77 return myNet;
78}
79
80
81void
83 auto glObject = getGUIGlObject();
84 if (glObject && myTagProperty.isSelectable()) {
85 gSelected.select(glObject->getGlID());
86 mySelected = true;
87 }
88}
89
90
91void
93 auto glObject = getGUIGlObject();
94 if (glObject && myTagProperty.isSelectable()) {
95 gSelected.deselect(glObject->getGlID());
96 mySelected = false;
97 }
98}
99
100
101bool
105
106
107bool
109 // first check if element is selected
110 if (mySelected) {
111 // get flag for network element
112 const bool networkElement = myTagProperty.isNetworkElement() || myTagProperty.isAdditionalElement();
113 // check current supermode
114 if (networkElement && myNet->getViewNet()->getEditModes().isCurrentSupermodeNetwork()) {
115 return true;
117 return true;
119 return true;
120 } else {
121 return false;
122 }
123 } else {
124 return false;
125 }
126}
127
128void
133
134
135void
140
141
142bool
146
147
148void
149GNEAttributeCarrier::drawInLayer(double typeOrLayer, const double extraOffset) const {
150 if (myDrawInFront) {
151 glTranslated(0, 0, GLO_FRONTELEMENT + extraOffset);
152 } else {
153 glTranslated(0, 0, typeOrLayer + extraOffset);
154 }
155}
156
157
158void
160 myInGrid = value;
161}
162
163
164bool
166 return myInGrid;
167}
168
169
170bool
174
175
176bool
180
181
182void
184 for (const auto& attrProperty : myTagProperty) {
185 if (attrProperty.hasDefaultValue()) {
186 setAttribute(attrProperty.getAttr(), attrProperty.getDefaultValue());
187 if (attrProperty.isActivatable()) {
188 toggleAttribute(attrProperty.getAttr(), attrProperty.getDefaultActivated());
189 }
190 }
191 }
192}
193
194
195void
197 throw ProcessError(TL("Nothing to enable, implement in Children"));
198
199}
200
201
202void
204 throw ProcessError(TL("Nothing to disable, implement in Children"));
205}
206
207
208bool
210 // by default, all attributes are enabled
211 return true;
212}
213
214
215bool
217 // by default, all attributes aren't computed
218 return false;
219}
220
221
222template<> int
223GNEAttributeCarrier::parse(const std::string& string) {
224 return StringUtils::toInt(string);
225}
226
227
228template<> double
229GNEAttributeCarrier::parse(const std::string& string) {
230 return StringUtils::toDouble(string);
231}
232
233
234template<> SUMOTime
235GNEAttributeCarrier::parse(const std::string& string) {
236 return string2time(string);
237}
238
239
240template<> bool
241GNEAttributeCarrier::parse(const std::string& string) {
242 return StringUtils::toBool(string);
243}
244
245
246template<> std::string
247GNEAttributeCarrier::parse(const std::string& string) {
248 return string;
249}
250
251
252template<> SUMOVehicleClass
253GNEAttributeCarrier::parse(const std::string& string) {
254 if (string.size() == 0) {
255 throw EmptyData();
256 } else if (!SumoVehicleClassStrings.hasString(string)) {
257 return SVC_IGNORING;
258 } else {
259 return SumoVehicleClassStrings.get(string);
260 }
261}
262
263
264template<> RGBColor
265GNEAttributeCarrier::parse(const std::string& string) {
266 if (string.empty()) {
267 return RGBColor::INVISIBLE;
268 } else {
269 return RGBColor::parseColor(string);
270 }
271}
272
273
274template<> Position
275GNEAttributeCarrier::parse(const std::string& string) {
276 if (string.size() == 0) {
277 throw EmptyData();
278 } else {
279 bool ok = true;
280 PositionVector pos = GeomConvHelper::parseShapeReporting(string, "user-supplied position", 0, ok, false, false);
281 if (!ok || (pos.size() != 1)) {
282 throw NumberFormatException("(Position) " + string);
283 } else {
284 return pos[0];
285 }
286 }
287}
288
289
290template<> PositionVector
291GNEAttributeCarrier::parse(const std::string& string) {
292 PositionVector posVector;
293 // empty string are allowed (It means empty position vector)
294 if (string.empty()) {
295 return posVector;
296 } else {
297 bool ok = true;
298 posVector = GeomConvHelper::parseShapeReporting(string, "user-supplied shape", 0, ok, false, true);
299 if (!ok) {
300 throw NumberFormatException("(Position List) " + string);
301 } else {
302 return posVector;
303 }
304 }
305}
306
307
308template<> SUMOVehicleShape
309GNEAttributeCarrier::parse(const std::string& string) {
310 if ((string == "unknown") || (!SumoVehicleShapeStrings.hasString(string))) {
312 } else {
313 return SumoVehicleShapeStrings.get(string);
314 }
315}
316
317
318template<> std::vector<std::string>
319GNEAttributeCarrier::parse(const std::string& string) {
320 return StringTokenizer(string).getVector();
321}
322
323
324template<> std::set<std::string>
325GNEAttributeCarrier::parse(const std::string& string) {
326 std::vector<std::string> vectorString = StringTokenizer(string).getVector();
327 std::set<std::string> solution;
328 for (const auto& i : vectorString) {
329 solution.insert(i);
330 }
331 return solution;
332}
333
334
335template<> std::vector<int>
336GNEAttributeCarrier::parse(const std::string& string) {
337 std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
338 std::vector<int> parsedIntValues;
339 for (const auto& i : parsedValues) {
340 parsedIntValues.push_back(parse<int>(i));
341 }
342 return parsedIntValues;
343}
344
345
346template<> std::vector<double>
347GNEAttributeCarrier::parse(const std::string& string) {
348 std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
349 std::vector<double> parsedDoubleValues;
350 for (const auto& i : parsedValues) {
351 parsedDoubleValues.push_back(parse<double>(i));
352 }
353 return parsedDoubleValues;
354}
355
356
357template<> std::vector<bool>
358GNEAttributeCarrier::parse(const std::string& string) {
359 std::vector<std::string> parsedValues = parse<std::vector<std::string> >(string);
360 std::vector<bool> parsedBoolValues;
361 for (const auto& i : parsedValues) {
362 parsedBoolValues.push_back(parse<bool>(i));
363 }
364 return parsedBoolValues;
365}
366
367
368template<> std::vector<SumoXMLAttr>
369GNEAttributeCarrier::parse(const std::string& value) {
370 // Declare string vector
371 std::vector<std::string> attributesStr = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
372 std::vector<SumoXMLAttr> attributes;
373 // Iterate over lanes IDs, retrieve Lanes and add it into parsedLanes
374 for (const auto& attributeStr : attributesStr) {
375 if (SUMOXMLDefinitions::Attrs.hasString(attributeStr)) {
376 attributes.push_back(static_cast<SumoXMLAttr>(SUMOXMLDefinitions::Attrs.get(attributeStr)));
377 } else {
378 throw FormatException("Error parsing attributes. Attribute '" + attributeStr + "' doesn't exist");
379 }
380 }
381 return attributes;
382}
383
384
385template<> std::vector<GNEEdge*>
386GNEAttributeCarrier::parse(GNENet* net, const std::string& value) {
387 // Declare string vector
388 std::vector<std::string> edgeIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
389 std::vector<GNEEdge*> parsedEdges;
390 // Iterate over edges IDs, retrieve Edges and add it into parsedEdges
391 for (const auto& edgeID : edgeIds) {
392 GNEEdge* retrievedEdge = net->getAttributeCarriers()->retrieveEdge(edgeID, false);
393 if (retrievedEdge) {
394 parsedEdges.push_back(net->getAttributeCarriers()->retrieveEdge(edgeID));
395 } else {
396 throw FormatException("Error parsing parameter " + toString(SUMO_ATTR_EDGES) + ". " +
397 toString(SUMO_TAG_EDGE) + " '" + edgeID + "' doesn't exist");
398 }
399 }
400 return parsedEdges;
401}
402
403
404template<> std::vector<GNELane*>
405GNEAttributeCarrier::parse(GNENet* net, const std::string& value) {
406 // Declare string vector
407 std::vector<std::string> laneIds = GNEAttributeCarrier::parse<std::vector<std::string> > (value);
408 std::vector<GNELane*> parsedLanes;
409 // Iterate over lanes IDs, retrieve Lanes and add it into parsedLanes
410 for (const auto& laneID : laneIds) {
411 GNELane* retrievedLane = net->getAttributeCarriers()->retrieveLane(laneID, false);
412 if (retrievedLane) {
413 parsedLanes.push_back(net->getAttributeCarriers()->retrieveLane(laneID));
414 } else {
415 throw FormatException("Error parsing parameter " + toString(SUMO_ATTR_LANES) + ". " +
416 toString(SUMO_TAG_LANE) + " '" + laneID + "' doesn't exist");
417 }
418 }
419 return parsedLanes;
420}
421
422
423template<> std::string
424GNEAttributeCarrier::parseIDs(const std::vector<GNEEdge*>& ACs) {
425 // obtain ID's of edges and return their join
426 std::vector<std::string> edgeIDs;
427 for (const auto& i : ACs) {
428 edgeIDs.push_back(i->getID());
429 }
430 return joinToString(edgeIDs, " ");
431}
432
433
434template<> std::string
435GNEAttributeCarrier::parseIDs(const std::vector<GNELane*>& ACs) {
436 // obtain ID's of lanes and return their join
437 std::vector<std::string> laneIDs;
438 for (const auto& i : ACs) {
439 laneIDs.push_back(i->getID());
440 }
441 return joinToString(laneIDs, " ");
442}
443
444
445bool
446GNEAttributeCarrier::lanesConsecutives(const std::vector<GNELane*>& lanes) {
447 // we need at least two lanes
448 if (lanes.size() > 1) {
449 // now check that lanes are consecutive (not necessary connected)
450 int currentLane = 0;
451 while (currentLane < ((int)lanes.size() - 1)) {
452 int nextLane = -1;
453 // iterate over outgoing edges of destination junction of edge's lane
454 for (int i = 0; (i < (int)lanes.at(currentLane)->getParentEdge()->getToJunction()->getGNEOutgoingEdges().size()) && (nextLane == -1); i++) {
455 // iterate over lanes of outgoing edges of destination junction of edge's lane
456 for (int j = 0; (j < (int)lanes.at(currentLane)->getParentEdge()->getToJunction()->getGNEOutgoingEdges().at(i)->getLanes().size()) && (nextLane == -1); j++) {
457 // check if lane correspond to the next lane of "lanes"
458 if (lanes.at(currentLane)->getParentEdge()->getToJunction()->getGNEOutgoingEdges().at(i)->getLanes().at(j) == lanes.at(currentLane + 1)) {
459 nextLane = currentLane;
460 }
461 }
462 }
463 if (nextLane == -1) {
464 return false;
465 } else {
466 currentLane++;
467 }
468 }
469 return true;
470 } else {
471 return false;
472 }
473}
474
475
476template<> std::string
478 std::string result;
479 // Generate an string using the following structure: "key1=value1|key2=value2|...
480 for (const auto& parameter : getACParametersMap()) {
481 result += parameter.first + "=" + parameter.second + "|";
482 }
483 // remove the last "|"
484 if (!result.empty()) {
485 result.pop_back();
486 }
487 return result;
488}
489
490
491template<> std::vector<std::pair<std::string, std::string> >
493 std::vector<std::pair<std::string, std::string> > result;
494 // Generate a vector string using the following structure: "<key1,value1>, <key2, value2>,...
495 for (const auto& parameter : getACParametersMap()) {
496 result.push_back(std::make_pair(parameter.first, parameter.second));
497 }
498 return result;
499}
500
501
502void
503GNEAttributeCarrier::setACParameters(const std::string& parameters, GNEUndoList* undoList) {
504 // declare map
505 Parameterised::Map parametersMap;
506 // separate value in a vector of string using | as separator
507 StringTokenizer parametersTokenizer(parameters, "|", true);
508 // iterate over all values
509 while (parametersTokenizer.hasNext()) {
510 // obtain key and value and save it in myParameters
511 const std::vector<std::string> keyValue = StringTokenizer(parametersTokenizer.next(), "=", true).getVector();
512 if (keyValue.size() == 2) {
513 parametersMap[keyValue.front()] = keyValue.back();
514 }
515 }
516 // set setACParameters map
517 setACParameters(parametersMap, undoList);
518}
519
520
521void
522GNEAttributeCarrier::setACParameters(const std::vector<std::pair<std::string, std::string> >& parameters, GNEUndoList* undoList) {
523 // declare parametersMap
524 Parameterised::Map parametersMap;
525 // Generate an string using the following structure: "key1=value1|key2=value2|...
526 for (const auto& parameter : parameters) {
527 parametersMap[parameter.first] = parameter.second;
528 }
529 // set setACParameters map
530 setACParameters(parametersMap, undoList);
531}
532
533
534void
536 // declare result string
537 std::string paramsStr;
538 // Generate an string using the following structure: "key1=value1|key2=value2|...
539 for (const auto& parameter : parameters) {
540 paramsStr += parameter.first + "=" + parameter.second + "|";
541 }
542 // remove the last "|"
543 if (!paramsStr.empty()) {
544 paramsStr.pop_back();
545 }
546 // set parameters
547 setAttribute(GNE_ATTR_PARAMETERS, paramsStr, undoList);
548}
549
550
551void
552GNEAttributeCarrier::addACParameters(const std::string& key, const std::string& attribute, GNEUndoList* undoList) {
553 // get parametersMap
554 Parameterised::Map parametersMap = getACParametersMap();
555 // add (or update) attribute
556 parametersMap[key] = attribute;
557 // set attribute
558 setACParameters(parametersMap, undoList);
559}
560
561
562void
563GNEAttributeCarrier::removeACParametersKeys(const std::vector<std::string>& keepKeys, GNEUndoList* undoList) {
564 // declare parametersMap
565 Parameterised::Map newParametersMap;
566 // iterate over parameters map
567 for (const auto& parameter : getACParametersMap()) {
568 // copy to newParametersMap if key is in keepKeys
569 if (std::find(keepKeys.begin(), keepKeys.end(), parameter.first) != keepKeys.end()) {
570 newParametersMap.insert(parameter);
571 }
572 }
573 // set newParametersMap map
574 setACParameters(newParametersMap, undoList);
575}
576
577
578std::string
580 switch (key) {
581 // Crossings
584 return "No TLS";
585 // connections
586 case SUMO_ATTR_DIR: {
587 // special case for connection directions
588 std::string direction = getAttribute(key);
589 if (direction == "s") {
590 return "Straight (s)";
591 } else if (direction == "t") {
592 return "Turn (t))";
593 } else if (direction == "l") {
594 return "Left (l)";
595 } else if (direction == "r") {
596 return "Right (r)";
597 } else if (direction == "L") {
598 return "Partially left (L)";
599 } else if (direction == "R") {
600 return "Partially right (R)";
601 } else if (direction == "invalid") {
602 return "No direction (Invalid))";
603 } else {
604 return "undefined";
605 }
606 }
607 case SUMO_ATTR_STATE: {
608 // special case for connection states
609 std::string state = getAttribute(key);
610 if (state == "-") {
611 return "Dead end (-)";
612 } else if (state == "=") {
613 return "equal (=)";
614 } else if (state == "m") {
615 return "Minor link (m)";
616 } else if (state == "M") {
617 return "Major link (M)";
618 } else if (state == "O") {
619 return "TLS controller off (O)";
620 } else if (state == "o") {
621 return "TLS yellow flashing (o)";
622 } else if (state == "y") {
623 return "TLS yellow minor link (y)";
624 } else if (state == "Y") {
625 return "TLS yellow major link (Y)";
626 } else if (state == "r") {
627 return "TLS red (r)";
628 } else if (state == "g") {
629 return "TLS green minor (g)";
630 } else if (state == "G") {
631 return "TLS green major (G)";
632 } else if (state == "Z") {
633 return "Zipper (Z)";
634 } else {
635 return "undefined";
636 }
637 }
638 default:
639 return getAttribute(key);
640 }
641}
642
643
644std::string
648
649
650const std::string&
654
655
656FXIcon*
658 // define on first access
659 if (myTagProperties.size() == 0) {
661 }
662 // special case for vClass icons
665 } else {
667 }
668}
669
670
671bool
675
676
677const GNETagProperties&
681
682// ===========================================================================
683// static methods
684// ===========================================================================
685
686const GNETagProperties&
688 // define on first access
689 if (myTagProperties.size() == 0) {
691 }
692 // check that tag is defined
693 if (myTagProperties.count(tag) == 0) {
694 if (myMergedPlanTagProperties.count(tag) == 0) {
695 throw ProcessError(TLF("TagProperty for tag '%' not defined", toString(tag)));
696 } else {
697 return myMergedPlanTagProperties.at(tag);
698 }
699 } else {
700 return myTagProperties.at(tag);
701 }
702}
703
704
705const std::vector<GNETagProperties>
706GNEAttributeCarrier::getTagPropertiesByType(const int tagPropertyCategory, const bool mergeCommonPlans) {
707 std::vector<GNETagProperties> allowedTags;
708 // define on first access
709 if (myTagProperties.size() == 0) {
711 }
712 if (tagPropertyCategory & GNETagProperties::TagType::NETWORKELEMENT) {
713 // fill networkElements tags
714 for (const auto& tagProperty : myTagProperties) {
715 if (tagProperty.second.isNetworkElement()) {
716 allowedTags.push_back(tagProperty.second);
717 }
718 }
719 }
720 if (tagPropertyCategory & GNETagProperties::TagType::ADDITIONALELEMENT) {
721 // fill additional tags (only with pure additionals)
722 for (const auto& tagProperty : myTagProperties) {
723 if (tagProperty.second.isAdditionalPureElement()) {
724 allowedTags.push_back(tagProperty.second);
725 }
726 }
727 }
728 if (tagPropertyCategory & GNETagProperties::TagType::SHAPE) {
729 // fill shape tags
730 for (const auto& tagProperty : myTagProperties) {
731 if (tagProperty.second.isShapeElement()) {
732 allowedTags.push_back(tagProperty.second);
733 }
734 }
735 }
736 if (tagPropertyCategory & GNETagProperties::TagType::TAZELEMENT) {
737 // fill taz tags
738 for (const auto& tagProperty : myTagProperties) {
739 if (tagProperty.second.isTAZElement()) {
740 allowedTags.push_back(tagProperty.second);
741 }
742 }
743 }
744 if (tagPropertyCategory & GNETagProperties::TagType::WIRE) {
745 // fill wire tags
746 for (const auto& tagProperty : myTagProperties) {
747 if (tagProperty.second.isWireElement()) {
748 allowedTags.push_back(tagProperty.second);
749 }
750 }
751 }
752 if (tagPropertyCategory & GNETagProperties::TagType::DEMANDELEMENT) {
753 // fill demand tags
754 for (const auto& tagProperty : myTagProperties) {
755 if (tagProperty.second.isDemandElement()) {
756 if (!mergeCommonPlans || !tagProperty.second.isPlan()) {
757 allowedTags.push_back(tagProperty.second);
758 }
759 }
760 }
761 if (mergeCommonPlans) {
762 for (const auto& mergedPlanTagProperty : myMergedPlanTagProperties) {
763 allowedTags.push_back(mergedPlanTagProperty.second);
764 }
765 }
766 }
767 if (tagPropertyCategory & GNETagProperties::TagType::ROUTE) {
768 // fill route tags
769 for (const auto& tagProperty : myTagProperties) {
770 if (tagProperty.second.isRoute()) {
771 allowedTags.push_back(tagProperty.second);
772 }
773 }
774 }
775 if (tagPropertyCategory & GNETagProperties::TagType::VEHICLE) {
776 // fill vehicle tags
777 for (const auto& tagProperty : myTagProperties) {
778 if (tagProperty.second.isVehicle()) {
779 allowedTags.push_back(tagProperty.second);
780 }
781 }
782 }
783 if (tagPropertyCategory & GNETagProperties::TagType::VEHICLESTOP) {
784 // fill stop (and waypoints) tags
785 for (const auto& tagProperty : myTagProperties) {
786 if (tagProperty.second.isVehicleStop()) {
787 allowedTags.push_back(tagProperty.second);
788 }
789 }
790 }
791 if (tagPropertyCategory & GNETagProperties::TagType::PERSON) {
792 // fill person tags
793 for (const auto& tagProperty : myTagProperties) {
794 if (tagProperty.second.isPerson()) {
795 allowedTags.push_back(tagProperty.second);
796 }
797 }
798 }
799 if (tagPropertyCategory & GNETagProperties::TagType::PERSONPLAN) {
800 // fill person plan tags
801 for (const auto& tagProperty : myTagProperties) {
802 if (tagProperty.second.isPlanPerson()) {
803 allowedTags.push_back(tagProperty.second);
804 }
805 }
806 }
807 if (tagPropertyCategory & GNETagProperties::TagType::PERSONTRIP) {
808 if (mergeCommonPlans) {
809 allowedTags.push_back(myMergedPlanTagProperties.at(SUMO_TAG_PERSONTRIP));
810 } else {
811 // fill demand tags
812 for (const auto& tagProperty : myTagProperties) {
813 if (tagProperty.second.isPlanPersonTrip()) {
814 allowedTags.push_back(tagProperty.second);
815 }
816 }
817 }
818 }
819 if (tagPropertyCategory & GNETagProperties::TagType::WALK) {
820 if (mergeCommonPlans) {
821 allowedTags.push_back(myMergedPlanTagProperties.at(SUMO_TAG_WALK));
822 } else {
823 // fill demand tags
824 for (const auto& tagProperty : myTagProperties) {
825 if (tagProperty.second.isPlanWalk()) {
826 allowedTags.push_back(tagProperty.second);
827 }
828 }
829 }
830 }
831 if (tagPropertyCategory & GNETagProperties::TagType::RIDE) {
832 if (mergeCommonPlans) {
833 allowedTags.push_back(myMergedPlanTagProperties.at(SUMO_TAG_RIDE));
834 } else {
835 // fill demand tags
836 for (const auto& tagProperty : myTagProperties) {
837 if (tagProperty.second.isPlanRide()) {
838 allowedTags.push_back(tagProperty.second);
839 }
840 }
841 }
842 }
843 if (tagPropertyCategory & GNETagProperties::TagType::STOPPERSON) {
844 if (mergeCommonPlans) {
845 allowedTags.push_back(myMergedPlanTagProperties.at(GNE_TAG_STOPPERSON));
846 } else {
847 // fill demand tags
848 for (const auto& tagProperty : myTagProperties) {
849 if (tagProperty.second.isPlanStopPerson()) {
850 allowedTags.push_back(tagProperty.second);
851 }
852 }
853 }
854 }
855 if (tagPropertyCategory & GNETagProperties::TagType::GENERICDATA) {
856 // fill generic data tags
857 for (const auto& tagProperty : myTagProperties) {
858 if (tagProperty.second.isGenericData()) {
859 allowedTags.push_back(tagProperty.second);
860 }
861 }
862 }
863 if (tagPropertyCategory & GNETagProperties::TagType::MEANDATA) {
864 // fill generic data tags
865 for (const auto& tagProperty : myTagProperties) {
866 if (tagProperty.second.isMeanData()) {
867 allowedTags.push_back(tagProperty.second);
868 }
869 }
870 }
871 if (tagPropertyCategory & GNETagProperties::TagType::CONTAINER) {
872 // fill container tags
873 for (const auto& tagProperty : myTagProperties) {
874 if (tagProperty.second.isContainer()) {
875 allowedTags.push_back(tagProperty.second);
876 }
877 }
878 }
879 if (tagPropertyCategory & GNETagProperties::TagType::CONTAINERPLAN) {
880 // fill container plan tags
881 for (const auto& tagProperty : myTagProperties) {
882 if (tagProperty.second.isPlanContainer()) {
883 allowedTags.push_back(tagProperty.second);
884 }
885 }
886 }
887 if (tagPropertyCategory & GNETagProperties::TagType::TRANSPORT) {
888 if (mergeCommonPlans) {
889 allowedTags.push_back(myMergedPlanTagProperties.at(SUMO_TAG_TRANSPORT));
890 } else {
891 // fill demand tags
892 for (const auto& tagProperty : myTagProperties) {
893 if (tagProperty.second.isPlanTransport()) {
894 allowedTags.push_back(tagProperty.second);
895 }
896 }
897 }
898 }
899 if (tagPropertyCategory & GNETagProperties::TagType::TRANSHIP) {
900 if (mergeCommonPlans) {
901 allowedTags.push_back(myMergedPlanTagProperties.at(SUMO_TAG_TRANSHIP));
902 } else {
903 // fill demand tags
904 for (const auto& tagProperty : myTagProperties) {
905 if (tagProperty.second.isPlanTranship()) {
906 allowedTags.push_back(tagProperty.second);
907 }
908 }
909 }
910 }
911 if (tagPropertyCategory & GNETagProperties::TagType::STOPCONTAINER) {
912 if (mergeCommonPlans) {
913 allowedTags.push_back(myMergedPlanTagProperties.at(GNE_TAG_STOPCONTAINER));
914 } else {
915 // fill demand tags
916 for (const auto& tagProperty : myTagProperties) {
917 if (tagProperty.second.isPlanStopContainer()) {
918 allowedTags.push_back(tagProperty.second);
919 }
920 }
921 }
922 }
923 return allowedTags;
924}
925
926
927const std::vector<GNETagProperties>
929 std::vector<GNETagProperties> result;
930 // fill tags
931 for (const auto& tagProperty : myTagProperties) {
932 if ((mergingTag == SUMO_TAG_PERSONTRIP) && tagProperty.second.isPlanPerson()) {
933 result.push_back(tagProperty.second);
934 } else if ((mergingTag == SUMO_TAG_RIDE) && tagProperty.second.isPlanRide()) {
935 result.push_back(tagProperty.second);
936 } else if ((mergingTag == SUMO_TAG_WALK) && tagProperty.second.isPlanWalk()) {
937 result.push_back(tagProperty.second);
938 } else if ((mergingTag == GNE_TAG_STOPPERSON) && tagProperty.second.isPlanStopPerson()) {
939 result.push_back(tagProperty.second);
940 } else if ((mergingTag == SUMO_TAG_TRANSPORT) && tagProperty.second.isPlanTransport()) {
941 result.push_back(tagProperty.second);
942 } else if ((mergingTag == SUMO_TAG_TRANSHIP) && tagProperty.second.isPlanTranship()) {
943 result.push_back(tagProperty.second);
944 } else if ((mergingTag == GNE_TAG_STOPCONTAINER) && tagProperty.second.isPlanStopContainer()) {
945 result.push_back(tagProperty.second);
946 }
947 }
948 return result;
949}
950
951// ===========================================================================
952// private
953// ===========================================================================
954
955void
957 for (const auto& attrProperty : myTagProperty) {
958 if (attrProperty.hasDefaultValue()) {
959 setAttribute(attrProperty.getAttr(), attrProperty.getDefaultValue());
960 }
961 }
962}
963
964
965void
966GNEAttributeCarrier::toggleAttribute(SumoXMLAttr /*key*/, const bool /*value*/) {
967 throw ProcessError(TL("Nothing to toggle, implement in Children"));
968}
969
970
971std::string
973 switch (key) {
975 if (mySelected) {
976 return True;
977 } else {
978 return False;
979 }
981 if (myDrawInFront) {
982 return True;
983 } else {
984 return False;
985 }
986 default:
987 throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
988 }
989}
990
991
992void
993GNEAttributeCarrier::setCommonAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList) {
994 switch (key) {
996 GNEChange_Attribute::changeAttribute(this, key, value, undoList);
997 break;
998 default:
999 throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
1000 }
1001}
1002
1003
1004bool
1005GNEAttributeCarrier::isCommonValid(SumoXMLAttr key, const std::string& value) {
1006 switch (key) {
1007 case GNE_ATTR_SELECTED:
1008 return canParse<bool>(value);
1009 default:
1010 throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
1011 }
1012}
1013
1014
1015void
1017 switch (key) {
1018 case GNE_ATTR_SELECTED:
1019 if (parse<bool>(value)) {
1021 } else {
1023 }
1024 break;
1025 default:
1026 throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
1027 }
1028}
1029
1030
1031void
1033 // fill all groups of ACs
1040 // demand
1045 // persons
1051 // containers
1056 //data
1058 // add common attributes to all elements
1059 for (auto& tagProperty : myTagProperties) {
1060 fillCommonAttributes(tagProperty.second);
1061 }
1062 // update max number of editable attributes
1064 // check integrity of all Tags (function checkTagIntegrity() throws an exception if there is an inconsistency)
1065 for (const auto& tagProperty : myTagProperties) {
1066 tagProperty.second.checkTagIntegrity();
1067 }
1068}
1069
1070
1071void
1073 // declare empty GNEAttributeProperties
1074 GNEAttributeProperties attrProperty;
1075
1076 // obtain Node Types except SumoXMLNodeType::DEAD_END_DEPRECATED
1077 const auto& neteditOptions = OptionsCont::getOptions();
1078 std::vector<std::string> nodeTypes = SUMOXMLDefinitions::NodeTypes.getStrings();
1079 nodeTypes.erase(std::find(nodeTypes.begin(), nodeTypes.end(), toString(SumoXMLNodeType::DEAD_END_DEPRECATED)));
1080 nodeTypes.erase(std::find(nodeTypes.begin(), nodeTypes.end(), toString(SumoXMLNodeType::DEAD_END)));
1081 nodeTypes.erase(std::find(nodeTypes.begin(), nodeTypes.end(), toString(SumoXMLNodeType::INTERNAL)));
1082 // obtain TLTypes (note: avoid insert all TLTypes because some of them are experimental and not documented)
1083 std::vector<std::string> TLTypes;
1084 TLTypes.push_back(toString(TrafficLightType::STATIC));
1085 TLTypes.push_back(toString(TrafficLightType::ACTUATED));
1086 TLTypes.push_back(toString(TrafficLightType::DELAYBASED));
1087 TLTypes.push_back(toString(TrafficLightType::NEMA));
1088 // fill networkElement ACs
1089 SumoXMLTag currentTag = SUMO_TAG_JUNCTION;
1090 {
1091 // set values of tag
1092 myTagProperties[currentTag] = GNETagProperties(currentTag,
1097 GUIIcon::JUNCTION, currentTag, TL("Junction"));
1098 // set values of attributes
1099 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1101 TL("The id of the node"));
1102 myTagProperties[currentTag].addAttribute(attrProperty);
1103
1105 GNEAttributeProperties::STRING | GNEAttributeProperties::UNIQUE | GNEAttributeProperties::POSITION | GNEAttributeProperties::UPDATEGEOMETRY, // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
1106 TL("The x-y-z position of the node on the plane in meters"));
1107 myTagProperties[currentTag].addAttribute(attrProperty);
1108
1111 TL("An optional type for the node"));
1112 attrProperty.setDiscreteValues(nodeTypes);
1113 myTagProperties[currentTag].addAttribute(attrProperty);
1114
1117 TL("A custom shape for that node"));
1118 myTagProperties[currentTag].addAttribute(attrProperty);
1119
1122 TL("Optional turning radius (for all corners) for that node in meters"),
1123 "1.5");
1124 myTagProperties[currentTag].addAttribute(attrProperty);
1125
1128 TL("Whether the junction-blocking-heuristic should be activated at this node"),
1129 "1");
1130 myTagProperties[currentTag].addAttribute(attrProperty);
1131
1134 TL("How to compute right of way rules at this node"),
1137 myTagProperties[currentTag].addAttribute(attrProperty);
1138
1141 TL("Whether this junction is at the fringe of the network"),
1144 myTagProperties[currentTag].addAttribute(attrProperty);
1145
1148 TL("Optional name of junction"));
1149 myTagProperties[currentTag].addAttribute(attrProperty);
1150
1153 TL("An optional type for the traffic light algorithm"));
1154 attrProperty.setDiscreteValues(TLTypes);
1155 myTagProperties[currentTag].addAttribute(attrProperty);
1156
1159 TL("An optional layout for the traffic light plan"));
1164 myTagProperties[currentTag].addAttribute(attrProperty);
1165
1168 TL("An optional id for the traffic light program"));
1169 myTagProperties[currentTag].addAttribute(attrProperty);
1170
1173 TL("Whether this junction is part of a roundabout"), "false");
1174 myTagProperties[currentTag].addAttribute(attrProperty);
1175 }
1176 currentTag = SUMO_TAG_TYPE;
1177 {
1178 // set values of tag
1179 myTagProperties[currentTag] = GNETagProperties(currentTag,
1184 GUIIcon::EDGETYPE, currentTag, TL("EdgeType"));
1185 // set values of attributes
1186 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1188 TL("The id of the edge"));
1189 myTagProperties[currentTag].addAttribute(attrProperty);
1190
1193 TL("The number of lanes of the edge"),
1194 toString(neteditOptions.getInt("default.lanenumber")));
1195 myTagProperties[currentTag].addAttribute(attrProperty);
1196
1199 TL("The maximum speed allowed on the edge in m/s"),
1200 toString(neteditOptions.getFloat("default.speed")));
1201 myTagProperties[currentTag].addAttribute(attrProperty);
1202
1205 TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1206 "all");
1207 myTagProperties[currentTag].addAttribute(attrProperty);
1208
1211 TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1212 myTagProperties[currentTag].addAttribute(attrProperty);
1213
1216 TL("The spreadType defines how to compute the lane geometry from the edge geometry (used for visualization)"),
1219 myTagProperties[currentTag].addAttribute(attrProperty);
1220
1223 TL("The priority of the edge"),
1224 toString(neteditOptions.getInt("default.priority")));
1225 myTagProperties[currentTag].addAttribute(attrProperty);
1226
1229 TL("Lane width for all lanes of this edge in meters (used for visualization)"),
1230 "default");
1231 myTagProperties[currentTag].addAttribute(attrProperty);
1232
1235 TL("The width of the sidewalk that should be added as an additional lane"),
1236 "default");
1237 myTagProperties[currentTag].addAttribute(attrProperty);
1238
1241 TL("The width of the bike lane that should be added as an additional lane"),
1242 "default");
1243 myTagProperties[currentTag].addAttribute(attrProperty);
1244 }
1245 currentTag = SUMO_TAG_LANETYPE;
1246 {
1247 // set values of tag
1248 myTagProperties[currentTag] = GNETagProperties(currentTag,
1253 GUIIcon::LANETYPE, currentTag, TL("LaneType"));
1254 // set values of attributes
1257 TL("The maximum speed allowed on the lane in m/s"),
1258 toString(neteditOptions.getFloat("default.speed")));
1259 myTagProperties[currentTag].addAttribute(attrProperty);
1260
1263 TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1264 "all");
1265 myTagProperties[currentTag].addAttribute(attrProperty);
1266
1269 TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1270 myTagProperties[currentTag].addAttribute(attrProperty);
1271
1274 TL("Lane width for all lanes of this type in meters (used for visualization)"),
1275 "default");
1276 myTagProperties[currentTag].addAttribute(attrProperty);
1277 }
1278 currentTag = SUMO_TAG_EDGE;
1279 {
1280 // set values of tag
1281 myTagProperties[currentTag] = GNETagProperties(currentTag,
1286 GUIIcon::EDGE, currentTag, TL("Edge"));
1287 // set values of attributes
1288 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1290 TL("Edge ID"));
1291 myTagProperties[currentTag].addAttribute(attrProperty);
1292
1295 TL("The name of a node within the nodes-file the edge shall start at"));
1296 myTagProperties[currentTag].addAttribute(attrProperty);
1297
1298 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
1300 TL("The name of a node within the nodes-file the edge shall end at"));
1301 myTagProperties[currentTag].addAttribute(attrProperty);
1302
1305 TL("The maximum speed allowed on the edge in m/s"),
1306 toString(neteditOptions.getFloat("default.speed")));
1307 myTagProperties[currentTag].addAttribute(attrProperty);
1308
1311 TL("The priority of the edge"),
1312 toString(neteditOptions.getInt("default.priority")));
1313 myTagProperties[currentTag].addAttribute(attrProperty);
1314
1317 TL("The number of lanes of the edge"),
1318 toString(neteditOptions.getInt("default.lanenumber")));
1319 myTagProperties[currentTag].addAttribute(attrProperty);
1320
1323 TL("The name of a type within the SUMO edge type file"));
1324 myTagProperties[currentTag].addAttribute(attrProperty);
1325
1328 TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1329 "all");
1330 myTagProperties[currentTag].addAttribute(attrProperty);
1331
1334 TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1335 myTagProperties[currentTag].addAttribute(attrProperty);
1336
1339 TL("If the shape is given it should start and end with the positions of the from-node and to-node"));
1340 myTagProperties[currentTag].addAttribute(attrProperty);
1341
1344 TL("The length of the edge in meter"));
1345 myTagProperties[currentTag].addAttribute(attrProperty);
1346
1349 TL("The spreadType defines how to compute the lane geometry from the edge geometry (used for visualization)"),
1352 myTagProperties[currentTag].addAttribute(attrProperty);
1353
1356 TL("street name (does not need to be unique, used for visualization)"));
1357 myTagProperties[currentTag].addAttribute(attrProperty);
1358
1361 TL("Lane width for all lanes of this edge in meters (used for visualization)"),
1362 "-1");
1363 myTagProperties[currentTag].addAttribute(attrProperty);
1364
1367 TL("Move the stop line back from the intersection by the given amount"),
1368 "0.00");
1369 myTagProperties[currentTag].addAttribute(attrProperty);
1370
1373 TL("Custom position in which shape start (by default position of junction from)"));
1374 myTagProperties[currentTag].addAttribute(attrProperty);
1375
1378 TL("Custom position in which shape end (by default position of junction from)"));
1379 myTagProperties[currentTag].addAttribute(attrProperty);
1380
1382 GNEAttributeProperties::BOOL | GNEAttributeProperties::DEFAULTVALUE | GNEAttributeProperties::UNIQUE, // virtual attribute to check of this edge is part of a bidirectional railway (cannot be edited)
1383 TL("Show if edge is bidirectional"),
1384 "0");
1385 myTagProperties[currentTag].addAttribute(attrProperty);
1386
1389 TL("Distance"),
1390 "0.00");
1391 myTagProperties[currentTag].addAttribute(attrProperty);
1392
1395 TL("The stop offset as positive value in meters"),
1396 "0.00");
1397 myTagProperties[currentTag].addAttribute(attrProperty);
1398
1401 TL("Specifies, for which vehicle classes the stopOffset does NOT apply."));
1402 attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1403 myTagProperties[currentTag].addAttribute(attrProperty);
1404
1407 TL("Whether this edge is part of a roundabout"), "false");
1408 myTagProperties[currentTag].addAttribute(attrProperty);
1409 }
1410 currentTag = SUMO_TAG_LANE;
1411 {
1412 // set values of tag
1413 myTagProperties[currentTag] = GNETagProperties(currentTag,
1418 GUIIcon::LANE, currentTag, TL("Lane"));
1419 // set values of attributes
1420 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1422 TL("Lane ID (Automatic, non editable)"));
1423 myTagProperties[currentTag].addAttribute(attrProperty);
1424
1427 TL("The enumeration index of the lane (0 is the rightmost lane, <NUMBER_LANES>-1 is the leftmost one)"));
1428 myTagProperties[currentTag].addAttribute(attrProperty);
1429
1432 TL("Speed in meters per second"),
1433 "13.89");
1434 myTagProperties[currentTag].addAttribute(attrProperty);
1435
1438 TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1439 "all");
1440 myTagProperties[currentTag].addAttribute(attrProperty);
1441
1444 TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1445 myTagProperties[currentTag].addAttribute(attrProperty);
1446
1449 TL("Width in meters (used for visualization)"),
1450 "-1");
1451 myTagProperties[currentTag].addAttribute(attrProperty);
1452
1455 TL("Move the stop line back from the intersection by the given amount"),
1456 "0.00");
1457 myTagProperties[currentTag].addAttribute(attrProperty);
1458
1461 TL("Enable or disable lane as acceleration lane"),
1462 "0");
1463 myTagProperties[currentTag].addAttribute(attrProperty);
1464
1467 TL("If the shape is given it overrides the computation based on edge shape"));
1468 myTagProperties[currentTag].addAttribute(attrProperty);
1469
1472 TL("If given, this defines the opposite direction lane"));
1473 myTagProperties[currentTag].addAttribute(attrProperty);
1474
1477 TL("Permit changing left only for to the given vehicle classes"),
1478 "all");
1479 attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1480 myTagProperties[currentTag].addAttribute(attrProperty);
1481
1484 TL("Permit changing right only for to the given vehicle classes"),
1485 "all");
1486 attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1487 myTagProperties[currentTag].addAttribute(attrProperty);
1488
1491 TL("Lane type description (optional)"));
1492 myTagProperties[currentTag].addAttribute(attrProperty);
1493
1496 TL("The stop offset as positive value in meters"),
1497 "0.00");
1498 myTagProperties[currentTag].addAttribute(attrProperty);
1499
1502 TL("Specifies, for which vehicle classes the stopOffset does NOT apply."));
1503 attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1504 myTagProperties[currentTag].addAttribute(attrProperty);
1505 }
1506 currentTag = SUMO_TAG_CROSSING;
1507 {
1508 // set values of tag
1509 myTagProperties[currentTag] = GNETagProperties(currentTag,
1514 GUIIcon::CROSSING, currentTag, TL("Crossing"));
1515 // set values of attributes
1516 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1518 TL("Crossing ID"));
1519 myTagProperties[currentTag].addAttribute(attrProperty);
1520
1523 TL("The (road) edges which are crossed"));
1524 myTagProperties[currentTag].addAttribute(attrProperty);
1525
1528 TL("Whether the pedestrians have priority over the vehicles (automatically set to true at tls-controlled intersections)"),
1529 "0");
1530 myTagProperties[currentTag].addAttribute(attrProperty);
1531
1534 TL("The width of the crossings"),
1535 toString(OptionsCont::getOptions().getFloat("default.crossing-width")));
1536 myTagProperties[currentTag].addAttribute(attrProperty);
1537
1540 TL("sets the tls-index for this crossing"),
1541 "-1");
1542 myTagProperties[currentTag].addAttribute(attrProperty);
1543
1546 TL("sets the opposite-direction tls-index for this crossing"),
1547 "-1");
1548 myTagProperties[currentTag].addAttribute(attrProperty);
1549
1552 TL("Overrides default shape of pedestrian crossing"));
1553 myTagProperties[currentTag].addAttribute(attrProperty);
1554 }
1555 currentTag = SUMO_TAG_WALKINGAREA;
1556 {
1557 // set values of tag
1558 myTagProperties[currentTag] = GNETagProperties(currentTag,
1563 GUIIcon::WALKINGAREA, currentTag, TL("WalkingArea"));
1564 // set values of attributes
1565 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1567 TL("Walking Area ID"));
1568 myTagProperties[currentTag].addAttribute(attrProperty);
1569
1572 TL("The width of the WalkingArea"),
1573 toString(OptionsCont::getOptions().getFloat("default.sidewalk-width")));
1574 myTagProperties[currentTag].addAttribute(attrProperty);
1575
1578 TL("The length of the WalkingArea in meter"));
1579 myTagProperties[currentTag].addAttribute(attrProperty);
1580
1583 TL("Overrides default shape of pedestrian sidewalk"));
1584 myTagProperties[currentTag].addAttribute(attrProperty);
1585
1586 }
1587 currentTag = SUMO_TAG_CONNECTION;
1588 {
1589 // set values of tag
1590 myTagProperties[currentTag] = GNETagProperties(currentTag,
1595 GUIIcon::CONNECTION, currentTag, TL("Connection"));
1596 // set values of attributes
1599 TL("The ID of the edge the vehicles leave"));
1600 myTagProperties[currentTag].addAttribute(attrProperty);
1601
1602 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
1604 TL("The ID of the edge the vehicles may reach when leaving 'from'"));
1605 myTagProperties[currentTag].addAttribute(attrProperty);
1606
1609 TL("the lane index of the incoming lane (numbers starting with 0)"));
1610 myTagProperties[currentTag].addAttribute(attrProperty);
1611
1614 TL("the lane index of the outgoing lane (numbers starting with 0)"));
1615 myTagProperties[currentTag].addAttribute(attrProperty);
1616
1619 TL("if set, vehicles which pass this (lane-2-lane) connection) will not wait"),
1620 "0");
1621 myTagProperties[currentTag].addAttribute(attrProperty);
1622
1625 TL("if set to false, vehicles which pass this (lane-2-lane) connection) will not worry about blocking the intersection"),
1626 "0");
1627 myTagProperties[currentTag].addAttribute(attrProperty);
1628
1631 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"),
1633 myTagProperties[currentTag].addAttribute(attrProperty);
1634
1637 TL("If set to true, This connection will not be TLS-controlled despite its node being controlled"),
1638 "0");
1639 myTagProperties[currentTag].addAttribute(attrProperty);
1640
1643 TL("Vision distance between vehicles"),
1645 myTagProperties[currentTag].addAttribute(attrProperty);
1646
1649 TL("sets index of this connection within the controlling traffic light"),
1650 "-1");
1651 myTagProperties[currentTag].addAttribute(attrProperty);
1652
1655 TL("sets index for the internal junction of this connection within the controlling traffic light"),
1656 "-1");
1657 myTagProperties[currentTag].addAttribute(attrProperty);
1658
1661 TL("Explicitly allows the given vehicle classes (not given will be not allowed)"),
1662 "all");
1663 myTagProperties[currentTag].addAttribute(attrProperty);
1664
1667 TL("Explicitly disallows the given vehicle classes (not given will be allowed)"));
1668 myTagProperties[currentTag].addAttribute(attrProperty);
1669
1672 TL("sets custom speed limit for the connection"),
1674 myTagProperties[currentTag].addAttribute(attrProperty);
1675
1678 TL("sets custom length for the connection"),
1680 myTagProperties[currentTag].addAttribute(attrProperty);
1681
1684 TL("sets custom shape for the connection"));
1685 myTagProperties[currentTag].addAttribute(attrProperty);
1686
1689 TL("Permit changing left only for to the given vehicle classes"),
1690 "all");
1691 attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1692 myTagProperties[currentTag].addAttribute(attrProperty);
1693
1696 TL("Permit changing right only for to the given vehicle classes"),
1697 "all");
1698 attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
1699 myTagProperties[currentTag].addAttribute(attrProperty);
1700
1703 TL("if set to true, vehicles will make a turn in 2 steps"),
1704 "0");
1705 myTagProperties[currentTag].addAttribute(attrProperty);
1706
1709 TL("set a custom edge type (for applying vClass-specific speed restrictions)"));
1710 myTagProperties[currentTag].addAttribute(attrProperty);
1711
1712
1715 TL("turning direction for this connection (computed)"));
1716 myTagProperties[currentTag].addAttribute(attrProperty);
1717
1720 TL("link state for this connection (computed)"));
1721 myTagProperties[currentTag].addAttribute(attrProperty);
1722 }
1723 currentTag = GNE_TAG_INTERNAL_LANE;
1724 {
1725 // set values of tag
1726 myTagProperties[currentTag] = GNETagProperties(currentTag,
1731 GUIIcon::JUNCTION, currentTag, TL("InternalLanes"));
1732 // internal lanes does't have attributes
1733 }
1734}
1735
1736
1737void
1739 // declare empty GNEAttributeProperties
1740 GNEAttributeProperties attrProperty;
1741
1742 // fill additional elements
1743 SumoXMLTag currentTag = SUMO_TAG_BUS_STOP;
1744 {
1745 // set values of tag
1746 myTagProperties[currentTag] = GNETagProperties(currentTag,
1751 GUIIcon::BUSSTOP, currentTag, TL("BusStop"),
1752 {}, FXRGBA(240, 255, 205, 255));
1753 // set values of attributes
1754 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1756 TL("The id of bus stop"));
1757 myTagProperties[currentTag].addAttribute(attrProperty);
1758
1761 TL("The name of the lane the bus stop shall be located at"));
1762 myTagProperties[currentTag].addAttribute(attrProperty);
1763
1766 TL("The begin position on the lane (the lower position on the lane) in meters"));
1767
1768 myTagProperties[currentTag].addAttribute(attrProperty);
1771 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"));
1772 myTagProperties[currentTag].addAttribute(attrProperty);
1773
1776 TL("Name of busStop"));
1777 myTagProperties[currentTag].addAttribute(attrProperty);
1778
1781 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1782 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1") + std::string("\n") +
1783 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1784 "0");
1785 myTagProperties[currentTag].addAttribute(attrProperty);
1786
1789 TL("Meant to be the names of the bus lines that stop at this bus stop. This is only used for visualization purposes"));
1790 myTagProperties[currentTag].addAttribute(attrProperty);
1791
1794 TL("Larger numbers of persons trying to enter will create an upstream jam on the sidewalk"),
1795 "6");
1796 myTagProperties[currentTag].addAttribute(attrProperty);
1797
1800 TL("Optional space definition for vehicles that park at this stop"),
1801 "0.00");
1802 myTagProperties[currentTag].addAttribute(attrProperty);
1803
1806 TL("The RGBA color with which the busStop shall be displayed"));
1807 myTagProperties[currentTag].addAttribute(attrProperty);
1808
1809 }
1810 currentTag = SUMO_TAG_TRAIN_STOP;
1811 {
1812 // set values of tag
1813 myTagProperties[currentTag] = GNETagProperties(currentTag,
1818 GUIIcon::TRAINSTOP, currentTag, TL("TrainStop"),
1819 {}, FXRGBA(240, 255, 205, 255));
1820 // set values of attributes
1821 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1823 TL("The id of train stop"));
1824 myTagProperties[currentTag].addAttribute(attrProperty);
1825
1828 TL("The name of the lane the train stop shall be located at"));
1829 myTagProperties[currentTag].addAttribute(attrProperty);
1830
1833 TL("The begin position on the lane (the lower position on the lane) in meters"));
1834
1835 myTagProperties[currentTag].addAttribute(attrProperty);
1838 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"));
1839 myTagProperties[currentTag].addAttribute(attrProperty);
1840
1843 TL("Name of trainStop"));
1844 myTagProperties[currentTag].addAttribute(attrProperty);
1845
1848 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1849 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1850 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1851 "0");
1852 myTagProperties[currentTag].addAttribute(attrProperty);
1853
1856 TL("Meant to be the names of the train lines that stop at this train stop. This is only used for visualization purposes"));
1857 myTagProperties[currentTag].addAttribute(attrProperty);
1858
1861 TL("Larger numbers of persons trying to enter will create an upstream jam on the sidewalk"),
1862 "6");
1863 myTagProperties[currentTag].addAttribute(attrProperty);
1864
1867 TL("Optional space definition for vehicles that park at this stop"),
1868 "0.00");
1869 myTagProperties[currentTag].addAttribute(attrProperty);
1870
1873 TL("The RGBA color with which the trainStop shall be displayed"));
1874 myTagProperties[currentTag].addAttribute(attrProperty);
1875
1876 }
1877 currentTag = SUMO_TAG_ACCESS;
1878 {
1879 // set values of tag
1880 myTagProperties[currentTag] = GNETagProperties(currentTag,
1885 GUIIcon::ACCESS, currentTag, TL("Access"),
1886 {SUMO_TAG_BUS_STOP, SUMO_TAG_TRAIN_STOP}, FXRGBA(240, 255, 205, 255));
1887 // set values of attributes
1890 TL("The name of the lane the stop access shall be located at"));
1891 myTagProperties[currentTag].addAttribute(attrProperty);
1892
1895 TL("The position on the lane (the lower position on the lane) in meters"),
1896 "0.00");
1897 myTagProperties[currentTag].addAttribute(attrProperty);
1898
1901 TL("The walking length of the access in meters"),
1902 "-1.00");
1903 myTagProperties[currentTag].addAttribute(attrProperty);
1904
1907 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1908 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1909 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1910 "0");
1911 myTagProperties[currentTag].addAttribute(attrProperty);
1912
1913 }
1914 currentTag = SUMO_TAG_CONTAINER_STOP;
1915 {
1916 // set values of tag
1917 myTagProperties[currentTag] = GNETagProperties(currentTag,
1922 GUIIcon::CONTAINERSTOP, currentTag, TL("ContainerStop"),
1923 {}, FXRGBA(240, 255, 205, 255));
1924 // set values of attributes
1925 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1927 TL("The id of container stop"));
1928 myTagProperties[currentTag].addAttribute(attrProperty);
1929
1932 TL("The name of the lane the container stop shall be located at"));
1933 myTagProperties[currentTag].addAttribute(attrProperty);
1934
1937 TL("The begin position on the lane (the lower position on the lane) in meters"));
1938 myTagProperties[currentTag].addAttribute(attrProperty);
1939
1942 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"));
1943 myTagProperties[currentTag].addAttribute(attrProperty);
1944
1947 TL("Name of containerStop"));
1948 myTagProperties[currentTag].addAttribute(attrProperty);
1949
1952 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
1953 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
1954 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
1955 "0");
1956 myTagProperties[currentTag].addAttribute(attrProperty);
1957
1960 TL("meant to be the names of the bus lines that stop at this container stop. This is only used for visualization purposes"));
1961 myTagProperties[currentTag].addAttribute(attrProperty);
1962
1965 TL("Larger numbers of container trying to enter will create an upstream jam on the sidewalk"),
1966 "6");
1967 myTagProperties[currentTag].addAttribute(attrProperty);
1968
1971 TL("Optional space definition for vehicles that park at this stop"),
1972 "0.00");
1973 myTagProperties[currentTag].addAttribute(attrProperty);
1974
1977 TL("The RGBA color with which the containerStop shall be displayed"));
1978 myTagProperties[currentTag].addAttribute(attrProperty);
1979 }
1980 currentTag = SUMO_TAG_CHARGING_STATION;
1981 {
1982 // set values of tag
1983 myTagProperties[currentTag] = GNETagProperties(currentTag,
1988 GUIIcon::CHARGINGSTATION, currentTag, TL("ChargingStation"),
1989 {}, FXRGBA(240, 255, 205, 255));
1990 // set values of attributes
1991 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
1993 TL("The id of charging station"));
1994 myTagProperties[currentTag].addAttribute(attrProperty);
1995
1998 TL("Lane of the charging station location"));
1999 myTagProperties[currentTag].addAttribute(attrProperty);
2000
2003 TL("Begin position in the specified lane"));
2004 myTagProperties[currentTag].addAttribute(attrProperty);
2005
2008 TL("End position in the specified lane"));
2009 myTagProperties[currentTag].addAttribute(attrProperty);
2010
2013 TL("Name of chargingStation"));
2014 myTagProperties[currentTag].addAttribute(attrProperty);
2015
2018 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2019 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2020 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2021 "0");
2022 myTagProperties[currentTag].addAttribute(attrProperty);
2023
2026 TL("Charging power in W"),
2027 "22000.00");
2028 myTagProperties[currentTag].addAttribute(attrProperty);
2029
2032 TL("Charging efficiency [0,1]"),
2033 "0.95");
2034 attrProperty.setRange(0, 1);
2035 myTagProperties[currentTag].addAttribute(attrProperty);
2036
2039 TL("Enable or disable charge in transit, i.e. vehicle must or must not to stop for charging"),
2040 "0");
2041 myTagProperties[currentTag].addAttribute(attrProperty);
2042
2045 TL("Time delay after the vehicles has reached / stopped on the charging station, before the energy transfer (charging) begins"),
2046 "0.00");
2047 myTagProperties[currentTag].addAttribute(attrProperty);
2048
2051 TL("Battery charging type"),
2052 "normal");
2053 attrProperty.setDiscreteValues({"normal", "battery-exchange", "fuel"});
2054 myTagProperties[currentTag].addAttribute(attrProperty);
2055
2058 TL("Waiting time before start charging"),
2059 "900.00");
2060 myTagProperties[currentTag].addAttribute(attrProperty);
2061
2064 TL("Parking area the charging station is located"),
2065 "");
2066 myTagProperties[currentTag].addAttribute(attrProperty);
2067 }
2068 currentTag = SUMO_TAG_PARKING_AREA;
2069 {
2070 // set values of tag
2071 myTagProperties[currentTag] = GNETagProperties(currentTag,
2076 GUIIcon::PARKINGAREA, currentTag, TL("ParkingArea"),
2077 {}, FXRGBA(240, 255, 205, 255));
2078 // set values of attributes
2079 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2081 TL("The id of ParkingArea"));
2082 myTagProperties[currentTag].addAttribute(attrProperty);
2083
2086 TL("The name of the lane the Parking Area shall be located at"));
2087 myTagProperties[currentTag].addAttribute(attrProperty);
2088
2091 TL("The begin position on the lane (the lower position on the lane) in meters"));
2092 myTagProperties[currentTag].addAttribute(attrProperty);
2093
2096 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"));
2097 myTagProperties[currentTag].addAttribute(attrProperty);
2098
2101 TL("Lane position in that vehicle must depart when leaves parkingArea"));
2102 myTagProperties[currentTag].addAttribute(attrProperty);
2103
2106 TL("Name of parkingArea"));
2107 myTagProperties[currentTag].addAttribute(attrProperty);
2108
2111 TL("Accepted badges to access this parkingArea"));
2112 myTagProperties[currentTag].addAttribute(attrProperty);
2113
2116 TL(" The number of parking spaces for road-side parking"),
2117 "0");
2118 myTagProperties[currentTag].addAttribute(attrProperty);
2119
2122 TL("If set, vehicles will park on the road lane and thereby reducing capacity"),
2123 "0");
2124 myTagProperties[currentTag].addAttribute(attrProperty);
2125
2128 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2129 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2130 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2131 "0");
2132 myTagProperties[currentTag].addAttribute(attrProperty);
2133
2136 TL("The width of the road-side parking spaces"),
2138 myTagProperties[currentTag].addAttribute(attrProperty);
2139
2142 TL("The length of the road-side parking spaces. By default (endPos - startPos) / roadsideCapacity"),
2143 "0.00");
2144 myTagProperties[currentTag].addAttribute(attrProperty);
2145
2148 TL("The angle of the road-side parking spaces relative to the lane angle, positive means clockwise"),
2149 "0.00");
2150 myTagProperties[currentTag].addAttribute(attrProperty);
2151
2154 TL("Enable or disable lefthand position"),
2155 "0");
2156 myTagProperties[currentTag].addAttribute(attrProperty);
2157
2158 }
2159 currentTag = SUMO_TAG_PARKING_SPACE;
2160 {
2161 // set values of tag
2162 myTagProperties[currentTag] = GNETagProperties(currentTag,
2167 GUIIcon::PARKINGSPACE, currentTag, TL("ParkingSpace"),
2168 {SUMO_TAG_PARKING_AREA}, FXRGBA(240, 255, 205, 255));
2169 // set values of attributes
2171 GNEAttributeProperties::STRING | GNEAttributeProperties::UNIQUE | GNEAttributeProperties::POSITION | GNEAttributeProperties::UPDATEGEOMETRY, // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2172 TL("The x-y-z position of the node on the plane in meters"));
2173 myTagProperties[currentTag].addAttribute(attrProperty);
2174
2177 TL("Name of parking space"));
2178 myTagProperties[currentTag].addAttribute(attrProperty);
2179
2182 TL("The width of the road-side parking spaces"));
2183 myTagProperties[currentTag].addAttribute(attrProperty);
2184
2187 TL("The length of the road-side parking spaces"));
2188 myTagProperties[currentTag].addAttribute(attrProperty);
2189
2192 TL("The angle of the road-side parking spaces relative to the lane angle, positive means clockwise"));
2193 myTagProperties[currentTag].addAttribute(attrProperty);
2194
2197 TL("The slope of the road-side parking spaces"),
2198 "0.00");
2199 myTagProperties[currentTag].addAttribute(attrProperty);
2200
2201 }
2202 currentTag = SUMO_TAG_INDUCTION_LOOP;
2203 {
2204 // set values of tag
2205 myTagProperties[currentTag] = GNETagProperties(currentTag,
2210 GUIIcon::E1, currentTag, TL("E1 InductionLoop"),
2211 {}, FXRGBA(210, 233, 255, 255));
2212 // set values of attributes
2213 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2215 TL("The id of E1"));
2216 myTagProperties[currentTag].addAttribute(attrProperty);
2217
2220 TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2221 myTagProperties[currentTag].addAttribute(attrProperty);
2222
2225 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"));
2226 myTagProperties[currentTag].addAttribute(attrProperty);
2227
2230 TL("The aggregation period the values the detector collects shall be summed up"),
2231 "300.00");
2232 myTagProperties[currentTag].addAttribute(attrProperty);
2233
2236 TL("Name of induction loop"));
2237 myTagProperties[currentTag].addAttribute(attrProperty);
2238
2241 TL("The path to the output file"));
2242 myTagProperties[currentTag].addAttribute(attrProperty);
2243
2246 TL("Space separated list of vehicle type ids to consider"));
2247 myTagProperties[currentTag].addAttribute(attrProperty);
2248
2251 TL("List of edge ids that must all be part of the future route of the vehicle to qualify for detection"));
2252 myTagProperties[currentTag].addAttribute(attrProperty);
2253
2256 TL("Detect persons instead of vehicles (pedestrians or passengers)"),
2258 attrProperty.setDiscreteValues(SUMOXMLDefinitions::PersonModeValues.getStrings());
2259 myTagProperties[currentTag].addAttribute(attrProperty);
2260
2263 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2264 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2265 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2266 "0");
2267 myTagProperties[currentTag].addAttribute(attrProperty);
2268 }
2269 currentTag = SUMO_TAG_LANE_AREA_DETECTOR;
2270 {
2271 // set values of tag
2272 myTagProperties[currentTag] = GNETagProperties(currentTag,
2277 GUIIcon::E2, currentTag, TL("E2 LaneAreaDetector"),
2278 {}, FXRGBA(210, 233, 255, 255));
2279 // set values of attributes
2280 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2282 TL("The id of E2"));
2283 myTagProperties[currentTag].addAttribute(attrProperty);
2284
2287 TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2288 myTagProperties[currentTag].addAttribute(attrProperty);
2289
2292 TL("The position on the lane the detector shall be laid on in meters"));
2293 myTagProperties[currentTag].addAttribute(attrProperty);
2294
2297 TL("The length of the detector in meters"),
2298 "10.00");
2299 myTagProperties[currentTag].addAttribute(attrProperty);
2300
2303 TL("The aggregation period the values the detector collects shall be summed up"),
2304 "300.00");
2305 myTagProperties[currentTag].addAttribute(attrProperty);
2306
2309 TL("The traffic light that triggers aggregation when switching"));
2310 myTagProperties[currentTag].addAttribute(attrProperty);
2311
2314 TL("Name of lane area detector"));
2315 myTagProperties[currentTag].addAttribute(attrProperty);
2316
2319 TL("The path to the output file"));
2320 myTagProperties[currentTag].addAttribute(attrProperty);
2321
2324 TL("Space separated list of vehicle type ids to consider"));
2325 myTagProperties[currentTag].addAttribute(attrProperty);
2326
2329 TL("List of edge ids that must all be part of the future route of the vehicle to qualify for detection"));
2330 myTagProperties[currentTag].addAttribute(attrProperty);
2331
2334 TL("Detect persons instead of vehicles (pedestrians or passengers)"),
2336 attrProperty.setDiscreteValues(SUMOXMLDefinitions::PersonModeValues.getStrings());
2337 myTagProperties[currentTag].addAttribute(attrProperty);
2338
2341 TL("The time-based threshold that describes how much time has to pass until a vehicle is recognized as halting)"),
2342 "1.00");
2343 myTagProperties[currentTag].addAttribute(attrProperty);
2344
2347 TL("The speed-based threshold that describes how slow a vehicle has to be to be recognized as halting) in m/s"),
2348 "1.39");
2349 myTagProperties[currentTag].addAttribute(attrProperty);
2350
2353 TL("The maximum distance to the next standing vehicle in order to make this vehicle count as a participant to the jam in m"),
2354 "10.00");
2355 myTagProperties[currentTag].addAttribute(attrProperty);
2356
2359 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2360 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2361 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2362 "0");
2363 myTagProperties[currentTag].addAttribute(attrProperty);
2364
2367 TL("Show detector in sumo-gui"),
2368 "1");
2369 myTagProperties[currentTag].addAttribute(attrProperty);
2370 }
2372 {
2373 // set values of tag
2374 myTagProperties[currentTag] = GNETagProperties(currentTag,
2379 GUIIcon::E2, SUMO_TAG_LANE_AREA_DETECTOR, TL("E2 MultiLaneAreaDetector"),
2380 {}, FXRGBA(210, 233, 255, 255));
2381 // set values of attributes
2382 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2384 TL("The id of Multilane E2"));
2385 myTagProperties[currentTag].addAttribute(attrProperty);
2386
2389 TL("The sequence of lane ids in which the detector shall be laid on"));
2390 myTagProperties[currentTag].addAttribute(attrProperty);
2391
2394 TL("The position on the lane the detector shall be laid on in meters"));
2395 myTagProperties[currentTag].addAttribute(attrProperty);
2396
2399 TL("The end position on the lane the detector shall be laid on in meters"));
2400 myTagProperties[currentTag].addAttribute(attrProperty);
2401
2404 TL("The aggregation period the values the detector collects shall be summed up"),
2405 "300.00");
2406 myTagProperties[currentTag].addAttribute(attrProperty);
2407
2410 TL("The traffic light that triggers aggregation when switching"));
2411 myTagProperties[currentTag].addAttribute(attrProperty);
2412
2415 TL("Name of Multilane E2 detector"));
2416 myTagProperties[currentTag].addAttribute(attrProperty);
2417
2420 TL("The path to the output file"));
2421 myTagProperties[currentTag].addAttribute(attrProperty);
2422
2425 TL("Space separated list of vehicle type ids to consider"));
2426 myTagProperties[currentTag].addAttribute(attrProperty);
2427
2430 TL("List of edge ids that must all be part of the future route of the vehicle to qualify for detection"));
2431 myTagProperties[currentTag].addAttribute(attrProperty);
2432
2435 TL("Detect persons instead of vehicles (pedestrians or passengers)"),
2437 attrProperty.setDiscreteValues(SUMOXMLDefinitions::PersonModeValues.getStrings());
2438 myTagProperties[currentTag].addAttribute(attrProperty);
2439
2442 TL("The time-based threshold that describes how much time has to pass until a vehicle is recognized as halting)"),
2443 "1.00");
2444 myTagProperties[currentTag].addAttribute(attrProperty);
2445
2448 TL("The speed-based threshold that describes how slow a vehicle has to be to be recognized as halting) in m/s"),
2449 "1.39");
2450 myTagProperties[currentTag].addAttribute(attrProperty);
2451
2454 TL("The maximum distance to the next standing vehicle in order to make this vehicle count as a participant to the jam in m"),
2455 "10.00");
2456 myTagProperties[currentTag].addAttribute(attrProperty);
2457
2460 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2461 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2462 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2463 "0");
2464 myTagProperties[currentTag].addAttribute(attrProperty);
2465
2468 TL("Show detector in sumo-gui"),
2469 "1");
2470 myTagProperties[currentTag].addAttribute(attrProperty);
2471 }
2472 currentTag = SUMO_TAG_ENTRY_EXIT_DETECTOR;
2473 {
2474 // set values of tag
2475 myTagProperties[currentTag] = GNETagProperties(currentTag,
2480 GUIIcon::E3, currentTag, TL("E3 EntryExitDetector"),
2481 {}, FXRGBA(210, 233, 255, 255));
2482 // set values of attributes
2483 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2485 TL("The id of E3"));
2486 myTagProperties[currentTag].addAttribute(attrProperty);
2487
2490 TL("X-Y position of detector in editor (Only used in netedit)"),
2491 "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2492 myTagProperties[currentTag].addAttribute(attrProperty);
2493
2496 TL("The aggregation period the values the detector collects shall be summed up"),
2497 "300.00");
2498 myTagProperties[currentTag].addAttribute(attrProperty);
2499
2502 TL("Name of Entry Exit detector"));
2503 myTagProperties[currentTag].addAttribute(attrProperty);
2504
2507 TL("The path to the output file"));
2508 myTagProperties[currentTag].addAttribute(attrProperty);
2509
2512 TL("Space separated list of vehicle type ids to consider"));
2513 myTagProperties[currentTag].addAttribute(attrProperty);
2514
2517 TL("List of edge ids that must all be part of the future route of the vehicle to qualify for detection"));
2518 myTagProperties[currentTag].addAttribute(attrProperty);
2519
2522 TL("Detect persons instead of vehicles (pedestrians or passengers)"),
2524 attrProperty.setDiscreteValues(SUMOXMLDefinitions::PersonModeValues.getStrings());
2525 myTagProperties[currentTag].addAttribute(attrProperty);
2526
2529 TL("If set to true, no error will be reported if vehicles leave the detector without first entering it"),
2530 "0");
2531 myTagProperties[currentTag].addAttribute(attrProperty);
2532
2535 TL("The time-based threshold that describes how much time has to pass until a vehicle is recognized as halting) in s"),
2536 "1.00");
2537 myTagProperties[currentTag].addAttribute(attrProperty);
2538
2541 TL("The speed-based threshold that describes how slow a vehicle has to be to be recognized as halting) in m/s"),
2542 "1.39");
2543 myTagProperties[currentTag].addAttribute(attrProperty);
2544
2547 TL("Whether no warning should be issued when a vehicle arrives within the detector area."),
2548 "0");
2549 myTagProperties[currentTag].addAttribute(attrProperty);
2550 }
2551 currentTag = SUMO_TAG_DET_ENTRY;
2552 {
2553 // set values of tag
2554 myTagProperties[currentTag] = GNETagProperties(currentTag,
2559 GUIIcon::E3ENTRY, currentTag, TL("E3 DetEntry"),
2560 {SUMO_TAG_ENTRY_EXIT_DETECTOR}, FXRGBA(210, 233, 255, 255));
2561 // set values of attributes
2564 TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2565 myTagProperties[currentTag].addAttribute(attrProperty);
2566
2569 TL("The position on the lane the detector shall be laid on in meters"));
2570 myTagProperties[currentTag].addAttribute(attrProperty);
2571
2574 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2575 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2576 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2577 "0");
2578 myTagProperties[currentTag].addAttribute(attrProperty);
2579
2580 }
2581 currentTag = SUMO_TAG_DET_EXIT;
2582 {
2583 // set values of tag
2584 myTagProperties[currentTag] = GNETagProperties(currentTag,
2589 GUIIcon::E3EXIT, currentTag, TL("E3 DetExit"),
2590 {SUMO_TAG_ENTRY_EXIT_DETECTOR}, FXRGBA(210, 233, 255, 255));
2591 // set values of attributes
2594 TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2595 myTagProperties[currentTag].addAttribute(attrProperty);
2596
2599 TL("The position on the lane the detector shall be laid on in meters"));
2600 myTagProperties[currentTag].addAttribute(attrProperty);
2601
2604 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2605 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2606 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2607 "0");
2608 myTagProperties[currentTag].addAttribute(attrProperty);
2609
2610 }
2612 {
2613 // set values of tag
2614 myTagProperties[currentTag] = GNETagProperties(currentTag,
2619 GUIIcon::E1INSTANT, currentTag, TL("E3 DetExit"),
2620 {}, FXRGBA(210, 233, 255, 255));
2621 // set values of attributes
2622 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2624 TL("The id of Instant Induction Loop (E1Instant)"));
2625 myTagProperties[currentTag].addAttribute(attrProperty);
2626
2629 TL("The id of the lane the detector shall be laid on. The lane must be a part of the network used"));
2630 myTagProperties[currentTag].addAttribute(attrProperty);
2631
2634 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"));
2635 myTagProperties[currentTag].addAttribute(attrProperty);
2636
2639 TL("Name of instant induction loop"));
2640 myTagProperties[currentTag].addAttribute(attrProperty);
2641
2644 TL("The path to the output file"));
2645 myTagProperties[currentTag].addAttribute(attrProperty);
2646
2649 TL("Space separated list of vehicle type ids to consider"));
2650 myTagProperties[currentTag].addAttribute(attrProperty);
2651
2654 TL("List of edge ids that must all be part of the future route of the vehicle to qualify for detection"));
2655 myTagProperties[currentTag].addAttribute(attrProperty);
2656
2659 TL("Detect persons instead of vehicles (pedestrians or passengers)"),
2661 attrProperty.setDiscreteValues(SUMOXMLDefinitions::PersonModeValues.getStrings());
2662 myTagProperties[currentTag].addAttribute(attrProperty);
2663
2666 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
2667 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
2668 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
2669 "0");
2670 myTagProperties[currentTag].addAttribute(attrProperty);
2671 }
2672 currentTag = SUMO_TAG_ROUTEPROBE;
2673 {
2674 // set values of tag
2675 myTagProperties[currentTag] = GNETagProperties(currentTag,
2680 GUIIcon::ROUTEPROBE, currentTag, TL("RouteProbe"),
2681 {}, FXRGBA(210, 233, 255, 255));
2682 // set values of attributes
2683 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2685 TL("The id of RouteProbe"));
2686 myTagProperties[currentTag].addAttribute(attrProperty);
2687
2690 TL("The id of an edge in the simulation network"));
2691 myTagProperties[currentTag].addAttribute(attrProperty);
2692
2695 TL("The frequency in which to report the distribution"),
2696 "3600.00");
2697 myTagProperties[currentTag].addAttribute(attrProperty);
2698
2701 TL("Name of route probe"));
2702 myTagProperties[currentTag].addAttribute(attrProperty);
2703
2706 TL("The file for generated output"));
2707 myTagProperties[currentTag].addAttribute(attrProperty);
2708
2711 TL("The time at which to start generating output"),
2712 "0");
2713 myTagProperties[currentTag].addAttribute(attrProperty);
2714
2717 TL("Space separated list of vehicle type ids to consider (empty to affect all types)"));
2718 myTagProperties[currentTag].addAttribute(attrProperty);
2719 }
2720 currentTag = SUMO_TAG_VSS;
2721 {
2722 // set values of tag
2723 myTagProperties[currentTag] = GNETagProperties(currentTag,
2728 GUIIcon::VARIABLESPEEDSIGN, currentTag, TL("VariableSpeedSign"),
2729 {}, FXRGBA(210, 233, 255, 255));
2730 // set values of attributes
2731 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2733 TL("The id of Variable Speed Signal"));
2734 myTagProperties[currentTag].addAttribute(attrProperty);
2735
2738 TL("X-Y position of detector in editor (Only used in netedit)"),
2739 "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2740 myTagProperties[currentTag].addAttribute(attrProperty);
2741
2744 TL("List of Variable Speed Sign lanes"));
2745 myTagProperties[currentTag].addAttribute(attrProperty);
2746
2749 TL("Name of Variable Speed Signal"));
2750 myTagProperties[currentTag].addAttribute(attrProperty);
2751
2754 TL("Space separated list of vehicle type ids to consider (empty to affect all types)"));
2755 myTagProperties[currentTag].addAttribute(attrProperty);
2756 }
2757 currentTag = GNE_TAG_VSS_SYMBOL;
2758 {
2759 // set values of tag
2760 myTagProperties[currentTag] = GNETagProperties(currentTag,
2765 GUIIcon::LANE, currentTag, TL("VariableSpeedSign (lane)"),
2766 {SUMO_TAG_VSS}, FXRGBA(210, 233, 255, 255));
2767 }
2768 currentTag = SUMO_TAG_STEP;
2769 {
2770 // set values of tag
2771 myTagProperties[currentTag] = GNETagProperties(currentTag,
2776 GUIIcon::VSSSTEP, currentTag, TL("VariableSpeedSign Step"),
2777 {SUMO_TAG_VSS}, FXRGBA(210, 233, 255, 255));
2778 // set values of attributes
2781 TL("Time"));
2782 myTagProperties[currentTag].addAttribute(attrProperty);
2783
2786 TL("Speed"),
2787 "13.89");
2788 myTagProperties[currentTag].addAttribute(attrProperty);
2789 }
2790 currentTag = SUMO_TAG_CALIBRATOR;
2791 {
2792 // set values of tag
2793 myTagProperties[currentTag] = GNETagProperties(currentTag,
2798 GUIIcon::CALIBRATOR, currentTag, TL("Calibrator"),
2799 {}, FXRGBA(253, 255, 206, 255));
2800 // set values of attributes
2801 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2803 TL("The id of Calibrator"));
2804 myTagProperties[currentTag].addAttribute(attrProperty);
2805
2808 TL("The id of edge in the simulation network"));
2809 myTagProperties[currentTag].addAttribute(attrProperty);
2810
2813 TL("The position of the calibrator on the specified lane"),
2814 "0.00");
2815 myTagProperties[currentTag].addAttribute(attrProperty);
2816
2819 TL("The aggregation interval in which to calibrate the flows. Default is step-length"),
2820 "1.00");
2821 myTagProperties[currentTag].addAttribute(attrProperty);
2822
2825 TL("Name of Calibrator"));
2826 myTagProperties[currentTag].addAttribute(attrProperty);
2827
2830 TL("The id of the routeProbe element from which to determine the route distribution for generated vehicles"));
2831 myTagProperties[currentTag].addAttribute(attrProperty);
2832
2835 TL("The output file for writing calibrator information or NULL"));
2836 myTagProperties[currentTag].addAttribute(attrProperty);
2837
2840 TL("A threshold value to detect and clear unexpected jamming"),
2841 "0.50");
2842 myTagProperties[currentTag].addAttribute(attrProperty);
2843
2846 TL("space separated list of vehicle type ids to consider (empty to affect all types)"));
2847 myTagProperties[currentTag].addAttribute(attrProperty);
2848 }
2849 currentTag = GNE_TAG_CALIBRATOR_LANE;
2850 {
2851 // set values of tag
2852 myTagProperties[currentTag] = GNETagProperties(currentTag,
2857 GUIIcon::CALIBRATOR, SUMO_TAG_CALIBRATOR, TL("CalibratorLane"),
2858 {}, FXRGBA(253, 255, 206, 255));
2859 // set values of attributes
2860 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2862 TL("The id of Calibrator"));
2863 myTagProperties[currentTag].addAttribute(attrProperty);
2864
2867 TL("The id of lane in the simulation network"));
2868 myTagProperties[currentTag].addAttribute(attrProperty);
2869
2872 TL("The position of the calibrator on the specified lane"),
2873 "0.00");
2874 myTagProperties[currentTag].addAttribute(attrProperty);
2875
2878 TL("The aggregation interval in which to calibrate the flows. Default is step-length"),
2879 "1.00");
2880 myTagProperties[currentTag].addAttribute(attrProperty);
2881
2884 TL("Name of calibrator lane"));
2885 myTagProperties[currentTag].addAttribute(attrProperty);
2886
2889 TL("The id of the routeProbe element from which to determine the route distribution for generated vehicles"));
2890 myTagProperties[currentTag].addAttribute(attrProperty);
2891
2894 TL("The output file for writing calibrator information or NULL"));
2895 myTagProperties[currentTag].addAttribute(attrProperty);
2896
2899 TL("A threshold value to detect and clear unexpected jamming"),
2900 "0.50");
2901 myTagProperties[currentTag].addAttribute(attrProperty);
2902
2905 TL("space separated list of vehicle type ids to consider (empty to affect all types)"));
2906 myTagProperties[currentTag].addAttribute(attrProperty);
2907 }
2908 currentTag = GNE_TAG_CALIBRATOR_FLOW;
2909 {
2910 // set values of tag
2911 myTagProperties[currentTag] = GNETagProperties(currentTag,
2916 GUIIcon::FLOW, SUMO_TAG_FLOW, TL("CalibratorFlow"),
2917 {SUMO_TAG_CALIBRATOR}, FXRGBA(253, 255, 206, 255));
2918 // set values of attributes
2921 TL("The id of the route the vehicle shall drive along"));
2922 myTagProperties[currentTag].addAttribute(attrProperty);
2923
2926 TL("First calibrator flow departure time"),
2927 "0");
2928 myTagProperties[currentTag].addAttribute(attrProperty);
2929
2932 TL("End of departure interval"),
2933 "3600");
2934 myTagProperties[currentTag].addAttribute(attrProperty);
2935
2936 // fill common vehicle attributes
2938
2939 // optional attributes (at least one must be defined)
2942 TL("The id of the vehicle type to use for this calibrator flow"),
2944 myTagProperties[currentTag].addAttribute(attrProperty);
2945
2948 TL("Number of vehicles per hour, equally spaced"),
2949 "1800");
2950 myTagProperties[currentTag].addAttribute(attrProperty);
2951
2954 TL("Vehicle's speed"),
2955 "15.0");
2956 myTagProperties[currentTag].addAttribute(attrProperty);
2957 }
2958 currentTag = SUMO_TAG_REROUTER;
2959 {
2960 // set values of tag
2961 myTagProperties[currentTag] = GNETagProperties(currentTag,
2966 GUIIcon::REROUTER, currentTag, TL("Rerouter"),
2967 {}, FXRGBA(255, 213, 213, 255));
2968
2969 // set values of attributes
2970 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
2972 TL("The id of Rerouter"));
2973 myTagProperties[currentTag].addAttribute(attrProperty);
2974
2977 TL("An edge id or a list of edge ids where vehicles shall be rerouted"));
2978 myTagProperties[currentTag].addAttribute(attrProperty);
2979
2982 TL("X,Y position in editor (Only used in netedit)"),
2983 "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
2984 myTagProperties[currentTag].addAttribute(attrProperty);
2985
2988 TL("Name of Rerouter"));
2989 myTagProperties[currentTag].addAttribute(attrProperty);
2990
2993 TL("The probability for vehicle rerouting (0-1)"),
2994 "1.00");
2995 myTagProperties[currentTag].addAttribute(attrProperty);
2996
2999 TL("The waiting time threshold (in s) that must be reached to activate rerouting (default -1 which disables the threshold)"),
3000 "0.00");
3001 myTagProperties[currentTag].addAttribute(attrProperty);
3002
3005 TL("The list of vehicle types that shall be affected by this rerouter (empty to affect all types)"));
3006 myTagProperties[currentTag].addAttribute(attrProperty);
3007
3010 TL("Whether the router should be inactive initially (and switched on in the gui)"),
3011 "0");
3012 myTagProperties[currentTag].addAttribute(attrProperty);
3013
3016 TL("If rerouter is optional"),
3017 "0");
3018 myTagProperties[currentTag].addAttribute(attrProperty);
3019 }
3020 currentTag = GNE_TAG_REROUTER_SYMBOL;
3021 {
3022 // set values of tag
3023 myTagProperties[currentTag] = GNETagProperties(currentTag,
3028 GUIIcon::EDGE, currentTag, TL("Rerouter (Edge)"),
3029 {GNE_TAG_REROUTER_SYMBOL}, FXRGBA(255, 213, 213, 255));
3030 }
3031 currentTag = SUMO_TAG_INTERVAL;
3032 {
3033 // set values of tag
3034 myTagProperties[currentTag] = GNETagProperties(currentTag,
3039 GUIIcon::REROUTERINTERVAL, currentTag, TL("Rerouter Interval"),
3040 {SUMO_TAG_REROUTER}, FXRGBA(255, 213, 213, 255));
3041 // set values of attributes
3044 TL("Begin"),
3045 "0");
3046 myTagProperties[currentTag].addAttribute(attrProperty);
3047
3050 TL("End"),
3051 "3600");
3052 myTagProperties[currentTag].addAttribute(attrProperty);
3053 }
3054 currentTag = SUMO_TAG_CLOSING_REROUTE;
3055 {
3056 // set values of tag
3057 myTagProperties[currentTag] = GNETagProperties(currentTag,
3062 GUIIcon::CLOSINGREROUTE, currentTag, TL("ClosingReroute"),
3063 {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
3064 // set values of attributes
3067 TL("Edge ID"));
3068 attrProperty.setSynonym(SUMO_ATTR_ID);
3069 myTagProperties[currentTag].addAttribute(attrProperty);
3070
3073 TL("allowed vehicles"));
3074 myTagProperties[currentTag].addAttribute(attrProperty);
3075
3078 TL("disallowed vehicles"));
3079 myTagProperties[currentTag].addAttribute(attrProperty);
3080 }
3081 currentTag = SUMO_TAG_CLOSING_LANE_REROUTE;
3082 {
3083 // set values of tag
3084 myTagProperties[currentTag] = GNETagProperties(currentTag,
3089 GUIIcon::CLOSINGLANEREROUTE, currentTag, TL("ClosingLaneReroute"),
3090 {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
3091 // set values of attributes
3094 TL("Lane ID"));
3095 attrProperty.setSynonym(SUMO_ATTR_ID);
3096 myTagProperties[currentTag].addAttribute(attrProperty);
3097
3100 TL("allowed vehicles"));
3101 myTagProperties[currentTag].addAttribute(attrProperty);
3102
3105 TL("disallowed vehicles"));
3106 myTagProperties[currentTag].addAttribute(attrProperty);
3107 }
3108 currentTag = SUMO_TAG_DEST_PROB_REROUTE;
3109 {
3110 // set values of tag
3111 myTagProperties[currentTag] = GNETagProperties(currentTag,
3116 GUIIcon::DESTPROBREROUTE, currentTag, TL("DestinationProbabilityReroute"),
3117 {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
3118 // set values of attributes
3121 TL("Edge ID"));
3122 attrProperty.setSynonym(SUMO_ATTR_ID);
3123 myTagProperties[currentTag].addAttribute(attrProperty);
3124
3127 TL("SUMO Probability"),
3128 "1.00");
3129 myTagProperties[currentTag].addAttribute(attrProperty);
3130 }
3131 currentTag = SUMO_TAG_PARKING_AREA_REROUTE;
3132 {
3133 // set values of tag
3134 myTagProperties[currentTag] = GNETagProperties(currentTag,
3139 GUIIcon::PARKINGZONEREROUTE, currentTag, TL("ParkingAreaReroute"),
3140 {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
3141 // set values of attributes
3144 TL("ParkingArea ID"));
3145 attrProperty.setSynonym(SUMO_ATTR_ID);
3146 myTagProperties[currentTag].addAttribute(attrProperty);
3147
3150 TL("SUMO Probability"),
3151 "1.00");
3152 myTagProperties[currentTag].addAttribute(attrProperty);
3153
3156 TL("Enable or disable visibility for parking area reroutes"),
3157 "1");
3158 myTagProperties[currentTag].addAttribute(attrProperty);
3159 }
3160 currentTag = SUMO_TAG_ROUTE_PROB_REROUTE;
3161 {
3162 // set values of tag
3163 myTagProperties[currentTag] = GNETagProperties(currentTag,
3168 GUIIcon::ROUTEPROBREROUTE, currentTag, TL("RouteProbabilityReroute"),
3169 {SUMO_TAG_INTERVAL}, FXRGBA(255, 213, 213, 255));
3170 // set values of attributes
3173 TL("Route"));
3174 attrProperty.setSynonym(SUMO_ATTR_ID);
3175 myTagProperties[currentTag].addAttribute(attrProperty);
3176
3179 TL("SUMO Probability"),
3180 "1.00");
3181 myTagProperties[currentTag].addAttribute(attrProperty);
3182 }
3183 currentTag = SUMO_TAG_VAPORIZER;
3184 {
3185 // set values of tag
3186 myTagProperties[currentTag] = GNETagProperties(currentTag,
3191 GUIIcon::VAPORIZER, currentTag, TL("Vaporizer"),
3192 {}, FXRGBA(253, 255, 206, 255));
3193 // set values of attributes
3194 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3196 TL("Edge in which vaporizer is placed"));
3197 myTagProperties[currentTag].addAttribute(attrProperty);
3198
3201 TL("Start Time"),
3202 "0");
3203 myTagProperties[currentTag].addAttribute(attrProperty);
3204
3207 TL("End Time"),
3208 "3600");
3209 myTagProperties[currentTag].addAttribute(attrProperty);
3210
3213 TL("Name of vaporizer"));
3214 myTagProperties[currentTag].addAttribute(attrProperty);
3215 }
3216}
3217
3218
3219void
3221 // declare empty GNEAttributeProperties
3222 GNEAttributeProperties attrProperty;
3223
3224 // fill shape ACs
3225 SumoXMLTag currentTag = SUMO_TAG_POLY;
3226 {
3227 // set values of tag
3228 myTagProperties[currentTag] = GNETagProperties(currentTag,
3233 GUIIcon::POLY, currentTag, TL("Polygon"),
3234 {}, FXRGBA(240, 255, 205, 255));
3235 // set values of attributes
3236 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3238 TL("The id of the polygon"));
3239 myTagProperties[currentTag].addAttribute(attrProperty);
3240
3243 TL("The shape of the polygon"));
3244 myTagProperties[currentTag].addAttribute(attrProperty);
3245
3248 TL("Toggle close or open shape"));
3249 myTagProperties[currentTag].addAttribute(attrProperty);
3250
3253 TL("The RGBA color with which the polygon shall be displayed"),
3254 "red");
3255 myTagProperties[currentTag].addAttribute(attrProperty);
3256
3259 TL("An information whether the polygon shall be filled"),
3260 "0");
3261 myTagProperties[currentTag].addAttribute(attrProperty);
3262
3265 TL("The default line width for drawing an unfilled polygon"),
3266 "1");
3267 myTagProperties[currentTag].addAttribute(attrProperty);
3268
3271 TL("The layer in which the polygon lies"),
3273 myTagProperties[currentTag].addAttribute(attrProperty);
3274
3277 TL("A typename for the polygon"),
3279 myTagProperties[currentTag].addAttribute(attrProperty);
3280
3283 TL("Polygon's name"));
3284 myTagProperties[currentTag].addAttribute(attrProperty);
3285
3288 TL("A bitmap to use for rendering this polygon"),
3290 myTagProperties[currentTag].addAttribute(attrProperty);
3291
3294 TL("Enable or disable use image file as a relative path"),
3296 myTagProperties[currentTag].addAttribute(attrProperty);
3297
3300 TL("Angle of rendered image in degree"),
3302 myTagProperties[currentTag].addAttribute(attrProperty);
3303
3306 TL("Enable or disable GEO attributes"),
3308 myTagProperties[currentTag].addAttribute(attrProperty);
3309
3312 TL("A custom geo shape for this polygon"));
3313 myTagProperties[currentTag].addAttribute(attrProperty);
3314
3315 }
3316 currentTag = SUMO_TAG_POI;
3317 {
3318 // set values of tag
3319 myTagProperties[currentTag] = GNETagProperties(currentTag,
3324 GUIIcon::POI, currentTag, TL("PointOfInterest"),
3325 {}, FXRGBA(210, 233, 255, 255));
3326 // set values of attributes
3327 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3329 TL("The id of the POI"));
3330 myTagProperties[currentTag].addAttribute(attrProperty);
3331
3333 GNEAttributeProperties::STRING | GNEAttributeProperties::POSITION | GNEAttributeProperties::UNIQUE | GNEAttributeProperties::UPDATEGEOMETRY, // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
3334 TL("The position in view"));
3335 myTagProperties[currentTag].addAttribute(attrProperty);
3336
3337 // fill Poi attributes
3339 }
3340 currentTag = GNE_TAG_POILANE;
3341 {
3342 // set values of tag
3343 myTagProperties[currentTag] = GNETagProperties(currentTag,
3348 GUIIcon::POILANE, SUMO_TAG_POI, TL("PointOfInterestLane"),
3349 {}, FXRGBA(210, 233, 255, 255));
3350 // set values of attributes
3351 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3353 TL("The id of the POI"));
3354 myTagProperties[currentTag].addAttribute(attrProperty);
3355
3358 TL("The name of the lane at which the POI is located at"));
3359 myTagProperties[currentTag].addAttribute(attrProperty);
3360
3363 TL("The position on the named lane or in the net in meters at which the POI is located at"));
3364 myTagProperties[currentTag].addAttribute(attrProperty);
3365
3368 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
3369 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
3370 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
3371 "0");
3372 myTagProperties[currentTag].addAttribute(attrProperty);
3373
3376 TL("The lateral offset on the named lane at which the POI is located at"),
3377 "0.00");
3378 myTagProperties[currentTag].addAttribute(attrProperty);
3379
3380 // fill Poi attributes
3382 }
3383 currentTag = GNE_TAG_POIGEO;
3384 {
3385 // set values of tag
3386 myTagProperties[currentTag] = GNETagProperties(currentTag,
3391 GUIIcon::POIGEO, SUMO_TAG_POI, TL("PointOfInterestGeo"),
3392 {}, FXRGBA(210, 233, 255, 255));
3393 // set values of attributes
3394 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3396 TL("The id of the POI"));
3397 myTagProperties[currentTag].addAttribute(attrProperty);
3398
3399 // set values of attributes
3402 TL("The longitude position of the parking vehicle on the view"));
3403 myTagProperties[currentTag].addAttribute(attrProperty);
3404
3407 TL("The latitude position of the parking vehicle on the view"));
3408 myTagProperties[currentTag].addAttribute(attrProperty);
3409
3410 // fill Poi attributes
3412 }
3413}
3414
3415
3416void
3418 // declare empty GNEAttributeProperties
3419 GNEAttributeProperties attrProperty;
3420
3421 // fill TAZ ACs
3422 SumoXMLTag currentTag = SUMO_TAG_TAZ;
3423 {
3424 // set values of tag
3425 myTagProperties[currentTag] = GNETagProperties(currentTag,
3430 GUIIcon::TAZ, currentTag, TL("TrafficAssignmentZones"));
3431 // set values of attributes
3432 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3434 TL("The id of the TAZ"));
3435 myTagProperties[currentTag].addAttribute(attrProperty);
3436
3439 TL("The shape of the TAZ"));
3440 myTagProperties[currentTag].addAttribute(attrProperty);
3441
3444 TL("TAZ center"));
3445 myTagProperties[currentTag].addAttribute(attrProperty);
3446
3449 TL("An information whether the TAZ shall be filled"),
3450 "0");
3451 myTagProperties[currentTag].addAttribute(attrProperty);
3452
3455 TL("The RGBA color with which the TAZ shall be displayed"),
3456 "red");
3457 myTagProperties[currentTag].addAttribute(attrProperty);
3458
3461 TL("Name of POI"));
3462 myTagProperties[currentTag].addAttribute(attrProperty);
3463 }
3464 currentTag = SUMO_TAG_TAZSOURCE;
3465 {
3466 // set values of tag
3467 myTagProperties[currentTag] = GNETagProperties(currentTag,
3472 GUIIcon::TAZEDGE, currentTag, TL("TAZ Source"),
3473 {SUMO_TAG_TAZ});
3474 // set values of attributes
3477 TL("The id of edge in the simulation network"));
3478 attrProperty.setSynonym(SUMO_ATTR_ID);
3479 myTagProperties[currentTag].addAttribute(attrProperty);
3480
3483 TL("Depart weight associated to this Edge"),
3484 "1");
3485 myTagProperties[currentTag].addAttribute(attrProperty);
3486 }
3487 currentTag = SUMO_TAG_TAZSINK;
3488 {
3489 // set values of tag
3490 myTagProperties[currentTag] = GNETagProperties(currentTag,
3495 GUIIcon::TAZEDGE, currentTag, TL("TAZ Sink"),
3496 {SUMO_TAG_TAZ});
3497 // set values of attributes
3500 TL("The id of edge in the simulation network"));
3501 attrProperty.setSynonym(SUMO_ATTR_ID);
3502 myTagProperties[currentTag].addAttribute(attrProperty);
3503
3506 TL("Arrival weight associated to this Edge"),
3507 "1");
3508 myTagProperties[currentTag].addAttribute(attrProperty);
3509 }
3510}
3511
3512
3513void
3515 // declare empty GNEAttributeProperties
3516 GNEAttributeProperties attrProperty;
3517
3518 // fill wire elements
3520 {
3521 // set tag properties
3522 myTagProperties[currentTag] = GNETagProperties(currentTag,
3527 GUIIcon::TRACTION_SUBSTATION, currentTag, TL("TractionSubstation"));
3528 // set attribute properties
3529 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3531 TL("Traction substation ID"));
3532 myTagProperties[currentTag].addAttribute(attrProperty);
3533
3536 TL("X-Y position of detector in editor (Only used in netedit)"),
3537 "0,0"); // virtual attribute from the combination of the actually attributes SUMO_ATTR_X, SUMO_ATTR_Y
3538 myTagProperties[currentTag].addAttribute(attrProperty);
3539
3542 TL("Voltage of at connection point for the overhead wire"),
3543 "600");
3544 myTagProperties[currentTag].addAttribute(attrProperty);
3545
3548 TL("Current limit of the feeder line"),
3549 "400");
3550 myTagProperties[currentTag].addAttribute(attrProperty);
3551 }
3552 currentTag = SUMO_TAG_OVERHEAD_WIRE_SECTION;
3553 {
3554 // set tag properties
3555 myTagProperties[currentTag] = GNETagProperties(currentTag,
3560 GUIIcon::OVERHEADWIRE, currentTag, TL("WireSection"));
3561 // set attribute properties
3562 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3564 TL("Overhead wire segment ID"));
3565 myTagProperties[currentTag].addAttribute(attrProperty);
3566
3569 TL("Substation to which the circuit is connected"));
3570 myTagProperties[currentTag].addAttribute(attrProperty);
3571
3574 TL("List of consecutive lanes of the circuit"));
3575 myTagProperties[currentTag].addAttribute(attrProperty);
3576
3579 TL("Starting position in the specified lane"),
3580 "0.0");
3581 myTagProperties[currentTag].addAttribute(attrProperty);
3582
3585 TL("Ending position in the specified lane"),
3587 myTagProperties[currentTag].addAttribute(attrProperty);
3588
3591 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
3592 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
3593 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
3594 "0");
3595 myTagProperties[currentTag].addAttribute(attrProperty);
3596
3599 TL("Inner lanes, where placing of overhead wire is restricted"));
3600 myTagProperties[currentTag].addAttribute(attrProperty);
3601 }
3602 currentTag = SUMO_TAG_OVERHEAD_WIRE_CLAMP;
3603 {
3604 // set tag properties
3605 myTagProperties[currentTag] = GNETagProperties(currentTag,
3610 GUIIcon::OVERHEADWIRE_CLAMP, currentTag, TL("OverheadWireClamp"));
3611 // set attribute properties
3612 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3614 TL("Overhead wire clamp ID"));
3615 myTagProperties[currentTag].addAttribute(attrProperty);
3616
3619 TL("ID of the overhead wire segment, to the start of which the overhead wire clamp is connected"));
3620 myTagProperties[currentTag].addAttribute(attrProperty);
3621
3624 TL("ID of the overhead wire segment lane of overheadWireIDStartClamp"));
3625 myTagProperties[currentTag].addAttribute(attrProperty);
3626
3629 TL("ID of the overhead wire segment, to the end of which the overhead wire clamp is connected"));
3630 myTagProperties[currentTag].addAttribute(attrProperty);
3631
3634 TL("ID of the overhead wire segment lane of overheadWireIDEndClamp"));
3635 myTagProperties[currentTag].addAttribute(attrProperty);
3636 }
3637}
3638
3639
3640void
3642 // declare empty GNEAttributeProperties
3643 GNEAttributeProperties attrProperty;
3644
3645 // fill shape ACs
3647 {
3648 // set values of tag
3649 myTagProperties[currentTag] = GNETagProperties(currentTag,
3654 GUIIcon::JPS_WALKABLEAREA, SUMO_TAG_POLY, TL("JuPedSim WalkableArea"),
3655 {}, FXRGBA(253, 255, 206, 255));
3656 // set values of attributes
3657 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3659 TL("The id of the walkable area"));
3660 myTagProperties[currentTag].addAttribute(attrProperty);
3661
3664 TL("The shape of the walkable area"));
3665 myTagProperties[currentTag].addAttribute(attrProperty);
3666
3669 TL("Toggle close or open walkable area shape"));
3670 myTagProperties[currentTag].addAttribute(attrProperty);
3671
3674 TL("Walkable area's name"));
3675 myTagProperties[currentTag].addAttribute(attrProperty);
3676 }
3677 currentTag = GNE_TAG_JPS_OBSTACLE;
3678 {
3679 // set values of tag
3680 myTagProperties[currentTag] = GNETagProperties(currentTag,
3685 GUIIcon::JPS_OBSTACLE, SUMO_TAG_POLY, TL("JuPedSim Obstacle"),
3686 {}, FXRGBA(253, 255, 206, 255));
3687 // set values of attributes
3688 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3690 TL("The id of the obstacle"));
3691 myTagProperties[currentTag].addAttribute(attrProperty);
3692
3695 TL("The shape of the obstacle"));
3696 myTagProperties[currentTag].addAttribute(attrProperty);
3697
3700 TL("Toggle close or open obstacle shape"));
3701 myTagProperties[currentTag].addAttribute(attrProperty);
3702
3705 TL("Obstacle's name"));
3706 myTagProperties[currentTag].addAttribute(attrProperty);
3707 }
3708}
3709
3710
3711void
3713 // declare empty GNEAttributeProperties
3714 GNEAttributeProperties attrProperty;
3715
3716 // fill demand elements
3717 SumoXMLTag currentTag = SUMO_TAG_ROUTE;
3718 {
3719 // set values of tag
3720 myTagProperties[currentTag] = GNETagProperties(currentTag,
3725 GUIIcon::ROUTE, currentTag, TL("Route"));
3726
3727 // set values of attributes
3728 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3730 TL("The id of Route"));
3731 myTagProperties[currentTag].addAttribute(attrProperty);
3732
3735 TL("Route distribution"));
3736 myTagProperties[currentTag].addAttribute(attrProperty);
3737
3740 TL("The edges the vehicle shall drive along, given as their ids, separated using spaces"));
3741 myTagProperties[currentTag].addAttribute(attrProperty);
3742
3745 TL("This route's color"));
3746 myTagProperties[currentTag].addAttribute(attrProperty);
3747
3750 TL("The number of times that the edges of this route shall be repeated"),
3751 "0");
3752 myTagProperties[currentTag].addAttribute(attrProperty);
3753
3756 TL("When defining a repeating route with stops and those stops use the until attribute,") + std::string("\n") +
3757 TL("the times will be shifted forward by 'cycleTime' on each repeat"),
3758 "0");
3759 myTagProperties[currentTag].addAttribute(attrProperty);
3760 }
3761 currentTag = SUMO_TAG_ROUTE_DISTRIBUTION;
3762 {
3763 // set values of tag
3764 myTagProperties[currentTag] = GNETagProperties(currentTag,
3769 GUIIcon::ROUTEDISTRIBUTION, currentTag, TL("RouteDistribution"));
3770
3771 // set values of attributes
3772 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3774 TL("The id of route distribution"));
3775 myTagProperties[currentTag].addAttribute(attrProperty);
3776 }
3777 currentTag = GNE_TAG_ROUTE_EMBEDDED;
3778 {
3779 // set values of tag
3780 myTagProperties[currentTag] = GNETagProperties(currentTag,
3785 GUIIcon::ROUTE, SUMO_TAG_ROUTE, TL("RouteEmbedded"),
3787
3788 // set values of attributes
3791 TL("The edges the vehicle shall drive along, given as their ids, separated using spaces"));
3792 myTagProperties[currentTag].addAttribute(attrProperty);
3793
3796 TL("This route's color"));
3797 myTagProperties[currentTag].addAttribute(attrProperty);
3798
3801 TL("The number of times that the edges of this route shall be repeated"),
3802 "0");
3803 myTagProperties[currentTag].addAttribute(attrProperty);
3804
3807 TL("When defining a repeating route with stops and those stops use the until attribute,") + std::string("\n") +
3808 TL("the times will be shifted forward by 'cycleTime' on each repeat"),
3809 "0");
3810 myTagProperties[currentTag].addAttribute(attrProperty);
3811 }
3812 currentTag = SUMO_TAG_VTYPE;
3813 {
3814 // set values of tag
3815 myTagProperties[currentTag] = GNETagProperties(currentTag,
3820 GUIIcon::VTYPE, currentTag, TL("VehicleType"));
3821
3822 // set values of attributes
3823 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
3825 TL("type ID"));
3826 myTagProperties[currentTag].addAttribute(attrProperty);
3827
3830 TL("Type distribution"));
3831 myTagProperties[currentTag].addAttribute(attrProperty);
3832
3835 TL("An abstract vehicle class"),
3836 "passenger");
3837 attrProperty.setDiscreteValues(SumoVehicleClassStrings.getStrings());
3838 myTagProperties[currentTag].addAttribute(attrProperty);
3839
3842 TL("This type's color"));
3843 myTagProperties[currentTag].addAttribute(attrProperty);
3844
3847 TL("The vehicle's netto-length (length) [m]"));
3848 myTagProperties[currentTag].addAttribute(attrProperty);
3849
3852 TL("Empty space after leader [m]"));
3853 myTagProperties[currentTag].addAttribute(attrProperty);
3854
3857 TL("The vehicle's maximum velocity [m/s]"));
3858 myTagProperties[currentTag].addAttribute(attrProperty);
3859
3862 TL("The vehicle's expected multiplicator for lane speed limits (or a distribution specifier)"));
3863 myTagProperties[currentTag].addAttribute(attrProperty);
3864
3867 TL("The vehicle's desired maximum velocity (interacts with speedFactor).") + std::string("\n") +
3868 TL("Applicable when no speed limit applies (bicycles, some motorways) [m/s]"));
3869 myTagProperties[currentTag].addAttribute(attrProperty);
3870
3873 TL("An abstract emission class"));
3875 myTagProperties[currentTag].addAttribute(attrProperty);
3876
3879 TL("How this vehicle is rendered"));
3880 attrProperty.setDiscreteValues(SumoVehicleShapeStrings.getStrings());
3881 myTagProperties[currentTag].addAttribute(attrProperty);
3882
3885 TL("The vehicle's width [m] (only used for drawing)"),
3886 "1.8");
3887 myTagProperties[currentTag].addAttribute(attrProperty);
3888
3891 TL("The vehicle's height [m] (only used for drawing)"),
3892 "1.5");
3893 myTagProperties[currentTag].addAttribute(attrProperty);
3894
3897 TL("The parking badges assigned to the vehicle"));
3898 myTagProperties[currentTag].addAttribute(attrProperty);
3899
3902 TL("Image file for rendering vehicles of this type (should be grayscale to allow functional coloring)"));
3903 myTagProperties[currentTag].addAttribute(attrProperty);
3904
3907 TL("The model used for changing lanes"),
3908 "default");
3910 myTagProperties[currentTag].addAttribute(attrProperty);
3911
3914 TL("The model used for car-following"),
3915 "Krauss");
3916 attrProperty.setDiscreteValues(SUMOXMLDefinitions::CarFollowModels.getStrings());
3917 myTagProperties[currentTag].addAttribute(attrProperty);
3918
3921 TL("The number of persons (excluding an autonomous driver) the vehicle can transport"));
3922 myTagProperties[currentTag].addAttribute(attrProperty);
3923
3926 TL("The number of containers the vehicle can transport"));
3927 myTagProperties[currentTag].addAttribute(attrProperty);
3928
3931 TL("The time required by a person to board the vehicle"),
3932 "0.50");
3933 myTagProperties[currentTag].addAttribute(attrProperty);
3934
3937 TL("The time required to load a container onto the vehicle"),
3938 "90.00");
3939 myTagProperties[currentTag].addAttribute(attrProperty);
3940
3943 TL("The preferred lateral alignment when using the sublane-model"),
3944 "center");
3946 myTagProperties[currentTag].addAttribute(attrProperty);
3947
3950 TL("The minimum lateral gap at a speed difference of 50km/h when using the sublane-model"),
3951 "0.12");
3952 myTagProperties[currentTag].addAttribute(attrProperty);
3953
3956 TL("The maximum lateral speed when using the sublane-model"),
3957 "1.00");
3958 myTagProperties[currentTag].addAttribute(attrProperty);
3959
3962 TL("The interval length for which vehicle performs its decision logic (acceleration and lane-changing)"),
3963 toString(OptionsCont::getOptions().getFloat("default.action-step-length")));
3964 myTagProperties[currentTag].addAttribute(attrProperty);
3965
3968 TL("The probability when being added to a distribution without an explicit probability"),
3970 myTagProperties[currentTag].addAttribute(attrProperty);
3971
3974 TL("3D model file for this class"));
3975 myTagProperties[currentTag].addAttribute(attrProperty);
3976
3979 TL("Carriage lengths"));
3980 myTagProperties[currentTag].addAttribute(attrProperty);
3981
3984 TL("Locomotive lengths"));
3985 myTagProperties[currentTag].addAttribute(attrProperty);
3986
3989 TL("Gap between carriages"),
3990 "1");
3991 myTagProperties[currentTag].addAttribute(attrProperty);
3992
3993 // fill VType Car Following Model Values (implemented in a separated function to improve code legibility)
3995
3996 // fill VType Junction Model Parameters (implemented in a separated function to improve code legibility)
3998
3999 // fill VType Lane Change Model Parameters (implemented in a separated function to improve code legibility)
4001 }
4002 currentTag = SUMO_TAG_VTYPE_DISTRIBUTION;
4003 {
4004 // set values of tag
4005 myTagProperties[currentTag] = GNETagProperties(currentTag,
4010 GUIIcon::VTYPEDISTRIBUTION, currentTag, TL("VehicleTypeDistribution"));
4011
4012 // set values of attributes
4013 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4015 TL("The id of VehicleType distribution"));
4016 myTagProperties[currentTag].addAttribute(attrProperty);
4017 }
4018}
4019
4020
4021void
4023 // declare empty GNEAttributeProperties
4024 GNEAttributeProperties attrProperty;
4025
4026 // fill vehicle ACs
4027 SumoXMLTag currentTag = SUMO_TAG_TRIP;
4028 {
4029 // set values of tag
4030 myTagProperties[currentTag] = GNETagProperties(currentTag,
4035 GUIIcon::TRIP, currentTag, TL("TripEdges"),
4036 {}, FXRGBA(253, 255, 206, 255), "trip (from-to edges)");
4037
4038 // set values of attributes
4039 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4041 TL("The ID of trip"));
4042 myTagProperties[currentTag].addAttribute(attrProperty);
4043
4046 TL("The id of the vehicle type to use for this trip"),
4048 myTagProperties[currentTag].addAttribute(attrProperty);
4049
4052 TL("The ID of the edge the trip starts at"));
4053 myTagProperties[currentTag].addAttribute(attrProperty);
4054
4055 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
4057 TL("The ID of the edge the trip ends at"));
4058 myTagProperties[currentTag].addAttribute(attrProperty);
4059
4062 TL("List of intermediate edge ids which shall be part of the trip"));
4063 myTagProperties[currentTag].addAttribute(attrProperty);
4064
4065 // add common attributes
4067
4070 TL("The departure time of the (first) trip which is generated using this trip definition"),
4071 "0.00");
4072 myTagProperties[currentTag].addAttribute(attrProperty);
4073 }
4074 currentTag = GNE_TAG_TRIP_JUNCTIONS;
4075 {
4076 // set values of tag
4077 myTagProperties[currentTag] = GNETagProperties(currentTag,
4082 GUIIcon::TRIP_JUNCTIONS, SUMO_TAG_TRIP, TL("TripJunctions"),
4083 {}, FXRGBA(255, 213, 213, 255), "trip (from-to junctions)");
4084
4085 // set values of attributes
4086 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4088 TL("The id of trip"));
4089 myTagProperties[currentTag].addAttribute(attrProperty);
4090
4093 TL("The id of the vehicle type to use for this trip"),
4095 myTagProperties[currentTag].addAttribute(attrProperty);
4096
4099 TL("The name of the junction the trip starts at"));
4100 myTagProperties[currentTag].addAttribute(attrProperty);
4101
4104 TL("The name of the junction the trip ends at"));
4105 myTagProperties[currentTag].addAttribute(attrProperty);
4106
4107 // add common attributes
4109
4112 TL("The departure time of the (first) trip which is generated using this trip definition"),
4113 "0.00");
4114 myTagProperties[currentTag].addAttribute(attrProperty);
4115 }
4116 currentTag = GNE_TAG_TRIP_TAZS;
4117 {
4118 // set values of tag
4119 myTagProperties[currentTag] = GNETagProperties(currentTag,
4124 GUIIcon::TRIP_TAZS, SUMO_TAG_TRIP, TL("TripTAZs"),
4125 {}, FXRGBA(240, 255, 205, 255), "trip (from-to TAZs)");
4126
4127 // set values of attributes
4128 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4130 TL("The id of trip"));
4131 myTagProperties[currentTag].addAttribute(attrProperty);
4132
4135 TL("The id of the vehicle type to use for this trip"),
4137 myTagProperties[currentTag].addAttribute(attrProperty);
4138
4141 TL("The name of the TAZ the trip starts at"));
4142 myTagProperties[currentTag].addAttribute(attrProperty);
4143
4146 TL("The name of the TAZ the trip ends at"));
4147 myTagProperties[currentTag].addAttribute(attrProperty);
4148
4149 // add common attributes
4151
4154 TL("The departure time of the (first) trip which is generated using this trip definition"),
4155 "0.00");
4156 myTagProperties[currentTag].addAttribute(attrProperty);
4157 }
4158 currentTag = SUMO_TAG_VEHICLE;
4159 {
4160 // set values of tag
4161 myTagProperties[currentTag] = GNETagProperties(currentTag,
4166 GUIIcon::VEHICLE, currentTag, TL("VehicleRoute"),
4167 {}, FXRGBA(210, 233, 255, 255), "vehicle (over route)");
4168
4169 // set values of attributes
4170 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4172 TL("The ID of the vehicle"));
4173 myTagProperties[currentTag].addAttribute(attrProperty);
4174
4177 TL("The id of the vehicle type to use for this vehicle"),
4179 myTagProperties[currentTag].addAttribute(attrProperty);
4180
4183 TL("The id of the route the vehicle shall drive along"));
4184 myTagProperties[currentTag].addAttribute(attrProperty);
4185
4188 TL("The index of the edge within route the vehicle starts at"));
4189 myTagProperties[currentTag].addAttribute(attrProperty);
4190
4193 TL("The index of the edge within route the vehicle ends at"));
4194 myTagProperties[currentTag].addAttribute(attrProperty);
4195
4196 // add common attributes
4198
4201 TL("The time step at which the vehicle shall enter the network"),
4202 "0.00");
4203 myTagProperties[currentTag].addAttribute(attrProperty);
4204 }
4205 currentTag = GNE_TAG_VEHICLE_WITHROUTE;
4206 {
4207 // set values of tag
4208 myTagProperties[currentTag] = GNETagProperties(currentTag,
4213 GUIIcon::VEHICLE, SUMO_TAG_VEHICLE, TL("VehicleEmbeddedRoute"),
4214 {}, FXRGBA(210, 233, 255, 255), "vehicle (embedded route)");
4215
4216 // set values of attributes
4217 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4219 TL("The ID of the vehicle"));
4220 myTagProperties[currentTag].addAttribute(attrProperty);
4221
4224 TL("The id of the vehicle type to use for this vehicle"),
4226 myTagProperties[currentTag].addAttribute(attrProperty);
4227
4230 TL("The index of the edge within route the vehicle starts at"));
4231 myTagProperties[currentTag].addAttribute(attrProperty);
4232
4235 TL("The index of the edge within route the vehicle ends at"));
4236 myTagProperties[currentTag].addAttribute(attrProperty);
4237
4238 // add common attributes
4240
4243 TL("The time step at which the vehicle shall enter the network"),
4244 "0.00");
4245 myTagProperties[currentTag].addAttribute(attrProperty);
4246 }
4247 currentTag = SUMO_TAG_FLOW;
4248 {
4249 // set values of tag
4250 myTagProperties[currentTag] = GNETagProperties(currentTag,
4255 GUIIcon::FLOW, currentTag, TL("FlowEdges"),
4256 {}, FXRGBA(253, 255, 206, 255), "flow (from-to edges)");
4257
4258 // set values of attributes
4259 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4261 TL("The ID of the flow"));
4262 myTagProperties[currentTag].addAttribute(attrProperty);
4263
4266 TL("The id of the flow type to use for this flow"),
4268 myTagProperties[currentTag].addAttribute(attrProperty);
4269
4272 TL("The ID of the edge the flow starts at"));
4273 myTagProperties[currentTag].addAttribute(attrProperty);
4274
4275 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
4277 TL("The ID of the edge the flow ends at"));
4278 myTagProperties[currentTag].addAttribute(attrProperty);
4279
4282 TL("List of intermediate edge ids which shall be part of the flow"));
4283 myTagProperties[currentTag].addAttribute(attrProperty);
4284
4285 // add common attributes
4287
4288 // add flow attributes
4290 }
4291 currentTag = GNE_TAG_FLOW_JUNCTIONS;
4292 {
4293 // set values of tag
4294 myTagProperties[currentTag] = GNETagProperties(currentTag,
4299 GUIIcon::FLOW_JUNCTIONS, SUMO_TAG_FLOW, TL("FlowJunctions"),
4300 {}, FXRGBA(255, 213, 213, 255), "flow (from-to junctions)");
4301
4302 // set values of attributes
4303 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4305 TL("The id of the flow"));
4306 myTagProperties[currentTag].addAttribute(attrProperty);
4307
4310 TL("The id of the flow type to use for this flow"),
4312 myTagProperties[currentTag].addAttribute(attrProperty);
4313
4316 TL("The name of the junction the flow starts at"));
4317 myTagProperties[currentTag].addAttribute(attrProperty);
4318
4321 TL("The name of the junction the flow ends at"));
4322 myTagProperties[currentTag].addAttribute(attrProperty);
4323
4324 // add common attributes
4326
4327 // add flow attributes
4329 }
4330 currentTag = GNE_TAG_FLOW_TAZS;
4331 {
4332 // set values of tag
4333 myTagProperties[currentTag] = GNETagProperties(currentTag,
4338 GUIIcon::FLOW_TAZS, SUMO_TAG_FLOW, TL("FlowTAZs"),
4339 {}, FXRGBA(240, 255, 205, 255), "flow (from-to TAZs)");
4340
4341 // set values of attributes
4342 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4344 TL("The id of the flow"));
4345 myTagProperties[currentTag].addAttribute(attrProperty);
4346
4349 TL("The id of the flow type to use for this flow"),
4351 myTagProperties[currentTag].addAttribute(attrProperty);
4352
4355 TL("The name of the TAZ the flow starts at"));
4356 myTagProperties[currentTag].addAttribute(attrProperty);
4357
4360 TL("The name of the TAZ the flow ends at"));
4361 myTagProperties[currentTag].addAttribute(attrProperty);
4362
4363 // add common attributes
4365
4366 // add flow attributes
4368 }
4369 currentTag = GNE_TAG_FLOW_ROUTE;
4370 {
4371 // set values of tag
4372 myTagProperties[currentTag] = GNETagProperties(currentTag,
4377 GUIIcon::ROUTEFLOW, SUMO_TAG_FLOW, TL("FlowRoute"),
4378 {}, FXRGBA(210, 233, 255, 255), "flow (over route)");
4379
4380 // set values of attributes
4381 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4383 TL("The id of the flow"));
4384 myTagProperties[currentTag].addAttribute(attrProperty);
4385
4388 TL("The id of the flow type to use for this flow"),
4390 myTagProperties[currentTag].addAttribute(attrProperty);
4391
4394 TL("The id of the route the flow shall drive along"));
4395 myTagProperties[currentTag].addAttribute(attrProperty);
4396
4399 TL("The index of the edge within route the flow starts at"));
4400 myTagProperties[currentTag].addAttribute(attrProperty);
4401
4404 TL("The index of the edge within route the flow ends at"));
4405 myTagProperties[currentTag].addAttribute(attrProperty);
4406
4407 // add common attributes
4409
4410 // add flow attributes
4412 }
4413 currentTag = GNE_TAG_FLOW_WITHROUTE;
4414 {
4415 // set values of tag
4416 myTagProperties[currentTag] = GNETagProperties(currentTag,
4421 GUIIcon::ROUTEFLOW, SUMO_TAG_FLOW, TL("FlowEmbeddedRoute"),
4422 {}, FXRGBA(210, 233, 255, 255), "flow (embedded route)");
4423
4424 // set values of attributes
4425 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
4427 TL("The name of the flow"));
4428 myTagProperties[currentTag].addAttribute(attrProperty);
4429
4432 TL("The id of the flow type to use for this flow"),
4434 myTagProperties[currentTag].addAttribute(attrProperty);
4435
4438 TL("The index of the edge within route the flow starts at"));
4439 myTagProperties[currentTag].addAttribute(attrProperty);
4440
4443 TL("The index of the edge within route the flow ends at"));
4444 myTagProperties[currentTag].addAttribute(attrProperty);
4445
4446 // add common attributes
4448
4449 // add flow attributes
4451 }
4452}
4453
4454
4455void
4457 // declare empty GNEAttributeProperties
4458 GNEAttributeProperties attrProperty;
4459
4460 // fill stops ACs
4461 SumoXMLTag currentTag = GNE_TAG_STOP_LANE;
4462 {
4463 // set values of tag
4464 myTagProperties[currentTag] = GNETagProperties(currentTag,
4470 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4471 // set values of attributes
4474 TL("The name of the lane the stop shall be located at"));
4475 myTagProperties[currentTag].addAttribute(attrProperty);
4476
4479 TL("The begin position on the lane (the lower position on the lane) in meters"));
4480 myTagProperties[currentTag].addAttribute(attrProperty);
4481
4484 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"));
4485 myTagProperties[currentTag].addAttribute(attrProperty);
4486
4489 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
4490 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
4491 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
4492 "0");
4493 myTagProperties[currentTag].addAttribute(attrProperty);
4494
4497 TL("The lateral offset on the named lane at which the vehicle must stop"));
4498 myTagProperties[currentTag].addAttribute(attrProperty);
4499
4500 // fill common stop attributes
4501 fillCommonStopAttributes(myTagProperties[currentTag], false);
4502 }
4503 currentTag = GNE_TAG_STOP_BUSSTOP;
4504 {
4505 // set values of tag
4506 myTagProperties[currentTag] = GNETagProperties(currentTag,
4511 GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopBusStop"),
4512 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4513 // set values of attributes
4516 TL("BusStop associated with this stop"));
4517 myTagProperties[currentTag].addAttribute(attrProperty);
4518
4519 // fill common stop attributes
4520 fillCommonStopAttributes(myTagProperties[currentTag], false);
4521 }
4522 currentTag = GNE_TAG_STOP_TRAINSTOP;
4523 {
4524 // set values of tag
4525 myTagProperties[currentTag] = GNETagProperties(currentTag,
4530 GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopTrainStop"),
4531 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4532 // set values of attributes
4535 TL("TrainStop associated with this stop"));
4536 myTagProperties[currentTag].addAttribute(attrProperty);
4537
4538 // fill common stop attributes
4539 fillCommonStopAttributes(myTagProperties[currentTag], false);
4540 }
4541 currentTag = GNE_TAG_STOP_CONTAINERSTOP;
4542 {
4543 // set values of tag
4544 myTagProperties[currentTag] = GNETagProperties(currentTag,
4549 GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopContainerStop"),
4550 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4551 // set values of attributes
4554 TL("ContainerStop associated with this stop"));
4555 myTagProperties[currentTag].addAttribute(attrProperty);
4556
4557 // fill common stop attributes
4558 fillCommonStopAttributes(myTagProperties[currentTag], false);
4559 }
4560 currentTag = GNE_TAG_STOP_CHARGINGSTATION;
4561 {
4562 // set values of tag
4563 myTagProperties[currentTag] = GNETagProperties(currentTag,
4568 GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopChargingStation"),
4569 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4570 // set values of attributes
4573 TL("ChargingStation associated with this stop"));
4574 myTagProperties[currentTag].addAttribute(attrProperty);
4575
4576 // fill common stop attributes
4577 fillCommonStopAttributes(myTagProperties[currentTag], false);
4578 }
4579 currentTag = GNE_TAG_STOP_PARKINGAREA;
4580 {
4581 // set values of tag
4582 myTagProperties[currentTag] = GNETagProperties(currentTag,
4587 GUIIcon::STOPELEMENT, SUMO_TAG_STOP, TL("StopParkingArea"),
4588 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(255, 213, 213, 255));
4589 // set values of attributes
4592 TL("ParkingArea associated with this stop"));
4593 myTagProperties[currentTag].addAttribute(attrProperty);
4594
4595 // fill common stop attributes (no parking)
4596 fillCommonStopAttributes(myTagProperties[currentTag], false);
4597 }
4598}
4599
4600
4601void
4603 // declare empty GNEAttributeProperties
4604 GNEAttributeProperties attrProperty;
4605
4606 // fill waypoints ACs
4607 SumoXMLTag currentTag = GNE_TAG_WAYPOINT_LANE;
4608 {
4609 // set values of tag
4610 myTagProperties[currentTag] = GNETagProperties(currentTag,
4615 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointLane"),
4616 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4617 // set values of attributes
4620 TL("The name of the lane the waypoint shall be located at"));
4621 myTagProperties[currentTag].addAttribute(attrProperty);
4622
4625 TL("The begin position on the lane (the lower position on the lane) in meters"));
4626 myTagProperties[currentTag].addAttribute(attrProperty);
4627
4630 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"));
4631 myTagProperties[currentTag].addAttribute(attrProperty);
4632
4635 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
4636 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
4637 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
4638 "0");
4639 myTagProperties[currentTag].addAttribute(attrProperty);
4640
4643 TL("The lateral offset on the named lane at which the vehicle must waypoint"));
4644 myTagProperties[currentTag].addAttribute(attrProperty);
4645
4646 // fill common waypoint (stop) attributes
4647 fillCommonStopAttributes(myTagProperties[currentTag], true);
4648 }
4649 currentTag = GNE_TAG_WAYPOINT_BUSSTOP;
4650 {
4651 // set values of tag
4652 myTagProperties[currentTag] = GNETagProperties(currentTag,
4657 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointBusStop"),
4658 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4659 // set values of attributes
4662 TL("BusWaypoint associated with this waypoint"));
4663 myTagProperties[currentTag].addAttribute(attrProperty);
4664
4665 // fill common waypoint (stop) attributes
4666 fillCommonStopAttributes(myTagProperties[currentTag], true);
4667 }
4668 currentTag = GNE_TAG_WAYPOINT_TRAINSTOP;
4669 {
4670 // set values of tag
4671 myTagProperties[currentTag] = GNETagProperties(currentTag,
4676 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointTrainStop"),
4677 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4678 // set values of attributes
4681 TL("TrainWaypoint associated with this waypoint"));
4682 myTagProperties[currentTag].addAttribute(attrProperty);
4683
4684 // fill common waypoint (stop) attributes
4685 fillCommonStopAttributes(myTagProperties[currentTag], true);
4686 }
4687 currentTag = GNE_TAG_WAYPOINT_CONTAINERSTOP;
4688 {
4689 // set values of tag
4690 myTagProperties[currentTag] = GNETagProperties(currentTag,
4695 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointContainerStop"),
4696 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4697 // set values of attributes
4700 TL("ContainerWaypoint associated with this waypoint"));
4701 myTagProperties[currentTag].addAttribute(attrProperty);
4702
4703 // fill common waypoint (stop) attributes
4704 fillCommonStopAttributes(myTagProperties[currentTag], true);
4705 }
4707 {
4708 // set values of tag
4709 myTagProperties[currentTag] = GNETagProperties(currentTag,
4714 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointChargingStation"),
4715 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4716 // set values of attributes
4719 TL("ChargingStation associated with this waypoint"));
4720 myTagProperties[currentTag].addAttribute(attrProperty);
4721
4722 // fill common waypoint (stop) attributes
4723 fillCommonStopAttributes(myTagProperties[currentTag], true);
4724 }
4725 currentTag = GNE_TAG_WAYPOINT_PARKINGAREA;
4726 {
4727 // set values of tag
4728 myTagProperties[currentTag] = GNETagProperties(currentTag,
4733 GUIIcon::WAYPOINT, SUMO_TAG_STOP, TL("WaypointParkingArea"),
4734 {SUMO_TAG_ROUTE, SUMO_TAG_TRIP, SUMO_TAG_FLOW}, FXRGBA(240, 255, 205, 255));
4735 // set values of attributes
4738 TL("ParkingArea associated with this waypoint"));
4739 myTagProperties[currentTag].addAttribute(attrProperty);
4740
4741 // fill common waypoint (stop) attributes
4742 fillCommonStopAttributes(myTagProperties[currentTag], true);
4743 }
4744}
4745
4746
4747void
4749 // declare empty GNEAttributeProperties
4750 GNEAttributeProperties attrProperty;
4751
4752 // fill vehicle ACs
4753 SumoXMLTag currentTag = SUMO_TAG_PERSON;
4754 {
4755 // set values of tag
4756 myTagProperties[currentTag] = GNETagProperties(currentTag,
4761 GUIIcon::PERSON, currentTag, TL("Person"));
4762
4763 // add flow attributes
4765
4766 // set specific attribute depart (note: Persons doesn't support triggered and containerTriggered values)
4769 TL("The time step at which the person shall enter the network"),
4770 "0.00");
4771 myTagProperties[currentTag].addAttribute(attrProperty);
4772
4773 }
4774 currentTag = SUMO_TAG_PERSONFLOW;
4775 {
4776 // set values of tag
4777 myTagProperties[currentTag] = GNETagProperties(currentTag,
4782 GUIIcon::PERSONFLOW, currentTag, TL("PersonFlow"));
4783
4784 // add flow attributes
4786
4787 // add flow attributes
4789 }
4790}
4791
4792
4793void
4795 // declare empty GNEAttributeProperties
4796 GNEAttributeProperties attrProperty;
4797
4798 // fill vehicle ACs
4799 SumoXMLTag currentTag = SUMO_TAG_CONTAINER;
4800 {
4801 // set values of tag
4802 myTagProperties[currentTag] = GNETagProperties(currentTag,
4807 GUIIcon::CONTAINER, currentTag, TL("Container"));
4808
4809 // add flow attributes
4811
4814 TL("The time step at which the container shall enter the network"),
4815 "0.00");
4816 myTagProperties[currentTag].addAttribute(attrProperty);
4817 }
4818 currentTag = SUMO_TAG_CONTAINERFLOW;
4819 {
4820 // set values of tag
4821 myTagProperties[currentTag] = GNETagProperties(currentTag,
4826 GUIIcon::CONTAINERFLOW, currentTag, TL("ContainerFlow"));
4827
4828 // add common container attribute
4830
4831 // add flow attributes
4833 }
4834}
4835
4836
4837void
4839 // declare empty GNEAttributeProperties
4840 GNEAttributeProperties attrProperty;
4841 // declare common tag types and properties
4844 const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
4845 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
4846 const std::vector<SumoXMLTag> parents({SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW});
4847 const unsigned int color = FXRGBA(240, 255, 205, 255);
4848 const GUIIcon icon = GUIIcon::TRANSPORT_EDGE;
4849 const SumoXMLTag xmlTag = SUMO_TAG_TRANSPORT;
4850 // fill merged tag
4851 myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
4852 0,
4853 conflicts, icon, xmlTag, TL("Container"), parents, color);
4854 // set values of attributes
4856 // from edge
4858 {
4859 // set values of tag
4860 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4862 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("edge")), parents, color);
4863 // set values of attributes
4866 }
4867 currentTag = GNE_TAG_TRANSPORT_EDGE_TAZ;
4868 {
4869 // set values of tag
4870 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4872 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("taz")), parents, color);
4873 // set values of attributes
4876 }
4878 {
4879 // set values of tag
4880 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4882 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("junction")), parents, color);
4883 // set values of attributes
4886 }
4887 currentTag = GNE_TAG_TRANSPORT_EDGE_BUSSTOP;
4888 {
4889 // set values of tag
4890 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4892 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("busStop")), parents, color);
4893 // set values of attributes
4896 }
4898 {
4899 // set values of tag
4900 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4902 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("trainStop")), parents, color);
4903 // set values of attributes
4906 }
4908 {
4909 // set values of tag
4910 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4912 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("containerStop")), parents, color);
4913 // set values of attributes
4916 }
4918 {
4919 // set values of tag
4920 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4922 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("chargingStation")), parents, color);
4923 // set values of attributes
4926 }
4928 {
4929 // set values of tag
4930 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
4932 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("edge"), TL("parkingArea")), parents, color);
4933 // set values of attributes
4936 }
4937 // from taz
4938 currentTag = GNE_TAG_TRANSPORT_TAZ_EDGE;
4939 {
4940 // set values of tag
4941 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4943 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("taz")), parents, color);
4944 // set values of attributes
4947 }
4948 currentTag = GNE_TAG_TRANSPORT_TAZ_TAZ;
4949 {
4950 // set values of tag
4951 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4953 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("taz")), parents, color);
4954 // set values of attributes
4957 }
4958 currentTag = GNE_TAG_TRANSPORT_TAZ_JUNCTION;
4959 {
4960 // set values of tag
4961 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4963 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("junction")), parents, color);
4964 // set values of attributes
4967 }
4968 currentTag = GNE_TAG_TRANSPORT_TAZ_BUSSTOP;
4969 {
4970 // set values of tag
4971 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4973 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("busStop")), parents, color);
4974 // set values of attributes
4977 }
4979 {
4980 // set values of tag
4981 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4983 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("trainStop")), parents, color);
4984 // set values of attributes
4987 }
4989 {
4990 // set values of tag
4991 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
4993 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("containerStop")), parents, color);
4994 // set values of attributes
4997 }
4999 {
5000 // set values of tag
5001 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5003 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("chargingStation")), parents, color);
5004 // set values of attributes
5007 }
5009 {
5010 // set values of tag
5011 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5013 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("taz"), TL("parkingArea")), parents, color);
5014 // set values of attributes
5017 }
5018 // from junction
5020 {
5021 // set values of tag
5022 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5024 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("edge")), parents, color);
5025 // set values of attributes
5028 }
5029 currentTag = GNE_TAG_TRANSPORT_JUNCTION_TAZ;
5030 {
5031 // set values of tag
5032 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5034 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("taz")), parents, color);
5035 // set values of attributes
5038 }
5040 {
5041 // set values of tag
5042 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5044 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("junction")), parents, color);
5045 // set values of attributes
5048 }
5050 {
5051 // set values of tag
5052 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5054 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("busStop")), parents, color);
5055 // set values of attributes
5058 }
5060 {
5061 // set values of tag
5062 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5064 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("trainStop")), parents, color);
5065 // set values of attributes
5068 }
5070 {
5071 // set values of tag
5072 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5074 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("containerStop")), parents, color);
5075 // set values of attributes
5078 }
5080 {
5081 // set values of tag
5082 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5084 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("chargingStation")), parents, color);
5085 // set values of attributes
5088 }
5090 {
5091 // set values of tag
5092 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5094 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("junction"), TL("parkingArea")), parents, color);
5095 // set values of attributes
5098 }
5099 // from busStop
5100 currentTag = GNE_TAG_TRANSPORT_BUSSTOP_EDGE;
5101 {
5102 // set values of tag
5103 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5105 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("edge")), parents, color);
5106 // set values of attributes
5109 }
5110 currentTag = GNE_TAG_TRANSPORT_BUSSTOP_TAZ;
5111 {
5112 // set values of tag
5113 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5115 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("taz")), parents, color);
5116 // set values of attributes
5119 }
5121 {
5122 // set values of tag
5123 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5125 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("junction")), parents, color);
5126 // set values of attributes
5129 }
5131 {
5132 // set values of tag
5133 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5135 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("busStop")), parents, color);
5136 // set values of attributes
5139 }
5141 {
5142 // set values of tag
5143 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5145 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("trainStop")), parents, color);
5146 // set values of attributes
5149 }
5151 {
5152 // set values of tag
5153 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5155 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("containerStop")), parents, color);
5156 // set values of attributes
5159 }
5161 {
5162 // set values of tag
5163 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5165 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("chargingStation")), parents, color);
5166 // set values of attributes
5169 }
5171 {
5172 // set values of tag
5173 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5175 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("busStop"), TL("parkingArea")), parents, color);
5176 // set values of attributes
5179 }
5180 // from trainStop
5182 {
5183 // set values of tag
5184 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5186 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("edge")), parents, color);
5187 // set values of attributes
5190 }
5192 {
5193 // set values of tag
5194 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5196 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("taz")), parents, color);
5197 // set values of attributes
5200 }
5202 {
5203 // set values of tag
5204 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5206 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("junction")), parents, color);
5207 // set values of attributes
5210 }
5212 {
5213 // set values of tag
5214 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5216 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("busStop")), parents, color);
5217 // set values of attributes
5220 }
5222 {
5223 // set values of tag
5224 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5226 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("trainStop")), parents, color);
5227 // set values of attributes
5230 }
5232 {
5233 // set values of tag
5234 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5236 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("containerStop")), parents, color);
5237 // set values of attributes
5240 }
5242 {
5243 // set values of tag
5244 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5246 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("chargingStation")), parents, color);
5247 // set values of attributes
5250 }
5252 {
5253 // set values of tag
5254 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5256 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("trainStop"), TL("parkingArea")), parents, color);
5257 // set values of attributes
5260 }
5261 // from containerStop
5263 {
5264 // set values of tag
5265 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5267 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("edge")), parents, color);
5268 // set values of attributes
5271 }
5273 {
5274 // set values of tag
5275 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5277 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("taz")), parents, color);
5278 // set values of attributes
5281 }
5283 {
5284 // set values of tag
5285 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5287 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("junction")), parents, color);
5288 // set values of attributes
5291 }
5293 {
5294 // set values of tag
5295 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5297 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("busStop")), parents, color);
5298 // set values of attributes
5301 }
5303 {
5304 // set values of tag
5305 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5307 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("trainStop")), parents, color);
5308 // set values of attributes
5311 }
5313 {
5314 // set values of tag
5315 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5317 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("containerStop")), parents, color);
5318 // set values of attributes
5321 }
5323 {
5324 // set values of tag
5325 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5327 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("chargingStation")), parents, color);
5328 // set values of attributes
5331 }
5333 {
5334 // set values of tag
5335 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5337 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("containerStop"), TL("parkingArea")), parents, color);
5338
5339 // set values of attributes
5342 }
5343 // from chargingStation
5345 {
5346 // set values of tag
5347 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5349 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("edge")), parents, color);
5350 // set values of attributes
5353 }
5355 {
5356 // set values of tag
5357 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5359 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("taz")), parents, color);
5360 // set values of attributes
5363 }
5365 {
5366 // set values of tag
5367 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5369 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("junction")), parents, color);
5370 // set values of attributes
5373 }
5375 {
5376 // set values of tag
5377 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5379 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("busStop")), parents, color);
5380 // set values of attributes
5383 }
5385 {
5386 // set values of tag
5387 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5389 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("trainStop")), parents, color);
5390 // set values of attributes
5393 }
5395 {
5396 // set values of tag
5397 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5399 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("containerStop")), parents, color);
5400 // set values of attributes
5403 }
5405 {
5406 // set values of tag
5407 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5409 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("chargingStation")), parents, color);
5410 // set values of attributes
5413 }
5415 {
5416 // set values of tag
5417 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5419 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("chargingStation"), TL("parkingArea")), parents, color);
5420 // set values of attributes
5423 }
5424 // from parkingArea
5426 {
5427 // set values of tag
5428 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5430 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("edge")), parents, color);
5431 // set values of attributes
5434 }
5436 {
5437 // set values of tag
5438 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5440 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("taz")), parents, color);
5441 // set values of attributes
5444 }
5446 {
5447 // set values of tag
5448 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5450 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("junction")), parents, color);
5451 // set values of attributes
5454 }
5456 {
5457 // set values of tag
5458 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5460 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("busStop")), parents, color);
5461 // set values of attributes
5464 }
5466 {
5467 // set values of tag
5468 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5470 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("trainStop")), parents, color);
5471 // set values of attributes
5474 }
5476 {
5477 // set values of tag
5478 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5480 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("containerStop")), parents, color);
5481 // set values of attributes
5484 }
5486 {
5487 // set values of tag
5488 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5490 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("chargingStation")), parents, color);
5491 // set values of attributes
5494 }
5496 {
5497 // set values of tag
5498 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5500 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Transport"), TL("parkingArea"), TL("parkingArea")), parents, color);
5501 // set values of attributes
5504 }
5505}
5506
5507
5508void
5510 // declare empty GNEAttributeProperties
5511 GNEAttributeProperties attrProperty;
5512 // declare common tag types and properties
5515 const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
5516 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
5517 const std::vector<SumoXMLTag> parents({SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW});
5518 const unsigned int color = FXRGBA(210, 233, 255, 255);
5519 const GUIIcon icon = GUIIcon::TRANSHIP_EDGES;
5520 const SumoXMLTag xmlTag = SUMO_TAG_TRANSHIP;
5521 // fill merged tag
5522 myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
5523 0,
5524 conflicts, icon, xmlTag, TL("Tranship"), parents, color);
5525 // set values of attributes
5527 // fill tags
5529 {
5530 // set values of tag
5531 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5533 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("Tranship"), TL("edges")), parents, color);
5534 // set values of attributes
5537 }
5538 // from edge
5539 currentTag = GNE_TAG_TRANSHIP_EDGE_EDGE;
5540 {
5541 // set values of tag
5542 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5544 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("edge")), parents, color);
5545 // set values of attributes
5548 }
5549 currentTag = GNE_TAG_TRANSHIP_EDGE_TAZ;
5550 {
5551 // set values of tag
5552 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5554 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("taz")), parents, color);
5555 // set values of attributes
5558 }
5559 currentTag = GNE_TAG_TRANSHIP_EDGE_JUNCTION;
5560 {
5561 // set values of tag
5562 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5564 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("junction")), parents, color);
5565 // set values of attributes
5568 }
5569 currentTag = GNE_TAG_TRANSHIP_EDGE_BUSSTOP;
5570 {
5571 // set values of tag
5572 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5574 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("busStop")), parents, color);
5575 // set values of attributes
5578 }
5580 {
5581 // set values of tag
5582 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5584 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("trainStop")), parents, color);
5585 // set values of attributes
5588 }
5590 {
5591 // set values of tag
5592 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5594 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("containerStop")), parents, color);
5595 // set values of attributes
5598 }
5600 {
5601 // set values of tag
5602 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5604 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("chargingStation")), parents, color);
5605 // set values of attributes
5608 }
5610 {
5611 // set values of tag
5612 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5614 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("edge"), TL("parkingArea")), parents, color);
5615 // set values of attributes
5618 }
5619 // from taz
5620 currentTag = GNE_TAG_TRANSHIP_TAZ_EDGE;
5621 {
5622 // set values of tag
5623 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5625 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("taz")), parents, color);
5626 // set values of attributes
5629 }
5630 currentTag = GNE_TAG_TRANSHIP_TAZ_TAZ;
5631 {
5632 // set values of tag
5633 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5635 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("taz")), parents, color);
5636 // set values of attributes
5639 }
5640 currentTag = GNE_TAG_TRANSHIP_TAZ_JUNCTION;
5641 {
5642 // set values of tag
5643 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5645 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("junction")), parents, color);
5646 // set values of attributes
5649 }
5650 currentTag = GNE_TAG_TRANSHIP_TAZ_BUSSTOP;
5651 {
5652 // set values of tag
5653 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5655 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("busStop")), parents, color);
5656 // set values of attributes
5659 }
5660 currentTag = GNE_TAG_TRANSHIP_TAZ_TRAINSTOP;
5661 {
5662 // set values of tag
5663 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5665 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("trainStop")), parents, color);
5666 // set values of attributes
5669 }
5671 {
5672 // set values of tag
5673 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5675 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("containerStop")), parents, color);
5676 // set values of attributes
5679 }
5681 {
5682 // set values of tag
5683 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5685 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("chargingStation")), parents, color);
5686 // set values of attributes
5689 }
5691 {
5692 // set values of tag
5693 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5695 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("taz"), TL("parkingArea")), parents, color);
5696 // set values of attributes
5699 }
5700 // from junction
5701 currentTag = GNE_TAG_TRANSHIP_JUNCTION_EDGE;
5702 {
5703 // set values of tag
5704 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5706 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("edge")), parents, color);
5707 // set values of attributes
5710 }
5711 currentTag = GNE_TAG_TRANSHIP_JUNCTION_TAZ;
5712 {
5713 // set values of tag
5714 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5716 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("taz")), parents, color);
5717 // set values of attributes
5720 }
5722 {
5723 // set values of tag
5724 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5726 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("junction")), parents, color);
5727 // set values of attributes
5730 }
5732 {
5733 // set values of tag
5734 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5736 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("busStop")), parents, color);
5737 // set values of attributes
5740 }
5742 {
5743 // set values of tag
5744 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5746 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("trainStop")), parents, color);
5747 // set values of attributes
5750 }
5752 {
5753 // set values of tag
5754 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5756 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("containerStop")), parents, color);
5757 // set values of attributes
5760 }
5762 {
5763 // set values of tag
5764 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5766 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("chargingStation")), parents, color);
5767 // set values of attributes
5770 }
5772 {
5773 // set values of tag
5774 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5776 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("junction"), TL("parkingArea")), parents, color);
5777 // set values of attributes
5780 }
5781 // from busStop
5782 currentTag = GNE_TAG_TRANSHIP_BUSSTOP_EDGE;
5783 {
5784 // set values of tag
5785 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5787 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("edge")), parents, color);
5788 // set values of attributes
5791 }
5792 currentTag = GNE_TAG_TRANSHIP_BUSSTOP_TAZ;
5793 {
5794 // set values of tag
5795 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5797 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("taz")), parents, color);
5798 // set values of attributes
5801 }
5803 {
5804 // set values of tag
5805 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5807 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("junction")), parents, color);
5808 // set values of attributes
5811 }
5813 {
5814 // set values of tag
5815 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5817 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("busStop")), parents, color);
5818 // set values of attributes
5821 }
5823 {
5824 // set values of tag
5825 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5827 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("trainStop")), parents, color);
5828 // set values of attributes
5831 }
5833 {
5834 // set values of tag
5835 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5837 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("containerStop")), parents, color);
5838 // set values of attributes
5841 }
5843 {
5844 // set values of tag
5845 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5847 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("chargingStation")), parents, color);
5848 // set values of attributes
5851 }
5853 {
5854 // set values of tag
5855 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5857 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("busStop"), TL("parkingArea")), parents, color);
5858 // set values of attributes
5861 }
5862 // from trainStop
5864 {
5865 // set values of tag
5866 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5868 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("edge")), parents, color);
5869 // set values of attributes
5872 }
5873 currentTag = GNE_TAG_TRANSHIP_TRAINSTOP_TAZ;
5874 {
5875 // set values of tag
5876 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5878 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("taz")), parents, color);
5879 // set values of attributes
5882 }
5884 {
5885 // set values of tag
5886 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5888 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("junction")), parents, color);
5889 // set values of attributes
5892 }
5894 {
5895 // set values of tag
5896 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5898 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("busStop")), parents, color);
5899 // set values of attributes
5902 }
5904 {
5905 // set values of tag
5906 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5908 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("trainStop")), parents, color);
5909 // set values of attributes
5912 }
5914 {
5915 // set values of tag
5916 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5918 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("containerStop")), parents, color);
5919 // set values of attributes
5922 }
5924 {
5925 // set values of tag
5926 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5928 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("chargingStation")), parents, color);
5929 // set values of attributes
5932 }
5934 {
5935 // set values of tag
5936 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5938 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("trainStop"), TL("parkingArea")), parents, color);
5939 // set values of attributes
5942 }
5943 // from containerStop
5945 {
5946 // set values of tag
5947 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5949 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("edge")), parents, color);
5950 // set values of attributes
5953 }
5955 {
5956 // set values of tag
5957 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
5959 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("taz")), parents, color);
5960 // set values of attributes
5963 }
5965 {
5966 // set values of tag
5967 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5969 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("junction")), parents, color);
5970 // set values of attributes
5973 }
5975 {
5976 // set values of tag
5977 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5979 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("busStop")), parents, color);
5980 // set values of attributes
5983 }
5985 {
5986 // set values of tag
5987 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5989 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("trainStop")), parents, color);
5990 // set values of attributes
5993 }
5995 {
5996 // set values of tag
5997 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
5999 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("containerStop")), parents, color);
6000 // set values of attributes
6003 }
6005 {
6006 // set values of tag
6007 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6009 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("chargingStation")), parents, color);
6010 // set values of attributes
6013 }
6015 {
6016 // set values of tag
6017 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6019 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("containerStop"), TL("parkingArea")), parents, color);
6020 // set values of attributes
6023 }
6024 // from chargingStation
6026 {
6027 // set values of tag
6028 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6030 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("edge")), parents, color);
6031 // set values of attributes
6034 }
6036 {
6037 // set values of tag
6038 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6040 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("taz")), parents, color);
6041 // set values of attributes
6044 }
6046 {
6047 // set values of tag
6048 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6050 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("junction")), parents, color);
6051 // set values of attributes
6054 }
6056 {
6057 // set values of tag
6058 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6060 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("busStop")), parents, color);
6061 // set values of attributes
6064 }
6066 {
6067 // set values of tag
6068 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6070 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("trainStop")), parents, color);
6071 // set values of attributes
6074 }
6076 {
6077 // set values of tag
6078 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6080 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("containerStop")), parents, color);
6081 // set values of attributes
6084 }
6086 {
6087 // set values of tag
6088 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6090 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("chargingStation")), parents, color);
6091 // set values of attributes
6094 }
6096 {
6097 // set values of tag
6098 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6100 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("chargingStation"), TL("parkingArea")), parents, color);
6101 // set values of attributes
6104 }
6105 // from parkingArea
6107 {
6108 // set values of tag
6109 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6111 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("edge")), parents, color);
6112 // set values of attributes
6115 }
6117 {
6118 // set values of tag
6119 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6121 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("taz")), parents, color);
6122 // set values of attributes
6125 }
6127 {
6128 // set values of tag
6129 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6131 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("junction")), parents, color);
6132 // set values of attributes
6135 }
6137 {
6138 // set values of tag
6139 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6141 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("busStop")), parents, color);
6142 // set values of attributes
6145 }
6147 {
6148 // set values of tag
6149 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6151 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("trainStop")), parents, color);
6152 // set values of attributes
6155 }
6157 {
6158 // set values of tag
6159 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6161 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("containerStop")), parents, color);
6162 // set values of attributes
6165 }
6167 {
6168 // set values of tag
6169 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6171 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("chargingStation")), parents, color);
6172 // set values of attributes
6175 }
6177 {
6178 // set values of tag
6179 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6181 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Tranship"), TL("parkingArea"), TL("parkingArea")), parents, color);
6182 // set values of attributes
6185 }
6186}
6187
6188
6189void
6191 // declare empty GNEAttributeProperties
6192 GNEAttributeProperties attrProperty;
6193 // declare common tag types and properties
6196 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
6197 const std::vector<SumoXMLTag> parents({SUMO_TAG_CONTAINER, SUMO_TAG_CONTAINERFLOW});
6198 const unsigned int color = FXRGBA(255, 213, 213, 255);
6199 const GUIIcon icon = GUIIcon::STOPELEMENT;
6200 const SumoXMLTag xmlTag = SUMO_TAG_STOP;
6201 // fill merged tag
6203 0,
6204 conflicts, icon, xmlTag, TL("ContainerStop"), parents, color);
6205 // set values of attributes
6207 // fill tags
6209 {
6210 // set values of tag
6211 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6213 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("ContainerStop"), TL("edge")), parents, color);
6214
6215 // set values of attributes
6218 }
6219 currentTag = GNE_TAG_STOPCONTAINER_BUSSTOP;
6220 {
6221 // set values of tag
6222 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6224 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("ContainerStop"), TL("busStop")), parents, color);
6225
6226 // set values of attributes
6229 }
6231 {
6232 // set values of tag
6233 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6235 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("ContainerStop"), TL("trainStop")), parents, color);
6236
6237 // set values of attributes
6240 }
6242 {
6243 // set values of tag
6244 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6246 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("ContainerStop"), TL("containerStop")), parents, color);
6247
6248 // set values of attributes
6251 }
6253 {
6254 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6256 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("ContainerStop"), TL("chargingStation")), parents, color);
6257
6258 // set values of attributes
6261 }
6263 {
6264 // set values of tag
6265 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6267 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("ContainerStop"), TL("parkingArea")), parents, color);
6268
6269 // set values of attributes
6272 }
6273}
6274
6275
6276void
6278 // declare empty GNEAttributeProperties
6279 GNEAttributeProperties attrProperty;
6280 // declare common tag types and properties
6283 const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
6284 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
6285 const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
6286 const unsigned int color = FXRGBA(253, 255, 206, 255);
6287 const GUIIcon icon = GUIIcon::PERSONTRIP_EDGE;
6288 const SumoXMLTag xmlTag = SUMO_TAG_PERSONTRIP;
6289 // fill merged tag
6290 myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
6291 0,
6292 conflicts, icon, xmlTag, TL("PersonTrip"), parents, color);
6293 // set values of attributes
6295 // from edge
6297 {
6298 // set values of tag
6299 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6301 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("edge")), parents, color);
6302 // set values of attributes
6305 }
6306 currentTag = GNE_TAG_PERSONTRIP_EDGE_TAZ;
6307 {
6308 // set values of tag
6309 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6311 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("taz")), parents, color);
6312 // set values of attributes
6315 }
6317 {
6318 // set values of tag
6319 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6321 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("junction")), parents, color);
6322 // set values of attributes
6325 }
6327 {
6328 // set values of tag
6329 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6331 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("busStop")), parents, color);
6332 // set values of attributes
6335 }
6337 {
6338 // set values of tag
6339 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6341 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("trainStop")), parents, color);
6342 // set values of attributes
6345 }
6347 {
6348 // set values of tag
6349 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6351 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("containerStop")), parents, color);
6352 // set values of attributes
6355 }
6357 {
6358 // set values of tag
6359 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6361 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("chargingStation")), parents, color);
6362 // set values of attributes
6365 }
6367 {
6368 // set values of tag
6369 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6371 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("edge"), TL("parkingArea")), parents, color);
6372 // set values of attributes
6375 }
6376 // from taz
6377 currentTag = GNE_TAG_PERSONTRIP_TAZ_EDGE;
6378 {
6379 // set values of tag
6380 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6382 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("taz")), parents, color);
6383 // set values of attributes
6386 }
6387 currentTag = GNE_TAG_PERSONTRIP_TAZ_TAZ;
6388 {
6389 // set values of tag
6390 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6392 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("taz")), parents, color);
6393 // set values of attributes
6396 }
6398 {
6399 // set values of tag
6400 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6402 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("junction")), parents, color);
6403 // set values of attributes
6406 }
6407 currentTag = GNE_TAG_PERSONTRIP_TAZ_BUSSTOP;
6408 {
6409 // set values of tag
6410 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6412 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("busStop")), parents, color);
6413 // set values of attributes
6416 }
6418 {
6419 // set values of tag
6420 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6422 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("trainStop")), parents, color);
6423 // set values of attributes
6426 }
6428 {
6429 // set values of tag
6430 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6432 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("containerStop")), parents, color);
6433 // set values of attributes
6436 }
6438 {
6439 // set values of tag
6440 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6442 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("chargingStation")), parents, color);
6443 // set values of attributes
6446 }
6448 {
6449 // set values of tag
6450 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6452 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("taz"), TL("parkingArea")), parents, color);
6453 // set values of attributes
6456 }
6457 // from junction
6459 {
6460 // set values of tag
6461 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6463 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("edge")), parents, color);
6464 // set values of attributes
6467 }
6469 {
6470 // set values of tag
6471 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6473 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("taz")), parents, color);
6474 // set values of attributes
6477 }
6479 {
6480 // set values of tag
6481 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6483 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("junction")), parents, color);
6484 // set values of attributes
6487 }
6489 {
6490 // set values of tag
6491 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6493 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("busStop")), parents, color);
6494 // set values of attributes
6497 }
6499 {
6500 // set values of tag
6501 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6503 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("trainStop")), parents, color);
6504 // set values of attributes
6507 }
6509 {
6510 // set values of tag
6511 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6513 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("containerStop")), parents, color);
6514 // set values of attributes
6517 }
6519 {
6520 // set values of tag
6521 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6523 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("chargingStation")), parents, color);
6524 // set values of attributes
6527 }
6529 {
6530 // set values of tag
6531 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6533 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("junction"), TL("parkingArea")), parents, color);
6534 // set values of attributes
6537 }
6538 // from busStop
6540 {
6541 // set values of tag
6542 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6544 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("edge")), parents, color);
6545 // set values of attributes
6548 }
6549 currentTag = GNE_TAG_PERSONTRIP_BUSSTOP_TAZ;
6550 {
6551 // set values of tag
6552 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6554 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("taz")), parents, color);
6555 // set values of attributes
6558 }
6560 {
6561 // set values of tag
6562 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6564 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("junction")), parents, color);
6565 // set values of attributes
6568 }
6570 {
6571 // set values of tag
6572 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6574 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("busStop")), parents, color);
6575 // set values of attributes
6578 }
6580 {
6581 // set values of tag
6582 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6584 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("trainStop")), parents, color);
6585 // set values of attributes
6588 }
6590 {
6591 // set values of tag
6592 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6594 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("containerStop")), parents, color);
6595 // set values of attributes
6598 }
6600 {
6601 // set values of tag
6602 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6604 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("chargingStation")), parents, color);
6605 // set values of attributes
6608 }
6610 {
6611 // set values of tag
6612 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6614 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("busStop"), TL("parkingArea")), parents, color);
6615 // set values of attributes
6618 }
6619 // from trainStop
6621 {
6622 // set values of tag
6623 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6625 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("edge")), parents, color);
6626 // set values of attributes
6629 }
6631 {
6632 // set values of tag
6633 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6635 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("taz")), parents, color);
6636 // set values of attributes
6639 }
6641 {
6642 // set values of tag
6643 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6645 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("junction")), parents, color);
6646 // set values of attributes
6649 }
6651 {
6652 // set values of tag
6653 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6655 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("busStop")), parents, color);
6656 // set values of attributes
6659 }
6661 {
6662 // set values of tag
6663 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6665 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("trainStop")), parents, color);
6666 // set values of attributes
6669 }
6671 {
6672 // set values of tag
6673 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6675 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("containerStop")), parents, color);
6676 // set values of attributes
6679 }
6681 {
6682 // set values of tag
6683 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6685 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("chargingStation")), parents, color);
6686 // set values of attributes
6689 }
6691 {
6692 // set values of tag
6693 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6695 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("trainStop"), TL("parkingArea")), parents, color);
6696 // set values of attributes
6699 }
6700 // from containerStop
6702 {
6703 // set values of tag
6704 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6706 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("edge")), parents, color);
6707 // set values of attributes
6710 }
6712 {
6713 // set values of tag
6714 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6716 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("taz")), parents, color);
6717 // set values of attributes
6720 }
6722 {
6723 // set values of tag
6724 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6726 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("junction")), parents, color);
6727 // set values of attributes
6730 }
6732 {
6733 // set values of tag
6734 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6736 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("busStop")), parents, color);
6737 // set values of attributes
6740 }
6742 {
6743 // set values of tag
6744 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6746 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("trainStop")), parents, color);
6747 // set values of attributes
6750 }
6752 {
6753 // set values of tag
6754 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6756 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("containerStop")), parents, color);
6757 // set values of attributes
6760 }
6762 {
6763 // set values of tag
6764 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6766 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("chargingStation")), parents, color);
6767 // set values of attributes
6770 }
6772 {
6773 // set values of tag
6774 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6776 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("containerStop"), TL("parkingArea")), parents, color);
6777 // set values of attributes
6780 }
6781 // from chargingStation
6783 {
6784 // set values of tag
6785 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6787 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("edge")), parents, color);
6788 // set values of attributes
6791 }
6793 {
6794 // set values of tag
6795 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6797 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("taz")), parents, color);
6798 // set values of attributes
6801 }
6803 {
6804 // set values of tag
6805 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6807 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("junction")), parents, color);
6808 // set values of attributes
6811 }
6813 {
6814 // set values of tag
6815 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6817 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("busStop")), parents, color);
6818 // set values of attributes
6821 }
6823 {
6824 // set values of tag
6825 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6827 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("trainStop")), parents, color);
6828 // set values of attributes
6831 }
6833 {
6834 // set values of tag
6835 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6837 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("containerStop")), parents, color);
6838 // set values of attributes
6841 }
6843 {
6844 // set values of tag
6845 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6847 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("chargingStation")), parents, color);
6848 // set values of attributes
6851 }
6853 {
6854 // set values of tag
6855 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6857 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("chargingStation"), TL("parkingArea")), parents, color);
6858 // set values of attributes
6861 }
6862 // from parkingArea
6864 {
6865 // set values of tag
6866 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6868 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("edge")), parents, color);
6869 // set values of attributes
6872 }
6874 {
6875 // set values of tag
6876 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
6878 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("taz")), parents, color);
6879 // set values of attributes
6882 }
6884 {
6885 // set values of tag
6886 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6888 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("junction")), parents, color);
6889 // set values of attributes
6892 }
6894 {
6895 // set values of tag
6896 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6898 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("busStop")), parents, color);
6899 // set values of attributes
6902 }
6904 {
6905 // set values of tag
6906 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6908 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("trainStop")), parents, color);
6909 // set values of attributes
6912 }
6914 {
6915 // set values of tag
6916 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6918 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("containerStop")), parents, color);
6919 // set values of attributes
6922 }
6924 {
6925 // set values of tag
6926 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6928 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("chargingStation")), parents, color);
6929 // set values of attributes
6932 }
6934 {
6935 // set values of tag
6936 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6938 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("PersonTrip"), TL("parkingArea"), TL("parkingArea")), parents, color);
6939 // set values of attributes
6942 }
6943}
6944
6945
6946void
6948 // declare empty GNEAttributeProperties
6949 GNEAttributeProperties attrProperty;
6950 // declare common tag types and properties
6953 const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
6954 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
6955 const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
6956 const unsigned int color = FXRGBA(240, 255, 205, 255);
6957 const GUIIcon icon = GUIIcon::WALK_EDGES;
6958 const SumoXMLTag xmlTag = SUMO_TAG_WALK;
6959 // fill merged tag
6960 myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
6961 0,
6962 conflicts, icon, xmlTag, TL("Walk"), parents, color);
6963 // set values of attributes
6965 // fill tags
6966 SumoXMLTag currentTag = GNE_TAG_WALK_EDGES;
6967 {
6968 // set values of tag
6969 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6971 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("Walk"), TL("edges")), parents, color);
6972 // set values of attributes
6975 }
6976 currentTag = GNE_TAG_WALK_ROUTE;
6977 {
6978 // set values of tag
6979 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6981 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("Walk"), TL("route")), parents, color);
6982 // set values of attributes
6985 }
6986 // from edge
6987 currentTag = GNE_TAG_WALK_EDGE_EDGE;
6988 {
6989 // set values of tag
6990 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
6992 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("edge")), parents, color);
6993 // set values of attributes
6996 }
6997 currentTag = GNE_TAG_WALK_EDGE_TAZ;
6998 {
6999 // set values of tag
7000 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7002 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("taz")), parents, color);
7003 // set values of attributes
7006 }
7007 currentTag = GNE_TAG_WALK_EDGE_JUNCTION;
7008 {
7009 // set values of tag
7010 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7012 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("junction")), parents, color);
7013 // set values of attributes
7016 }
7017 currentTag = GNE_TAG_WALK_EDGE_BUSSTOP;
7018 {
7019 // set values of tag
7020 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7022 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("busStop")), parents, color);
7023 // set values of attributes
7026 }
7027 currentTag = GNE_TAG_WALK_EDGE_TRAINSTOP;
7028 {
7029 // set values of tag
7030 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7032 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("trainStop")), parents, color);
7033 // set values of attributes
7036 }
7038 {
7039 // set values of tag
7040 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7042 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("containerStop")), parents, color);
7043 // set values of attributes
7046 }
7048 {
7049 // set values of tag
7050 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7052 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("chargingStation")), parents, color);
7053 // set values of attributes
7056 }
7057 currentTag = GNE_TAG_WALK_EDGE_PARKINGAREA;
7058 {
7059 // set values of tag
7060 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7062 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("edge"), TL("parkingArea")), parents, color);
7063 // set values of attributes
7066 }
7067 // from taz
7068 currentTag = GNE_TAG_WALK_TAZ_EDGE;
7069 {
7070 // set values of tag
7071 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7073 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("taz")), parents, color);
7074 // set values of attributes
7077 }
7078 currentTag = GNE_TAG_WALK_TAZ_TAZ;
7079 {
7080 // set values of tag
7081 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7083 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("taz")), parents, color);
7084 // set values of attributes
7087 }
7088 currentTag = GNE_TAG_WALK_TAZ_JUNCTION;
7089 {
7090 // set values of tag
7091 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7093 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("junction")), parents, color);
7094 // set values of attributes
7097 }
7098 currentTag = GNE_TAG_WALK_TAZ_BUSSTOP;
7099 {
7100 // set values of tag
7101 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7103 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("busStop")), parents, color);
7104 // set values of attributes
7107 }
7108 currentTag = GNE_TAG_WALK_TAZ_TRAINSTOP;
7109 {
7110 // set values of tag
7111 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7113 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("trainStop")), parents, color);
7114 // set values of attributes
7117 }
7118 currentTag = GNE_TAG_WALK_TAZ_CONTAINERSTOP;
7119 {
7120 // set values of tag
7121 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7123 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("containerStop")), parents, color);
7124 // set values of attributes
7127 }
7129 {
7130 // set values of tag
7131 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7133 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("chargingStation")), parents, color);
7134 // set values of attributes
7137 }
7138 currentTag = GNE_TAG_WALK_TAZ_PARKINGAREA;
7139 {
7140 // set values of tag
7141 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7143 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("taz"), TL("parkingArea")), parents, color);
7144 // set values of attributes
7147 }
7148 // from junction
7149 currentTag = GNE_TAG_WALK_JUNCTION_EDGE;
7150 {
7151 // set values of tag
7152 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7154 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("edge")), parents, color);
7155 // set values of attributes
7158 }
7159 currentTag = GNE_TAG_WALK_JUNCTION_TAZ;
7160 {
7161 // set values of tag
7162 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7164 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("taz")), parents, color);
7165 // set values of attributes
7168 }
7169 currentTag = GNE_TAG_WALK_JUNCTION_JUNCTION;
7170 {
7171 // set values of tag
7172 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7174 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("junction")), parents, color);
7175 // set values of attributes
7178 }
7179 currentTag = GNE_TAG_WALK_JUNCTION_BUSSTOP;
7180 {
7181 // set values of tag
7182 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7184 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("busStop")), parents, color);
7185 // set values of attributes
7188 }
7190 {
7191 // set values of tag
7192 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7194 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("trainStop")), parents, color);
7195 // set values of attributes
7198 }
7200 {
7201 // set values of tag
7202 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7204 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("containerStop")), parents, color);
7205 // set values of attributes
7208 }
7210 {
7211 // set values of tag
7212 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7214 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("chargingStation")), parents, color);
7215 // set values of attributes
7218 }
7220 {
7221 // set values of tag
7222 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7224 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("junction"), TL("parkingArea")), parents, color);
7225 // set values of attributes
7228 }
7229 // from busStop
7230 currentTag = GNE_TAG_WALK_BUSSTOP_EDGE;
7231 {
7232 // set values of tag
7233 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7235 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("edge")), parents, color);
7236 // set values of attributes
7239 }
7240 currentTag = GNE_TAG_WALK_BUSSTOP_TAZ;
7241 {
7242 // set values of tag
7243 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7245 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("taz")), parents, color);
7246 // set values of attributes
7249 }
7250 currentTag = GNE_TAG_WALK_BUSSTOP_JUNCTION;
7251 {
7252 // set values of tag
7253 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7255 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("junction")), parents, color);
7256 // set values of attributes
7259 }
7260 currentTag = GNE_TAG_WALK_BUSSTOP_BUSSTOP;
7261 {
7262 // set values of tag
7263 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7265 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("busStop")), parents, color);
7266 // set values of attributes
7269 }
7270 currentTag = GNE_TAG_WALK_BUSSTOP_TRAINSTOP;
7271 {
7272 // set values of tag
7273 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7275 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("trainStop")), parents, color);
7276 // set values of attributes
7279 }
7281 {
7282 // set values of tag
7283 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7285 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("containerStop")), parents, color);
7286 // set values of attributes
7289 }
7291 {
7292 // set values of tag
7293 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7295 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("chargingStation")), parents, color);
7296 // set values of attributes
7299 }
7301 {
7302 // set values of tag
7303 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7305 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("busStop"), TL("parkingArea")), parents, color);
7306 // set values of attributes
7309 }
7310 // from trainStop
7311 currentTag = GNE_TAG_WALK_TRAINSTOP_EDGE;
7312 {
7313 // set values of tag
7314 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7316 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("edge")), parents, color);
7317 // set values of attributes
7320 }
7321 currentTag = GNE_TAG_WALK_TRAINSTOP_TAZ;
7322 {
7323 // set values of tag
7324 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7326 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("taz")), parents, color);
7327 // set values of attributes
7330 }
7332 {
7333 // set values of tag
7334 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7336 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("junction")), parents, color);
7337 // set values of attributes
7340 }
7341 currentTag = GNE_TAG_WALK_TRAINSTOP_BUSSTOP;
7342 {
7343 // set values of tag
7344 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7346 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("busStop")), parents, color);
7347 // set values of attributes
7350 }
7352 {
7353 // set values of tag
7354 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7356 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("trainStop")), parents, color);
7357 // set values of attributes
7360 }
7362 {
7363 // set values of tag
7364 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7366 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("containerStop")), parents, color);
7367 // set values of attributes
7370 }
7372 {
7373 // set values of tag
7374 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7376 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("chargingStation")), parents, color);
7377 // set values of attributes
7380 }
7382 {
7383 // set values of tag
7384 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7386 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("trainStop"), TL("parkingArea")), parents, color);
7387 // set values of attributes
7390 }
7391 // from containerStop
7393 {
7394 // set values of tag
7395 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7397 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("edge")), parents, color);
7398 // set values of attributes
7401 }
7402 currentTag = GNE_TAG_WALK_CONTAINERSTOP_TAZ;
7403 {
7404 // set values of tag
7405 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7407 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("taz")), parents, color);
7408 // set values of attributes
7411 }
7413 {
7414 // set values of tag
7415 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7417 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("junction")), parents, color);
7418 // set values of attributes
7421 }
7423 {
7424 // set values of tag
7425 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7427 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("busStop")), parents, color);
7428 // set values of attributes
7431 }
7433 {
7434 // set values of tag
7435 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7437 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("trainStop")), parents, color);
7438 // set values of attributes
7441 }
7443 {
7444 // set values of tag
7445 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7447 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("containerStop")), parents, color);
7448 // set values of attributes
7451 }
7453 {
7454 // set values of tag
7455 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7457 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("chargingStation")), parents, color);
7458 // set values of attributes
7461 }
7463 {
7464 // set values of tag
7465 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7467 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("containerStop"), TL("parkingArea")), parents, color);
7468 // set values of attributes
7471 }
7472 // from chargingStation
7474 {
7475 // set values of tag
7476 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7478 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("edge")), parents, color);
7479 // set values of attributes
7482 }
7484 {
7485 // set values of tag
7486 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7488 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("taz")), parents, color);
7489 // set values of attributes
7492 }
7494 {
7495 // set values of tag
7496 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7498 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("junction")), parents, color);
7499 // set values of attributes
7502 }
7504 {
7505 // set values of tag
7506 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7508 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("busStop")), parents, color);
7509 // set values of attributes
7512 }
7514 {
7515 // set values of tag
7516 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7518 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("trainStop")), parents, color);
7519 // set values of attributes
7522 }
7524 {
7525 // set values of tag
7526 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7528 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("containerStop")), parents, color);
7529 // set values of attributes
7532 }
7534 {
7535 // set values of tag
7536 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7538 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("chargingStation")), parents, color);
7539 // set values of attributes
7542 }
7544 {
7545 // set values of tag
7546 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7548 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("chargingStation"), TL("parkingArea")), parents, color);
7549 // set values of attributes
7552 }
7553 // from parkingArea
7554 currentTag = GNE_TAG_WALK_PARKINGAREA_EDGE;
7555 {
7556 // set values of tag
7557 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7559 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("edge")), parents, color);
7560 // set values of attributes
7563 }
7564 currentTag = GNE_TAG_WALK_PARKINGAREA_TAZ;
7565 {
7566 // set values of tag
7567 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7569 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("taz")), parents, color);
7570 // set values of attributes
7573 }
7575 {
7576 // set values of tag
7577 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7579 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("junction")), parents, color);
7580 // set values of attributes
7583 }
7585 {
7586 // set values of tag
7587 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7589 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("busStop")), parents, color);
7590 // set values of attributes
7593 }
7595 {
7596 // set values of tag
7597 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7599 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("trainStop")), parents, color);
7600 // set values of attributes
7603 }
7605 {
7606 // set values of tag
7607 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7609 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("containerStop")), parents, color);
7610 // set values of attributes
7613 }
7615 {
7616 // set values of tag
7617 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7619 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("chargingStation")), parents, color);
7620 // set values of attributes
7623 }
7625 {
7626 // set values of tag
7627 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7629 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Walk"), TL("parkingArea"), TL("parkingArea")), parents, color);
7630 // set values of attributes
7633 }
7634}
7635
7636
7637void
7639 // declare empty GNEAttributeProperties
7640 GNEAttributeProperties attrProperty;
7641 // declare common tag types and properties
7644 const int tagPropertyTAZ = GNETagProperties::TagProperty::RTREE | tagProperty;
7645 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
7646 const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
7647 const unsigned int color = FXRGBA(253, 255, 206, 255);
7648 const GUIIcon icon = GUIIcon::RIDE_EDGE;
7649 const SumoXMLTag xmlTag = SUMO_TAG_RIDE;
7650 // fill merged tag
7651 myMergedPlanTagProperties[xmlTag] = GNETagProperties(xmlTag, tagType, tagProperty,
7652 0,
7653 conflicts, icon, xmlTag, TL("PersonTrip"), parents, color);
7654 // set values of attributes
7656 // from edge
7658 {
7659 // set values of tag
7660 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7662 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("edge")), parents, color);
7663 // set values of attributes
7666 }
7667 currentTag = GNE_TAG_RIDE_EDGE_TAZ;
7668 {
7669 // set values of tag
7670 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7672 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("taz")), parents, color);
7673 // set values of attributes
7676 }
7677 currentTag = GNE_TAG_RIDE_EDGE_JUNCTION;
7678 {
7679 // set values of tag
7680 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7682 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("junction")), parents, color);
7683 // set values of attributes
7686 }
7687 currentTag = GNE_TAG_RIDE_EDGE_BUSSTOP;
7688 {
7689 // set values of tag
7690 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7692 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("busStop")), parents, color);
7693 // set values of attributes
7696 }
7697 currentTag = GNE_TAG_RIDE_EDGE_TRAINSTOP;
7698 {
7699 // set values of tag
7700 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7702 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("trainStop")), parents, color);
7703 // set values of attributes
7706 }
7708 {
7709 // set values of tag
7710 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7712 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("containerStop")), parents, color);
7713 // set values of attributes
7716 }
7718 {
7719 // set values of tag
7720 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7722 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("chargingStation")), parents, color);
7723 // set values of attributes
7726 }
7727 currentTag = GNE_TAG_RIDE_EDGE_PARKINGAREA;
7728 {
7729 // set values of tag
7730 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7732 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("edge"), TL("parkingArea")), parents, color);
7733 // set values of attributes
7736 }
7737 // from taz
7738 currentTag = GNE_TAG_RIDE_TAZ_EDGE;
7739 {
7740 // set values of tag
7741 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7743 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("taz")), parents, color);
7744 // set values of attributes
7747 }
7748 currentTag = GNE_TAG_RIDE_TAZ_TAZ;
7749 {
7750 // set values of tag
7751 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7753 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("taz")), parents, color);
7754 // set values of attributes
7757 }
7758 currentTag = GNE_TAG_RIDE_TAZ_JUNCTION;
7759 {
7760 // set values of tag
7761 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7763 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("junction")), parents, color);
7764 // set values of attributes
7767 }
7768 currentTag = GNE_TAG_RIDE_TAZ_BUSSTOP;
7769 {
7770 // set values of tag
7771 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7773 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("busStop")), parents, color);
7774 // set values of attributes
7777 }
7778 currentTag = GNE_TAG_RIDE_TAZ_TRAINSTOP;
7779 {
7780 // set values of tag
7781 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7783 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("trainStop")), parents, color);
7784 // set values of attributes
7787 }
7788 currentTag = GNE_TAG_RIDE_TAZ_CONTAINERSTOP;
7789 {
7790 // set values of tag
7791 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7793 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("containerStop")), parents, color);
7794 // set values of attributes
7797 }
7799 {
7800 // set values of tag
7801 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7803 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("chargingStation")), parents, color);
7804 // set values of attributes
7807 }
7808 currentTag = GNE_TAG_RIDE_TAZ_PARKINGAREA;
7809 {
7810 // set values of tag
7811 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7813 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("taz"), TL("parkingArea")), parents, color);
7814 // set values of attributes
7817 }
7818 // from junction
7819 currentTag = GNE_TAG_RIDE_JUNCTION_EDGE;
7820 {
7821 // set values of tag
7822 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7824 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("edge")), parents, color);
7825 // set values of attributes
7828 }
7829 currentTag = GNE_TAG_RIDE_JUNCTION_TAZ;
7830 {
7831 // set values of tag
7832 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7834 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("taz")), parents, color);
7835 // set values of attributes
7838 }
7839 currentTag = GNE_TAG_RIDE_JUNCTION_JUNCTION;
7840 {
7841 // set values of tag
7842 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7844 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("junction")), parents, color);
7845 // set values of attributes
7848 }
7849 currentTag = GNE_TAG_RIDE_JUNCTION_BUSSTOP;
7850 {
7851 // set values of tag
7852 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7854 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("busStop")), parents, color);
7855 // set values of attributes
7858 }
7860 {
7861 // set values of tag
7862 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7864 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("trainStop")), parents, color);
7865 // set values of attributes
7868 }
7870 {
7871 // set values of tag
7872 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7874 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("containerStop")), parents, color);
7875 // set values of attributes
7878 }
7880 {
7881 // set values of tag
7882 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7884 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("chargingStation")), parents, color);
7885 // set values of attributes
7888 }
7890 {
7891 // set values of tag
7892 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7894 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("junction"), TL("parkingArea")), parents, color);
7895 // set values of attributes
7898 }
7899 // from busStop
7900 currentTag = GNE_TAG_RIDE_BUSSTOP_EDGE;
7901 {
7902 // set values of tag
7903 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7905 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("edge")), parents, color);
7906 // set values of attributes
7909 }
7910 currentTag = GNE_TAG_RIDE_BUSSTOP_TAZ;
7911 {
7912 // set values of tag
7913 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7915 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("taz")), parents, color);
7916 // set values of attributes
7919 }
7920 currentTag = GNE_TAG_RIDE_BUSSTOP_JUNCTION;
7921 {
7922 // set values of tag
7923 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7925 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("junction")), parents, color);
7926 // set values of attributes
7929 }
7930 currentTag = GNE_TAG_RIDE_BUSSTOP_BUSSTOP;
7931 {
7932 // set values of tag
7933 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7935 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("busStop")), parents, color);
7936 // set values of attributes
7939 }
7940 currentTag = GNE_TAG_RIDE_BUSSTOP_TRAINSTOP;
7941 {
7942 // set values of tag
7943 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7945 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("trainStop")), parents, color);
7946 // set values of attributes
7949 }
7951 {
7952 // set values of tag
7953 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7955 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("containerStop")), parents, color);
7956 // set values of attributes
7959 }
7961 {
7962 // set values of tag
7963 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7965 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("chargingStation")), parents, color);
7966 // set values of attributes
7969 }
7971 {
7972 // set values of tag
7973 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7975 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("busStop"), TL("parkingArea")), parents, color);
7976 // set values of attributes
7979 }
7980 // from trainStop
7981 currentTag = GNE_TAG_RIDE_TRAINSTOP_EDGE;
7982 {
7983 // set values of tag
7984 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
7986 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("edge")), parents, color);
7987 // set values of attributes
7990 }
7991 currentTag = GNE_TAG_RIDE_TRAINSTOP_TAZ;
7992 {
7993 // set values of tag
7994 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
7996 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("taz")), parents, color);
7997 // set values of attributes
8000 }
8002 {
8003 // set values of tag
8004 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8006 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("junction")), parents, color);
8007 // set values of attributes
8010 }
8011 currentTag = GNE_TAG_RIDE_TRAINSTOP_BUSSTOP;
8012 {
8013 // set values of tag
8014 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8016 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("busStop")), parents, color);
8017 // set values of attributes
8020 }
8022 {
8023 // set values of tag
8024 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8026 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("trainStop")), parents, color);
8027 // set values of attributes
8030 }
8032 {
8033 // set values of tag
8034 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8036 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("containerStop")), parents, color);
8037 // set values of attributes
8040 }
8042 {
8043 // set values of tag
8044 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8046 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("chargingStation")), parents, color);
8047 // set values of attributes
8050 }
8052 {
8053 // set values of tag
8054 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8056 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("trainStop"), TL("parkingArea")), parents, color);
8057 // set values of attributes
8060 }
8061 // from containerStop
8063 {
8064 // set values of tag
8065 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8067 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("edge")), parents, color);
8068 // set values of attributes
8071 }
8072 currentTag = GNE_TAG_RIDE_CONTAINERSTOP_TAZ;
8073 {
8074 // set values of tag
8075 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
8077 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("taz")), parents, color);
8078 // set values of attributes
8081 }
8083 {
8084 // set values of tag
8085 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8087 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("junction")), parents, color);
8088 // set values of attributes
8091 }
8093 {
8094 // set values of tag
8095 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8097 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("busStop")), parents, color);
8098 // set values of attributes
8101 }
8103 {
8104 // set values of tag
8105 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8107 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("trainStop")), parents, color);
8108 // set values of attributes
8111 }
8113 {
8114 // set values of tag
8115 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8117 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("containerStop")), parents, color);
8118 // set values of attributes
8121 }
8123 {
8124 // set values of tag
8125 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8127 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("chargingStation")), parents, color);
8128 // set values of attributes
8131 }
8133 {
8134 // set values of tag
8135 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8137 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("containerStop"), TL("parkingArea")), parents, color);
8138 // set values of attributes
8141 }
8142 // from chargingStation
8144 {
8145 // set values of tag
8146 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8148 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("edge")), parents, color);
8149 // set values of attributes
8152 }
8154 {
8155 // set values of tag
8156 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
8158 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("taz")), parents, color);
8159 // set values of attributes
8162 }
8164 {
8165 // set values of tag
8166 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8168 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("junction")), parents, color);
8169 // set values of attributes
8172 }
8174 {
8175 // set values of tag
8176 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8178 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("busStop")), parents, color);
8179 // set values of attributes
8182 }
8184 {
8185 // set values of tag
8186 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8188 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("trainStop")), parents, color);
8189 // set values of attributes
8192 }
8194 {
8195 // set values of tag
8196 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8198 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("containerStop")), parents, color);
8199 // set values of attributes
8202 }
8204 {
8205 // set values of tag
8206 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8208 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("chargingStation")), parents, color);
8209 // set values of attributes
8212 }
8214 {
8215 // set values of tag
8216 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8218 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("chargingStation"), TL("parkingArea")), parents, color);
8219 // set values of attributes
8222 }
8223 // from parkingArea
8224 currentTag = GNE_TAG_RIDE_PARKINGAREA_EDGE;
8225 {
8226 // set values of tag
8227 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8229 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("edge")), parents, color);
8230 // set values of attributes
8233 }
8234 currentTag = GNE_TAG_RIDE_PARKINGAREA_TAZ;
8235 {
8236 // set values of tag
8237 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagPropertyTAZ,
8239 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("taz")), parents, color);
8240 // set values of attributes
8243 }
8245 {
8246 // set values of tag
8247 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8249 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("junction")), parents, color);
8250 // set values of attributes
8253 }
8255 {
8256 // set values of tag
8257 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8259 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("busStop")), parents, color);
8260 // set values of attributes
8263 }
8265 {
8266 // set values of tag
8267 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8269 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("trainStop")), parents, color);
8270 // set values of attributes
8273 }
8275 {
8276 // set values of tag
8277 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8279 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("containerStop")), parents, color);
8280 // set values of attributes
8283 }
8285 {
8286 // set values of tag
8287 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8289 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("chargingStation")), parents, color);
8290 // set values of attributes
8293 }
8295 {
8296 // set values of tag
8297 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8299 conflicts, icon, xmlTag, StringUtils::format("%: %->%", TL("Ride"), TL("parkingArea"), TL("parkingArea")), parents, color);
8300 // set values of attributes
8303 }
8304}
8305
8306
8307void
8309 // declare empty GNEAttributeProperties
8310 GNEAttributeProperties attrProperty;
8311 // declare common tag types and properties
8314 const int conflicts = GNETagProperties::Conflicts::NO_CONFLICTS;
8315 const std::vector<SumoXMLTag> parents({SUMO_TAG_PERSON, SUMO_TAG_PERSONFLOW});
8316 const unsigned int color = FXRGBA(255, 213, 213, 255);
8317 const GUIIcon icon = GUIIcon::STOPELEMENT;
8318 const SumoXMLTag xmlTag = SUMO_TAG_STOP;
8319 // fill merged tag
8321 0,
8322 conflicts, icon, xmlTag, TL("PersonStop"), parents, color);
8323 // set values of attributes
8325 // fill tags
8327 {
8328 // set values of tag
8329 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8331 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("PersonStop"), TL("edge")), parents, color);
8332
8333 // set values of attributes
8336 }
8337 currentTag = GNE_TAG_STOPPERSON_BUSSTOP;
8338 {
8339 // set values of tag
8340 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8342 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("PersonStop"), TL("busStop")), parents, color);
8343
8344 // set values of attributes
8347 }
8348 currentTag = GNE_TAG_STOPPERSON_TRAINSTOP;
8349 {
8350 // set values of tag
8351 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8353 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("PersonStop"), TL("trainStop")), parents, color);
8354
8355 // set values of attributes
8358 }
8360 {
8361 // set values of tag
8362 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8364 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("PersonStop"), TL("containerStop")), parents, color);
8365
8366 // set values of attributes
8369 }
8371 {
8372 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8374 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("PersonStop"), TL("chargingStation")), parents, color);
8375
8376 // set values of attributes
8379 }
8380 currentTag = GNE_TAG_STOPPERSON_PARKINGAREA;
8381 {
8382 // set values of tag
8383 myTagProperties[currentTag] = GNETagProperties(currentTag, tagType, tagProperty,
8385 conflicts, icon, xmlTag, StringUtils::format("%: %", TL("PersonStop"), TL("parkingArea")), parents, color);
8386
8387 // set values of attributes
8390 }
8391}
8392
8393
8394void
8396 // if this is a drawable element, add front and select attributes
8397 if (tagProperties.isDrawable()) {
8398 auto frontElementAttrProperty = GNEAttributeProperties(GNE_ATTR_FRONTELEMENT,
8400 TL("Toggle front element"));
8401 tagProperties.addAttribute(frontElementAttrProperty);
8402 auto selectAttrProperty = GNEAttributeProperties(GNE_ATTR_SELECTED,
8404 TL("Toggle select element"));
8405 tagProperties.addAttribute(selectAttrProperty);
8406 }
8407 // check if element can be reparent
8408 if (tagProperties.canBeReparent()) {
8409 auto frontElementAttrProperty = GNEAttributeProperties(GNE_ATTR_PARENT,
8411 TL("Change element parent"));
8412 tagProperties.addAttribute(frontElementAttrProperty);
8413 }
8414}
8415
8416
8417void
8419
8422 TL("The color with which the POI shall be displayed"),
8423 "red");
8424 tagProperties.addAttribute(attrProperty);
8425
8428 TL("A typename for the POI"),
8430 tagProperties.addAttribute(attrProperty);
8431
8434 TL("POI Icon"),
8436 attrProperty.setDiscreteValues(SUMOXMLDefinitions::POIIcons.getStrings());
8437 tagProperties.addAttribute(attrProperty);
8438
8441 TL("Name of POI"));
8442 tagProperties.addAttribute(attrProperty);
8443
8446 TL("The layer of the POI for drawing and selecting"),
8448 tagProperties.addAttribute(attrProperty);
8449
8452 TL("Width of rendered image in meters"),
8454 tagProperties.addAttribute(attrProperty);
8455
8458 TL("Height of rendered image in meters"),
8460 tagProperties.addAttribute(attrProperty);
8461
8464 TL("A bitmap to use for rendering this POI"),
8466 tagProperties.addAttribute(attrProperty);
8467
8470 TL("Enable or disable use image file as a relative path"),
8472 tagProperties.addAttribute(attrProperty);
8473
8476 TL("Angle of rendered image in degree"),
8478 tagProperties.addAttribute(attrProperty);
8479}
8480
8481
8482void
8484 // declare empty GNEAttributeProperties
8485 GNEAttributeProperties attrProperty;
8486
8489 TL("This vehicle's color"),
8490 "yellow");
8491 tagProperties.addAttribute(attrProperty);
8492
8495 TL("The lane on which the vehicle shall be inserted"),
8496 "first");
8497 tagProperties.addAttribute(attrProperty);
8498
8501 TL("The position at which the vehicle shall enter the net"),
8502 "base");
8503 tagProperties.addAttribute(attrProperty);
8504
8507 TL("The speed with which the vehicle shall enter the network"),
8508 "0.00");
8509 tagProperties.addAttribute(attrProperty);
8510
8513 TL("The lane at which the vehicle shall leave the network"),
8514 "current");
8515 tagProperties.addAttribute(attrProperty);
8516
8519 TL("The position at which the vehicle shall leave the network"),
8520 "max");
8521 tagProperties.addAttribute(attrProperty);
8522
8525 TL("The speed with which the vehicle shall leave the network"),
8526 "current");
8527 tagProperties.addAttribute(attrProperty);
8528
8531 TL("A string specifying the id of a public transport line which can be used when specifying person rides"));
8532 tagProperties.addAttribute(attrProperty);
8533
8536 TL("The number of occupied seats when the vehicle is inserted"),
8537 "0");
8538 tagProperties.addAttribute(attrProperty);
8539
8542 TL("The number of occupied container places when the vehicle is inserted"),
8543 "0");
8544 tagProperties.addAttribute(attrProperty);
8545
8548 TL("The lateral position on the departure lane at which the vehicle shall enter the net"),
8549 "center");
8550 tagProperties.addAttribute(attrProperty);
8551
8554 TL("The lateral position on the arrival lane at which the vehicle shall arrive"),
8555 "center");
8556 tagProperties.addAttribute(attrProperty);
8557
8560 TL("Insertion checks"),
8562 tagProperties.addAttribute(attrProperty);
8563}
8564
8565
8566void
8568 // declare empty GNEAttributeProperties
8569 GNEAttributeProperties attrProperty;
8570
8573 TL("First flow departure time"),
8574 "0");
8575 tagProperties.addAttribute(attrProperty);
8576
8579 TL("Criterion for flow termination"),
8582 tagProperties.addAttribute(attrProperty);
8583
8586 TL("Criterion for flow spacing"),
8587 toString(perHour));
8589 tagProperties.addAttribute(attrProperty);
8590
8593 TL("End of departure interval"),
8594 "3600");
8595 tagProperties.addAttribute(attrProperty);
8596
8599 TL("probability for emitting a flow each second") + std::string("\n") +
8600 TL("(not together with vehsPerHour or period)"),
8601 "1800");
8602 tagProperties.addAttribute(attrProperty);
8603
8604 attrProperty = GNEAttributeProperties(perHour,
8606 TL("Number of flows per hour, equally spaced") + std::string("\n") +
8607 TL("(not together with period or probability or poisson)"),
8608 "1800");
8609 tagProperties.addAttribute(attrProperty);
8610
8613 TL("Insert equally spaced flows at that period") + std::string("\n") +
8614 TL("(not together with vehsPerHour or probability or poisson)"),
8615 "2");
8616 tagProperties.addAttribute(attrProperty);
8617
8620 TL("probability for emitting a flow each second") + std::string("\n") +
8621 TL("(not together with vehsPerHour or period or poisson)"),
8622 "0.5");
8623 tagProperties.addAttribute(attrProperty);
8624
8627 TL("Insert flow expected vehicles per second with poisson distributed insertion rate") + std::string("\n") +
8628 TL("(not together with period or vehsPerHour or probability)"),
8629 "0.5");
8630 tagProperties.addAttribute(attrProperty);
8631}
8632
8633
8634void
8636 // declare empty GNEAttributeProperties
8637 GNEAttributeProperties attrProperty;
8638
8641 TL("The acceleration ability of vehicles of this type [m/s^2]"),
8643 tagProperties.addAttribute(attrProperty);
8644
8647 TL("The deceleration ability of vehicles of this type [m/s^2]"),
8649 tagProperties.addAttribute(attrProperty);
8650
8653 TL("The apparent deceleration of the vehicle as used by the standard model [m/s^2]"),
8655 tagProperties.addAttribute(attrProperty);
8656
8659 TL("The maximal physically possible deceleration for the vehicle [m/s^2]"),
8663 tagProperties.addAttribute(attrProperty);
8664
8667 TL("Car-following model parameter"),
8669 attrProperty.setRange(0, 1);
8670 tagProperties.addAttribute(attrProperty);
8671
8674 TL("Car-following model parameter"),
8675 "1.00");
8676 tagProperties.addAttribute(attrProperty);
8677
8680 TL("SKRAUSSX parameter 1"));
8681 tagProperties.addAttribute(attrProperty);
8682
8685 TL("SKRAUSSX parameter 2"));
8686 tagProperties.addAttribute(attrProperty);
8687
8690 TL("SKRAUSSX parameter 3"));
8691 tagProperties.addAttribute(attrProperty);
8692
8695 TL("SKRAUSSX parameter 4"));
8696 tagProperties.addAttribute(attrProperty);
8697
8700 TL("SKRAUSSX parameter 5"));
8701 tagProperties.addAttribute(attrProperty);
8702
8705 TL("EIDM Look ahead / preview parameter [s]"),
8706 "4.00");
8707 tagProperties.addAttribute(attrProperty);
8708
8711 TL("EIDM AP Reaction Time parameter [s]"),
8712 "0.50");
8713 tagProperties.addAttribute(attrProperty);
8714
8717 TL("EIDM Wiener Process parameter for the Driving Error [s]"),
8718 "3.00");
8719 tagProperties.addAttribute(attrProperty);
8720
8723 TL("EIDM Wiener Process parameter for the Estimation Error [s]"),
8724 "10.00");
8725 tagProperties.addAttribute(attrProperty);
8726
8729 TL("EIDM Coolness parameter of the Enhanced IDM [-]"),
8730 "0.99");
8731 attrProperty.setRange(0, 1);
8732 tagProperties.addAttribute(attrProperty);
8733
8736 TL("EIDM leader speed estimation error parameter [-]"),
8737 "0.02");
8738 tagProperties.addAttribute(attrProperty);
8739
8742 TL("EIDM gap estimation error parameter [-]"),
8743 "0.10");
8744 tagProperties.addAttribute(attrProperty);
8745
8748 TL("EIDM driving error parameter [-]"),
8749 "0.04");
8750 tagProperties.addAttribute(attrProperty);
8751
8754 TL("EIDM maximal jerk parameter [m/s^3]"),
8755 "3.00");
8756 tagProperties.addAttribute(attrProperty);
8757
8760 TL("EIDM maximal negative acceleration between two Action Points (threshold) [m/s^2]"),
8761 "1.00");
8762 tagProperties.addAttribute(attrProperty);
8763
8766 TL("EIDM Time parameter until vehicle reaches amax after startup/driveoff [s]"),
8767 "1.20");
8768 tagProperties.addAttribute(attrProperty);
8769
8772 TL("EIDM Flatness parameter of startup/driveoff curve [-]"),
8773 "2.00");
8774 tagProperties.addAttribute(attrProperty);
8775
8778 TL("EIDM Shift parameter of startup/driveoff curve [-]"),
8779 "0.70");
8780 tagProperties.addAttribute(attrProperty);
8781
8784 TL("EIDM parameter if model shall include vehicle dynamics into the acceleration calculation [0/1]"),
8785 "0");
8786 tagProperties.addAttribute(attrProperty);
8787
8790 TL("EIDM parameter how many vehicles are taken into the preview calculation of the driver (at least always 1!) [-]"),
8791 "0");
8792 tagProperties.addAttribute(attrProperty);
8793
8796 TL("Peter Wagner 2009 parameter"),
8797 "0");
8798 tagProperties.addAttribute(attrProperty);
8799
8802 TL("Peter Wagner 2009 parameter"),
8803 "0");
8804 tagProperties.addAttribute(attrProperty);
8805
8808 TL("IDMM parameter"),
8809 "0");
8810 tagProperties.addAttribute(attrProperty);
8811
8814 TL("IDMM parameter"),
8815 "0");
8816 tagProperties.addAttribute(attrProperty);
8817
8820 TL("W99 parameter"),
8821 "1.3");
8822 tagProperties.addAttribute(attrProperty);
8823
8826 TL("W99 parameter"),
8827 "8.0");
8828 tagProperties.addAttribute(attrProperty);
8829
8832 TL("W99 parameter"),
8833 "-12.0");
8834 tagProperties.addAttribute(attrProperty);
8835
8838 TL("W99 parameter"),
8839 "-0.25");
8840 tagProperties.addAttribute(attrProperty);
8841
8844 TL("W99 parameter"),
8845 "0.35");
8846 tagProperties.addAttribute(attrProperty);
8847
8850 TL("W99 parameter"),
8851 "6.0");
8852 tagProperties.addAttribute(attrProperty);
8853
8856 TL("W99 parameter"),
8857 "0.25");
8858 tagProperties.addAttribute(attrProperty);
8859
8862 TL("W99 parameter"),
8863 "2.0");
8864 tagProperties.addAttribute(attrProperty);
8865
8868 TL("W99 parameter"),
8869 "1.5");
8870 tagProperties.addAttribute(attrProperty);
8871
8874 TL("Wiedemann parameter"));
8875 tagProperties.addAttribute(attrProperty);
8876
8879 TL("Wiedemann parameter"));
8880 tagProperties.addAttribute(attrProperty);
8881
8884 TL("MinGap factor parameter"));
8885 tagProperties.addAttribute(attrProperty);
8886
8887 attrProperty = GNEAttributeProperties(SUMO_ATTR_K,
8889 TL("K parameter"));
8890 tagProperties.addAttribute(attrProperty);
8891
8894 TL("Kerner Phi parameter"));
8895 tagProperties.addAttribute(attrProperty);
8896
8899 TL("IDM Delta parameter"));
8900 tagProperties.addAttribute(attrProperty);
8901
8904 TL("IDM Stepping parameter"));
8905 tagProperties.addAttribute(attrProperty);
8906
8909 TL("Train Types"),
8910 "NGT400");
8911 attrProperty.setDiscreteValues(SUMOXMLDefinitions::TrainTypes.getStrings());
8912 tagProperties.addAttribute(attrProperty);
8913}
8914
8915
8916void
8918 // declare empty GNEAttributeProperties
8919 GNEAttributeProperties attrProperty;
8920
8923 TL("Minimum distance to pedestrians that are walking towards the conflict point with the ego vehicle."),
8924 "10");
8925 tagProperties.addAttribute(attrProperty);
8926
8929 TL("The accumulated waiting time after which a vehicle will drive onto an intersection even though this might cause jamming."),
8930 "-1");
8931 tagProperties.addAttribute(attrProperty);
8932
8935 TL("This value causes vehicles to violate a yellow light if the duration of the yellow phase is lower than the given threshold."),
8936 "-1");
8937 tagProperties.addAttribute(attrProperty);
8938
8941 TL("This value causes vehicles to violate a red light if the duration of the red phase is lower than the given threshold."),
8942 "-1");
8943 tagProperties.addAttribute(attrProperty);
8944
8947 TL("This value causes vehicles affected by jmDriveAfterRedTime to slow down when violating a red light."),
8948 "0.0");
8949 tagProperties.addAttribute(attrProperty);
8950
8953 TL("This value causes vehicles to ignore foe vehicles that have right-of-way with the given probability."),
8954 "0.0");
8955 tagProperties.addAttribute(attrProperty);
8956
8959 TL("This value is used in conjunction with jmIgnoreFoeProb.") + std::string("\n") +
8960 TL("Only vehicles with a speed below or equal to the given value may be ignored."),
8961 "0.0");
8962 tagProperties.addAttribute(attrProperty);
8963
8966 TL("This value configures driving imperfection (dawdling) while passing a minor link."),
8967 "0.0");
8968 tagProperties.addAttribute(attrProperty);
8969
8972 TL("This value defines the minimum time gap when passing ahead of a prioritized vehicle. "),
8973 "1");
8974 tagProperties.addAttribute(attrProperty);
8975
8978 TL("Willingess of drivers to impede vehicles with higher priority"),
8979 "0.0");
8980 tagProperties.addAttribute(attrProperty);
8981}
8982
8983
8984void
8986 // declare empty GNEAttributeProperties
8987 GNEAttributeProperties attrProperty;
8988
8991 TL("The eagerness for performing strategic lane changing. Higher values result in earlier lane-changing."),
8992 "1.0");
8993 tagProperties.addAttribute(attrProperty);
8994
8997 TL("The willingness for performing cooperative lane changing. Lower values result in reduced cooperation."),
8998 "1.0");
8999 tagProperties.addAttribute(attrProperty);
9000
9003 TL("The eagerness for performing lane changing to gain speed. Higher values result in more lane-changing."),
9004 "1.0");
9005 tagProperties.addAttribute(attrProperty);
9006
9009 TL("The eagerness for following the obligation to keep right. Higher values result in earlier lane-changing."),
9010 "1.0");
9011 tagProperties.addAttribute(attrProperty);
9012
9015 TL("The eagerness for using the configured lateral alignment within the lane.") + std::string("\n") +
9016 TL("Higher values result in increased willingness to sacrifice speed for alignment."),
9017 "1.0");
9018 tagProperties.addAttribute(attrProperty);
9019
9022 TL("The eagerness for overtaking through the opposite-direction lane. Higher values result in more lane-changing."),
9023 "1.0");
9024 tagProperties.addAttribute(attrProperty);
9025
9028 TL("Willingness to encroach laterally on other drivers."),
9029 "0.00");
9030 tagProperties.addAttribute(attrProperty);
9031
9034 TL("Minimum lateral gap when encroaching laterally on other drives (alternative way to define lcPushy)"),
9035 "0.00");
9036 tagProperties.addAttribute(attrProperty);
9037
9040 TL("Willingness to accept lower front and rear gaps on the target lane."),
9041 "1.0");
9042 tagProperties.addAttribute(attrProperty);
9043
9046 TL("Dynamic factor for modifying lcAssertive and lcPushy."),
9047 "0.00");
9048 tagProperties.addAttribute(attrProperty);
9049
9052 TL("Time to reach maximum impatience (of 1). Impatience grows whenever a lane-change manoeuvre is blocked."),
9053 "infinity");
9054 tagProperties.addAttribute(attrProperty);
9055
9058 TL("Maximum lateral acceleration per second."),
9059 "1.0");
9060 tagProperties.addAttribute(attrProperty);
9061
9064 TL("Factor for configuring the strategic lookahead distance when a change to the left is necessary (relative to right lookahead)."),
9065 "2.0");
9066 tagProperties.addAttribute(attrProperty);
9067
9070 TL("Factor for configuring the threshold asymmetry when changing to the left or to the right for speed gain."),
9071 "0.1");
9072 tagProperties.addAttribute(attrProperty);
9073
9076 TL("Upper bound on lateral speed when standing."),
9077 "0.00");
9078 tagProperties.addAttribute(attrProperty);
9079
9082 TL("Upper bound on lateral speed while moving computed as lcMaxSpeedLatStanding + lcMaxSpeedLatFactor * getSpeed()"),
9083 "1.00");
9084 tagProperties.addAttribute(attrProperty);
9085
9088 TL("Distance to an upcoming turn on the vehicles route, below which the alignment") + std::string("\n") +
9089 TL("should be dynamically adapted to match the turn direction."),
9090 "0.00");
9091 tagProperties.addAttribute(attrProperty);
9092
9095 TL("The probability for violating rules gainst overtaking on the right."),
9096 "0.00");
9097 tagProperties.addAttribute(attrProperty);
9098
9101 TL("Time threshold for the willingness to change right."),
9102 "-1");
9103 tagProperties.addAttribute(attrProperty);
9104
9107 TL("Speed difference factor for the eagerness of overtaking a neighbor vehicle before changing lanes (threshold = factor*speedlimit)."),
9108 "0.00");
9109 attrProperty.setRange(-1, 1);
9110 tagProperties.addAttribute(attrProperty);
9111
9112}
9113
9114
9115void
9117 // declare empty GNEAttributeProperties
9118 GNEAttributeProperties attrProperty;
9119
9120 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9122 TL("The name of the person"));
9123 tagProperties.addAttribute(attrProperty);
9124
9127 TL("The id of the person type to use for this person"),
9129 tagProperties.addAttribute(attrProperty);
9130
9133 TL("This person's color"),
9134 "yellow");
9135 tagProperties.addAttribute(attrProperty);
9136
9139 TL("The position at which the person shall enter the net"),
9140 "base");
9141 tagProperties.addAttribute(attrProperty);
9142}
9143
9144
9145void
9147 // declare empty GNEAttributeProperties
9148 GNEAttributeProperties attrProperty;
9149
9150 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9152 TL("The name of the container"));
9153 tagProperties.addAttribute(attrProperty);
9154
9157 TL("The id of the container type to use for this container"),
9159 tagProperties.addAttribute(attrProperty);
9160
9163 TL("This container's color"),
9164 "yellow");
9165 tagProperties.addAttribute(attrProperty);
9166
9169 TL("The position at which the container shall enter the net"),
9170 "base");
9171 tagProperties.addAttribute(attrProperty);
9172}
9173
9174
9175void
9177 // declare empty GNEAttributeProperties
9178 GNEAttributeProperties attrProperty;
9179
9182 TL("Minimum duration for stopping"),
9183 "60");
9184 attrProperty.setDefaultActivated(true);
9185 tagProperties.addAttribute(attrProperty);
9186
9189 TL("The time step at which the route continues"),
9190 "0.00");
9191 tagProperties.addAttribute(attrProperty);
9192
9195 TL("If set to a non-negative time value, then the stop duration can be extended at most by the extension value in seconds"),
9196 "0");
9197 tagProperties.addAttribute(attrProperty);
9198
9199 if (!waypoint) {
9202 TL("Whether a person or container or both may end the stop"),
9203 "false");
9204 attrProperty.setDiscreteValues({"false", "person", "container", "join"});
9205 tagProperties.addAttribute(attrProperty);
9206
9209 TL("List of elements that must board the vehicle before it may continue"));
9210 tagProperties.addAttribute(attrProperty);
9211
9214 TL("Joins this train to another upon reaching the stop"));
9215 tagProperties.addAttribute(attrProperty);
9216 }
9217
9220 TL("List of elements that can board the vehicle before it may continue"));
9221 tagProperties.addAttribute(attrProperty);
9222
9225 TL("Whether the vehicle stops on the road or beside"),
9226 "false");
9227 attrProperty.setDiscreteValues({"true", "false", "opportunistic"});
9228 tagProperties.addAttribute(attrProperty);
9229
9232 TL("Activity displayed for stopped person in GUI and output files"));
9233 tagProperties.addAttribute(attrProperty);
9234
9237 TL("Parameter to be applied to the vehicle to track the trip id within a cyclical public transport route"));
9238 tagProperties.addAttribute(attrProperty);
9239
9242 TL("New line attribute to be set on the vehicle when reaching this stop (for cyclical public transport route)"));
9243 tagProperties.addAttribute(attrProperty);
9244
9245 if (waypoint) {
9248 TL("Speed to be kept while driving between startPos and endPos"),
9249 "0.00");
9250 tagProperties.addAttribute(attrProperty);
9251 } else {
9254 TL("Whether the stop may be skipped if no passengers wants to embark or disembark"),
9255 "0");
9256 tagProperties.addAttribute(attrProperty);
9257 }
9258
9261 TL("transfer time if there shall be a jump from this stop to the next route edge"),
9262 "-1");
9263 tagProperties.addAttribute(attrProperty);
9264
9267 TL("Splits the train upon reaching the stop"));
9268 tagProperties.addAttribute(attrProperty);
9269}
9270
9271
9272void
9274 // get rag property
9275 auto& tagProperty = tagProperties;
9276 // declare empty GNEAttributeProperties
9277 GNEAttributeProperties attrProperty;
9278
9279 // basic parents
9280 if (tagProperty.planConsecutiveEdges()) {
9283 TL("list of consecutive edges"));
9284 tagProperties.addAttribute(attrProperty);
9285
9288 TL("Arrival position on the last edge"),
9289 "-1");
9290 tagProperties.addAttribute(attrProperty);
9291 }
9292 if (tagProperty.planRoute()) {
9295 TL("Route ID"));
9296 tagProperties.addAttribute(attrProperty);
9297
9300 TL("Arrival position on the destination edge"),
9301 "-1");
9302 tagProperties.addAttribute(attrProperty);
9303 }
9304 if (tagProperty.planEdge()) {
9305
9308 TL("Edge ID"));
9309 tagProperties.addAttribute(attrProperty);
9310
9313 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"));
9314 tagProperties.addAttribute(attrProperty);
9315 }
9316 if (tagProperty.planBusStop()) {
9319 TL("Bus stop ID"));
9320 tagProperties.addAttribute(attrProperty);
9321 }
9322 if (tagProperty.planTrainStop()) {
9325 TL("Train stop ID"));
9326 tagProperties.addAttribute(attrProperty);
9327 }
9328 if (tagProperty.planContainerStop()) {
9331 TL("Container stop ID"));
9332 tagProperties.addAttribute(attrProperty);
9333 }
9334 if (tagProperty.planChargingStation()) {
9337 TL("Charging station ID"));
9338 tagProperties.addAttribute(attrProperty);
9339 }
9340 if (tagProperty.planParkingArea()) {
9343 TL("Parking area ID"));
9344 tagProperties.addAttribute(attrProperty);
9345 }
9346 // from parents
9347 if (tagProperty.planFromEdge()) {
9350 TL("Edge start ID"));
9351 tagProperties.addAttribute(attrProperty);
9352 }
9353 if (tagProperty.planFromTAZ()) {
9356 TL("TAZ start ID"));
9357 tagProperties.addAttribute(attrProperty);
9358 }
9359 if (tagProperty.planFromJunction()) {
9362 TL("Junction start ID"));
9363 tagProperties.addAttribute(attrProperty);
9364 }
9365 if (tagProperty.planFromBusStop()) {
9368 TL("BusStop start ID"));
9369 tagProperties.addAttribute(attrProperty);
9370 }
9371 if (tagProperty.planFromTrainStop()) {
9374 TL("TrainStop start ID"));
9375 tagProperties.addAttribute(attrProperty);
9376 }
9377 if (tagProperty.planFromContainerStop()) {
9380 TL("ContainerStop start ID"));
9381 tagProperties.addAttribute(attrProperty);
9382 }
9383 if (tagProperty.planFromChargingStation()) {
9386 TL("ChargingStation start ID"));
9387 tagProperties.addAttribute(attrProperty);
9388 }
9389 if (tagProperty.planFromParkingArea()) {
9392 TL("ParkingArea start ID"));
9393 tagProperties.addAttribute(attrProperty);
9394 }
9395 // to parents
9396 if (tagProperty.planToEdge()) {
9397 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
9399 TL("Edge end ID"));
9400 tagProperties.addAttribute(attrProperty);
9401 // departPos only for tranships
9402 if (tagProperty.isPlanTranship()) {
9403 // depart pos
9406 TL("The position at which the tranship shall enter the net"),
9407 "0");
9408 tagProperties.addAttribute(attrProperty);
9409 }
9412 TL("arrival position on the destination edge"),
9413 "-1");
9414 tagProperties.addAttribute(attrProperty);
9415 }
9416 if (tagProperty.planToTAZ()) {
9419 TL("TAZ end ID"));
9420 tagProperties.addAttribute(attrProperty);
9421 }
9422 if (tagProperty.planToJunction()) {
9425 TL("Junction end ID"));
9426 tagProperties.addAttribute(attrProperty);
9427 }
9428 if (tagProperty.planToBusStop()) {
9431 TL("BusStop end ID"));
9432 tagProperties.addAttribute(attrProperty);
9433 }
9434 if (tagProperty.planToTrainStop()) {
9437 TL("TrainStop end ID"));
9438 tagProperties.addAttribute(attrProperty);
9439 }
9440 if (tagProperty.planToContainerStop()) {
9443 TL("ContainerStop end ID"));
9444 tagProperties.addAttribute(attrProperty);
9445 }
9446 if (tagProperty.planToChargingStation()) {
9449 TL("ChargingStation end ID"));
9450 tagProperties.addAttribute(attrProperty);
9451 }
9452 if (tagProperty.planToParkingArea()) {
9455 TL("ParkingArea end ID"));
9456 tagProperties.addAttribute(attrProperty);
9457 }
9458}
9459
9460
9461void
9463 // declare empty GNEAttributeProperties
9464 GNEAttributeProperties attrProperty;
9465
9468 TL("List of possible vehicle types to take"));
9469 tagProperties.addAttribute(attrProperty);
9470
9473 TL("List of possible traffic modes. Walking is always possible regardless of this value"));
9474 tagProperties.addAttribute(attrProperty);
9475
9478 TL("list of vehicle alternatives to take for the person trip"));
9479 tagProperties.addAttribute(attrProperty);
9480
9483 TL("Walk factor"),
9484 "0.00");
9485 tagProperties.addAttribute(attrProperty);
9486
9489 TL("id of the travel group. Persons with the same group may share a taxi ride"));
9490 tagProperties.addAttribute(attrProperty);
9491}
9492
9493
9494void
9496 // declare empty GNEAttributeProperties
9497 GNEAttributeProperties attrProperty;
9498
9501 TL("speed of the person for this tranship in m/s (not together with duration)"),
9502 "1.39");
9503 tagProperties.addAttribute(attrProperty);
9504
9507 TL("duration of the plan in second (not together with speed)"),
9508 "0");
9509 tagProperties.addAttribute(attrProperty);
9510}
9511
9512
9513void
9515 // declare empty GNEAttributeProperties
9516 GNEAttributeProperties attrProperty;
9517
9520 TL("list of vehicle alternatives to take for the ride"));
9521 tagProperties.addAttribute(attrProperty);
9522
9525 TL("id of the travel group. Persons with the same group may share a taxi ride"));
9526 tagProperties.addAttribute(attrProperty);
9527}
9528
9529
9530void
9532 // declare empty GNEAttributeProperties
9533 GNEAttributeProperties attrProperty;
9534
9537 TL("list of vehicle alternatives to take for the transport"));
9538 tagProperties.addAttribute(attrProperty);
9539
9542 TL("id of the travel group. Persons with the same group may share a taxi ride"));
9543 tagProperties.addAttribute(attrProperty);
9544}
9545
9546
9547void
9549 // declare empty GNEAttributeProperties
9550 GNEAttributeProperties attrProperty;
9551
9554 TL("speed of the person for this tranship in m/s (not together with duration)"),
9555 "1.39");
9556 tagProperties.addAttribute(attrProperty);
9557
9560 TL("duration of the plan in second (not together with speed)"),
9561 "0");
9562 tagProperties.addAttribute(attrProperty);
9563}
9564
9565
9566void
9568 // declare empty GNEAttributeProperties
9569 GNEAttributeProperties attrProperty;
9570
9573 TL("Minimum duration for stopping"),
9574 "60");
9575 attrProperty.setDefaultActivated(true);
9576 tagProperties.addAttribute(attrProperty);
9577
9580 TL("The time step at which the route continues"),
9581 "0.00");
9582 tagProperties.addAttribute(attrProperty);
9583
9586 TL("Activity displayed for stopped person in GUI and output files "));
9587 tagProperties.addAttribute(attrProperty);
9588
9589 // friendlyPos attribute only for stops over edges
9590 if (tagProperties.hasAttribute(SUMO_ATTR_EDGE)) {
9593 TL("If set, no error will be reported if element is placed behind the lane.") + std::string("\n") +
9594 TL("Instead, it will be placed 0.1 meters from the lanes end or at position 0.1,") + std::string("\n") +
9595 TL("if the position was negative and larger than the lanes length after multiplication with - 1"),
9596 "0");
9597 tagProperties.addAttribute(attrProperty);
9598 }
9599}
9600
9601
9602void
9604 // declare empty GNEAttributeProperties
9605 GNEAttributeProperties attrProperty;
9606
9607 // fill data set element
9608 SumoXMLTag currentTag = SUMO_TAG_DATASET;
9609 {
9610 // set values of tag
9611 myTagProperties[currentTag] = GNETagProperties(currentTag,
9616 GUIIcon::DATASET, currentTag, TL("DataSet"));
9617
9618 // set values of attributes
9619 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9621 TL("Data set ID"));
9622 myTagProperties[currentTag].addAttribute(attrProperty);
9623
9624 }
9625 // fill data interval element
9626 currentTag = SUMO_TAG_DATAINTERVAL;
9627 {
9628 // set values of tag
9629 myTagProperties[currentTag] = GNETagProperties(currentTag,
9634 GUIIcon::DATAINTERVAL, currentTag, TL("DataInterval"),
9636
9637 // set values of attributes
9638 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9640 TL("Interval ID"));
9641 myTagProperties[currentTag].addAttribute(attrProperty);
9642
9643 // set values of attributes
9646 TL("Data interval begin time"),
9647 "0");
9648 myTagProperties[currentTag].addAttribute(attrProperty);
9649
9652 TL("Data interval end time"),
9653 "3600");
9654 myTagProperties[currentTag].addAttribute(attrProperty);
9655 }
9656 // fill edge data element
9657 currentTag = GNE_TAG_EDGEREL_SINGLE;
9658 {
9659 // set values of tag
9660 myTagProperties[currentTag] = GNETagProperties(currentTag,
9665 GUIIcon::EDGEDATA, SUMO_TAG_EDGE, TL("EdgeRelationSingle"));
9666
9667 // set values of attributes
9668 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9670 TL("edge ID"));
9671 myTagProperties[currentTag].addAttribute(attrProperty);
9672 }
9673 currentTag = SUMO_TAG_EDGEREL;
9674 {
9675 // set values of tag
9676 myTagProperties[currentTag] = GNETagProperties(currentTag,
9681 GUIIcon::EDGERELDATA, currentTag, TL("EdgeRelation"));
9682
9683 // set values of attributes
9686 TL("The ID of the edge the edgeRel starts at"));
9687 myTagProperties[currentTag].addAttribute(attrProperty);
9688
9689 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
9691 TL("The ID of the edge the edgeRel ends at"));
9692 myTagProperties[currentTag].addAttribute(attrProperty);
9693 }
9694 currentTag = SUMO_TAG_TAZREL;
9695 {
9696 // set values of tag
9697 myTagProperties[currentTag] = GNETagProperties(currentTag,
9702 GUIIcon::TAZRELDATA, currentTag, TL("TAZRelation"),
9704
9705 // set values of attributes
9708 TL("The name of the TAZ the TAZRel starts at"));
9709 myTagProperties[currentTag].addAttribute(attrProperty);
9710
9711 attrProperty = GNEAttributeProperties(SUMO_ATTR_TO,
9713 TL("The name of the TAZ the TAZRel ends at"));
9714 myTagProperties[currentTag].addAttribute(attrProperty);
9715 }
9716 currentTag = SUMO_TAG_MEANDATA_EDGE;
9717 {
9718 // set values of tag
9719 myTagProperties[currentTag] = GNETagProperties(currentTag,
9724 GUIIcon::MEANDATAEDGE, currentTag, TL("MeanDataEdge"));
9725
9726 // set values of attributes
9728
9729 }
9730 currentTag = SUMO_TAG_MEANDATA_LANE;
9731 {
9732 // set values of tag
9733 myTagProperties[currentTag] = GNETagProperties(currentTag,
9738 GUIIcon::MEANDATALANE, currentTag, TL("MeanDataLane"));
9739
9740 // set values of attributes
9742 }
9743}
9744
9745
9746void
9748 GNEAttributeProperties attrProperty;
9749
9750 // fill all meanData attributes
9751 attrProperty = GNEAttributeProperties(SUMO_ATTR_ID,
9753 TL("The id of this set of measurements"));
9754 tagProperties.addAttribute(attrProperty);
9755
9758 TL("The path to the output file. The path may be relative"));
9759 tagProperties.addAttribute(attrProperty);
9760
9763 TL("The aggregation period the values the detector collects shall be summed up"));
9764 tagProperties.addAttribute(attrProperty);
9765
9768 TL("The time to start writing. If not given, the simulation's begin is used."));
9769 tagProperties.addAttribute(attrProperty);
9770
9773 TL("The time to end writing. If not given the simulation's end is used."));
9774 tagProperties.addAttribute(attrProperty);
9775
9778 TL("If set to true, edges/lanes which were not used by a vehicle during this period will not be written"),
9779 "default");
9780 attrProperty.setDiscreteValues({"1", "0", "default"});
9781 tagProperties.addAttribute(attrProperty);
9782
9785 TL("If set, junction internal edges/lanes will be written as well"),
9786 "0");
9787 tagProperties.addAttribute(attrProperty);
9788
9791 TL("The maximum travel time in seconds to write if only very small movements occur"),
9792 "100000");
9793 tagProperties.addAttribute(attrProperty);
9794
9797 TL("Consider an edge/lane unused if it has at most this many sampled seconds"),
9798 "0");
9799 tagProperties.addAttribute(attrProperty);
9800
9803 TL("The maximum speed to consider a vehicle halting;"),
9804 "0.1");
9805 tagProperties.addAttribute(attrProperty);
9806
9809 TL("space separated list of vehicle type ids to consider"));
9810 tagProperties.addAttribute(attrProperty);
9811
9814 TL("whether aggregation should be performed over all vehicles that entered the edge/lane in the aggregation interval"),
9815 "0");
9816 tagProperties.addAttribute(attrProperty);
9817
9820 TL("Whether pedestrians shall be recorded instead of vehicles. Allowed value is walk"));
9821 tagProperties.addAttribute(attrProperty);
9822
9825 TL("List of attribute names that shall be written"));
9826 tagProperties.addAttribute(attrProperty);
9827
9830 TL("Restrict output to the given list of edge ids"));
9831 tagProperties.addAttribute(attrProperty);
9832
9835 TL("Restrict output to the given list of edges given in file"));
9836 tagProperties.addAttribute(attrProperty);
9837
9840 TL("Whether the traffic statistic of all edges shall be aggregated into a single value"),
9841 "0");
9842 tagProperties.addAttribute(attrProperty);
9843}
9844
9845
9846void
9848 for (const auto& tagProperty : myTagProperties) {
9849 int editableAttributes = 0;
9850 int geoAttributes = 0;
9851 int flowAttributes = 0;
9852 int neteditAttributes = 0;
9853 for (const auto& attributeProperty : tagProperty.second) {
9854 if (attributeProperty.isGEO()) {
9855 geoAttributes++;
9856 } else if (attributeProperty.isFlow()) {
9857 flowAttributes++;
9858 } else if (attributeProperty.isNetedit()) {
9859 neteditAttributes++;
9860 } else if (!attributeProperty.isExtended()) {
9861 editableAttributes++;
9862 }
9863 }
9864 if (maxNumberOfEditableAttributes < editableAttributes) {
9865 maxNumberOfEditableAttributes = editableAttributes;
9866 }
9867 if (maxNumberOfGeoAttributes < geoAttributes) {
9868 maxNumberOfGeoAttributes = geoAttributes;
9869 }
9870 if (maxNumberOfFlowAttributes < flowAttributes) {
9871 maxNumberOfFlowAttributes = flowAttributes;
9872 }
9873 if (maxNumberOfNeteditAttributes < neteditAttributes) {
9874 maxNumberOfNeteditAttributes = neteditAttributes;
9875 }
9876 }
9877}
9878
9879
9880void
9882 if (myTagProperties.size() == 0) {
9884 }
9885 // merge "virtual" netedit tags like '<walk: edge->edge'
9886 static std::map<SumoXMLTag, GNETagProperties> xmlTagProperties;
9887 for (const auto& item : myTagProperties) {
9888 if (xmlTagProperties.count(item.second.getXMLTag()) == 0) {
9889 xmlTagProperties[item.second.getXMLTag()] = item.second;
9890 } else {
9891 std::set<SumoXMLAttr> attrs;
9892 auto& old = xmlTagProperties[item.second.getXMLTag()];
9893 for (auto it = old.begin(); it != old.end(); it++) {
9894 attrs.insert(it->getAttr());
9895 }
9896 for (auto it = item.second.begin(); it != item.second.end(); it++) {
9897 if (attrs.count(it->getAttr()) == 0) {
9898 old.addAttribute(*it);
9899 }
9900 }
9901 }
9902 }
9903 const std::string opt = "attribute-help-output";
9906 dev << "# Netedit attribute help\n";
9907 for (const auto& item : xmlTagProperties) {
9908 if (item.second.begin() == item.second.end()) {
9909 // don't write elements without attributes, they are only used for internal purposes
9910 continue;
9911 }
9912 if (item.second.getParentTags().empty()) {
9913 dev << "\n## " << toString(item.first) << "\n";
9914 } else {
9915 if (item.first == SUMO_TAG_FLOW) {
9916 dev << "\n## " << toString(item.first) << "\n";
9917 dev << "also child element of ";
9918 } else {
9919 dev << "\n### " << toString(item.first) << "\n";
9920 dev << "child element of ";
9921 }
9922 bool sep = false;
9923 for (const auto& pTag : item.second.getParentTags()) {
9924 if (sep) {
9925 dev << ", ";
9926 } else {
9927 sep = true;
9928 }
9929 dev << "[" << toString(pTag) << "](#" << StringUtils::to_lower_case(toString(pTag)) << ")";
9930 }
9931 dev << "\n\n";
9932 }
9933 dev << "| Attribute | Type | Description |\n";
9934 dev << "|-----------|------|-------------|\n";
9935 for (const auto& attr : item.second) {
9936 dev << "|" << toString(attr.getAttr()) << "|"
9937 << attr.getDescription() << "|"
9938 << StringUtils::replace(attr.getDefinition(), "\n", " ");
9939 if (attr.getDefaultValue() != "") {
9940 dev << " *default:* **" << attr.getDefaultValue() << "**";
9941 }
9942 dev << "|\n";
9943 }
9944 }
9945}
9946
9947
9948/****************************************************************************/
long long int SUMOTime
Definition GUI.h:36
@ GLO_FRONTELEMENT
front element (used in netedit)
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
const int VTYPEPARS_DEFAULT_EMERGENCYDECEL_DEFAULT
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
@ GNE_ATTR_PARENT
parent of an additional element
@ 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
@ GNE_ATTR_SELECTED
element is selected
@ 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
@ GNE_ATTR_CLOSESHAPE
@ 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_GEO
@ 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_GEOSHAPE
@ 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
@ GNE_ATTR_FRONTELEMENT
@ 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
@ GNE_ATTR_FLOW_SPACING
flow spacing
@ 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
@ GNE_ATTR_FLOW_TERMINATE
flow terminating
@ 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
static int maxNumberOfGeoAttributes
max number of geo attributes (needed for geo attributes editor)
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
void markForDrawingFront()
mark for drawing front
virtual void enableAttribute(SumoXMLAttr key, GNEUndoList *undoList)
void selectAttributeCarrier()
select attribute carrier using GUIGlobalSelection
GNEAttributeCarrier(const SumoXMLTag tag, GNENet *net)
Constructor.
static std::map< SumoXMLTag, GNETagProperties > myMergedPlanTagProperties
map with the merged tags properties
bool isMarkedForDrawingFront() const
check if this AC is marked for drawing front
bool myDrawInFront
boolean to check if drawn this AC over other elements
FXIcon * getACIcon() const
get FXIcon associated to this AC
bool mySelected
boolean to check if this AC is selected (more quickly as checking 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 fillPlanParentAttributes(GNETagProperties &tagProperties)
fill plan from-to attribute
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
bool checkDrawFrontContour() const
check if draw front contour (green/blue)
static void updateMaxNumberOfAttributes()
update max number of attributes by type
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 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(......
void unselectAttributeCarrier()
unselect attribute carrier using GUIGlobalSelection
static int maxNumberOfNeteditAttributes
max number of netedit attributes (needed for netedit attributes editor)
static void fillCommonContainerAttributes(GNETagProperties &tagProperties)
fill common container attributes (used by container and containerFlows)
static void fillTranshipCommonAttributes(GNETagProperties &tagProperties)
fill ride common attributes
static void fillPOIAttributes(GNETagProperties &tagProperties)
fill common POI attributes
static void fillCommonMeanDataAttributes(GNETagProperties &tagProperties)
fill stop person attributes
void removeACParametersKeys(const std::vector< std::string > &keepKeys, GNEUndoList *undoList)
remove keys
void setCommonAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
virtual bool isAttributeEnabled(SumoXMLAttr key) const
const std::string & getTagStr() const
get tag assigned to this object in string format
static void fillCommonVehicleAttributes(GNETagProperties &tagProperties)
fill common vehicle attributes (used by vehicles, trips, routeFlows and flows)
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
bool drawUsingSelectColor() const
check if attribute carrier must be drawn using selecting color.
bool isCommonValid(SumoXMLAttr key, const std::string &value)
void drawInLayer(const double typeOrLayer, const double extraOffset=0) const
draw element in the given layer, or in front if corresponding flag is enabled
static void fillShapeElements()
fill shape elements
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 void fillCommonFlowAttributes(GNETagProperties &tagProperties, SumoXMLAttr perHour)
fill common flow attributes (used by flows, routeFlows and personFlows)
static bool lanesConsecutives(const std::vector< GNELane * > &lanes)
check if lanes are consecutives
static int maxNumberOfEditableAttributes
max number of editable (non extended) attributes (needed for attributes editor)
void resetDefaultValues()
reset attribute carrier to their default values
static void fillPersonPlanWalks()
fill person plan walks
static void fillTAZElements()
fill TAZ elements
static int maxNumberOfFlowAttributes
max number of flow attributes (needed for geo attributes editor)
GNENet * myNet
pointer to net
bool inGrid() const
check if this AC was inserted in grid
void unmarkForDrawingFront()
unmark for drawing front
static void fillLaneChangingModelAttributes(GNETagProperties &tagProperties)
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
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 fillCommonPersonAttributes(GNETagProperties &tagProperties)
fill common person attributes (used by person and personFlows)
static void fillContainerElements()
fill container elements
static void fillCarFollowingModelAttributes(GNETagProperties &tagProperties)
fill Car Following Model of Vehicle/Person Types
static void fillCommonStopAttributes(GNETagProperties &tagProperties, const bool waypoint)
fill stop person attributes
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
std::string getCommonAttribute(SumoXMLAttr key) const
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 fillCommonAttributes(GNETagProperties &tagProperties)
fill common POI attributes
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 void fillJunctionModelAttributes(GNETagProperties &tagProperties)
fill Junction Model Attributes of Vehicle/Person Types
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
static void changeAttribute(GNEAttributeCarrier *AC, SumoXMLAttr key, const std::string &value, GNEUndoList *undoList, const bool force=false)
change attribute
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:127
GNEViewNet * getViewNet() const
get view net
Definition GNENet.cpp:2163
bool canBeReparent() const
return true if tag correspond to an element that can be reparent
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 isDrawable() const
return true if tag correspond to a drawable element
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"
bool isACInspected(GNEAttributeCarrier *AC) const
void unmarkAC(GNEAttributeCarrier *AC)
unmark AC for drawing front
void markAC(GNEAttributeCarrier *AC)
mark AC as drawing front
const GNEViewNetHelper::EditModes & getEditModes() const
get edit modes
GNEViewNetHelper::InspectedElements & getInspectedElements()
get inspected elements
GNEViewNetHelper::MarkFrontElements & getMarkFrontElements()
get marked for drawing front elements
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 double getDefaultDecel(const SUMOVehicleClass vc=SVC_IGNORING)
Returns the default deceleration for the given vehicle class This needs to be a function because the ...
static double getDefaultEmergencyDecel(const SUMOVehicleClass vc, double decel, double defaultOption)
Returns the default emergency deceleration for the given vehicle class This needs to be a function be...
static std::vector< std::string > getLatAlignmentStrings()
return all valid strings for latAlignment
static double getDefaultImperfection(const SUMOVehicleClass vc=SVC_IGNORING)
Returns the default driver's imperfection (sigma or epsilon in Krauss' model) for the given vehicle c...
static double getDefaultAccel(const SUMOVehicleClass vc=SVC_IGNORING)
Returns the default acceleration for the given vehicle class This needs to be a function because the ...
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 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