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 /****************************************************************************/
16 // A window which displays the time line of one (or more) value(s)
17 /****************************************************************************/
18 #ifndef GUIParameterTracker_h
19 #define GUIParameterTracker_h
20 
21 
22 // ===========================================================================
23 // included modules
24 // ===========================================================================
25 #include <config.h>
26 
27 #include <vector>
28 #include <fx.h>
29 // fx3d includes windows.h so we need to guard against macro pollution
30 #ifdef WIN32
31 #define NOMINMAX
32 #endif
33 #include <fx3d.h>
34 #ifdef WIN32
35 #undef NOMINMAX
36 #endif
39 #include "TrackerValueDesc.h"
40 
41 
42 // ===========================================================================
43 // class definitions
44 // ===========================================================================
48 class GUIParameterTracker : public FXMainWindow {
49  FXDECLARE(GUIParameterTracker)
50 public:
52  enum {
54  MID_AGGREGATIONINTERVAL = FXMainWindow::ID_LAST,
59  };
60 
61 
66  GUIParameterTracker(GUIMainWindow& app, const std::string& name);
67 
68 
71 
72 
74  void create();
75 
76 
83  TrackerValueDesc* newTracked);
84 
85 
88 
90  long onConfigure(FXObject*, FXSelector, void*);
91 
93  long onPaint(FXObject*, FXSelector, void*);
94 
96  long onSimStep(FXObject*, FXSelector, void*);
97 
99  long onCmdChangeAggregation(FXObject*, FXSelector, void*);
100 
102  long onCmdSave(FXObject*, FXSelector, void*);
104 
105 
106 public:
113  class GUIParameterTrackerPanel : public FXGLCanvas {
114  FXDECLARE(GUIParameterTrackerPanel)
115  public:
121  GUIParameterTrackerPanel(FXComposite* c, GUIMainWindow& app,
122  GUIParameterTracker& parent);
123 
126 
128  friend class GUIParameterTracker;
129 
130 
133 
135  long onConfigure(FXObject*, FXSelector, void*);
136 
138  long onPaint(FXObject*, FXSelector, void*);
139 
141  long onSimStep(FXObject* sender, FXSelector, void*);
143 
144 
145  private:
148  void drawValues();
149 
154  void drawValue(TrackerValueDesc& desc, double namePos);
155 
156 
157  private:
160 
163 
166 
167  protected:
169  };
170 
171 public:
174 
175 private:
177  void buildToolBar();
178 
179 
180 protected:
183 
185  std::vector<TrackerValueDesc*> myTracked;
186 
189 
191  std::vector<GLObjectValuePassConnector<double>*> myValuePassers;
192 
194  FXToolBarShell* myToolBarDrag;
195 
198 
201 
203  FXToolBar* myToolBar;
204 
205 protected:
207 
208 };
209 
210 
211 #endif
212 
213 /****************************************************************************/
214 
GUIParameterTracker::GUIParameterTrackerPanel::~GUIParameterTrackerPanel
~GUIParameterTrackerPanel()
Destructor.
Definition: GUIParameterTracker.cpp:253
GUIParameterTracker::myToolBarDrag
FXToolBarShell * myToolBarDrag
for some menu detaching fun
Definition: GUIParameterTracker.h:194
GUIParameterTracker::buildToolBar
void buildToolBar()
Builds the tool bar.
Definition: GUIParameterTracker.cpp:98
GUIGlObject.h
GUIParameterTracker::GUIParameterTrackerPanel::drawValues
void drawValues()
Draws all values.
Definition: GUIParameterTracker.cpp:257
GUIParameterTracker::onPaint
long onPaint(FXObject *, FXSelector, void *)
Called if the window shall be repainted.
Definition: GUIParameterTracker.cpp:136
GUIParameterTracker::onSimStep
long onSimStep(FXObject *, FXSelector, void *)
Called on a simulation step.
Definition: GUIParameterTracker.cpp:143
GUIParameterTracker::myApplication
GUIMainWindow * myApplication
The main application.
Definition: GUIParameterTracker.h:182
GUIParameterTracker::ID_LAST
@ ID_LAST
end-of-enum
Definition: GUIParameterTracker.h:58
GUIParameterTracker::GUIParameterTracker
GUIParameterTracker(GUIMainWindow &app, const std::string &name)
Constructor (the tracker is empty)
Definition: GUIParameterTracker.cpp:63
GUIParameterTracker::myValuePassers
std::vector< GLObjectValuePassConnector< double > * > myValuePassers
The value sources.
Definition: GUIParameterTracker.h:191
GUIParameterTracker::myToolBar
FXToolBar * myToolBar
The tracker tool bar.
Definition: GUIParameterTracker.h:203
GUIParameterTracker::MID_AGGREGATIONINTERVAL
@ MID_AGGREGATIONINTERVAL
Change aggregation interval.
Definition: GUIParameterTracker.h:54
GUIParameterTracker::GUIParameterTrackerPanel::myHeightInPixels
int myHeightInPixels
Definition: GUIParameterTracker.h:162
GUIParameterTracker::GUIParameterTrackerPanel::myParent
GUIParameterTracker * myParent
The parent window.
Definition: GUIParameterTracker.h:159
GUIParameterTracker::myPanel
GUIParameterTrackerPanel * myPanel
The panel to display the values in.
Definition: GUIParameterTracker.h:188
GUIParameterTracker::GUIParameterTrackerPanel::myApplication
GUIMainWindow * myApplication
The main application.
Definition: GUIParameterTracker.h:165
GUIParameterTracker::create
void create()
Creates the window.
Definition: GUIParameterTracker.cpp:91
GUIParameterTracker::GUIParameterTrackerPanel::onConfigure
long onConfigure(FXObject *, FXSelector, void *)
Called on window resizing.
Definition: GUIParameterTracker.cpp:382
GUIParameterTracker::GUIParameterTrackerPanel::GUIParameterTrackerPanel
GUIParameterTrackerPanel(FXComposite *c, GUIMainWindow &app, GUIParameterTracker &parent)
Constructor.
Definition: GUIParameterTracker.cpp:246
GUIParameterTracker::MID_SAVE
@ MID_SAVE
Save the current values.
Definition: GUIParameterTracker.h:56
FOX_CONSTRUCTOR
#define FOX_CONSTRUCTOR(classname)
Definition: config.h:13
GUIParameterTracker::GUIParameterTrackerPanel::myWidthInPixels
int myWidthInPixels
the sizes of the window
Definition: GUIParameterTracker.h:162
GUIParameterTracker::~GUIParameterTracker
~GUIParameterTracker()
Destructor.
Definition: GUIParameterTracker.cpp:76
GUIParameterTracker::onCmdChangeAggregation
long onCmdChangeAggregation(FXObject *, FXSelector, void *)
Called when the aggregation interval (combo) has been changed.
Definition: GUIParameterTracker.cpp:150
TrackerValueDesc
Representation of a timeline of floats with their names and moments.
Definition: TrackerValueDesc.h:42
GUIGlObject
Definition: GUIGlObject.h:65
GUIParameterTracker::GUIParameterTrackerPanel::drawValue
void drawValue(TrackerValueDesc &desc, double namePos)
Draws a single value.
Definition: GUIParameterTracker.cpp:274
GUIParameterTracker::myTracked
std::vector< TrackerValueDesc * > myTracked
The list of tracked values.
Definition: GUIParameterTracker.h:185
GUIParameterTracker::addTracked
void addTracked(GUIGlObject &o, ValueSource< double > *src, TrackerValueDesc *newTracked)
Adds a further time line to display.
Definition: GUIParameterTracker.cpp:120
GUIParameterTracker::myAggregationInterval
FXComboBox * myAggregationInterval
A combo box to select an aggregation interval.
Definition: GUIParameterTracker.h:197
GUIParameterTracker
A window which displays the time line of one (or more) value(s)
Definition: GUIParameterTracker.h:48
GLObjectValuePassConnector.h
GUIMainWindow
Definition: GUIMainWindow.h:46
TrackerValueDesc.h
GUIParameterTracker::onConfigure
long onConfigure(FXObject *, FXSelector, void *)
Called on window resizing.
Definition: GUIParameterTracker.cpp:129
config.h
GUIParameterTracker::onCmdSave
long onCmdSave(FXObject *, FXSelector, void *)
Called when the data shall be saved.
Definition: GUIParameterTracker.cpp:184
GUIParameterTracker::myAggregationDelay
FXdouble myAggregationDelay
The simulation delay.
Definition: GUIParameterTracker.h:200
ValueSource< double >
GUIParameterTracker::GUIParameterTrackerPanel
Definition: GUIParameterTracker.h:113
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:406