Eclipse SUMO - Simulation of Urban MObility
GUITriggeredRerouter.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 /****************************************************************************/
16 // Reroutes vehicles passing an edge (gui-version)
17 /****************************************************************************/
18 #ifndef GUITriggeredRerouter_h
19 #define GUITriggeredRerouter_h
20 
21 
22 // ===========================================================================
23 // included modules
24 // ===========================================================================
25 #include <config.h>
26 
27 #include <vector>
28 #include <string>
33 #include <gui/GUIManipulator.h>
34 
35 // ===========================================================================
36 // class declarations
37 // ===========================================================================
38 class GUIEdge;
39 
40 // ===========================================================================
41 // class definitions
42 // ===========================================================================
51  : public MSTriggeredRerouter,
53 public:
61  GUITriggeredRerouter(const std::string& id,
62  const MSEdgeVector& edges, double prob,
63  const std::string& aXMLFilename, bool off,
64  SUMOTime timeThreshold,
65  const std::string& vTypes,
66  SUMORTree& rtree);
67 
68 
71 
72 
79  void myEndElement(int element);
80 
82 
83 
92  GUISUMOAbstractView& parent);
93 
94 
103  GUISUMOAbstractView& parent);
104 
105 
112 
113 
118  void drawGL(const GUIVisualizationSettings& s) const;
120 
121 
122 
124  GUISUMOAbstractView& parent);
125 
127  void shiftProbs();
128 
129 public:
130 
135  };
136 
138 
139  public:
140  GUITriggeredRerouterEdge(GUIEdge* edge, GUITriggeredRerouter* parent, RerouterEdgeType edgeType, int distIndex = -1);
141 
142  virtual ~GUITriggeredRerouterEdge();
143 
145 
146 
155  GUISUMOAbstractView& parent);
156 
157 
166  GUISUMOAbstractView& parent);
167 
168 
175 
176 
181  void drawGL(const GUIVisualizationSettings& s) const;
182 
183  void onLeftBtnPress(void* data);
184 
186  return myEdgeType;
187  }
188 
189  const MSEdge* getEdge() const {
190  return myEdge;
191  }
193 
194  private:
196  typedef std::vector<Position> PosCont;
197 
199  typedef std::vector<double> RotCont;
200 
201  private:
204 
207 
210 
213 
216 
219 
222  };
223 
224 public:
227  public:
228 
230  GUISUMOAbstractView& parent, GUIGlObject& o);
231 
233 
235  long onCmdOpenManip(FXObject*, FXSelector, void*);
236 
237  protected:
239 
240  };
241 
242 
244  FXDECLARE(GUIManip_TriggeredRerouter)
245  public:
246  enum {
247  MID_USER_DEF = FXDialogBox::ID_LAST,
253  };
256  const std::string& name, GUITriggeredRerouter& o,
257  int xpos, int ypos);
258 
260  virtual ~GUIManip_TriggeredRerouter();
261 
262  long onCmdOverride(FXObject*, FXSelector, void*);
263  long onCmdClose(FXObject*, FXSelector, void*);
264  long onCmdUserDef(FXObject*, FXSelector, void*);
265  long onUpdUserDef(FXObject*, FXSelector, void*);
266  long onCmdChangeOption(FXObject*, FXSelector, void*);
267  long onCmdShiftProbs(FXObject*, FXSelector, void*);
268 
269  private:
271 
273 
274  FXDataTarget myChosenTarget;
275 
277 
278  FXRealSpinner* myUsageProbabilityDial;
279 
281 
283 
284  protected:
286 
287  };
288 
289 
290 private:
293 
294  std::vector<GUITriggeredRerouterEdge*> myEdgeVisualizations;
295 
297 };
298 
299 
300 #endif
301 
302 /****************************************************************************/
303 
GUITriggeredRerouter::GUIManip_TriggeredRerouter::MID_OPTION
@ MID_OPTION
Definition: GUITriggeredRerouter.h:249
GUITriggeredRerouter::GUIManip_TriggeredRerouter::myParent
GUIMainWindow * myParent
Definition: GUITriggeredRerouter.h:270
GUITriggeredRerouter::REROUTER_TRIGGER_EDGE
@ REROUTER_TRIGGER_EDGE
Definition: GUITriggeredRerouter.h:132
GUITriggeredRerouter::myEdgeVisualizations
std::vector< GUITriggeredRerouterEdge * > myEdgeVisualizations
Definition: GUITriggeredRerouter.h:294
GUIParameterTableWindow
A window containing a gl-object's parameter.
Definition: GUIParameterTableWindow.h:62
GUITriggeredRerouter::RerouterEdgeType
RerouterEdgeType
Definition: GUITriggeredRerouter.h:131
GUITriggeredRerouter::GUITriggeredRerouterPopupMenu
Definition: GUITriggeredRerouter.h:225
GUISUMOAbstractView
Definition: GUISUMOAbstractView.h:72
GUITriggeredRerouter::GUITriggeredRerouterEdge::myFGPositions
PosCont myFGPositions
The positions in full-geometry mode.
Definition: GUITriggeredRerouter.h:212
GUIGLObjectPopupMenu.h
GUITriggeredRerouter::GUIManip_TriggeredRerouter::GUIManip_TriggeredRerouter
GUIManip_TriggeredRerouter()
Definition: GUITriggeredRerouter.h:285
GUITriggeredRerouter::GUIManip_TriggeredRerouter::ID_LAST
@ ID_LAST
Definition: GUITriggeredRerouter.h:252
GUITriggeredRerouter::GUIManip_TriggeredRerouter::myUsageProbability
double myUsageProbability
Definition: GUITriggeredRerouter.h:276
SUMOTime
long long int SUMOTime
Definition: SUMOTime.h:34
GUITriggeredRerouter::GUIManip_TriggeredRerouter::myUsageProbabilityDial
FXRealSpinner * myUsageProbabilityDial
Definition: GUITriggeredRerouter.h:278
GUITriggeredRerouter::myBoundary
Boundary myBoundary
The boundary of this rerouter.
Definition: GUITriggeredRerouter.h:292
GUITriggeredRerouter::GUIManip_TriggeredRerouter::onCmdChangeOption
long onCmdChangeOption(FXObject *, FXSelector, void *)
Definition: GUITriggeredRerouter.cpp:181
MSTriggeredRerouter
Reroutes vehicles passing an edge.
Definition: MSTriggeredRerouter.h:61
GUIGlObject_AbstractAdd
Definition: GUIGlObject_AbstractAdd.h:39
GUIGLObjectPopupMenu
The popup menu of a globject.
Definition: GUIGLObjectPopupMenu.h:47
GUITriggeredRerouter
Reroutes vehicles passing an edge One rerouter can be active on multiple edges. To reduce drawing loa...
Definition: GUITriggeredRerouter.h:50
GUITriggeredRerouter::REROUTER_CLOSED_EDGE
@ REROUTER_CLOSED_EDGE
Definition: GUITriggeredRerouter.h:133
GUITriggeredRerouter::GUIManip_TriggeredRerouter::onCmdClose
long onCmdClose(FXObject *, FXSelector, void *)
Definition: GUITriggeredRerouter.cpp:154
SUMORTree
A RT-tree for efficient storing of SUMO's GL-objects.
Definition: SUMORTree.h:68
GUITriggeredRerouter::REROUTER_SWITCH_EDGE
@ REROUTER_SWITCH_EDGE
Definition: GUITriggeredRerouter.h:134
GUITriggeredRerouter::GUIManip_TriggeredRerouter::onCmdShiftProbs
long onCmdShiftProbs(FXObject *, FXSelector, void *)
Definition: GUITriggeredRerouter.cpp:202
GUITriggeredRerouter::GUITriggeredRerouterEdge::getPopUpMenu
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
Definition: GUITriggeredRerouter.cpp:405
GUITriggeredRerouter::GUITriggeredRerouterEdge
Definition: GUITriggeredRerouter.h:137
GUITriggeredRerouter::GUITriggeredRerouterEdge::drawGL
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
Definition: GUITriggeredRerouter.cpp:419
GUITriggeredRerouter::getPopUpMenu
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
Definition: GUITriggeredRerouter.cpp:306
GUITriggeredRerouter::GUIManip_TriggeredRerouter::MID_CLOSE
@ MID_CLOSE
Definition: GUITriggeredRerouter.h:250
GUIManipulator.h
GUITriggeredRerouter::GUITriggeredRerouterPopupMenu::~GUITriggeredRerouterPopupMenu
~GUITriggeredRerouterPopupMenu()
Definition: GUITriggeredRerouter.cpp:219
GUITriggeredRerouter::GUITriggeredRerouterEdge::getEdge
const MSEdge * getEdge() const
Definition: GUITriggeredRerouter.h:189
GUITriggeredRerouter::GUIManip_TriggeredRerouter::myChosenTarget
FXDataTarget myChosenTarget
Definition: GUITriggeredRerouter.h:274
SUMORTree.h
GUITriggeredRerouter::shiftProbs
void shiftProbs()
shit route probabilities
Definition: GUITriggeredRerouter.cpp:353
GUITriggeredRerouter::GUIManip_TriggeredRerouter::onCmdUserDef
long onCmdUserDef(FXObject *, FXSelector, void *)
Definition: GUITriggeredRerouter.cpp:161
Boundary
A class that stores a 2D geometrical boundary.
Definition: Boundary.h:41
GUITriggeredRerouter::GUITriggeredRerouterEdge::RotCont
std::vector< double > RotCont
Definition of a rotation container.
Definition: GUITriggeredRerouter.h:199
GUITriggeredRerouter::GUITriggeredRerouterEdge::myParent
GUITriggeredRerouter * myParent
The parent rerouter to which this edge instance belongs.
Definition: GUITriggeredRerouter.h:203
GUITriggeredRerouter::GUIManip_TriggeredRerouter::~GUIManip_TriggeredRerouter
virtual ~GUIManip_TriggeredRerouter()
Destructor.
Definition: GUITriggeredRerouter.cpp:150
GUITriggeredRerouter::GUITriggeredRerouterEdge::getParameterWindow
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
Definition: GUITriggeredRerouter.cpp:412
GUITriggeredRerouter::~GUITriggeredRerouter
~GUITriggeredRerouter()
Destructor.
Definition: GUITriggeredRerouter.cpp:249
GUITriggeredRerouter::getCenteringBoundary
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
Definition: GUITriggeredRerouter.cpp:333
MSEdge
A road/street connecting two junctions.
Definition: MSEdge.h:78
GUITriggeredRerouter::GUIManip_TriggeredRerouter::MID_USER_DEF
@ MID_USER_DEF
Definition: GUITriggeredRerouter.h:247
GUIGlObject_AbstractAdd.h
GUITriggeredRerouter::GUITriggeredRerouterEdge::myFGRotations
RotCont myFGRotations
The rotations in full-geometry mode.
Definition: GUITriggeredRerouter.h:215
GUIGlObject
Definition: GUIGlObject.h:65
GUITriggeredRerouter::openManipulator
GUIManipulator * openManipulator(GUIMainWindow &app, GUISUMOAbstractView &parent)
Definition: GUITriggeredRerouter.cpp:342
GUITriggeredRerouter::GUIManip_TriggeredRerouter::myObject
GUITriggeredRerouter * myObject
Definition: GUITriggeredRerouter.h:282
GUITriggeredRerouter::GUIManip_TriggeredRerouter::myUsageProbabilityTarget
FXDataTarget myUsageProbabilityTarget
Definition: GUITriggeredRerouter.h:280
GUITriggeredRerouter::GUITriggeredRerouterEdge::getCenteringBoundary
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
Definition: GUITriggeredRerouter.cpp:541
GUITriggeredRerouter::GUIManip_TriggeredRerouter::MID_PRE_DEF
@ MID_PRE_DEF
Definition: GUITriggeredRerouter.h:248
GUITriggeredRerouter::GUITriggeredRerouterEdge::myEdgeType
const RerouterEdgeType myEdgeType
whether this edge instance visualizes a closed edge
Definition: GUITriggeredRerouter.h:209
GUITriggeredRerouter::GUIManip_TriggeredRerouter::onUpdUserDef
long onUpdUserDef(FXObject *, FXSelector, void *)
Definition: GUITriggeredRerouter.cpp:171
GUITriggeredRerouter::GUITriggeredRerouterEdge::myEdge
MSEdge * myEdge
The edge for which this visualization applies.
Definition: GUITriggeredRerouter.h:206
GUIMainWindow
Definition: GUIMainWindow.h:46
GUIEdge
A road/street connecting two junctions (gui-version)
Definition: GUIEdge.h:52
GUIManipulator
Definition: GUIManipulator.h:42
GUITriggeredRerouter::GUITriggeredRerouter
GUITriggeredRerouter(const std::string &id, const MSEdgeVector &edges, double prob, const std::string &aXMLFilename, bool off, SUMOTime timeThreshold, const std::string &vTypes, SUMORTree &rtree)
Constructor.
Definition: GUITriggeredRerouter.cpp:235
GUITriggeredRerouter::drawGL
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
Definition: GUITriggeredRerouter.cpp:327
GUITriggeredRerouter::GUITriggeredRerouterEdge::getRerouterEdgeType
RerouterEdgeType getRerouterEdgeType() const
Definition: GUITriggeredRerouter.h:185
MSTriggeredRerouter.h
GUITriggeredRerouter::GUITriggeredRerouterEdge::myDistIndex
int myDistIndex
the index for this in edge in routeProbs
Definition: GUITriggeredRerouter.h:221
GUITriggeredRerouter::myEndElement
void myEndElement(int element)
Called when a closing tag occurs.
Definition: GUITriggeredRerouter.cpp:258
MSEdgeVector
std::vector< MSEdge * > MSEdgeVector
Definition: MSEdge.h:74
GUITriggeredRerouter::GUIManip_TriggeredRerouter::myChosenValue
FXint myChosenValue
Definition: GUITriggeredRerouter.h:272
GUITriggeredRerouter::getParameterWindow
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
Definition: GUITriggeredRerouter.cpp:320
GUITriggeredRerouter::myShiftProbDistIndex
int myShiftProbDistIndex
Definition: GUITriggeredRerouter.h:296
GUITriggeredRerouter::GUIManip_TriggeredRerouter::MID_SHIFT_PROBS
@ MID_SHIFT_PROBS
Definition: GUITriggeredRerouter.h:251
GUITriggeredRerouter::GUITriggeredRerouterPopupMenu::onCmdOpenManip
long onCmdOpenManip(FXObject *, FXSelector, void *)
Called if the object's manipulator shall be shown.
Definition: GUITriggeredRerouter.cpp:223
GUITriggeredRerouter::GUITriggeredRerouterEdge::myBoundary
Boundary myBoundary
The boundary of this rerouter.
Definition: GUITriggeredRerouter.h:218
config.h
GUITriggeredRerouter::GUITriggeredRerouterEdge::GUITriggeredRerouterEdge
GUITriggeredRerouterEdge(GUIEdge *edge, GUITriggeredRerouter *parent, RerouterEdgeType edgeType, int distIndex=-1)
Definition: GUITriggeredRerouter.cpp:382
GUIVisualizationSettings
Stores the information about how to visualize structures.
Definition: GUIVisualizationSettings.h:345
GUITriggeredRerouter::GUIManip_TriggeredRerouter
Definition: GUITriggeredRerouter.h:243
GUITriggeredRerouter::GUITriggeredRerouterPopupMenu::GUITriggeredRerouterPopupMenu
GUITriggeredRerouterPopupMenu()
Definition: GUITriggeredRerouter.h:238
GUITriggeredRerouter::GUITriggeredRerouterEdge::~GUITriggeredRerouterEdge
virtual ~GUITriggeredRerouterEdge()
Definition: GUITriggeredRerouter.cpp:401
GUITriggeredRerouter::GUITriggeredRerouterEdge::PosCont
std::vector< Position > PosCont
Definition of a positions container.
Definition: GUITriggeredRerouter.h:196
GUITriggeredRerouter::GUITriggeredRerouterEdge::onLeftBtnPress
void onLeftBtnPress(void *data)
notify object about left click
Definition: GUITriggeredRerouter.cpp:549
GUITriggeredRerouter::GUIManip_TriggeredRerouter::onCmdOverride
long onCmdOverride(FXObject *, FXSelector, void *)