Eclipse SUMO - Simulation of Urban MObility
GNEDemandElement.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
15 // A abstract class for demand elements
16 /****************************************************************************/
17 #ifndef GNEDemandElement_h
18 #define GNEDemandElement_h
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
32 #include <netbuild/NBVehicle.h>
33 #include <netbuild/NBEdge.h>
34 
35 // ===========================================================================
36 // class declarations
37 // ===========================================================================
38 
39 class GNEViewNet;
40 class GNEEdge;
41 class GNELane;
42 class GNEAdditional;
43 class GNEDemandElement;
44 class GNEJunction;
45 
46 // ===========================================================================
47 // class definitions
48 // ===========================================================================
49 
55 
56 public:
59 
62 
64  void clearGeometry();
65 
68 
71 
73  std::vector<double> shapeRotations;
74 
76  std::vector<double> shapeLengths;
77  };
78 
81 
83  struct Segment {
85  Segment(const GNEDemandElement* _element, const GNEEdge* _edge, const Position _pos, const bool _visible, const bool _valid);
86 
88  Segment(const GNEDemandElement* _element, const GNEEdge* _edge, const Position _pos, double _length, double _rotation, const bool _visible, const bool _valid);
89 
91  Segment(const GNEDemandElement* _element, const GNEJunction* _junction, const Position _pos, const bool _visible, const bool _valid);
92 
95 
97  const GNEEdge* edge;
98 
101 
103  const Position pos;
104 
106  const bool visible;
107 
109  const bool valid;
110 
112  double length;
113 
115  double rotation;
116 
117  private:
119  Segment& operator=(const Segment& other) = delete;
120  };
121 
124 
126  void insertEdgeSegment(const GNEDemandElement* element, const GNEEdge* edge, const Position pos, const bool visible, const bool valid);
127 
129  void insertEdgeLengthRotSegment(const GNEDemandElement* element, const GNEEdge* edge, const Position pos, double length, double rotation, const bool visible, const bool valid);
130 
132  void insertJunctionSegment(const GNEDemandElement* element, const GNEJunction* junction, const Position pos, const bool visible, const bool valid);
133 
136 
139 
141  std::vector<Segment>::const_iterator begin() const;
142 
144  std::vector<Segment>::const_iterator end() const;
145 
148 
149  private:
151  std::vector<Segment> myShapeSegments;
152  };
153 
158 
161 
164 
167  };
168 
171 
172  public:
174  RouteCalculator(GNENet* net);
175 
178 
180  void updateDijkstraRouter();
181 
183  std::vector<GNEEdge*> calculateDijkstraRoute(SUMOVehicleClass vClass, const std::vector<GNEEdge*>& partialEdges) const;
184 
186  std::vector<GNEEdge*> calculateDijkstraRoute(GNENet* net, SUMOVehicleClass vClass, const std::vector<std::string>& partialEdgesStr) const;
187 
189  bool areEdgesConsecutives(SUMOVehicleClass vClass, GNEEdge* from, GNEEdge* to) const;
190 
191  private:
194 
197  };
198 
215  GNEDemandElement(const std::string& id, GNEViewNet* viewNet, GUIGlObjectType type, SumoXMLTag tag,
216  const std::vector<GNEEdge*>& edgeParents,
217  const std::vector<GNELane*>& laneParents,
218  const std::vector<GNEShape*>& shapeParents,
219  const std::vector<GNEAdditional*>& additionalParents,
220  const std::vector<GNEDemandElement*>& demandElementParents,
221  const std::vector<GNEEdge*>& edgeChildren,
222  const std::vector<GNELane*>& laneChildren,
223  const std::vector<GNEShape*>& shapeChildren,
224  const std::vector<GNEAdditional*>& additionalChildren,
225  const std::vector<GNEDemandElement*>& demandElementChildren);
226 
243  GNEDemandElement(GNEDemandElement* demandElementParent, GNEViewNet* viewNet, GUIGlObjectType type, SumoXMLTag tag,
244  const std::vector<GNEEdge*>& edgeParents,
245  const std::vector<GNELane*>& laneParents,
246  const std::vector<GNEShape*>& shapeParents,
247  const std::vector<GNEAdditional*>& additionalParents,
248  const std::vector<GNEDemandElement*>& demandElementParents,
249  const std::vector<GNEEdge*>& edgeChildren,
250  const std::vector<GNELane*>& laneChildren,
251  const std::vector<GNEShape*>& shapeChildren,
252  const std::vector<GNEAdditional*>& additionalChildren,
253  const std::vector<GNEDemandElement*>& demandElementChildren);
254 
257 
260 
263 
266 
268  std::string generateChildID(SumoXMLTag childTag);
269 
273  virtual GNEEdge* getFromEdge() const = 0;
274 
276  virtual GNEEdge* getToEdge() const = 0;
277 
279  virtual SUMOVehicleClass getVClass() const = 0;
280 
282  virtual const RGBColor& getColor() const = 0;
283 
285  virtual void compute() = 0;
286 
288 
291 
294  virtual void writeDemandElement(OutputDevice& device) const = 0;
295 
297  virtual bool isDemandElementValid() const;
298 
300  virtual std::string getDemandElementProblem() const;
301 
303  virtual void fixDemandElementProblem();
305 
310  virtual void openDemandElementDialog();
311 
316  virtual std::string getBegin() const;
317 
321  virtual void startGeometryMoving() = 0;
322 
324  virtual void endGeometryMoving() = 0;
325 
329  virtual void moveGeometry(const Position& offset) = 0;
330 
334  virtual void commitGeometryMoving(GNEUndoList* undoList) = 0;
335 
337  virtual void updateGeometry() = 0;
338 
340  virtual Position getPositionInView() const = 0;
342 
344  GNEViewNet* getViewNet() const;
345 
348 
350  static void createRouteCalculatorInstance(GNENet* net);
351 
353  static void deleteRouteCalculatorInstance();
354 
357 
359 
362 
371 
380 
384  virtual Boundary getCenteringBoundary() const = 0;
385 
390  virtual void drawGL(const GUIVisualizationSettings& s) const = 0;
392 
396  virtual void selectAttributeCarrier(bool changeFlag = true) = 0;
397 
399  virtual void unselectAttributeCarrier(bool changeFlag = true) = 0;
400 
402  bool isAttributeCarrierSelected() const;
403 
405  bool drawUsingSelectColor() const;
406 
407  /* @brief method for getting the Attribute of an XML key
408  * @param[in] key The attribute key
409  * @return string with the value associated to key
410  */
411  virtual std::string getAttribute(SumoXMLAttr key) const = 0;
412 
413  /* @brief method for getting the Attribute of an XML key in double format (to avoid unnecessary parse<double>(...) for certain attributes)
414  * @param[in] key The attribute key
415  * @return double with the value associated to key
416  */
417  virtual double getAttributeDouble(SumoXMLAttr key) const = 0;
418 
424  virtual void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList) = 0;
425 
431  virtual bool isValid(SumoXMLAttr key, const std::string& value) = 0;
432 
433  /* @brief method for enabling attribute
434  * @param[in] key The attribute key
435  * @param[in] undoList The undoList on which to register changes
436  * @note only certain attributes can be enabled, and can produce the disabling of other attributes
437  */
438  virtual void enableAttribute(SumoXMLAttr key, GNEUndoList* undoList) = 0;
439 
441  virtual std::string getPopUpID() const = 0;
442 
444  virtual std::string getHierarchyName() const = 0;
446 
449 
451  virtual std::string getGenericParametersStr() const = 0;
452 
454  virtual std::vector<std::pair<std::string, std::string> > getGenericParameters() const = 0;
455 
457  virtual void setGenericParametersStr(const std::string& value) = 0;
458 
460 
465  static bool isRouteValid(const std::vector<GNEEdge*>& edges, bool report);
466 
467 protected:
470 
473 
476 
479 
481  const std::string& getDemandElementID() const;
482 
484  bool isValidDemandElementID(const std::string& newID) const;
485 
490  void changeDemandElementID(const std::string& newID);
491 
493 
494 private:
498  virtual bool checkDemandElementChildRestriction() const;
499 
501  virtual void setAttribute(SumoXMLAttr key, const std::string& value) = 0;
502 
505 
507  GNEDemandElement(const GNEDemandElement&) = delete;
508 
510  GNEDemandElement& operator=(const GNEDemandElement&) = delete;
511 };
512 
513 
514 #endif
515 
516 /****************************************************************************/
517 
GNEDemandElement::markSegmentGeometryDeprecated
void markSegmentGeometryDeprecated()
mark demand element segment geometry as deprecated
Definition: GNEDemandElement.cpp:372
GNEDemandElement::myViewNet
GNEViewNet * myViewNet
The GNEViewNet this demand element element belongs.
Definition: GNEDemandElement.h:469
GNEDemandElement::RouteCalculator::updateDijkstraRouter
void updateDijkstraRouter()
update DijkstraRoute (called when SuperMode Demand is selected)
Definition: GNEDemandElement.cpp:213
SUMOVehicleClass
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
Definition: SUMOVehicleClass.h:134
GUIGlObject.h
GNEDemandElement
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEDemandElement.h:54
GNEDemandElement::createRouteCalculatorInstance
static void createRouteCalculatorInstance(GNENet *net)
create instance of RouteCalculator
Definition: GNEDemandElement.cpp:414
GNEAdditional
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEAdditional.h:47
GUIParameterTableWindow
A window containing a gl-object's parameter.
Definition: GUIParameterTableWindow.h:63
GNEDemandElement::getFromEdge
virtual GNEEdge * getFromEdge() const =0
GNEDemandElement::getVClass
virtual SUMOVehicleClass getVClass() const =0
obtain VClass related with this demand element
GNEDemandElement::DemandElementSegmentGeometry::Segment::valid
const bool valid
invalid
Definition: GNEDemandElement.h:109
GNEDemandElement::getDemandElementProblem
virtual std::string getDemandElementProblem() const
return a string with the current demand element problem (by default empty, can be reimplemented in ch...
Definition: GNEDemandElement.cpp:384
GNEDemandElement::isValidDemandElementID
bool isValidDemandElementID(const std::string &newID) const
check if a new demand element ID is valid
Definition: GNEDemandElement.cpp:530
GUISUMOAbstractView
Definition: GUISUMOAbstractView.h:73
GNEDemandElement::getRouteCalculatorInstance
static RouteCalculator * getRouteCalculatorInstance()
obtain instance of RouteCalculator
Definition: GNEDemandElement.cpp:435
GNEDemandElement::DemandElementMove::firstOriginalLanePosition
std::string firstOriginalLanePosition
value for saving first original position over lane before moving
Definition: GNEDemandElement.h:163
GNEDemandElement::DemandElementSegmentGeometry::calculatePartialShapeRotationsAndLengths
void calculatePartialShapeRotationsAndLengths()
calculate partial shape, rotations and lengths
Definition: GNEDemandElement.cpp:161
GNEDemandElement::DemandElementSegmentGeometry::Segment::visible
const bool visible
visible
Definition: GNEDemandElement.h:106
OutputDevice
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:64
GNEDemandElement::DemandElementSegmentGeometry::insertEdgeSegment
void insertEdgeSegment(const GNEDemandElement *element, const GNEEdge *edge, const Position pos, const bool visible, const bool valid)
insert edge segment
Definition: GNEDemandElement.cpp:133
GNEDemandElement::DemandElementSegmentGeometry::clearDemandElementSegmentGeometry
void clearDemandElementSegmentGeometry()
clear demand element geometry
Definition: GNEDemandElement.cpp:154
GNEDemandElement::selectAttributeCarrier
virtual void selectAttributeCarrier(bool changeFlag=true)=0
GNEDemandElement::myDemandElementGeometry
DemandElementGeometry myDemandElementGeometry
demand element geometry
Definition: GNEDemandElement.h:472
GNENet
A NBNetBuilder extended by visualisation and editing capabilities.
Definition: GNENet.h:78
GNEDemandElement::DemandElementSegmentGeometry::Segment::edge
const GNEEdge * edge
edge
Definition: GNEDemandElement.h:97
GNEDemandElement::DemandElementSegmentGeometry::end
std::vector< Segment >::const_iterator end() const
end iterator
Definition: GNEDemandElement.cpp:191
GNEDemandElement::DemandElementMove
struct for pack all variables related with Demand Element moving
Definition: GNEDemandElement.h:155
GNEDemandElement::DemandElementSegmentGeometry::Segment::rotation
double rotation
rotation
Definition: GNEDemandElement.h:115
GNEDemandElement::DemandElementGeometry::calculateShapeRotationsAndLengths
void calculateShapeRotationsAndLengths()
calculate shape rotations and lengths
Definition: GNEDemandElement.cpp:61
GNEDemandElement::writeDemandElement
virtual void writeDemandElement(OutputDevice &device) const =0
writte demand element element into a xml file
GNEDemandElement::getGenericParameters
virtual std::vector< std::pair< std::string, std::string > > getGenericParameters() const =0
return generic parameters as vector of pairs format
GNEViewNet
Definition: GNEViewNet.h:43
GNEHierarchicalElementChildren.h
GNEDemandElement::DemandElementSegmentGeometry::Segment::element
const GNEDemandElement * element
element
Definition: GNEDemandElement.h:94
GNEDemandElement::getDemandElementSegmentGeometry
const DemandElementSegmentGeometry & getDemandElementSegmentGeometry() const
get demand element segment geometry
Definition: GNEDemandElement.cpp:366
GNEDemandElement::getViewNet
GNEViewNet * getViewNet() const
Returns a pointer to GNEViewNet in which demand element element is located.
Definition: GNEDemandElement.cpp:408
GNEHierarchicalElementParents
An special type of Attribute carrier that owns hierarchical elements.
Definition: GNEHierarchicalElementParents.h:48
GNEDemandElement::DemandElementMove::originalViewPosition
Position originalViewPosition
value for saving first original position over lane before moving
Definition: GNEDemandElement.h:160
GNEDemandElement::isValid
virtual bool isValid(SumoXMLAttr key, const std::string &value)=0
method for checking if the key and their conrrespond attribute are valids
GNEDemandElement::DemandElementSegmentGeometry::Segment::length
double length
length
Definition: GNEDemandElement.h:112
PositionVector
A list of positions.
Definition: PositionVector.h:46
GUIGLObjectPopupMenu
The popup menu of a globject.
Definition: GUIGLObjectPopupMenu.h:48
GNEDemandElement::getCenteringBoundary
virtual Boundary getCenteringBoundary() const =0
Returns the boundary to which the view shall be centered in order to show the object.
GNEDemandElement::startGeometryMoving
virtual void startGeometryMoving()=0
GNEDemandElement::DemandElementGeometry::shapeRotations
std::vector< double > shapeRotations
The rotations of the single shape parts.
Definition: GNEDemandElement.h:73
SumoXMLTag
SumoXMLTag
Numbers representing SUMO-XML - element names.
Definition: SUMOXMLDefinitions.h:42
GNEDemandElement::getPopUpMenu
virtual GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
Definition: GNEDemandElement.cpp:445
GUIGlObjectType
GUIGlObjectType
Definition: GUIGlObjectTypes.h:40
GNEDemandElement::fixDemandElementProblem
virtual void fixDemandElementProblem()
fix demand element problem (by default throw an exception, has to be reimplemented in children)
Definition: GNEDemandElement.cpp:390
GNEEdge
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:50
GNEDemandElement::DemandElementMove::secondOriginalPosition
std::string secondOriginalPosition
value for saving second original position over lane before moving
Definition: GNEDemandElement.h:166
GNEDemandElement::changeDemandElementID
void changeDemandElementID(const std::string &newID)
change ID of demand element
Definition: GNEDemandElement.cpp:540
GNEDemandElement::getPositionInView
virtual Position getPositionInView() const =0
Returns position of demand element in view.
GNEDemandElement::getDemandElementGeometry
const DemandElementGeometry & getDemandElementGeometry() const
get demand element geometry
Definition: GNEDemandElement.cpp:360
GNEDemandElement::enableAttribute
virtual void enableAttribute(SumoXMLAttr key, GNEUndoList *undoList)=0
RGBColor
Definition: RGBColor.h:40
GNEDemandElement::DemandElementGeometry::shape
PositionVector shape
The shape of the additional element.
Definition: GNEDemandElement.h:70
GNEDemandElement::GNEDemandElement
GNEDemandElement(const std::string &id, GNEViewNet *viewNet, GUIGlObjectType type, SumoXMLTag tag, const std::vector< GNEEdge * > &edgeParents, const std::vector< GNELane * > &laneParents, const std::vector< GNEShape * > &shapeParents, const std::vector< GNEAdditional * > &additionalParents, const std::vector< GNEDemandElement * > &demandElementParents, const std::vector< GNEEdge * > &edgeChildren, const std::vector< GNELane * > &laneChildren, const std::vector< GNEShape * > &shapeChildren, const std::vector< GNEAdditional * > &additionalChildren, const std::vector< GNEDemandElement * > &demandElementChildren)
Constructor.
Definition: GNEDemandElement.cpp:308
GNEDemandElement::myRouteCalculatorInstance
static RouteCalculator * myRouteCalculatorInstance
RouteCalculator instance.
Definition: GNEDemandElement.h:504
GNEDemandElement::updateGeometry
virtual void updateGeometry()=0
update pre-computed geometry information
GNEDemandElement::DemandElementSegmentGeometry::begin
std::vector< Segment >::const_iterator begin() const
begin iterator
Definition: GNEDemandElement.cpp:185
GNEDemandElement::DemandElementSegmentGeometry::insertJunctionSegment
void insertJunctionSegment(const GNEDemandElement *element, const GNEJunction *junction, const Position pos, const bool visible, const bool valid)
insert junction segment
Definition: GNEDemandElement.cpp:147
GNEDemandElement::RouteCalculator::myDijkstraRouter
SUMOAbstractRouter< NBRouterEdge, NBVehicle > * myDijkstraRouter
SUMO Abstract DijkstraRouter.
Definition: GNEDemandElement.h:196
GNEDemandElement::checkDemandElementChildRestriction
virtual bool checkDemandElementChildRestriction() const
check restriction with the number of children
Definition: GNEDemandElement.cpp:571
GNEDemandElement::RouteCalculator::myNet
GNENet * myNet
pointer to net
Definition: GNEDemandElement.h:193
GNEDemandElement::DemandElementSegmentGeometry::DemandElementSegmentGeometry
DemandElementSegmentGeometry()
constructor
Definition: GNEDemandElement.cpp:127
GNEDemandElement::getAttribute
virtual std::string getAttribute(SumoXMLAttr key) const =0
GNEDemandElement::DemandElementSegmentGeometry::Segment::pos
const Position pos
position
Definition: GNEDemandElement.h:103
GNEDemandElement::getAttributeDouble
virtual double getAttributeDouble(SumoXMLAttr key) const =0
Parameterised.h
GNEDemandElement::getColor
virtual const RGBColor & getColor() const =0
get color
GNEDemandElement::drawGL
virtual void drawGL(const GUIVisualizationSettings &s) const =0
Draws the object.
Boundary
A class that stores a 2D geometrical boundary.
Definition: Boundary.h:42
GNEDemandElement::generateChildID
std::string generateChildID(SumoXMLTag childTag)
gererate a new ID for an element child
Definition: GNEDemandElement.cpp:347
GNEDemandElement::getPopUpID
virtual std::string getPopUpID() const =0
get PopPup ID (Used in AC Hierarchy)
GNEDemandElement::moveGeometry
virtual void moveGeometry(const Position &offset)=0
change the position of the element geometry without saving in undoList
Position
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:39
GNEDemandElement::isAttributeCarrierSelected
bool isAttributeCarrierSelected() const
check if attribute carrier is selected
Definition: GNEDemandElement.cpp:555
GNEDemandElement::DemandElementSegmentGeometry::myShapeSegments
std::vector< Segment > myShapeSegments
vector of segments that constitutes the shape
Definition: GNEDemandElement.h:151
GNEDemandElement::compute
virtual void compute()=0
compute demand element (used by flows, trips, personPlans<from-to>,...)
GNEDemandElement::openDemandElementDialog
virtual void openDemandElementDialog()
open DemandElement Dialog
Definition: GNEDemandElement.cpp:396
GUIGlObject
Definition: GUIGlObject.h:66
GNEDemandElement::DemandElementGeometry
struct for pack all variables related with geometry of stop
Definition: GNEDemandElement.h:58
GNEDemandElement::RouteCalculator::~RouteCalculator
~RouteCalculator()
destructor
Definition: GNEDemandElement.cpp:207
GNEDemandElement::getGenericParametersStr
virtual std::string getGenericParametersStr() const =0
return generic parameters in string format
SUMOAbstractRouter< NBRouterEdge, NBVehicle >
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
GNEDemandElement::DemandElementSegmentGeometry::geometryDeprecated
bool geometryDeprecated
mark geometry as deprecated (used to avoid multiple updates)
Definition: GNEDemandElement.h:147
GNEDemandElement::RouteCalculator
class used to calculate routes in nets
Definition: GNEDemandElement.h:170
GNEDemandElement::DemandElementSegmentGeometry::insertEdgeLengthRotSegment
void insertEdgeLengthRotSegment(const GNEDemandElement *element, const GNEEdge *edge, const Position pos, double length, double rotation, const bool visible, const bool valid)
insert edge segment with length and rotation (used to avoid unnecessary calculation in calculateParti...
Definition: GNEDemandElement.cpp:140
GNEDemandElement::RouteCalculator::areEdgesConsecutives
bool areEdgesConsecutives(SUMOVehicleClass vClass, GNEEdge *from, GNEEdge *to) const
check if exist a route between the two given consecutives edges
Definition: GNEDemandElement.cpp:282
GNEDemandElement::myDemandElementSegmentGeometry
DemandElementSegmentGeometry myDemandElementSegmentGeometry
demand element segment geometry
Definition: GNEDemandElement.h:475
GUIMainWindow
Definition: GUIMainWindow.h:47
GNEDemandElement::RouteCalculator::RouteCalculator
RouteCalculator(GNENet *net)
constructor
Definition: GNEDemandElement.cpp:199
GNEDemandElement::DemandElementSegmentGeometry::Segment
struct used for represent segments of demand element geometry
Definition: GNEDemandElement.h:83
GNEDemandElement::DemandElementGeometry::DemandElementGeometry
DemandElementGeometry()
constructor
Definition: GNEDemandElement.cpp:49
GNEDemandElement::unselectAttributeCarrier
virtual void unselectAttributeCarrier(bool changeFlag=true)=0
unselect attribute carrier using GUIGlobalSelection
GNEDemandElement::DemandElementSegmentGeometry::Segment::Segment
Segment(const GNEDemandElement *_element, const GNEEdge *_edge, const Position _pos, const bool _visible, const bool _valid)
parameter constructor for edges
Definition: GNEDemandElement.cpp:87
GNEHierarchicalElementParents.h
GNEDemandElement::getDemandElementID
const std::string & getDemandElementID() const
returns DemandElement ID
Definition: GNEDemandElement.cpp:524
GNEDemandElement::commitGeometryMoving
virtual void commitGeometryMoving(GNEUndoList *undoList)=0
commit geometry changes in the attributes of an element after use of moveGeometry(....
GNEDemandElement::isRouteValid
static bool isRouteValid(const std::vector< GNEEdge * > &edges, bool report)
check if a route is valid
Definition: GNEDemandElement.cpp:489
GNEDemandElement::deleteRouteCalculatorInstance
static void deleteRouteCalculatorInstance()
delete instance of RouteCalculator
Definition: GNEDemandElement.cpp:424
config.h
GNEDemandElement::DemandElementSegmentGeometry::Segment::operator=
Segment & operator=(const Segment &other)=delete
Invalidated assignment operator.
GNEDemandElement::RouteCalculator::calculateDijkstraRoute
std::vector< GNEEdge * > calculateDijkstraRoute(SUMOVehicleClass vClass, const std::vector< GNEEdge * > &partialEdges) const
calculate Dijkstra route between a list of partial edges
Definition: GNEDemandElement.cpp:225
GNEDemandElement::DemandElementSegmentGeometry
struct for pack all variables related with geometry of elemements divided in segments
Definition: GNEDemandElement.h:80
GNEUndoList
Definition: GNEUndoList.h:49
GNEDemandElement::getBegin
virtual std::string getBegin() const
get begin time of demand element
Definition: GNEDemandElement.cpp:402
NBVehicle.h
GUIVisualizationSettings
Stores the information about how to visualize structures.
Definition: GUIVisualizationSettings.h:346
GNEDemandElement::endGeometryMoving
virtual void endGeometryMoving()=0
end geometry movement
GNEJunction
Definition: GNEJunction.h:48
GNEDemandElement::DemandElementGeometry::shapeLengths
std::vector< double > shapeLengths
The lengths of the single shape parts.
Definition: GNEDemandElement.h:76
SumoXMLAttr
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
Definition: SUMOXMLDefinitions.h:373
SUMOAbstractRouter.h
GNEDemandElement::DemandElementGeometry::clearGeometry
void clearGeometry()
reset geometry
Definition: GNEDemandElement.cpp:53
GNEDemandElement::DemandElementMove::movingGeometryBoundary
Boundary movingGeometryBoundary
boundary used during moving of elements (to avoid insertion in RTREE)
Definition: GNEDemandElement.h:157
GNEDemandElement::isDemandElementValid
virtual bool isDemandElementValid() const
check if current demand element is valid to be writed into XML (by default true, can be reimplemented...
Definition: GNEDemandElement.cpp:378
GNEDemandElement::setGenericParametersStr
virtual void setGenericParametersStr(const std::string &value)=0
set generic parameters in string format
GNEDemandElement::~GNEDemandElement
~GNEDemandElement()
Destructor.
Definition: GNEDemandElement.cpp:356
GNEDemandElement::getHierarchyName
virtual std::string getHierarchyName() const =0
get Hierarchy Name (Used in AC Hierarchy)
GNEDemandElement::operator=
GNEDemandElement & operator=(const GNEDemandElement &)=delete
Invalidated assignment operator.
PositionVector.h
GNEDemandElement::DemandElementSegmentGeometry::Segment::junction
const GNEJunction * junction
junction
Definition: GNEDemandElement.h:100
GNELane
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition: GNELane.h:46
GNEDemandElement::getParameterWindow
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
Definition: GNEDemandElement.cpp:470
GNEAttributeCarrier
Definition: GNEAttributeCarrier.h:54
GNEHierarchicalElementChildren
An special type of Attribute carrier that owns hierarchical elements.
Definition: GNEHierarchicalElementChildren.h:46
GNEDemandElement::drawUsingSelectColor
bool drawUsingSelectColor() const
check if attribute carrier must be drawn using selecting color.
Definition: GNEDemandElement.cpp:561
NBEdge.h
GNEDemandElement::getToEdge
virtual GNEEdge * getToEdge() const =0
obtain to edge of this demand element