Eclipse SUMO - Simulation of Urban MObility
GNEPersonStop.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2021 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 // Representation of person stops in NETEDIT
19 /****************************************************************************/
20 #include <cmath>
21 #include <netedit/GNENet.h>
22 #include <netedit/GNEUndoList.h>
23 #include <netedit/GNEViewNet.h>
24 #include <netedit/GNEViewParent.h>
28 #include <utils/gui/div/GLHelper.h>
32 
33 #include "GNEPersonStop.h"
34 
35 
36 // ===========================================================================
37 // member method definitions
38 // ===========================================================================
39 
40 GNEPersonStop::GNEPersonStop(GNENet* net, GNEDemandElement* personParent, GNEAdditional* stoppingPlace, const SUMOVehicleParameter::Stop& stopParameter) :
42 {}, {}, {}, {stoppingPlace}, {}, {}, {personParent}, {}),
43 SUMOVehicleParameter::Stop(stopParameter) {
44 }
45 
46 
47 GNEPersonStop::GNEPersonStop(GNENet* net, GNEDemandElement* personParent, GNEEdge* edge, const SUMOVehicleParameter::Stop& stopParameter) :
49 {}, {edge}, {}, {}, {}, {}, {personParent}, {}),
50 SUMOVehicleParameter::Stop(stopParameter) {
51 }
52 
53 
55 
56 
58 GNEPersonStop::getMoveOperation(const double /*shapeOffset*/) {
60  // return move operation for additional placed over shape
61  return new GNEMoveOperation(this, getParentEdges().front()->getLanes().front(), {endPos},
62  myNet->getViewNet()->getViewParent()->getMoveFrame()->getCommonModeOptions()->getAllowChangeLane());
63  } else {
64  return nullptr;
65  }
66 }
67 
68 
69 std::string
71  return "";
72 }
73 
74 
75 void
77  write(device);
78 }
79 
80 
81 bool
83  // get lane
84  const GNELane* firstLane = getFirstAllowedLane();
85  // only Stops placed over lanes can be invalid
87  return true;
88  } else if (friendlyPos) {
89  // with friendly position enabled position are "always fixed"
90  return true;
91  } else if (firstLane != nullptr) {
92  // obtain lane length
93  const double laneLength = getParentEdges().front()->getNBEdge()->getFinalLength() * firstLane->getLengthGeometryFactor();
94  // declare end pos fixed
95  const double endPosFixed = (endPos < 0) ? (endPos + laneLength) : endPos;
96  // check values
97  return (endPosFixed <= getParentEdges().front()->getNBEdge()->getFinalLength()) && (endPosFixed > 0);
98  } else {
99  return false;
100  }
101 }
102 
103 
104 std::string
106  if (friendlyPos) {
107  return "";
108  } else {
109  // obtain lane length
110  const double laneLength = getParentEdges().front()->getNBEdge()->getFinalLength();
111  // declare end pos fixed
112  const double endPosFixed = (endPos < 0) ? (endPos + laneLength) : endPos;
113  // check positions over lane
114  if (endPosFixed < 0) {
115  return (toString(SUMO_ATTR_ENDPOS) + " < 0");
116  } else if (endPosFixed > getParentEdges().front()->getNBEdge()->getFinalLength()) {
117  return (toString(SUMO_ATTR_ENDPOS) + " > lanes's length");
118  } else {
119  return "";
120  }
121  }
122 }
123 
124 
125 void
127  //
128 }
129 
130 
133  return getParentDemandElements().front()->getVClass();
134 }
135 
136 
137 const RGBColor&
140 }
141 
142 
143 void
145  // only update Stops over edges
146  if (getParentAdditionals().size() > 0) {
147  // get busStop shape
148  const PositionVector& busStopShape = getParentAdditionals().front()->getAdditionalGeometry().getShape();
149  // update demand element geometry using both positions
150  myDemandElementGeometry.updateGeometry(busStopShape, busStopShape.length2D() - 0.6, busStopShape.length2D(), 0);
151  } else {
152  // get front and back lane
153  const GNELane* frontLane = getParentEdges().front()->getLanes().front();
154  const GNELane* backLane = getParentEdges().front()->getLanes().back();
155  // get lane drawing constants
156  GNELane::LaneDrawingConstants laneDrawingConstantsFront(myNet->getViewNet()->getVisualisationSettings(), frontLane);
157  GNELane::LaneDrawingConstants laneDrawingConstantBack(myNet->getViewNet()->getVisualisationSettings(), backLane);
158  // calculate front position
159  const Position frontPosition = frontLane->getLaneShape().positionAtOffset2D(getAttributeDouble(SUMO_ATTR_ARRIVALPOS), laneDrawingConstantsFront.halfWidth);
160  // calulate length between both shapes
161  const double length = backLane->getLaneShape().distance2D(frontPosition, true);
162  // calculate back position
163  const Position backPosition = frontLane->getLaneShape().positionAtOffset2D(getAttributeDouble(SUMO_ATTR_ARRIVALPOS), (length + laneDrawingConstantBack.halfWidth - laneDrawingConstantsFront.halfWidth) * -1);
164  // update demand element geometry using both positions
165  myDemandElementGeometry.updateGeometry({frontPosition, backPosition});
166  }
167 }
168 
169 
170 Position
172  // check if is placed over a busStop
173  if (getParentAdditionals().size() > 0) {
174  return getParentAdditionals().front()->getPositionInView();
175  } else {
176  // get lane
177  const GNELane* personLane = getParentEdges().front()->getLaneByAllowedVClass(SVC_PEDESTRIAN);
178  // get position over lane shape
179  if (endPos <= 0) {
180  return personLane->getLaneShape().front();
181  } else if (endPos >= personLane->getLaneShape().length2D()) {
182  return personLane->getLaneShape().back();
183  } else {
184  return personLane->getLaneShape().positionAtOffset2D(endPos);
185  }
186  }
187 }
188 
189 
190 std::string
192  // get lane
193  const GNELane* const firstLane = getFirstAllowedLane();
194  if (getParentDemandElements().size() > 0) {
195  return getParentDemandElements().front()->getID();
196  } else if (getParentAdditionals().size() > 0) {
197  return getParentAdditionals().front()->getID();
198  } else if (firstLane != nullptr) {
199  return firstLane->getID();
200  } else {
201  throw ProcessError("Invalid parent");
202  }
203 }
204 
205 
206 Boundary
208  // Return Boundary depending if myMovingGeometryBoundary is initialised (important for move geometry)
209  if (getParentAdditionals().size() > 0) {
210  return getParentAdditionals().at(0)->getCenteringBoundary();
211  } else {
212  Boundary b;
213  b.add(getPositionInView());
214  b.grow(20);
215  return b;
216  }
217 }
218 
219 
220 void
221 GNEPersonStop::splitEdgeGeometry(const double /*splitPosition*/, const GNENetworkElement* /*originalElement*/, const GNENetworkElement* /*newElement*/, GNEUndoList* /*undoList*/) {
222  // geometry of this element cannot be splitted
223 }
224 
225 
226 void
228  // check if stop can be drawn
229  if (drawPersonPlan()) {
230  // Obtain exaggeration of the draw
231  const double exaggeration = s.addSize.getExaggeration(s, this);
232  // declare stop color
234  // Start drawing adding an gl identificator
235  glPushName(getGlID());
236  // Add layer matrix matrix
237  glPushMatrix();
238  // translate to front
240  // check if draw personStop over busStop oder over lane
241  if (getParentAdditionals().size() > 0) {
242  drawPersonStopOverBusStop(s, exaggeration, stopColor);
243  } else {
244  drawPersonStopOverLane(s, exaggeration, stopColor);
245  }
246  // pop layer matrix
247  glPopMatrix();
248  // Pop name
249  glPopName();
250  // check if dotted contours has to be drawn
253  }
254  if (s.drawDottedContour() || myNet->getViewNet()->getFrontAttributeCarrier() == this) {
256  }
257  // draw person parent if this stop if their first person plan child
258  if ((getParentDemandElements().size() == 1) && getParentDemandElements().front()->getChildDemandElements().front() == this) {
259  getParentDemandElements().front()->drawGL(s);
260  }
261  }
262 }
263 
264 
265 void
267  // only update geometry
268  updateGeometry();
269 }
270 
271 
272 void
273 GNEPersonStop::drawPartialGL(const GUIVisualizationSettings& /*s*/, const GNELane* /*lane*/, const GNEPathManager::Segment* /*segment*/, const double /*offsetFront*/) const {
274  // personStops don't use drawPartialGL
275 }
276 
277 
278 void
279 GNEPersonStop::drawPartialGL(const GUIVisualizationSettings& /*s*/, const GNELane* /*fromLane*/, const GNELane* /*toLane*/, const GNEPathManager::Segment* /*segment*/, const double /*offsetFront*/) const {
280  // personStops don't use drawPartialGL
281 }
282 
283 
284 GNELane*
286  // check if stop is placed over a busStop
287  if (getParentAdditionals().size() > 0) {
288  return getParentAdditionals().front()->getParentLanes().front();
289  } else {
290  return getParentEdges().front()->getLaneByAllowedVClass(SVC_PEDESTRIAN);
291  }
292 }
293 
294 
295 GNELane*
297  // first and last path lane are the same
298  return getFirstPathLane();
299 }
300 
301 
302 std::string
304  switch (key) {
305  case SUMO_ATTR_ID:
306  return getParentDemandElements().front()->getID();
307  case SUMO_ATTR_DURATION:
309  return time2string(duration);
310  } else {
311  return "";
312  }
313  case SUMO_ATTR_UNTIL:
315  return time2string(until);
316  } else {
317  return "";
318  }
319  case SUMO_ATTR_ACTTYPE:
320  return actType;
321  // specific of Stops over stoppingPlaces
322  case SUMO_ATTR_BUS_STOP:
323  return getParentAdditionals().front()->getID();
324  // specific of stops over edges/lanes
325  case SUMO_ATTR_EDGE:
326  return getParentEdges().front()->getID();
327  case SUMO_ATTR_ENDPOS:
328  return toString(endPos);
330  return toString(friendlyPos);
331  //
332  case GNE_ATTR_SELECTED:
334  case GNE_ATTR_PARENT:
335  return getParentDemandElements().front()->getID();
336  default:
337  throw InvalidArgument(getTagStr() + " doesn't have a attribute of type '" + toString(key) + "'");
338  }
339 }
340 
341 
342 double
344  switch (key) {
345  // we use SUMO_ATTR_ARRIVALPOS instead SUMO_ATTR_ENDPOS due it's a person plan
347  if (getParentAdditionals().size() > 0) {
348  return getParentAdditionals().front()->getAttributeDouble(SUMO_ATTR_ENDPOS);
349  } else {
350  return endPos;
351  }
352  default:
353  throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
354  }
355 }
356 
357 
358 Position
360  switch (key) {
361  // we use SUMO_ATTR_ARRIVALPOS instead SUMO_ATTR_ENDPOS due it's a person plan
362  case SUMO_ATTR_ARRIVALPOS: {
363  if (getParentAdditionals().size() > 0) {
364  // return first position of busStop
365  return getParentAdditionals().front()->getAdditionalGeometry().getShape().front();
366  } else {
367  // get lane shape
368  const PositionVector& laneShape = getLastPathLane()->getLaneShape();
369  // continue depending of arrival position
370  if (endPos == 0) {
371  return laneShape.front();
372  } else if ((endPos == -1) || (endPos >= laneShape.length2D())) {
373  return laneShape.back();
374  } else {
375  return laneShape.positionAtOffset2D(endPos);
376  }
377  }
378  }
379  default:
380  throw InvalidArgument(getTagStr() + " doesn't have a position attribute of type '" + toString(key) + "'");
381  }
382 }
383 
384 
385 void
386 GNEPersonStop::setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList) {
387  if (value == getAttribute(key)) {
388  return; //avoid needless changes, later logic relies on the fact that attributes have changed
389  }
390  switch (key) {
391  case SUMO_ATTR_DURATION:
392  case SUMO_ATTR_UNTIL:
393  case SUMO_ATTR_EXTENSION:
394  case SUMO_ATTR_ACTTYPE:
395  case GNE_ATTR_SELECTED:
397  undoList->p_add(new GNEChange_Attribute(this, key, value));
398  break;
399  case SUMO_ATTR_EDGE: {
400  // get next personPlan
401  GNEDemandElement* nextPersonPlan = getParentDemandElements().at(0)->getNextChildDemandElement(this);
402  // continue depending of nextPersonPlan
403  if (nextPersonPlan) {
404  undoList->p_begin("Change from attribute of next personPlan");
405  nextPersonPlan->setAttribute(SUMO_ATTR_FROM, value, undoList);
406  undoList->p_add(new GNEChange_Attribute(this, key, value));
407  undoList->p_end();
408  } else {
409  undoList->p_add(new GNEChange_Attribute(this, key, value));
410  }
411  break;
412  }
413  case SUMO_ATTR_BUS_STOP: {
414  // get next person plan
415  GNEDemandElement* nextPersonPlan = getParentDemandElements().at(0)->getNextChildDemandElement(this);
416  // continue depending of nextPersonPlan
417  if (nextPersonPlan) {
418  // obtain busStop
419  const GNEAdditional* busStop = myNet->retrieveAdditional(SUMO_TAG_BUS_STOP, value);
420  // change from attribute using edge ID
421  undoList->p_begin("Change from attribute of next personPlan");
422  nextPersonPlan->setAttribute(SUMO_ATTR_FROM, busStop->getParentLanes().front()->getParentEdge()->getID(), undoList);
423  undoList->p_add(new GNEChange_Attribute(this, key, value));
424  undoList->p_end();
425  } else {
426  undoList->p_add(new GNEChange_Attribute(this, key, value));
427  }
428  break;
429  }
430  case SUMO_ATTR_ENDPOS: {
431  // get previous person plan
432  GNEDemandElement* previousPersonPlan = getParentDemandElements().at(0)->getPreviousChildDemandElement(this);
433  // check if leave presonStop connected is enabled
435  previousPersonPlan && previousPersonPlan->getTagProperty().hasAttribute(SUMO_ATTR_ARRIVALPOS)) {
436  // change from attribute using edge ID
437  undoList->p_begin("Change arrivalPos attribute of previous personPlan");
438  previousPersonPlan->setAttribute(SUMO_ATTR_ARRIVALPOS, value, undoList);
439  undoList->p_add(new GNEChange_Attribute(this, key, value));
440  undoList->p_end();
441  } else {
442  undoList->p_add(new GNEChange_Attribute(this, key, value));
443  }
444  break;
445  }
446  default:
447  throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
448  }
449 }
450 
451 
452 bool
453 GNEPersonStop::isValid(SumoXMLAttr key, const std::string& value) {
454  // declare string error
455  std::string error;
456  switch (key) {
457  case SUMO_ATTR_DURATION:
458  case SUMO_ATTR_UNTIL:
459  case SUMO_ATTR_EXTENSION:
460  if (canParse<SUMOTime>(value)) {
461  return parse<SUMOTime>(value) >= 0;
462  } else {
463  return false;
464  }
465  case SUMO_ATTR_ACTTYPE:
466  return true;
467  // specific of Stops over stoppingPlaces
468  case SUMO_ATTR_BUS_STOP:
469  return (myNet->retrieveAdditional(SUMO_TAG_BUS_STOP, value, false) != nullptr);
470  // specific of stops over edges/lanes
471  case SUMO_ATTR_EDGE:
472  if (myNet->retrieveEdge(value, false) != nullptr) {
473  return true;
474  } else {
475  return false;
476  }
477  case SUMO_ATTR_ENDPOS:
478  return canParse<double>(value) && fabs(parse<double>(value)) < getParentEdges().front()->getNBEdge()->getFinalLength();
480  return canParse<bool>(value);
481  //
482  case GNE_ATTR_SELECTED:
483  return canParse<bool>(value);
484  default:
485  throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
486  }
487 }
488 
489 
490 void
492  // obtain a copy of parameter sets
493  int newParametersSet = parametersSet;
494  // modify parametersSetCopy depending of attr
495  switch (key) {
496  case SUMO_ATTR_DURATION:
497  newParametersSet |= STOP_DURATION_SET;
498  break;
499  case SUMO_ATTR_UNTIL:
500  newParametersSet |= STOP_UNTIL_SET;
501  break;
502  default:
503  break;
504  }
505  // add GNEChange_EnableAttribute
506  undoList->add(new GNEChange_EnableAttribute(this, parametersSet, newParametersSet), true);
507  // modify parametersSetCopy depending of attr
508  switch (key) {
509  case SUMO_ATTR_DURATION:
511  break;
512  case SUMO_ATTR_UNTIL:
513  case SUMO_ATTR_EXTENSION:
515  break;
516  default:
517  break;
518  }
519 }
520 
521 
522 void
524  // obtain a copy of parameter sets
525  int newParametersSet = parametersSet;
526  // modify parametersSetCopy depending of attr
527  switch (key) {
528  case SUMO_ATTR_DURATION:
529  newParametersSet &= ~STOP_DURATION_SET;
530  break;
531  case SUMO_ATTR_UNTIL:
532  newParametersSet &= ~STOP_UNTIL_SET;
533  break;
534  case SUMO_ATTR_EXTENSION:
535  newParametersSet &= ~STOP_EXTENSION_SET;
536  break;
537  default:
538  break;
539  }
540  // add GNEChange_EnableAttribute
541  undoList->add(new GNEChange_EnableAttribute(this, parametersSet, newParametersSet), true);
542 }
543 
544 
545 bool
547  if (key == SUMO_ATTR_FROM) {
548  return (getParentDemandElements().at(0)->getPreviousChildDemandElement(this) == nullptr);
549  } else {
550  return true;
551  }
552 }
553 
554 
555 std::string
557  return getTagStr();
558 }
559 
560 
561 std::string
563  if (getParentAdditionals().size() > 0) {
564  return "person stop: " + getParentAdditionals().front()->getTagStr();
565  } else {
566  return "person stop: lane";
567  }
568 }
569 
570 
571 const std::map<std::string, std::string>&
573  return getParametersMap();
574 }
575 
576 
577 const GNELane*
579  if (getParentEdges().empty()) {
580  return nullptr;
581  }
582  for (const auto& pLane : getParentEdges().front()->getLanes()) {
583  if (pLane->allowPedestrians()) {
584  return pLane;
585  }
586  }
587  return getParentEdges().front()->getLanes().front();
588 }
589 
590 
591 void
592 GNEPersonStop::drawPersonStopOverLane(const GUIVisualizationSettings& s, const double exaggeration, const RGBColor& stopColor) const {
593  // declare central line color
594  const RGBColor centralLineColor = drawUsingSelectColor() ? stopColor.changedBrightness(-32) : RGBColor::WHITE;
595  // set base color
596  GLHelper::setColor(stopColor);
597  // Draw the area using shape, shapeRotations, shapeLengths and value of exaggeration
599  // move to front
600  glTranslated(0, 0, .1);
601  // set central color
602  GLHelper::setColor(centralLineColor);
603  // Draw the area using shape, shapeRotations, shapeLengths and value of exaggeration
605  // move to icon position and front
606  glTranslated(myDemandElementGeometry.getShape().front().x(), myDemandElementGeometry.getShape().front().y(), .1);
607  // rotate over lane
609  // move again
610  glTranslated(0, s.additionalSettings.vaporizerSize * exaggeration, 0);
611  // Draw icon depending of Route Probe is selected and if isn't being drawn for selecting
612  if (!s.drawForRectangleSelection && s.drawDetail(s.detailSettings.laneTextures, exaggeration)) {
613  // set color
614  glColor3d(1, 1, 1);
615  // rotate texture
616  glRotated(180, 0, 0, 1);
617  // draw texture
618  if (drawUsingSelectColor()) {
620  } else {
622  }
623  } else {
624  // rotate
625  glRotated(22.5, 0, 0, 1);
626  // set stop color
627  GLHelper::setColor(stopColor);
628  // move matrix
629  glTranslated(0, 0, 0);
630  // draw filled circle
632  }
633 }
634 
635 
636 void
637 GNEPersonStop::drawPersonStopOverBusStop(const GUIVisualizationSettings& s, const double exaggeration, const RGBColor& stopColor) const {
638  // set base color
639  GLHelper::setColor(stopColor);
640  // Draw the area using shape, shapeRotations, shapeLengths and value of exaggeration
642  // move to icon position and front
644  // rotate over lane
646  // move again
647  glTranslated(s.stoppingPlaceSettings.busStopWidth * exaggeration * -2, 0, 0);
648  // Draw icon depending of Route Probe is selected and if isn't being drawn for selecting
649  if (!s.drawForRectangleSelection && s.drawDetail(s.detailSettings.laneTextures, exaggeration)) {
650  // set color
651  glColor3d(1, 1, 1);
652  // rotate texture
653  glRotated(-90, 0, 0, 1);
654  // draw texture
655  if (drawUsingSelectColor()) {
657  } else {
659  }
660  } else {
661  // rotate
662  glRotated(22.5, 0, 0, 1);
663  // set stop color
664  GLHelper::setColor(stopColor);
665  // move matrix
666  glTranslated(0, 0, 0);
667  // draw filled circle
669  }
670 }
671 
672 // ===========================================================================
673 // private
674 // ===========================================================================
675 
676 void
677 GNEPersonStop::setAttribute(SumoXMLAttr key, const std::string& value) {
678  switch (key) {
679  case SUMO_ATTR_DURATION:
680  if (value.empty()) {
682  } else {
683  duration = string2time(value);
685  }
686  break;
687  case SUMO_ATTR_UNTIL:
688  if (value.empty()) {
690  } else {
691  until = string2time(value);
693  }
694  break;
695  case SUMO_ATTR_ACTTYPE:
696  actType = value;
697  break;
698  // specific of Stops over stoppingPlaces
699  case SUMO_ATTR_BUS_STOP:
701  updateGeometry();
702  break;
703  // specific of Stops over edges/lanes
704  case SUMO_ATTR_EDGE:
706  updateGeometry();
707  edge = value;
708  break;
709  case SUMO_ATTR_ENDPOS:
710  endPos = parse<double>(value);
711  updateGeometry();
712  break;
714  friendlyPos = parse<bool>(value);
715  break;
716  //
717  case GNE_ATTR_SELECTED:
718  if (parse<bool>(value)) {
720  } else {
722  }
723  break;
724  default:
725  throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
726  }
727 }
728 
729 
730 void
731 GNEPersonStop::setEnabledAttribute(const int enabledAttributes) {
732  parametersSet = enabledAttributes;
733 }
734 
735 
736 void
738  // change endPos
739  endPos = moveResult.newFirstPos;
740  // update geometry
741  updateGeometry();
742 }
743 
744 
745 void
747  undoList->p_begin("endPos of " + getTagStr());
748  // now adjust endPos position
749  setAttribute(SUMO_ATTR_ENDPOS, toString(moveResult.newFirstPos), undoList);
750  undoList->p_end();
751 }
752 
753 /****************************************************************************/
GNEDemandElement::getPreviousChildDemandElement
GNEDemandElement * getPreviousChildDemandElement(const GNEDemandElement *demandElement) const
get previous child demand element to the given demand element
Definition: GNEDemandElement.cpp:106
GUIGlObject::getType
GUIGlObjectType getType() const
Returns the type of the object as coded in GUIGlObjectType.
Definition: GUIGlObject.cpp:202
GNEPersonStop::setEnabledAttribute
void setEnabledAttribute(const int enabledAttributes)
method for enabling the attribute and nothing else (used in GNEChange_EnableAttribute)
Definition: GNEPersonStop.cpp:731
SVC_PEDESTRIAN
@ SVC_PEDESTRIAN
pedestrian
Definition: SUMOVehicleClass.h:154
SUMOVehicleClass
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
Definition: SUMOVehicleClass.h:131
GNENet::retrieveAdditional
GNEAdditional * retrieveAdditional(SumoXMLTag type, const std::string &id, bool hardFail=true) const
Returns the named additional.
Definition: GNENet.cpp:2409
GNEPersonStop::drawGL
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
Definition: GNEPersonStop.cpp:227
GUIVisualizationAdditionalSettings::vaporizerSize
static const double vaporizerSize
Vaporizer size.
Definition: GUIVisualizationSettings.h:289
GNEDemandElement
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEDemandElement.h:52
GNEHierarchicalElement::getParentAdditionals
const std::vector< GNEAdditional * > & getParentAdditionals() const
get parent additionals
Definition: GNEHierarchicalElement.cpp:145
GNEAdditional
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEAdditional.h:48
SUMOVehicleParameter::Stop::edge
std::string edge
The edge to stop at (used only in NETEDIT)
Definition: SUMOVehicleParameter.h:338
GNEPersonStop::drawPartialGL
void drawPartialGL(const GUIVisualizationSettings &s, const GNELane *lane, const GNEPathManager::Segment *segment, const double offsetFront) const
Draws partial object.
Definition: GNEPersonStop.cpp:273
GNEMoveOperation
move operation
Definition: GNEMoveElement.h:37
SUMOVehicleParameter::Stop::friendlyPos
bool friendlyPos
enable or disable friendly position (used by NETEDIT)
Definition: SUMOVehicleParameter.h:398
GNEAttributeCarrier::getTagProperty
const GNETagProperties & getTagProperty() const
get Tag Property assigned to this object
Definition: GNEAttributeCarrier.cpp:566
SUMO_TAG_STOP_LANE
@ SUMO_TAG_STOP_LANE
stop placed over a lane (used in netedit)
Definition: SUMOXMLDefinitions.h:184
GNE_TAG_PERSONSTOP_BUSSTOP
@ GNE_TAG_PERSONSTOP_BUSSTOP
Definition: SUMOXMLDefinitions.h:418
GNEPersonStop::getParentName
std::string getParentName() const
Returns the name of the parent object.
Definition: GNEPersonStop.cpp:191
OutputDevice
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:61
GNEPersonStop::getPositionInView
Position getPositionInView() const
Returns position of demand element in view.
Definition: GNEPersonStop.cpp:171
SUMO_ATTR_UNTIL
@ SUMO_ATTR_UNTIL
Definition: SUMOXMLDefinitions.h:856
GNEPersonStop::getPopUpID
std::string getPopUpID() const
get PopPup ID (Used in AC Hierarchy)
Definition: GNEPersonStop.cpp:556
GNETagProperties::hasAttribute
bool hasAttribute(SumoXMLAttr attr) const
check if current TagProperties owns the attribute "attr"
Definition: GNETagProperties.cpp:218
GNEViewNet::drawTranslateFrontAttributeCarrier
void drawTranslateFrontAttributeCarrier(const GNEAttributeCarrier *AC, double typeOrLayer, const double extraOffset=0)
draw front attributeCarrier
Definition: GNEViewNet.cpp:1277
GNEUndoList::p_end
void p_end()
End undo command sub-group. If the sub-group is still empty, it will be deleted; otherwise,...
Definition: GNEUndoList.cpp:78
GUIVisualizationSettings::drawDottedContour
bool drawDottedContour() const
check if dotted contour can be drawn
Definition: GUIVisualizationSettings.cpp:1959
GUIVisualizationSettings::drawForRectangleSelection
bool drawForRectangleSelection
whether drawing is performed for the purpose of selecting objects using a rectangle
Definition: GUIVisualizationSettings.h:832
GNEAttributeCarrier::myTagProperty
const GNETagProperties & myTagProperty
the xml tag to which this attribute carrier corresponds
Definition: GNEAttributeCarrier.h:342
GNEGeometry::Geometry::getShapeRotations
const std::vector< double > & getShapeRotations() const
The rotations of the single shape parts.
Definition: GNEGeometry.cpp:204
GNENet
A NBNetBuilder extended by visualisation and editing capabilities.
Definition: GNENet.h:42
GNEAttributeCarrier::GNEChange_EnableAttribute
friend class GNEChange_EnableAttribute
Definition: GNEAttributeCarrier.h:52
GNEPersonStop::getDemandElementProblem
std::string getDemandElementProblem() const
return a string with the current demand element problem (by default empty, can be reimplemented in ch...
Definition: GNEPersonStop.cpp:105
GLO_PERSONSTOP
@ GLO_PERSONSTOP
a person stop
Definition: GUIGlObjectTypes.h:171
GNEAttributeProperties::getDefaultValue
const std::string & getDefaultValue() const
get default value
Definition: GNEAttributeProperties.cpp:194
STOP_UNTIL_SET
const int STOP_UNTIL_SET
Definition: SUMOVehicleParameter.h:78
GNEPersonStop::getFirstPathLane
GNELane * getFirstPathLane() const
get first path lane
Definition: GNEPersonStop.cpp:285
SUMOVehicleParameter::Stop::parametersSet
int parametersSet
Information for the output which parameter were set.
Definition: SUMOVehicleParameter.h:431
GNEMoveResult
move result
Definition: GNEMoveElement.h:146
SUMO_ATTR_EDGE
@ SUMO_ATTR_EDGE
Definition: SUMOXMLDefinitions.h:491
GNEHierarchicalElement::getParentLanes
const std::vector< GNELane * > & getParentLanes() const
get parent lanes
Definition: GNEHierarchicalElement.cpp:139
GNEPersonStop::getColor
const RGBColor & getColor() const
get color
Definition: GNEPersonStop.cpp:138
GNEPersonStop::getHierarchyName
std::string getHierarchyName() const
get Hierarchy Name (Used in AC Hierarchy)
Definition: GNEPersonStop.cpp:562
GNEPersonStop::isAttributeEnabled
bool isAttributeEnabled(SumoXMLAttr key) const
Definition: GNEPersonStop.cpp:546
SUMO_ATTR_ARRIVALPOS
@ SUMO_ATTR_ARRIVALPOS
Definition: SUMOXMLDefinitions.h:561
SUMO_ATTR_ID
@ SUMO_ATTR_ID
Definition: SUMOXMLDefinitions.h:506
GLHelper.h
GNEPersonStop::getACParametersMap
const std::map< std::string, std::string > & getACParametersMap() const
get parameters map
Definition: GNEPersonStop.cpp:572
GNEPersonStop::writeDemandElement
void writeDemandElement(OutputDevice &device) const
writte demand element element into a xml file
Definition: GNEPersonStop.cpp:76
STOP_EXTENSION_SET
const int STOP_EXTENSION_SET
Definition: SUMOVehicleParameter.h:79
SUMO_ATTR_ENDPOS
@ SUMO_ATTR_ENDPOS
Definition: SUMOXMLDefinitions.h:1000
GNEViewNet::isAttributeCarrierInspected
bool isAttributeCarrierInspected(const GNEAttributeCarrier *AC) const
check if attribute carrier is being inspected
Definition: GNEViewNet.cpp:1236
GNEHierarchicalElement::getChildDemandElements
const std::vector< GNEDemandElement * > & getChildDemandElements() const
return child demand elements
Definition: GNEHierarchicalElement.cpp:211
PositionVector
A list of positions.
Definition: PositionVector.h:43
GLHelper::setColor
static void setColor(const RGBColor &c)
Sets the gl-color to this value.
Definition: GLHelper.cpp:446
GNENet::retrieveEdge
GNEEdge * retrieveEdge(const std::string &id, bool failHard=true) const
get edge by id
Definition: GNENet.cpp:1138
GNEPersonStop::drawPersonStopOverBusStop
void drawPersonStopOverBusStop(const GUIVisualizationSettings &s, const double exaggeration, const RGBColor &stopColor) const
draw personStop over busStop
Definition: GNEPersonStop.cpp:637
GNEGeometry::Geometry::updateGeometry
void updateGeometry(const PositionVector &shape)
update entire geometry
Definition: GNEGeometry.cpp:63
GUITexturesHelper::drawTexturedBox
static void drawTexturedBox(int which, double size)
Draws a named texture as a box with the given size.
Definition: GUITexturesHelper.cpp:71
GNEAttributeCarrier::drawUsingSelectColor
bool drawUsingSelectColor() const
check if attribute carrier must be drawn using selecting color.
Definition: GNEAttributeCarrier.cpp:100
GNEMoveFrame::getDemandModeOptions
DemandModeOptions * getDemandModeOptions() const
get demand mode options
Definition: GNEMoveFrame.cpp:687
GNEAttributeCarrier::myNet
GNENet * myNet
pointer to net
Definition: GNEAttributeCarrier.h:345
GUITexture::PERSONSTOP
@ PERSONSTOP
GNEEdge
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:50
GNEAttributeCarrier::GNEChange_Attribute
friend class GNEChange_Attribute
declare friend class
Definition: GNEAttributeCarrier.h:51
GNEUndoList::p_add
void p_add(GNEChange_Attribute *cmd)
special method, avoid empty changes, always execute
Definition: GNEUndoList.cpp:142
GLHelper::drawFilledCircle
static void drawFilledCircle(double width, int steps=8)
Draws a filled circle around (0,0)
Definition: GLHelper.cpp:347
GNETagProperties::getAttributeProperties
const GNEAttributeProperties & getAttributeProperties(SumoXMLAttr attr) const
get attribute (throw error if doesn't exist)
Definition: GNETagProperties.cpp:164
GNEPersonStop::computePathElement
void computePathElement()
compute pathElement
Definition: GNEPersonStop.cpp:266
GNEPersonStop::getMoveOperation
GNEMoveOperation * getMoveOperation(const double shapeOffset)
get move operation for the given shapeOffset
Definition: GNEPersonStop.cpp:58
RGBColor
Definition: RGBColor.h:37
GNEViewNet::getFrontAttributeCarrier
const GNEAttributeCarrier * getFrontAttributeCarrier() const
get front attributeCarrier
Definition: GNEViewNet.cpp:1263
Parameterised::getParametersMap
const std::map< std::string, std::string > & getParametersMap() const
Returns the inner key/value map.
Definition: Parameterised.cpp:146
GNEPersonStop::splitEdgeGeometry
void splitEdgeGeometry(const double splitPosition, const GNENetworkElement *originalElement, const GNENetworkElement *newElement, GNEUndoList *undoList)
split geometry
Definition: GNEPersonStop.cpp:221
GUIVisualizationSettings::detailSettings
GUIVisualizationDetailSettings detailSettings
detail settings
Definition: GUIVisualizationSettings.h:894
GNEGeometry::DottedContourType::FRONT
@ FRONT
GNEViewParent::getMoveFrame
GNEMoveFrame * getMoveFrame() const
get frame for move elements
Definition: GNEViewParent.cpp:200
GNELane::getLaneShape
const PositionVector & getLaneShape() const
get elements shape
Definition: GNELane.cpp:129
SUMOVehicleParameter::Stop::until
SUMOTime until
The time at which the vehicle may continue its journey.
Definition: SUMOVehicleParameter.h:371
GNEMoveResult::newFirstPos
double newFirstPos
new first position
Definition: GNEMoveElement.h:171
GNEViewNet.h
GNELane::getLengthGeometryFactor
double getLengthGeometryFactor() const
get length geometry factor
Definition: GNELane.cpp:1552
GUIGlObject::getGlID
GUIGlID getGlID() const
Returns the numerical id of the object.
Definition: GUIGlObject.cpp:166
Boundary
A class that stores a 2D geometrical boundary.
Definition: Boundary.h:39
GNEPersonStop::commitMoveShape
void commitMoveShape(const GNEMoveResult &moveResult, GNEUndoList *undoList)
commit move shape
Definition: GNEPersonStop.cpp:746
GUITextureSubSys::getTexture
static GUIGlID getTexture(GUITexture which)
returns a texture previously defined in the enum GUITexture
Definition: GUITextureSubSys.cpp:108
GNEGeometry::drawGeometry
static void drawGeometry(const GNEViewNet *viewNet, const Geometry &geometry, const double width)
draw geometry
Definition: GNEGeometry.cpp:791
GUIVisualizationSettings::additionalSettings
GUIVisualizationAdditionalSettings additionalSettings
Additional settings.
Definition: GUIVisualizationSettings.h:879
ProcessError
Definition: UtilExceptions.h:37
GNEDemandElement::replaceAdditionalParent
void replaceAdditionalParent(SumoXMLTag tag, const std::string &value)
replace additional parent
Definition: GNEDemandElement.cpp:661
Position
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:37
Position::x
double x() const
Returns the x-position.
Definition: Position.h:55
Boundary::add
void add(double x, double y, double z=0)
Makes the boundary include the given coordinate.
Definition: Boundary.cpp:77
time2string
std::string time2string(SUMOTime t)
convert SUMOTime to string
Definition: SUMOTime.cpp:68
GNEGeometry::rotateOverLane
static void rotateOverLane(const double rot)
rotate over lane (used by Lock icons, detector logos, etc.)
Definition: GNEGeometry.cpp:1196
GNELane::LaneDrawingConstants::halfWidth
const double halfWidth
Draw as a normal lane, and reduce width to make sure that a selected edge can still be seen.
Definition: GNELane.h:67
SUMOVehicleParameter::Stop::endPos
double endPos
The stopping position end.
Definition: SUMOVehicleParameter.h:362
GNEPersonStop::isDemandElementValid
bool isDemandElementValid() const
check if current demand element is valid to be writed into XML (by default true, can be reimplemented...
Definition: GNEPersonStop.cpp:82
GUIVisualizationDetailSettings::laneTextures
static const double laneTextures
details for lane textures
Definition: GUIVisualizationSettings.h:443
PositionVector::length2D
double length2D() const
Returns the length.
Definition: PositionVector.cpp:505
GNEPersonStop::setMoveShape
void setMoveShape(const GNEMoveResult &moveResult)
set move shape
Definition: GNEPersonStop.cpp:737
GUITexture::PERSONSTOP_SELECTED
@ PERSONSTOP_SELECTED
SUMO_ATTR_FRIENDLY_POS
@ SUMO_ATTR_FRIENDLY_POS
Definition: SUMOXMLDefinitions.h:960
string2time
SUMOTime string2time(const std::string &r)
convert string to SUMOTime
Definition: SUMOTime.cpp:45
GNEPersonStop.h
SUMO_ATTR_EXTENSION
@ SUMO_ATTR_EXTENSION
Definition: SUMOXMLDefinitions.h:858
GNE_TAG_PERSONSTOP_EDGE
@ GNE_TAG_PERSONSTOP_EDGE
Definition: SUMOXMLDefinitions.h:419
GNETagProperties::getTag
SumoXMLTag getTag() const
get Tag vinculated with this attribute Property
Definition: GNETagProperties.cpp:63
GNEChange_EnableAttribute.h
SUMOVehicleParameter::Stop::actType
std::string actType
act Type (only used by Persons) (used by NETEDIT)
Definition: SUMOVehicleParameter.h:401
GNENet::getViewNet
GNEViewNet * getViewNet() const
get view net
Definition: GNENet.cpp:2338
GUIVisualizationSettings::colorSettings
GUIVisualizationColorSettings colorSettings
color settings
Definition: GUIVisualizationSettings.h:867
SUMO_ATTR_FROM
@ SUMO_ATTR_FROM
Definition: SUMOXMLDefinitions.h:823
PositionVector::distance2D
double distance2D(const Position &p, bool perpendicular=false) const
closest 2D-distance to point p (or -1 if perpendicular is true and the point is beyond this vector)
Definition: PositionVector.cpp:1268
GNEDemandElement::setAttribute
virtual void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)=0
method for setting the attribute and letting the object perform demand element changes
GNELane::LaneDrawingConstants
FOX-declaration.
Definition: GNELane.h:51
GNEPersonStop::enableAttribute
void enableAttribute(SumoXMLAttr key, GNEUndoList *undoList)
Definition: GNEPersonStop.cpp:491
GNEHierarchicalElement::getParentEdges
const std::vector< GNEEdge * > & getParentEdges() const
get parent edges
Definition: GNEHierarchicalElement.cpp:133
GNEViewParent.h
GNEPersonStop::disableAttribute
void disableAttribute(SumoXMLAttr key, GNEUndoList *undoList)
Definition: GNEPersonStop.cpp:523
GNEPersonStop::getLastPathLane
GNELane * getLastPathLane() const
get last path lane
Definition: GNEPersonStop.cpp:296
GLIncludes.h
GNEGeometry::DottedContourType::INSPECT
@ INSPECT
toString
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Definition: ToString.h:45
GNENetworkElement::getID
const std::string & getID() const
get ID
Definition: GNENetworkElement.cpp:50
GNEPersonStop::drawPersonStopOverLane
void drawPersonStopOverLane(const GUIVisualizationSettings &s, const double exaggeration, const RGBColor &stopColor) const
draw personStop over lane
Definition: GNEPersonStop.cpp:592
SUMO_TAG_BUS_STOP
@ SUMO_TAG_BUS_STOP
A bus stop.
Definition: SUMOXMLDefinitions.h:95
GNEPersonStop::getAttribute
std::string getAttribute(SumoXMLAttr key) const
inherited from GNEAttributeCarrier
Definition: GNEPersonStop.cpp:303
SUMO_ATTR_DURATION
@ SUMO_ATTR_DURATION
Definition: SUMOXMLDefinitions.h:855
GNEPersonStop::getAttributeDouble
double getAttributeDouble(SumoXMLAttr key) const
Definition: GNEPersonStop.cpp:343
Position::y
double y() const
Returns the y-position.
Definition: Position.h:60
GNEHierarchicalElement::getParentDemandElements
const std::vector< GNEDemandElement * > & getParentDemandElements() const
get parent demand elements
Definition: GNEHierarchicalElement.cpp:163
PositionVector::positionAtOffset2D
Position positionAtOffset2D(double pos, double lateralOffset=0) const
Returns the position at the given length.
Definition: PositionVector.cpp:272
GNEPersonStop::getFirstAllowedLane
const GNELane * getFirstAllowedLane() const
get first valid lane
Definition: GNEPersonStop.cpp:578
GNEAttributeCarrier::isAttributeCarrierSelected
bool isAttributeCarrierSelected() const
check if attribute carrier is selected
Definition: GNEAttributeCarrier.cpp:94
InvalidArgument
Definition: UtilExceptions.h:54
GNEPersonStop::GNEPersonStop
GNEPersonStop(GNENet *net, GNEDemandElement *personParent, GNEAdditional *stoppingPlace, const SUMOVehicleParameter::Stop &stopParameter)
constructor used for stops over busStops
Definition: GNEPersonStop.cpp:40
SUMORouteHandler.h
GNEPersonStop::getBegin
std::string getBegin() const
get begin time of demand element
Definition: GNEPersonStop.cpp:70
GNEPersonStop::~GNEPersonStop
~GNEPersonStop()
destructor
Definition: GNEPersonStop.cpp:54
STOP_DURATION_SET
const int STOP_DURATION_SET
Definition: SUMOVehicleParameter.h:77
GNEAttributeCarrier::selectAttributeCarrier
void selectAttributeCarrier(const bool changeFlag=true)
select attribute carrier using GUIGlobalSelection
Definition: GNEAttributeCarrier.cpp:68
GNEDemandElement::replaceDemandParentEdges
void replaceDemandParentEdges(const std::string &value)
replace demand parent edges
Definition: GNEDemandElement.cpp:616
GNEDemandElement::myDemandElementGeometry
GNEGeometry::Geometry myDemandElementGeometry
demand element geometry (also called "stacked geometry")
Definition: GNEDemandElement.h:335
GNEPersonStop::fixDemandElementProblem
void fixDemandElementProblem()
fix demand element problem (by default throw an exception, has to be reimplemented in children)
Definition: GNEPersonStop.cpp:126
GNENetworkElement
Definition: GNENetworkElement.h:41
GUIVisualizationColorSettings::selectedPersonPlanColor
RGBColor selectedPersonPlanColor
person plan selection color (Rides, Walks, personStops...)
Definition: GUIVisualizationSettings.h:157
SUMOVehicleParameter::Stop::write
void write(OutputDevice &dev, bool close=true) const
Writes the stop as XML.
Definition: SUMOVehicleParameter.cpp:172
GNEMoveFrame.h
GUISUMOAbstractView::getVisualisationSettings
GUIVisualizationSettings & getVisualisationSettings() const
get visualization settings
Definition: GUISUMOAbstractView.cpp:1405
GUIVisualizationSettings::addSize
GUIVisualizationSizeSettings addSize
Definition: GUIVisualizationSettings.h:765
GNEPersonStop::setAttribute
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
method for setting the attribute and letting the object perform demand element changes
Definition: GNEPersonStop.cpp:386
GNE_ATTR_SELECTED
@ GNE_ATTR_SELECTED
element is selected
Definition: SUMOXMLDefinitions.h:1175
GUIVisualizationColorSettings::stops
static const RGBColor stops
color for Stops
Definition: GUIVisualizationSettings.h:181
Boundary::grow
Boundary & grow(double by)
extends the boundary by the given amount
Definition: Boundary.cpp:299
GUIVisualizationSettings::drawDetail
bool drawDetail(const double detail, const double exaggeration) const
check if details can be drawn for the given GUIVisualizationDetailSettings and current scale and exxa...
Definition: GUIVisualizationSettings.cpp:1935
GNEPersonStop::getCenteringBoundary
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
Definition: GNEPersonStop.cpp:207
GNEPersonStop::getVClass
SUMOVehicleClass getVClass() const
Definition: GNEPersonStop.cpp:132
GNEAttributeCarrier::getTagStr
const std::string & getTagStr() const
get tag assigned to this object in string format
Definition: GNEAttributeCarrier.cpp:560
GNEPersonStop::updateGeometry
void updateGeometry()
update pre-computed geometry information
Definition: GNEPersonStop.cpp:144
GNEUndoList
Definition: GNEUndoList.h:46
GUIVisualizationSettings
Stores the information about how to visualize structures.
Definition: GUIVisualizationSettings.h:505
SUMOVehicleParameter::Stop::duration
SUMOTime duration
The stopping duration.
Definition: SUMOVehicleParameter.h:368
PositionVector::getLineCenter
Position getLineCenter() const
get line center
Definition: PositionVector.cpp:482
GUIVisualizationColorSettings::personStops
static const RGBColor personStops
color for personStops
Definition: GUIVisualizationSettings.h:187
SUMO_ATTR_BUS_STOP
@ SUMO_ATTR_BUS_STOP
Definition: SUMOXMLDefinitions.h:964
GNEUndoList::p_begin
void p_begin(const std::string &description)
Begin undo command sub-group. This begins a new group of commands that are treated as a single comman...
Definition: GNEUndoList.cpp:71
SumoXMLAttr
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
Definition: SUMOXMLDefinitions.h:432
RGBColor::changedBrightness
RGBColor changedBrightness(int change, int toChange=3) const
Returns a new color with altered brightness.
Definition: RGBColor.cpp:145
GNEPersonStop::getAttributePosition
Position getAttributePosition(SumoXMLAttr key) const
Definition: GNEPersonStop.cpp:359
GNEPathManager::Segment
segment
Definition: GNEPathManager.h:44
SUMO_ATTR_ACTTYPE
@ SUMO_ATTR_ACTTYPE
Definition: SUMOXMLDefinitions.h:1077
GNEAttributeCarrier::unselectAttributeCarrier
void unselectAttributeCarrier(const bool changeFlag=true)
unselect attribute carrier using GUIGlobalSelection
Definition: GNEAttributeCarrier.cpp:81
GUIVisualizationSettings::stoppingPlaceSettings
GUIVisualizationStoppingPlaceSettings stoppingPlaceSettings
StoppingPlace settings.
Definition: GUIVisualizationSettings.h:885
GNEGeometry::drawDottedContourShape
static void drawDottedContourShape(const DottedContourType type, const GUIVisualizationSettings &s, const PositionVector &shape, const double width, const double exaggeration)
draw dotted contour for the given shape (used by additionals)
Definition: GNEGeometry.cpp:1132
GUIVisualizationStoppingPlaceSettings::busStopWidth
static const double busStopWidth
busStop width
Definition: GUIVisualizationSettings.h:344
GNEDemandElement::drawPersonPlan
bool drawPersonPlan() const
Definition: GNEDemandElement.cpp:397
GNELane
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition: GNELane.h:45
GNEGeometry::Geometry::getShape
const PositionVector & getShape() const
The shape of the additional element.
Definition: GNEGeometry.cpp:198
GUITextureSubSys.h
GNEChange_Attribute.h
GNENet.h
GUIVisualizationSizeSettings::getExaggeration
double getExaggeration(const GUIVisualizationSettings &s, const GUIGlObject *o, double factor=20) const
return the drawing size including exaggeration and constantSize values
Definition: GUIVisualizationSettings.cpp:290
GNEPersonStop::isValid
bool isValid(SumoXMLAttr key, const std::string &value)
method for checking if the key and their conrrespond attribute are valids
Definition: GNEPersonStop.cpp:453
GNEViewNet::getViewParent
GNEViewParent * getViewParent() const
get the net object
Definition: GNEViewNet.cpp:1200
GNEMoveFrame::DemandModeOptions::getLeavePersonStopsConnected
bool getLeavePersonStopsConnected() const
check if leave personStopConnected is enabled
Definition: GNEMoveFrame.cpp:149
SUMOVehicleParameter::Stop
Definition of vehicle stop (position and duration)
Definition: SUMOVehicleParameter.h:322
RGBColor::WHITE
static const RGBColor WHITE
Definition: RGBColor.h:194
GNEUndoList.h
GNE_ATTR_PARENT
@ GNE_ATTR_PARENT
parent of an additional element
Definition: SUMOXMLDefinitions.h:1189