Eclipse SUMO - Simulation of Urban MObility
GUIParameterTracker.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 /****************************************************************************/
17 // A window which displays the time line of one (or more) value(s)
18 /****************************************************************************/
19 #ifndef GUIParameterTracker_h
20 #define GUIParameterTracker_h
21 
22 
23 // ===========================================================================
24 // included modules
25 // ===========================================================================
26 #include <config.h>
27 
28 #include <vector>
29 #include <fx.h>
30 // fx3d includes windows.h so we need to guard against macro pollution
31 #ifdef WIN32
32 #define NOMINMAX
33 #endif
34 #include <fx3d.h>
35 #ifdef WIN32
36 #undef NOMINMAX
37 #endif
40 #include "TrackerValueDesc.h"
41 
42 
43 // ===========================================================================
44 // class definitions
45 // ===========================================================================
49 class GUIParameterTracker : public FXMainWindow {
50  FXDECLARE(GUIParameterTracker)
51 public:
53  enum {
55  MID_AGGREGATIONINTERVAL = FXMainWindow::ID_LAST,
60  };
61 
62 
67  GUIParameterTracker(GUIMainWindow& app, const std::string& name);
68 
69 
72 
73 
75  void create();
76 
77 
84  TrackerValueDesc* newTracked);
85 
86 
89 
91  long onConfigure(FXObject*, FXSelector, void*);
92 
94  long onPaint(FXObject*, FXSelector, void*);
95 
97  long onSimStep(FXObject*, FXSelector, void*);
98 
100  long onCmdChangeAggregation(FXObject*, FXSelector, void*);
101 
103  long onCmdSave(FXObject*, FXSelector, void*);
105 
106 
107 public:
114  class GUIParameterTrackerPanel : public FXGLCanvas {
115  FXDECLARE(GUIParameterTrackerPanel)
116  public:
122  GUIParameterTrackerPanel(FXComposite* c, GUIMainWindow& app,
123  GUIParameterTracker& parent);
124 
127 
129  friend class GUIParameterTracker;
130 
131 
134 
136  long onConfigure(FXObject*, FXSelector, void*);
137 
139  long onPaint(FXObject*, FXSelector, void*);
140 
142  long onSimStep(FXObject* sender, FXSelector, void*);
144 
145 
146  private:
149  void drawValues();
150 
155  void drawValue(TrackerValueDesc& desc, double namePos);
156 
157 
158  private:
161 
164 
167 
168  protected:
171  };
172 
173 public:
176 
177 private:
179  void buildToolBar();
180 
181 
182 protected:
185 
187  std::vector<TrackerValueDesc*> myTracked;
188 
191 
193  std::vector<GLObjectValuePassConnector<double>*> myValuePassers;
194 
196  FXToolBarShell* myToolBarDrag;
197 
200 
203 
205  FXToolBar* myToolBar;
206 
207 protected:
210 
211 };
212 
213 
214 #endif
215 
216 /****************************************************************************/
217 
GUIParameterTracker::GUIParameterTrackerPanel::~GUIParameterTrackerPanel
~GUIParameterTrackerPanel()
Destructor.
Definition: GUIParameterTracker.cpp:254
GUIParameterTracker::myToolBarDrag
FXToolBarShell * myToolBarDrag
for some menu detaching fun
Definition: GUIParameterTracker.h:196
GUIParameterTracker::buildToolBar
void buildToolBar()
Builds the tool bar.
Definition: GUIParameterTracker.cpp:99
GUIGlObject.h
GUIParameterTracker::GUIParameterTrackerPanel::drawValues
void drawValues()
Draws all values.
Definition: GUIParameterTracker.cpp:258
GUIParameterTracker::onPaint
long onPaint(FXObject *, FXSelector, void *)
Called if the window shall be repainted.
Definition: GUIParameterTracker.cpp:137
GUIParameterTracker::onSimStep
long onSimStep(FXObject *, FXSelector, void *)
Called on a simulation step.
Definition: GUIParameterTracker.cpp:144
GUIParameterTracker::myApplication
GUIMainWindow * myApplication
The main application.
Definition: GUIParameterTracker.h:184
GUIParameterTracker::ID_LAST
end-of-enum
Definition: GUIParameterTracker.h:59
GUIParameterTracker::myValuePassers
std::vector< GLObjectValuePassConnector< double > * > myValuePassers
The value sources.
Definition: GUIParameterTracker.h:193
GUIParameterTracker::myToolBar
FXToolBar * myToolBar
The tracker tool bar.
Definition: GUIParameterTracker.h:205
GUIParameterTracker::MID_AGGREGATIONINTERVAL
Change aggregation interval.
Definition: GUIParameterTracker.h:55
GUIParameterTracker::GUIParameterTrackerPanel::myHeightInPixels
int myHeightInPixels
Definition: GUIParameterTracker.h:163
GUIParameterTracker::GUIParameterTrackerPanel::myParent
GUIParameterTracker * myParent
The parent window.
Definition: GUIParameterTracker.h:160
GUIParameterTracker::GUIParameterTracker
GUIParameterTracker()
Fox needs this.
Definition: GUIParameterTracker.h:209
GUIParameterTracker::myPanel
GUIParameterTrackerPanel * myPanel
The panel to display the values in.
Definition: GUIParameterTracker.h:190
GUIParameterTracker::GUIParameterTrackerPanel::myApplication
GUIMainWindow * myApplication
The main application.
Definition: GUIParameterTracker.h:166
GUIParameterTracker::create
void create()
Creates the window.
Definition: GUIParameterTracker.cpp:92
GUIParameterTracker::GUIParameterTrackerPanel::onConfigure
long onConfigure(FXObject *, FXSelector, void *)
Called on window resizing.
Definition: GUIParameterTracker.cpp:383
GUIParameterTracker::MID_SAVE
Save the current values.
Definition: GUIParameterTracker.h:57
GUIParameterTracker::GUIParameterTrackerPanel::myWidthInPixels
int myWidthInPixels
the sizes of the window
Definition: GUIParameterTracker.h:163
GUIParameterTracker::~GUIParameterTracker
~GUIParameterTracker()
Destructor.
Definition: GUIParameterTracker.cpp:77
GUIParameterTracker::onCmdChangeAggregation
long onCmdChangeAggregation(FXObject *, FXSelector, void *)
Called when the aggregation interval (combo) has been changed.
Definition: GUIParameterTracker.cpp:151
TrackerValueDesc
Representation of a timeline of floats with their names and moments.
Definition: TrackerValueDesc.h:43
GUIGlObject
Definition: GUIGlObject.h:66
GUIParameterTracker::GUIParameterTrackerPanel::drawValue
void drawValue(TrackerValueDesc &desc, double namePos)
Draws a single value.
Definition: GUIParameterTracker.cpp:275
GUIParameterTracker::myTracked
std::vector< TrackerValueDesc * > myTracked
The list of tracked values.
Definition: GUIParameterTracker.h:187
GUIParameterTracker::addTracked
void addTracked(GUIGlObject &o, ValueSource< double > *src, TrackerValueDesc *newTracked)
Adds a further time line to display.
Definition: GUIParameterTracker.cpp:121
GUIParameterTracker::myAggregationInterval
FXComboBox * myAggregationInterval
A combo box to select an aggregation interval.
Definition: GUIParameterTracker.h:199
GUIParameterTracker
A window which displays the time line of one (or more) value(s)
Definition: GUIParameterTracker.h:49
GLObjectValuePassConnector.h
GUIParameterTracker::GUIParameterTrackerPanel::GUIParameterTrackerPanel
GUIParameterTrackerPanel()
FOX needs this.
Definition: GUIParameterTracker.h:170
GUIMainWindow
Definition: GUIMainWindow.h:47
TrackerValueDesc.h
GUIParameterTracker::onConfigure
long onConfigure(FXObject *, FXSelector, void *)
Called on window resizing.
Definition: GUIParameterTracker.cpp:130
config.h
GUIParameterTracker::onCmdSave
long onCmdSave(FXObject *, FXSelector, void *)
Called when the data shall be saved.
Definition: GUIParameterTracker.cpp:185
GUIParameterTracker::myAggregationDelay
FXdouble myAggregationDelay
The simulation delay.
Definition: GUIParameterTracker.h:202
ValueSource< double >
GUIParameterTracker::GUIParameterTrackerPanel
Definition: GUIParameterTracker.h:114
GUIParameterTracker::GUIParameterTrackerPanel::onSimStep
long onSimStep(FXObject *sender, FXSelector, void *)
Called on a simulation step.
GUIParameterTracker::GUIParameterTrackerPanel::onPaint
long onPaint(FXObject *, FXSelector, void *)
Called if the window shall be repainted.
Definition: GUIParameterTracker.cpp:407