SUMO - Simulation of Urban MObility
GNEDetectorEntry.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 //
16 /****************************************************************************/
17 #ifndef GNEDetectorEntry_h
18 #define GNEDetectorEntry_h
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 
25 #include "GNEDetector.h"
26 
27 // ===========================================================================
28 // class declarations
29 // ===========================================================================
30 class GNEDetectorE3;
31 
32 // ===========================================================================
33 // class definitions
34 // ===========================================================================
39 class GNEDetectorEntry : public GNEDetector {
40 
41 public:
50  GNEDetectorEntry(GNEViewNet* viewNet, GNEAdditional* parent, GNELane* lane, double pos, bool friendlyPos, bool blockMovement);
51 
54 
58  bool isAdditionalValid() const;
59 
61  std::string getAdditionalProblem() const;
62 
64  void fixAdditionalProblem();
66 
70  GNELane* getLane() const;
72 
75 
78  void moveGeometry(const Position& offset);
79 
83  void commitGeometryMoving(GNEUndoList* undoList);
84 
86  void updateGeometry(bool updateGrid);
88 
91 
95  void drawGL(const GUIVisualizationSettings& s) const;
97 
100  /* @brief method for getting the Attribute of an XML key
101  * @param[in] key The attribute key
102  * @return string with the value associated to key
103  */
104  std::string getAttribute(SumoXMLAttr key) const;
105 
106  /* @brief method for setting the attribute and letting the object perform additional changes
107  * @param[in] key The attribute key
108  * @param[in] value The new value
109  * @param[in] undoList The undoList on which to register changes
110  */
111  void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList);
112 
113  /* @brief method for checking if the key and their correspond attribute are valids
114  * @param[in] key The attribute key
115  * @param[in] value The value asociated to key key
116  * @return true if the value is valid, false in other case
117  */
118  bool isValid(SumoXMLAttr key, const std::string& value);
120 
121 protected:
124 
125 private:
127  void setAttribute(SumoXMLAttr key, const std::string& value);
128 
130  GNEDetectorEntry(const GNEDetectorEntry&) = delete;
131 
133  GNEDetectorEntry& operator=(const GNEDetectorEntry&) = delete;
134 };
135 
136 #endif
137 
138 /****************************************************************************/
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
Stores the information about how to visualize structures.
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition: GNELane.h:47
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
~GNEDetectorEntry()
destructor
GNEDetectorEntry(GNEViewNet *viewNet, GNEAdditional *parent, GNELane *lane, double pos, bool friendlyPos, bool blockMovement)
Constructor.
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
method for setting the attribute and letting the object perform additional changes ...
GNELane * myLane
The lane in which this detector is placed.
void moveGeometry(const Position &offset)
change the position of the element geometry without saving in undoList
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:39
std::string getAdditionalProblem() const
return a string with the current additional problem
bool isAdditionalValid() const
check if current additional is valid to be writed into XML (by default true, can be reimplemented in ...
bool isValid(SumoXMLAttr key, const std::string &value)
method for checking if the key and their conrrespond attribute are valids
void fixAdditionalProblem()
fix additional problem
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEAdditional.h:48
GNELane * getLane() const
get lane
std::string getAttribute(SumoXMLAttr key) const
void commitGeometryMoving(GNEUndoList *undoList)
commit geometry changes in the attributes of an element after use of moveGeometry(...)
void updateGeometry(bool updateGrid)
update pre-computed geometry information
GNEDetectorEntry & operator=(const GNEDetectorEntry &)=delete
Invalidated assignment operator.