SUMO - Simulation of Urban MObility
GNEParkingSpace.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-2018 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 class for visualizing ParkingSpace geometry (adapted from GUILaneWrapper)
16 /****************************************************************************/
17 #ifndef GNEParkingSpace_h
18 #define GNEParkingSpace_h
19 
20 // ===========================================================================
21 // included modules
22 // ===========================================================================
23 
24 #include "GNEAdditional.h"
25 
26 // ===========================================================================
27 // class declarations
28 // ===========================================================================
29 class GNEParkingArea;
30 
31 // ===========================================================================
32 // class definitions
33 // ===========================================================================
34 
40 
41 public:
51  GNEParkingSpace(GNEViewNet* viewNet, GNEAdditional* parkingAreaParent, const Position &pos, double width, double length, double angle, bool blockMovement);
52 
55 
58 
61  void moveGeometry(const Position& offset);
62 
66  void commitGeometryMoving(GNEUndoList* undoList);
67 
69  void updateGeometry(bool updateGrid);
70 
74 
79  std::string getParentName() const;
80 
85  void drawGL(const GUIVisualizationSettings& s) const;
87 
90  /* @brief method for getting the Attribute of an XML key
91  * @param[in] key The attribute key
92  * @return string with the value associated to key
93  */
94  std::string getAttribute(SumoXMLAttr key) const;
95 
96  /* @brief method for setting the attribute and letting the object perform additional changes
97  * @param[in] key The attribute key
98  * @param[in] value The new value
99  * @param[in] undoList The undoList on which to register changes
100  */
101  void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList);
102 
103  /* @brief method for checking if the key and their correspond attribute are valids
104  * @param[in] key The attribute key
105  * @param[in] value The value asociated to key key
106  * @return true if the value is valid, false in other case
107  */
108  bool isValid(SumoXMLAttr key, const std::string& value);
109 
111  std::string getPopUpID() const;
112 
114  std::string getHierarchyName() const;
116 
117 protected:
120 
122  double myWidth;
123 
125  double myLength;
126 
128  double myAngle;
129 
130 private:
132  void setAttribute(SumoXMLAttr key, const std::string& value);
133 
135  GNEParkingSpace(const GNEParkingSpace&) = delete;
136 
138  GNEParkingSpace& operator=(const GNEParkingSpace&) = delete;
139 };
140 
141 
142 #endif
void moveGeometry(const Position &offset)
change the position of the element geometry without saving in undoList
std::string getAttribute(SumoXMLAttr key) const
vehicle space used by GNEParkingAreas
std::string getHierarchyName() const
get Hierarchy Name (Used in AC Hierarchy)
GNEParkingSpace(GNEViewNet *viewNet, GNEAdditional *parkingAreaParent, const Position &pos, double width, double length, double angle, bool blockMovement)
Constructor.
Stores the information about how to visualize structures.
double myLength
Lenght of Parking Space.
bool isValid(SumoXMLAttr key, const std::string &value)
method for checking if the key and their conrrespond attribute are valids
void commitGeometryMoving(GNEUndoList *undoList)
commit geometry changes in the attributes of an element after use of moveGeometry(...)
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
void updateGeometry(bool updateGrid)
update pre-computed geometry information
GNEParkingSpace & operator=(const GNEParkingSpace &)=delete
Invalidated assignment operator.
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
method for setting the attribute and letting the object perform additional changes ...
A lane area vehicles can park at (netedit-version)
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:39
std::string getPopUpID() const
get PopPup ID (Used in AC Hierarchy)
double myWidth
width of Parking Space
Position getPositionInView() const
Returns position of additional in view.
double myAngle
Angle of Parking Space.
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEAdditional.h:48
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
std::string getParentName() const
Returns the name of the parent object (if any)
~GNEParkingSpace()
Destructor.
Position myPosition
position of Parking Space in view