VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
frameRateMonitor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1999-2000 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: frameRateMon.h,v $ $Revision: 1.19 $ $State: Exp $
7 *******************************************************************************/
8 #ifndef frameRateMonitor_H_
9 #define frameRateMonitor_H_
10 
13 
19 
20 #include <vlutil/vlString.h>
21 #include <vl/hostStructs.h>
22 #include <vector>
23 #include "vrfutil/averager.h"
24 
25 class DtPeriodicTimer;
26 class DtSimManager;
28 class DtSimMessage;
29 class DtTimer;
30 
31 #include "vrfcore/vrfcoreDefines.h"
33 {
34 public:
35  typedef std::vector<DtSimulationAddress> DtFrameRateRequesters;
36  typedef DtFrameRateRequesters::iterator DtFrameRateRequestersIter;
37  typedef DtFrameRateRequesters::const_iterator DtFrameRateRequestersConstIter;
38 
43 
45  DtFrameRateMonitor(DtSimManager* simManager);
46 
49 
51  const DtFrameRateMonitor& operator=(const DtFrameRateMonitor& orig);
52 
54  virtual bool init();
55 
58  virtual void setSimManager(DtSimManager* simManager);
59 
61  virtual bool registerInterfaceCallbacks();
62 
63  virtual double meanFrameRate();
64 
65  virtual double medianFrameRate();
66 
67  virtual double standardDeviationFrameRate();
68 
69  virtual double minimumFrameRate();
70 
71  virtual double maximumFrameRate();
72 
73  virtual double simTimeToRealTimeRatio();
74 
79  virtual void addSample(double frameTime);
80 
84  virtual double lastSample() const;
85 
88  virtual void reset(bool sendReport = false);
89 
91  virtual void setNumberOfFramesToAverage(unsigned int numFramesToAverage);
92  virtual unsigned int numberOfFramesToAverage();
93 
94  virtual void setReportMean(bool reportMean);
95  virtual bool reportMean() const;
96 
97  virtual void setReportMedian(bool reportMedian);
98  virtual bool reportMedian() const;
99 
100  virtual void setReportStandardDeviation(bool reportStandardDeviation);
101  virtual bool reportStandardDeviation() const;
102 
103  virtual void setReportMinimum(bool reportMinimum);
104  virtual bool reportMinimum() const;
105 
106  virtual void setReportMaximum(bool reportMaximum);
107  virtual bool reportMaximum() const;
108 
109  virtual void setReportToConsole(bool reportToConsole);
110  virtual bool reportToConsole() const;
111 
112  virtual void setReportSimTimeToRealTimeRatio(bool reportSimTimeToRealTimeRatio);
113  virtual bool reportSimTimeToRealTimeRatio() const;
114 
116  virtual bool hasRequestors() const;
117 
119  virtual void processFrameRateRequestMessage(DtSimInterfaceMessage* message);
120 
122  virtual void generateReport();
123 
126  virtual void pause();
127  virtual void resume();
128 
130  virtual bool isPaused() const;
131 
133  virtual ~DtFrameRateMonitor();
134 
135  static void frameRateRequestCallback(DtSimMessage* msg, void* usr);
136  static void reportTimerCallback(DtTimer* timer);
137 
138 protected:
139  virtual void removeTimer();
140  virtual void setTimer(double period);
141 
142 protected:
143 
147 
156 
158 
165 
168 
169 private:
172 };
173 
174 
175 #endif
DtTime myLastReportTimerCbSimTime
Definition: frameRateMonitor.h:162
class DtAverager:
Definition: averager.h:26
DtFrameRateRequesters::iterator DtFrameRateRequestersIter
Definition: frameRateMonitor.h:36
DtTime mySimTimeRealTimeRatio
Definition: frameRateMonitor.h:164
Instances of DtTimer are used to maintain the information needed to represent some kind of scheduled ...
Definition: timer.h:45
DtAverager myAverager
Definition: frameRateMonitor.h:157
DtFrameRateRequesters myRequesters
Contains simulation addresses of everyone who has requested reports.
Definition: frameRateMonitor.h:167
bool myReportMeanFlag
The values of these will determine what gets put into a report.
Definition: frameRateMonitor.h:149
DtPeriodicTimer * myReportTimer
Definition: frameRateMonitor.h:160
DtSimInterfaceMessage is used to send a message to the front end or the back end. ...
Definition: simInterfaceMessage.h:32
DtSimManager * mySimManager
Definition: frameRateMonitor.h:159
double myCurrentFrameRate
If not currently averaging, this is returned for mean or median requests set by tick.
Definition: frameRateMonitor.h:146
bool myReportSimTimeToRealTimeRatioFlag
Definition: frameRateMonitor.h:155
bool myReportStandardDeviationFlag
Definition: frameRateMonitor.h:151
bool myReportMaximumFlag
Definition: frameRateMonitor.h:153
bool myReportMinimumFlag
Definition: frameRateMonitor.h:152
DtFrameRateRequesters::const_iterator DtFrameRateRequestersConstIter
Definition: frameRateMonitor.h:37
bool myReportToConsoleFlag
Definition: frameRateMonitor.h:154
File: simMsg.h.
Definition: simMessage.h:35
std::vector< DtSimulationAddress > DtFrameRateRequesters
Definition: frameRateMonitor.h:35
bool myReportMedianFlag
Definition: frameRateMonitor.h:150
Definition: frameRateMonitor.h:32
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
bool myIsPaused
When paused, the frame rate logger will ignore any specified samples.
Definition: frameRateMonitor.h:171
DtTime myLastReportTimerCbRealTime
Definition: frameRateMonitor.h:163
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
double myCurrentResponsePeriod
Definition: frameRateMonitor.h:161
File: periTimer.h.
Definition: periodicTimer.h:30
#define DT_DLL_vrfcore
This file is used to determine how to build.
Definition: vrfcoreDefines.h:25

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)