VR-Forces 5.0.2 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);
63  virtual void addSectionTime(int section, int basedOnSection, const QString& title, bool actualTime = false, int indent = 0, const QColor& color = Qt::transparent);
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  {
98  QHBoxLayout* layout;
99  double time;
102  };
103 
104  std::map<int, SectionTime> mySectionTimes;
105  };
106 
108  {
109  Q_OBJECT
110 
111  public:
113  virtual ~DtPerformanceBarTimes();
114 
115  virtual void setTime(int section, double time);
116  virtual void setTotalTime(double d);
117  virtual void setBarUnits(const QString&);
118  virtual void addSectionInformation(int section, const QColor& color, const QString& title, const std::vector<int>& subtractOff = std::vector<int>());
119  virtual void setBarColor(int section, const QColor&);
120  virtual double timeFor(int section) const;
121 
122  signals:
123  void barSelected();
124 
125  protected:
126  virtual void paintEvent(QPaintEvent*);
127  virtual void mouseMoveEvent(QMouseEvent*);
128  virtual void mouseReleaseEvent(QMouseEvent*);
129  virtual void updateToolTip(int);
130  virtual bool eventFilter(QObject*, QEvent*);
131  virtual void updateToolTip(const QPoint&);
132  virtual int indexForSection(int);
133 
134  protected:
136  double myTotalTime;
137  struct Section
138  {
139  Section() : time(0.), totalTime(0.), section(-1) {};
140 
141  int section;
142  double time;
143  double totalTime;
144  QRectF coverage;
145  QString title;
146  QColor color;
147  std::vector<int> subtractOff;
148  };
149 
150  std::vector<Section> mySectionTimes;
152  QString myBarUnits;
154  std::map<int, int> myIndexForSection;
155  std::vector<int> mySubtractOff;
156  };
157 
159  {
160  Q_OBJECT
161 
162  public:
163  DtPerformanceBar(makVrv::DtDe& de, DtPerformanceMonitorGraph* parent, const QString& title);
164  virtual ~DtPerformanceBar();
165 
166  virtual void setBarUnits(const QString&);
167 
168  virtual void setTime(int section, double time);
169  virtual void setTotalTime(double d);
170  virtual double totalTime() const;
171  virtual void setFixedHeight(double d);
172  virtual void setBarColor(int section, const QColor&);
173  virtual void addSectionInformation(int section, const QColor& color, const QString& title, const std::vector<int>& subtractOff = std::vector<int>());
174  virtual DtSimulationAddress backendAddress() const;
175  virtual void setNumberOfCPUs(short);
176  virtual void setFrameRate(double);
177  virtual void setLatency(double);
178  double latency() const
179  {
180  return myLatency;
181  }
182 
183  virtual void setMinFrameRate(double);
184  double minFrameRate() const
185  {
186  return myFrameRateMin;
187  }
188 
189  virtual void setMaxFrameRate(double);
190  double maxFrameRate() const
191  {
192  return myFrameRateMax;
193  }
194 
195  short numberOfCPUs() const
196  {
197  return myNumberOfCPUs;
198  }
199 
200  virtual void setNumberOfTickThreads(short);
201  short numberOfTickThreads() const
202  {
203  return myNumberOfTickThreads;
204  }
205 
206  virtual void setPingingServer(bool);
207  bool pingingServer() const
208  {
209  return myPingingServer;
210  }
211 
212  virtual void setSelected(bool);
213 
218  virtual void setLatencyStatus(int);
219 
220  virtual double timeFor(int section) const;
221  virtual QString title() const;
222 
223  protected:
224  virtual void updateFrameTime();
225  virtual void mouseReleaseEvent(QMouseEvent*);
226  virtual bool eventFilter(QObject*, QEvent*);
227 
228  signals:
229  void totalBarTimeChanged(double);
230  void barSelected();
231  void timeChanged(int, double);
232  void numberOfCPUsChanged(short);
233  void numberOfTickThreadsChanged(short);
234  void maxFrameRateChanged(double);
235  void minFrameRateChanged(double);
236  void latencyChanged(double);
237  void pingingServerChanged(bool);
238 
239  protected:
240  QString myBarUnits;
245  double myFrameRate;
248  double myLatency;
250 
251  public:
252  QHBoxLayout* myLayout;
256  };
257 
259  {
260  Q_OBJECT
261 
262  public:
263 
265  DtPerformanceMonitorGraph(makVrv::DtDe& de, QWidget* parent = 0, const Qt::WindowFlags& flags = 0);
266 
268  virtual ~DtPerformanceMonitorGraph();
269 
271  virtual void setBarHeight(double);
272  double barHeight() const
273  {
274  return myBarHeight;
275  }
276 
277  virtual void setBarSpacing(double d);
278  double barSpacing() const;
279 
280  virtual void addSectionInformation(int section, const QColor& color, const QString& title, const std::vector<int>& subtractOff = std::vector<int>());
281  virtual void setBarColor(int secion, const QColor&);
282 
283  virtual void setBarUnits(const QString&);
284  const QString& barUnits() const
285  {
286  return myBarUnits;
287  }
288 
289  virtual DtPerformanceBar* addBar(const QString&);
290  virtual void selectBar(const QString&);
291  virtual void setLatencyStatus(const QString&, int);
292  virtual QString selectedBar() const;
293  virtual void removeBar(DtPerformanceBar*);
294  virtual void removeAllBars();
295  virtual const QColor& colorForSection(int) const;
296  virtual const QString& titleForSection(int) const;
297  virtual void objectCountsChanged();
298  virtual void setPingingServer(const QString&);
299 
302  virtual int combine(const std::vector<int>& topSections, const std::vector<int>& bottomSections);
303 
305  {
306  std::vector<int> topSections;
307  std::vector<int> bottomSections;
308  };
309 
311  virtual CombinedInformation sectionIsCombinedWith(int section) const;
312 
314  virtual void split(int key);
315 
316  protected:
317  virtual void selectBar(DtPerformanceBar* newBar);
318 
319  protected slots:
320  virtual void barSelected();
321  virtual void timeChanged(int section, double d);
322  virtual void numberOfCPUsChanged(short);
323  virtual void numberOfTickThreadsChanged(short);
324  virtual void maxFrameRateChanged(double);
325  virtual void minFrameRateChanged(double);
326  virtual void latencyChanged(double);
327  virtual void pingingServerChanged(bool);
328 
329  protected:
330  double myBarHeight;
331 
333  {
335  {
336  section = rhs.section;
337  title = rhs.title;
338  color = rhs.title;
339  subtractOff = rhs.subtractOff;
340 
341  return *this;
342  }
343 
344  int section;
345  QString title;
346  QColor color;
347  std::vector<int> subtractOff;
348  };
349 
350  std::vector<SectionInformation> mySectionInformation;
351  QString myBarUnits;
352 
353  std::vector<DtPerformanceBar*> myPerformanceBars;
354 
357 
358  typedef std::map<int, CombinedInformation> Combined;
360 
361  public:
362  QVBoxLayout* myMainLayout;
363  QScrollArea* myScrollArea;
364  QWidget* myInsideWidget;
365  QGridLayout* myInsideLayout;
368  };
369 }
Section()
Definition: performanceMonitorGraph.h:139
Definition: performanceMonitorGraph.h:137
QLabel * myNumberOfCores
Definition: performanceMonitorGraph.h:83
const QString & barUnits() const
Definition: performanceMonitorGraph.h:284
double totalTime
Definition: performanceMonitorGraph.h:143
QWidget * myInsideWidget
Definition: performanceMonitorGraph.h:364
double myTotalTime
Definition: performanceMonitorGraph.h:136
makVrv::DtDe & myDe
Definition: performanceMonitorGraph.h:355
bool pingingServer() const
Definition: performanceMonitorGraph.h:207
double myBarHeight
Definition: performanceMonitorGraph.h:330
QHBoxLayout * myLayout
Definition: performanceMonitorGraph.h:252
bool actualTime
Definition: performanceMonitorGraph.h:100
Definition: performanceMonitorGraph.h:107
QLabel * mySimulatedObjectsLabel
Definition: performanceMonitorGraph.h:84
Definition: performanceMonitorGraph.h:304
QHBoxLayout * layout
Definition: performanceMonitorGraph.h:98
const DtPerformanceBar * performanceBar() const
Definition: performanceMonitorGraph.h:45
std::map< int, SectionTime > mySectionTimes
Definition: performanceMonitorGraph.h:104
Definition: performanceMonitorGraph.h:33
Definition: performanceMonitorGraph.h:93
QLabel * myMinFrameRate
Definition: performanceMonitorGraph.h:87
int section
Definition: performanceMonitorGraph.h:344
QLabel * mySimulatedObjects
Definition: performanceMonitorGraph.h:85
std::vector< DtPerformanceBar * > myPerformanceBars
Definition: performanceMonitorGraph.h:353
QLabel * myMaxFrameRate
Definition: performanceMonitorGraph.h:89
double myFrameRateMax
Definition: performanceMonitorGraph.h:247
QFrame * mySeparatorLine
Definition: performanceMonitorGraph.h:77
std::vector< Section > mySectionTimes
Definition: performanceMonitorGraph.h:150
QScrollArea * myScrollArea
Definition: performanceMonitorGraph.h:363
QFrame * mySeparatorLine
Definition: performanceMonitorGraph.h:366
double myTotalBarTime
Definition: performanceMonitorGraph.h:241
QString myBarUnits
Definition: performanceMonitorGraph.h:240
DtPerformanceData * myPerformanceData
Definition: performanceMonitorGraph.h:367
short numberOfTickThreads() const
Definition: performanceMonitorGraph.h:201
QGridLayout * myDataLayout
Definition: performanceMonitorGraph.h:75
DtPerformanceMonitorGraph * myPerformanceMonitorGraph
Definition: performanceMonitorGraph.h:135
QLabel * myTotalTime
Definition: performanceMonitorGraph.h:255
std::vector< int > bottomSections
Definition: performanceMonitorGraph.h:307
QVBoxLayout * myMainLayout
Definition: performanceMonitorGraph.h:362
QColor color
Definition: performanceMonitorGraph.h:346
QString title
Definition: performanceMonitorGraph.h:145
double latency() const
Definition: performanceMonitorGraph.h:178
QLabel * myLatencyLabel
Definition: performanceMonitorGraph.h:90
QColor color
Definition: performanceMonitorGraph.h:146
QLabel * myBackendLabel
Definition: performanceMonitorGraph.h:79
QLabel * myCoresLabel
Definition: performanceMonitorGraph.h:82
double myLatency
Definition: performanceMonitorGraph.h:248
DtPerformanceBarTimes * myPerformanceBarTimes
Definition: performanceMonitorGraph.h:254
QRectF coverage
Definition: performanceMonitorGraph.h:144
double myFrameRateMin
Definition: performanceMonitorGraph.h:246
Definition: performanceMonitorGraph.h:332
QString title
Definition: performanceMonitorGraph.h:345
double maxFrameRate() const
Definition: performanceMonitorGraph.h:190
short myNumberOfCPUs
Definition: performanceMonitorGraph.h:243
std::vector< int > topSections
Definition: performanceMonitorGraph.h:306
const DtPerformanceBar * myPerformanceBar
Definition: performanceMonitorGraph.h:71
std::vector< SectionInformation > mySectionInformation
Definition: performanceMonitorGraph.h:350
QGridLayout * myInsideLayout
Definition: performanceMonitorGraph.h:365
QSpinBox * myTickThreads
Definition: performanceMonitorGraph.h:81
QLabel * myMaxFrameRateLabel
Definition: performanceMonitorGraph.h:88
std::map< int, CombinedInformation > Combined
Definition: performanceMonitorGraph.h:358
short numberOfCPUs() const
Definition: performanceMonitorGraph.h:195
QLabel * title
Definition: performanceMonitorGraph.h:95
std::vector< int > subtractOff
Definition: performanceMonitorGraph.h:347
makVrv::DtDe & myDe
Definition: performanceMonitorGraph.h:153
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:20
QLabel * colorLabel
Definition: performanceMonitorGraph.h:97
std::vector< int > subtractOff
Definition: performanceMonitorGraph.h:147
double time
Definition: performanceMonitorGraph.h:99
QLabel * myBackendTitle
Definition: performanceMonitorGraph.h:78
int basedOnSection
Definition: performanceMonitorGraph.h:101
QString myBarUnits
Definition: performanceMonitorGraph.h:70
QLabel * myLatency
Definition: performanceMonitorGraph.h:91
std::vector< int > mySubtractOff
Definition: performanceMonitorGraph.h:155
SectionInformation & operator=(const SectionInformation &rhs)
Definition: performanceMonitorGraph.h:334
makVrv::DtDe & myDe
Definition: performanceMonitorGraph.h:242
Definition: performanceMonitorGraph.h:258
QString myBarUnits
Definition: performanceMonitorGraph.h:351
makVrv::DtDe & myDe
Definition: performanceMonitorGraph.h:69
std::map< int, int > myIndexForSection
Definition: performanceMonitorGraph.h:154
double myFrameRate
Definition: performanceMonitorGraph.h:245
QHBoxLayout * myMainLayout
Definition: performanceMonitorGraph.h:74
bool myPingingServer
Definition: performanceMonitorGraph.h:249
QLabel * myMinFrameRateLabel
Definition: performanceMonitorGraph.h:86
Combined myCombined
Definition: performanceMonitorGraph.h:359
QLabel * myTitle
Definition: performanceMonitorGraph.h:253
double minFrameRate() const
Definition: performanceMonitorGraph.h:184
double barHeight() const
Definition: performanceMonitorGraph.h:272
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:158
int myOverSection
Definition: performanceMonitorGraph.h:151
double time
Definition: performanceMonitorGraph.h:142
QString myBarUnits
Definition: performanceMonitorGraph.h:152
short myNumberOfTickThreads
Definition: performanceMonitorGraph.h:244
QLabel * value
Definition: performanceMonitorGraph.h:96
DtPerformanceBar * mySelectedBar
Definition: performanceMonitorGraph.h:356
QLabel * myTickThreadsLabel
Definition: performanceMonitorGraph.h:80
static const int OTHER_TIME
Definition: performanceMonitorGraph.h:31

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)