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 /****************************************************************************/ 10 /// @file GNEDestProbReroute.h 11 /// @author Pablo Alvarez Lopez 12 /// @date Jan 2017 13 /// @version $Id$ 14 /// 15 // 16 /****************************************************************************/ 17 #ifndef GNEDestProbReroute_h 18 #define GNEDestProbReroute_h 19 20 21 // =========================================================================== 22 // included modules 23 // =========================================================================== 24 25 #include "GNEAdditional.h" 26 27 // =========================================================================== 28 // class declarations 29 // =========================================================================== 30 31 class GNEEdge; 32 class GNERerouterInterval; 33 class GNERerouterIntervalDialog; 34 35 // =========================================================================== 36 // class definitions 37 // =========================================================================== 38 /** 39 * @class GNEDestProbReroute 40 * forces the rerouter to assign a new route 41 */ 42 class GNEDestProbReroute : public GNEAdditional { 43 44 public: 45 /// @brief constructor (Used in GNERerouterIntervalDialog) 46 GNEDestProbReroute(GNERerouterIntervalDialog* rerouterIntervalDialog); 47 48 /// @brief constructor 49 GNEDestProbReroute(GNEAdditional* rerouterIntervalParent, GNEEdge* newEdgeDestination, double probability); 50 51 /// @brief destructor 52 ~GNEDestProbReroute(); 53 54 /// @name Functions related with geometry of element 55 /// @{ 56 /**@brief change the position of the element geometry without saving in undoList 57 * @param[in] offset Position used for calculate new position of geometry without updating RTree 58 */ 59 void moveGeometry(const Position& offset); 60 61 /**@brief commit geometry changes in the attributes of an element after use of moveGeometry(...) 62 * @param[in] undoList The undoList on which to register changes 63 */ 64 void commitGeometryMoving(GNEUndoList* undoList); 65 66 /// @brief update pre-computed geometry information 67 void updateGeometry(bool updateGrid); 68 69 /// @brief Returns position of additional in view 70 Position getPositionInView() const; 71 /// @} 72 73 /// @name inherited from GUIGlObject 74 /// @{ 75 /**@brief Returns the name of the parent object 76 * @return This object's parent id 77 */ 78 std::string getParentName() const; 79 80 /**@brief Draws the object 81 * @param[in] s The settings for the current view (may influence drawing) 82 * @see GUIGlObject::drawGL 83 */ 84 void drawGL(const GUIVisualizationSettings& s) const; 85 /// @} 86 87 /// @name inherited from GNEAttributeCarrier 88 /// @{ 89 /* @brief method for getting the Attribute of an XML key 90 * @param[in] key The attribute key 91 * @return string with the value associated to key 92 */ 93 std::string getAttribute(SumoXMLAttr key) const; 94 95 /* @brief method for setting the attribute and letting the object perform additional changes 96 * @param[in] key The attribute key 97 * @param[in] value The new value 98 * @param[in] undoList The undoList on which to register changes 99 */ 100 void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList); 101 102 /* @brief method for checking if the key and their correspond attribute are valids 103 * @param[in] key The attribute key 104 * @param[in] value The value asociated to key key 105 * @return true if the value is valid, false in other case 106 */ 107 bool isValid(SumoXMLAttr key, const std::string& value); 108 109 /// @brief get PopPup ID (Used in AC Hierarchy) 110 std::string getPopUpID() const; 111 112 /// @brief get Hierarchy Name (Used in AC Hierarchy) 113 std::string getHierarchyName() const; 114 /// @} 115 116 protected: 117 /// @brief id of new edge destination 118 GNEEdge* myNewEdgeDestination; 119 120 /// @brief probability with which a vehicle will use the given edge as destination 121 double myProbability; 122 123 private: 124 /// @brief set attribute after validation 125 void setAttribute(SumoXMLAttr key, const std::string& value); 126 127 /// @brief Invalidated copy constructor. 128 GNEDestProbReroute(const GNEDestProbReroute&) = delete; 129 130 /// @brief Invalidated assignment operator. 131 GNEDestProbReroute& operator=(const GNEDestProbReroute&) = delete; 132 }; 133 134 #endif 135 136 /****************************************************************************/ 137