VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTickableManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtDe.h>
15 
16 #include <vector>
17 #include <tbb/atomic.h>
18 
19 namespace makVrv
20 {
21 
22 
23 
27  {
28 
29  public:
30  //typedefs at the top so they can be used as function parameters
31  typedef std::vector<DtTickable*> TickableList;
32  typedef std::vector<TickableList> TickablesArray;
33 
34  public:
37 
39  virtual ~DtTickableManager();
40 
50  virtual bool addTickableObject( DtTickable* ticObj );
51 
58  virtual bool addTickableObjectToMainList(DtTickable* ticObj);
59 
62  virtual bool addTickableObjectToThreadSafeList(DtTickable* ticObj);
63 
71  virtual void removeTickableObject( DtTickable* ticObj );
72 
75  virtual void removeTickableObjectFromMainList(DtTickable* ticObj);
76 
79  virtual void removeTickableObjectFromThreadSafeList(DtTickable* ticObj);
80 
90  virtual void tick(DtTime tNow = 0.0);
91 
93  virtual bool inTick();
94 
96  virtual int numTickables();
97 
99  // May want how many thread safe tickables reported instead
100  virtual int numMultithreadedTickables();
101 
103  virtual int numTickedLastFrame();
104 
106  virtual double timeSpentThisFrame();
107 
109  virtual void setUseAdaptiveTickRate(bool value);
110 
112  virtual bool useAdaptiveTickRate();
113 
115  virtual void resetAdaptiveTickrate();
116 
119  virtual void setUseMultithreadUpdate(bool useIt);
120 
123  virtual bool useMultithreadUpdate() const;
124 
125  protected:
126 
128  bool addTickableObject(TickableList& array, DtTickable* ticObj);
129 
130  protected:
134 
136  tbb::atomic<bool> myOnTickFlag;
141  };
142 
143 }
int myNumTickablesLastFrame
Definition: DtTickableManager.h:138
An abstract interface for managers of DtTickable objects.
Definition: DtTickableManagerInterface.h:25
std::vector< DtTickable * > TickableList
Definition: DtTickableManager.h:31
A base class for managers of DtTickable objects.
Definition: DtTickableManager.h:26
bool myUseMultithreadUpdate
Definition: DtTickableManager.h:133
Contains makVrv::DtDe class.
Contains the declaration for makVrv::DtTickableManagerInterface.
An abstract base class for objects that require updates.
Definition: DtTickable.h:26
TickableList myThreadSafeTickables
Definition: DtTickableManager.h:132
std::vector< TickableList > TickablesArray
Definition: DtTickableManager.h:32
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
double myTimeSpentThisFrame
Definition: DtTickableManager.h:140
bool myUseAdaptiveTickRate
Definition: DtTickableManager.h:137
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtDe & myDe
Definition: DtTickableManager.h:139
DtTickable * myCurrentTickObject
Definition: DtTickableManager.h:135
TickableList myTickables
Definition: DtTickableManager.h:131
tbb::atomic< bool > myOnTickFlag
Definition: DtTickableManager.h:136
Contains DLL export macros.

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)