VR-Forces 5.0.3 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;
77  QFrame* mySeparatorLine;
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 d);
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);
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 
253  public:
254  QHBoxLayout* myLayout;
258  };
259 
261  {
262  Q_OBJECT
263 
264  public:
265 
267  DtPerformanceMonitorGraph(makVrv::DtDe& de, QWidget* parent = 0, const Qt::WindowFlags& flags = 0);
268 
270  virtual ~DtPerformanceMonitorGraph();
271 
273  virtual void setBarHeight(double);
274  double barHeight() const
275  {
276  return myBarHeight;
277  }
278 
279  virtual void setBarSpacing(double d);
280  double barSpacing() const;
281 
282  virtual void addSectionInformation(int section, const QColor& color, const QString& title, const std::vector<int>& subtractOff = std::vector<int>(), bool hiddenSection = false);
283  virtual void setBarColor(int secion, const QColor&);
284 
285  virtual void setBarUnits(const QString&);
286  const QString& barUnits() const
287  {
288  return myBarUnits;
289  }
290 
291  virtual DtPerformanceBar* addBar(const QString&);
292  virtual void selectBar(const QString&);
293  virtual void setLatencyStatus(const QString&, int);
294  virtual QString selectedBar() const;
295  virtual void removeBar(DtPerformanceBar*);
296  virtual void removeAllBars();
297  virtual const QColor& colorForSection(int) const;
298  virtual const QString& titleForSection(int) const;
299  virtual void objectCountsChanged();
300  virtual void setPingingServer(const QString&);
301 
304  virtual int combine(const std::vector<int>& topSections, const std::vector<int>& bottomSections);
305 
307  {
308  std::vector<int> topSections;
309  std::vector<int> bottomSections;
310  };
311 
313  virtual CombinedInformation sectionIsCombinedWith(int section) const;
314 
316  virtual void split(int key);
317 
318  protected:
319  virtual void selectBar(DtPerformanceBar* newBar);
320 
321  protected slots:
322  virtual void barSelected();
323  virtual void timeChanged(int section, double d);
324  virtual void numberOfCPUsChanged(short);
325  virtual void numberOfTickThreadsChanged(short);
326  virtual void maxFrameRateChanged(double);
327  virtual void minFrameRateChanged(double);
328  virtual void latencyChanged(double);
329  virtual void pingingServerChanged(bool);
330 
331  protected:
332  double myBarHeight;
333 
335  {
337  {
338  section = rhs.section;
339  title = rhs.title;
340  color = rhs.title;
341  subtractOff = rhs.subtractOff;
342  hidden = rhs.hidden;
343 
344  return *this;
345  }
346 
347  int section;
348  bool hidden = false;
349  QString title;
350  QColor color;
351  std::vector<int> subtractOff;
352  };
353 
354  std::vector<SectionInformation> mySectionInformation;
355  QString myBarUnits;
356 
357  std::vector<DtPerformanceBar*> myPerformanceBars;
358 
361 
362  typedef std::map<int, CombinedInformation> Combined;
364 
365  public:
366  QVBoxLayout* myMainLayout;
367  QScrollArea* myScrollArea;
368  QWidget* myInsideWidget;
369  QGridLayout* myInsideLayout;
372  };
373 }
bool hidden
Definition: performanceMonitorGraph.h:348
Definition: performanceMonitorGraph.h:138
QLabel * myNumberOfCores
Definition: performanceMonitorGraph.h:83
const QString & barUnits() const
Definition: performanceMonitorGraph.h:286
double totalTime
Definition: performanceMonitorGraph.h:144
QWidget * myInsideWidget
Definition: performanceMonitorGraph.h:368
double myTotalTime
Definition: performanceMonitorGraph.h:137
makVrv::DtDe & myDe
Definition: performanceMonitorGraph.h:359
bool pingingServer() const
Definition: performanceMonitorGraph.h:209
double myBarHeight
Definition: performanceMonitorGraph.h:332
QHBoxLayout * myLayout
Definition: performanceMonitorGraph.h:254
Definition: performanceMonitorGraph.h:108
QLabel * mySimulatedObjectsLabel
Definition: performanceMonitorGraph.h:84
Definition: performanceMonitorGraph.h:306
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:347
QLabel * mySimulatedObjects
Definition: performanceMonitorGraph.h:85
std::vector< DtPerformanceBar * > myPerformanceBars
Definition: performanceMonitorGraph.h:357
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:367
QFrame * mySeparatorLine
Definition: performanceMonitorGraph.h:370
double myTotalBarTime
Definition: performanceMonitorGraph.h:243
QString myBarUnits
Definition: performanceMonitorGraph.h:242
DtPerformanceData * myPerformanceData
Definition: performanceMonitorGraph.h:371
short numberOfTickThreads() const
Definition: performanceMonitorGraph.h:203
QGridLayout * myDataLayout
Definition: performanceMonitorGraph.h:75
DtPerformanceMonitorGraph * myPerformanceMonitorGraph
Definition: performanceMonitorGraph.h:136
QLabel * myTotalTime
Definition: performanceMonitorGraph.h:257
std::vector< int > bottomSections
Definition: performanceMonitorGraph.h:309
QVBoxLayout * myMainLayout
Definition: performanceMonitorGraph.h:366
QColor color
Definition: performanceMonitorGraph.h:350
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:256
QRectF coverage
Definition: performanceMonitorGraph.h:145
double myFrameRateMin
Definition: performanceMonitorGraph.h:248
Definition: performanceMonitorGraph.h:334
QString title
Definition: performanceMonitorGraph.h:349
double maxFrameRate() const
Definition: performanceMonitorGraph.h:192
short myNumberOfCPUs
Definition: performanceMonitorGraph.h:245
std::vector< int > topSections
Definition: performanceMonitorGraph.h:308
const DtPerformanceBar * myPerformanceBar
Definition: performanceMonitorGraph.h:71
std::vector< SectionInformation > mySectionInformation
Definition: performanceMonitorGraph.h:354
QGridLayout * myInsideLayout
Definition: performanceMonitorGraph.h:369
QSpinBox * myTickThreads
Definition: performanceMonitorGraph.h:81
QLabel * myMaxFrameRateLabel
Definition: performanceMonitorGraph.h:88
std::map< int, CombinedInformation > Combined
Definition: performanceMonitorGraph.h:362
short numberOfCPUs() const
Definition: performanceMonitorGraph.h:197
std::vector< int > subtractOff
Definition: performanceMonitorGraph.h:351
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:336
makVrv::DtDe & myDe
Definition: performanceMonitorGraph.h:244
Definition: performanceMonitorGraph.h:260
QString myBarUnits
Definition: performanceMonitorGraph.h:355
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:363
QLabel * myTitle
Definition: performanceMonitorGraph.h:255
double minFrameRate() const
Definition: performanceMonitorGraph.h:186
double barHeight() const
Definition: performanceMonitorGraph.h:274
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:70
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:360
QLabel * myTickThreadsLabel
Definition: performanceMonitorGraph.h:80
static const int OTHER_TIME
Definition: performanceMonitorGraph.h:31

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)