VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
performanceMonitorGraph.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2021 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
6 #pragma once
7 
9 #include <QtWidgets/QWidget>
10 #include <vlpi/simulationAddress.h>
11 #include <vector>
12 
13 class QVBoxLayout;
14 class QScrollArea;
15 class QLabel;
16 class QHBoxLayout;
17 class QPaintEvent;
18 class QGridLayout;
19 class QSpinBox;
20 class QFrame;
21 
22 namespace makVrv
23 {
24  class DtDe;
25 }
26 
27 namespace makVrf
28 {
29  class DtPerformanceMonitorGraph;
30  class DtPerformanceBar;
31  static const int OTHER_TIME = 500;
32 
34  {
35  Q_OBJECT;
36 
37  public:
38  DtPerformanceData(makVrv::DtDe& de, QWidget* parent);
39  virtual ~DtPerformanceData();
40 
41  virtual void showData(const DtPerformanceBar*);
42  virtual void clear();
43  virtual void setBarUnits(const QString&);
44 
46  {
47  return myPerformanceBar;
48  }
49 
50  virtual void update();
51  virtual void setNumberOfCPUs(short);
52  virtual void setNumberOfTickThreads(short);
53  virtual void setMinFrameRate(double);
54  virtual void setMaxFrameRate(double);
55  virtual void setLatency(double);
56  virtual void setPingingServer(bool b);
57  virtual void updateObjectCounts();
58 
59  virtual void setBarColor(int section, const QColor&);
60 
61  protected:
62  virtual void addSectionTime(int section, const QString& title, bool actualTime = false, int indent = 0, const QColor& color = Qt::transparent, bool hiddenSection = false);
63  virtual void addSectionTime(int section, int basedOnSection, const QString& title, bool actualTime = false, int indent = 0, const QColor& color = Qt::transparent, bool hiddenSection = false);
64 
65  protected slots:
66  virtual void setNumberOfTickThreads(int);
67 
68  protected:
70  QString myBarUnits;
72 
73  public:
74  QHBoxLayout* myMainLayout;
75  QGridLayout* myDataLayout;
76  QGridLayout* myTimesLayout;
92 
93  struct SectionTime
94  {
95  QLabel* title = nullptr;
96  QLabel* value = nullptr;
97  QLabel* colorLabel = nullptr;
98  QHBoxLayout* layout = nullptr;
99  double time = 0.;
100  bool actualTime = true;
101  int basedOnSection = -1;
102  bool hidden = false;
103  };
104 
105  std::map<int, SectionTime> mySectionTimes;
106  };
107 
109  {
110  Q_OBJECT
111 
112  public:
114  virtual ~DtPerformanceBarTimes();
115 
116  virtual void setTime(int section, double time);
117  virtual void setTotalTime(double );
118  virtual void setBarUnits(const QString&);
119  virtual void addSectionInformation(int section, const QColor& color, const QString& title, const std::vector<int>& subtractOff = std::vector<int>(), bool hiddenSection = false);
120  virtual void setBarColor(int section, const QColor&);
121  virtual double timeFor(int section) const;
122 
123  signals:
124  void barSelected();
125 
126  protected:
127  virtual void paintEvent(QPaintEvent*);
128  virtual void mouseMoveEvent(QMouseEvent*);
129  virtual void mouseReleaseEvent(QMouseEvent*);
130  virtual void updateToolTip(int);
131  virtual bool eventFilter(QObject*, QEvent*);
132  virtual void updateToolTip(const QPoint&);
133  virtual int indexForSection(int);
134 
135  protected:
137  double myTotalTime;
138  struct Section
139  {
140  Section() : time(0.), totalTime(0.), section(-1) {};
141 
142  int section;
143  double time;
144  double totalTime;
145  QRectF coverage;
146  QString title;
147  QColor color;
148  std::vector<int> subtractOff;
149  bool hidden = false;
150  };
151 
152  std::vector<Section> mySectionTimes;
154  QString myBarUnits;
156  std::map<int, int> myIndexForSection;
157  std::vector<int> mySubtractOff;
158  };
159 
161  {
162  Q_OBJECT
163 
164  public:
165  DtPerformanceBar(makVrv::DtDe& de, DtPerformanceMonitorGraph* parent, const QString& title);
166  virtual ~DtPerformanceBar();
167 
168  virtual void setBarUnits(const QString&);
169 
170  virtual void setTime(int section, double time);
171  virtual void setTotalTime(double d);
172  virtual double totalTime() const;
173  virtual void setFixedHeight(double d);
174  virtual void setBarColor(int section, const QColor&);
175  virtual void addSectionInformation(int section, const QColor& color, const QString& title, const std::vector<int>& subtractOff = std::vector<int>(), bool hiddenSection = false);
176  virtual DtSimulationAddress backendAddress() const;
177  virtual void setNumberOfCPUs(short);
178  virtual void setFrameRate(double fps, double simTimeToRealTime);
179  virtual void setLatency(double);
180  double latency() const
181  {
182  return myLatency;
183  }
184 
185  virtual void setMinFrameRate(double);
186  double minFrameRate() const
187  {
188  return myFrameRateMin;
189  }
190 
191  virtual void setMaxFrameRate(double);
192  double maxFrameRate() const
193  {
194  return myFrameRateMax;
195  }
196 
197  short numberOfCPUs() const
198  {
199  return myNumberOfCPUs;
200  }
201 
202  virtual void setNumberOfTickThreads(short);
203  short numberOfTickThreads() const
204  {
205  return myNumberOfTickThreads;
206  }
207 
208  virtual void setPingingServer(bool);
209  bool pingingServer() const
210  {
211  return myPingingServer;
212  }
213 
214  virtual void setSelected(bool);
215 
220  virtual void setLatencyStatus(int);
221 
222  virtual double timeFor(int section) const;
223  virtual QString title() const;
224 
225  protected:
226  virtual void updateFrameTime();
227  virtual void mouseReleaseEvent(QMouseEvent*);
228  virtual bool eventFilter(QObject*, QEvent*);
229 
230  signals:
231  void totalBarTimeChanged(double);
232  void barSelected();
233  void timeChanged(int, double);
234  void numberOfCPUsChanged(short);
235  void numberOfTickThreadsChanged(short);
236  void maxFrameRateChanged(double);
237  void minFrameRateChanged(double);
238  void latencyChanged(double);
239  void pingingServerChanged(bool);
240 
241  protected:
242  QString myBarUnits;
247  double myFrameRate;
250  double myLatency;
252  double mySimTimeToRealTime = 1.0;
253 
254  public:
255  QHBoxLayout* myLayout;
259  };
260 
262  {
263  Q_OBJECT
264 
265  public:
266 
268  DtPerformanceMonitorGraph(makVrv::DtDe& de, QWidget* parent = 0, const Qt::WindowFlags& flags = 0);
269 
271  virtual ~DtPerformanceMonitorGraph();
272 
274  virtual void setBarHeight(double);
275  double barHeight() const
276  {
277  return myBarHeight;
278  }
279 
280  virtual void setBarSpacing(double d);
281  double barSpacing() const;
282 
283  virtual void addSectionInformation(int section, const QColor& color, const QString& title, const std::vector<int>& subtractOff = std::vector<int>(), bool hiddenSection = false);
284  virtual void setBarColor(int secion, const QColor&);
285 
286  virtual void setBarUnits(const QString&);
287  const QString& barUnits() const
288  {
289  return myBarUnits;
290  }
291 
292  virtual DtPerformanceBar* addBar(const QString&);
293  virtual void selectBar(const QString&);
294  virtual void setLatencyStatus(const QString&, int);
295  virtual QString selectedBar() const;
296  virtual void removeBar(DtPerformanceBar*);
297  virtual void removeAllBars();
298  virtual const QColor& colorForSection(int) const;
299  virtual const QString& titleForSection(int) const;
300  virtual void objectCountsChanged();
301  virtual void setPingingServer(const QString&);
302 
305  virtual int combine(const std::vector<int>& topSections, const std::vector<int>& bottomSections);
306 
308  {
309  std::vector<int> topSections;
310  std::vector<int> bottomSections;
311  };
312 
314  virtual CombinedInformation sectionIsCombinedWith(int section) const;
315 
317  virtual void split(int key);
318 
319  protected:
320  virtual void selectBar(DtPerformanceBar* newBar);
321 
322  protected slots:
323  virtual void barSelected();
324  virtual void timeChanged(int section, double d);
325  virtual void numberOfCPUsChanged(short);
326  virtual void numberOfTickThreadsChanged(short);
327  virtual void maxFrameRateChanged(double);
328  virtual void minFrameRateChanged(double);
329  virtual void latencyChanged(double);
330  virtual void pingingServerChanged(bool);
331 
332  protected:
333  double myBarHeight;
334 
336  {
338  {
339  section = rhs.section;
340  title = rhs.title;
341  color = rhs.title;
342  subtractOff = rhs.subtractOff;
343  hidden = rhs.hidden;
344 
345  return *this;
346  }
347 
348  int section;
349  bool hidden = false;
350  QString title;
351  QColor color;
352  std::vector<int> subtractOff;
353  };
354 
355  std::vector<SectionInformation> mySectionInformation;
356  QString myBarUnits;
357 
358  std::vector<DtPerformanceBar*> myPerformanceBars;
359 
362 
363  typedef std::map<int, CombinedInformation> Combined;
365 
366  public:
367  QVBoxLayout* myMainLayout;
368  QScrollArea* myScrollArea;
369  QWidget* myInsideWidget;
370  QGridLayout* myInsideLayout;
373  };
374 }
bool hidden
Definition: performanceMonitorGraph.h:349
Section()
Definition: performanceMonitorGraph.h:140
Definition: performanceMonitorGraph.h:138
QLabel * myNumberOfCores
Definition: performanceMonitorGraph.h:83
const QString & barUnits() const
Definition: performanceMonitorGraph.h:287
double totalTime
Definition: performanceMonitorGraph.h:144
QWidget * myInsideWidget
Definition: performanceMonitorGraph.h:369
double myTotalTime
Definition: performanceMonitorGraph.h:137
makVrv::DtDe & myDe
Definition: performanceMonitorGraph.h:360
bool pingingServer() const
Definition: performanceMonitorGraph.h:209
double myBarHeight
Definition: performanceMonitorGraph.h:333
QHBoxLayout * myLayout
Definition: performanceMonitorGraph.h:255
Definition: performanceMonitorGraph.h:108
QLabel * mySimulatedObjectsLabel
Definition: performanceMonitorGraph.h:84
Definition: performanceMonitorGraph.h:307
const DtPerformanceBar * performanceBar() const
Definition: performanceMonitorGraph.h:45
std::map< int, SectionTime > mySectionTimes
Definition: performanceMonitorGraph.h:105
Definition: performanceMonitorGraph.h:33
Definition: performanceMonitorGraph.h:93
QLabel * myMinFrameRate
Definition: performanceMonitorGraph.h:87
int section
Definition: performanceMonitorGraph.h:348
QLabel * mySimulatedObjects
Definition: performanceMonitorGraph.h:85
std::vector< DtPerformanceBar * > myPerformanceBars
Definition: performanceMonitorGraph.h:358
QLabel * myMaxFrameRate
Definition: performanceMonitorGraph.h:89
double myFrameRateMax
Definition: performanceMonitorGraph.h:249
QFrame * mySeparatorLine
Definition: performanceMonitorGraph.h:77
std::vector< Section > mySectionTimes
Definition: performanceMonitorGraph.h:152
QScrollArea * myScrollArea
Definition: performanceMonitorGraph.h:368
QFrame * mySeparatorLine
Definition: performanceMonitorGraph.h:371
double myTotalBarTime
Definition: performanceMonitorGraph.h:243
QString myBarUnits
Definition: performanceMonitorGraph.h:242
DtPerformanceData * myPerformanceData
Definition: performanceMonitorGraph.h:372
short numberOfTickThreads() const
Definition: performanceMonitorGraph.h:203
QGridLayout * myDataLayout
Definition: performanceMonitorGraph.h:75
DtPerformanceMonitorGraph * myPerformanceMonitorGraph
Definition: performanceMonitorGraph.h:136
QLabel * myTotalTime
Definition: performanceMonitorGraph.h:258
std::vector< int > bottomSections
Definition: performanceMonitorGraph.h:310
QVBoxLayout * myMainLayout
Definition: performanceMonitorGraph.h:367
QColor color
Definition: performanceMonitorGraph.h:351
QString title
Definition: performanceMonitorGraph.h:146
double latency() const
Definition: performanceMonitorGraph.h:180
QLabel * myLatencyLabel
Definition: performanceMonitorGraph.h:90
QColor color
Definition: performanceMonitorGraph.h:147
QLabel * myBackendLabel
Definition: performanceMonitorGraph.h:79
QLabel * myCoresLabel
Definition: performanceMonitorGraph.h:82
double myLatency
Definition: performanceMonitorGraph.h:250
DtPerformanceBarTimes * myPerformanceBarTimes
Definition: performanceMonitorGraph.h:257
QRectF coverage
Definition: performanceMonitorGraph.h:145
double myFrameRateMin
Definition: performanceMonitorGraph.h:248
Definition: performanceMonitorGraph.h:335
QString title
Definition: performanceMonitorGraph.h:350
double maxFrameRate() const
Definition: performanceMonitorGraph.h:192
short myNumberOfCPUs
Definition: performanceMonitorGraph.h:245
std::vector< int > topSections
Definition: performanceMonitorGraph.h:309
const DtPerformanceBar * myPerformanceBar
Definition: performanceMonitorGraph.h:71
std::vector< SectionInformation > mySectionInformation
Definition: performanceMonitorGraph.h:355
QGridLayout * myInsideLayout
Definition: performanceMonitorGraph.h:370
QSpinBox * myTickThreads
Definition: performanceMonitorGraph.h:81
QLabel * myMaxFrameRateLabel
Definition: performanceMonitorGraph.h:88
std::map< int, CombinedInformation > Combined
Definition: performanceMonitorGraph.h:363
short numberOfCPUs() const
Definition: performanceMonitorGraph.h:197
std::vector< int > subtractOff
Definition: performanceMonitorGraph.h:352
makVrv::DtDe & myDe
Definition: performanceMonitorGraph.h:155
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:20
std::vector< int > subtractOff
Definition: performanceMonitorGraph.h:148
QLabel * myBackendTitle
Definition: performanceMonitorGraph.h:78
QString myBarUnits
Definition: performanceMonitorGraph.h:70
QLabel * myLatency
Definition: performanceMonitorGraph.h:91
std::vector< int > mySubtractOff
Definition: performanceMonitorGraph.h:157
SectionInformation & operator=(const SectionInformation &rhs)
Definition: performanceMonitorGraph.h:337
makVrv::DtDe & myDe
Definition: performanceMonitorGraph.h:244
Definition: performanceMonitorGraph.h:261
QString myBarUnits
Definition: performanceMonitorGraph.h:356
makVrv::DtDe & myDe
Definition: performanceMonitorGraph.h:69
std::map< int, int > myIndexForSection
Definition: performanceMonitorGraph.h:156
double myFrameRate
Definition: performanceMonitorGraph.h:247
QHBoxLayout * myMainLayout
Definition: performanceMonitorGraph.h:74
bool myPingingServer
Definition: performanceMonitorGraph.h:251
QLabel * myMinFrameRateLabel
Definition: performanceMonitorGraph.h:86
Combined myCombined
Definition: performanceMonitorGraph.h:364
QLabel * myTitle
Definition: performanceMonitorGraph.h:256
double minFrameRate() const
Definition: performanceMonitorGraph.h:186
double barHeight() const
Definition: performanceMonitorGraph.h:275
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
QGridLayout * myTimesLayout
Definition: performanceMonitorGraph.h:76
Definition: performanceMonitorGraph.h:160
int myOverSection
Definition: performanceMonitorGraph.h:153
double time
Definition: performanceMonitorGraph.h:143
QString myBarUnits
Definition: performanceMonitorGraph.h:154
short myNumberOfTickThreads
Definition: performanceMonitorGraph.h:246
DtPerformanceBar * mySelectedBar
Definition: performanceMonitorGraph.h:361
QLabel * myTickThreadsLabel
Definition: performanceMonitorGraph.h:80
static const int OTHER_TIME
Definition: performanceMonitorGraph.h:31

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)