VR-Forces Developer's Guide
 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) 2022 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 
18 namespace makVrv
19 {
20  class DtSceneObject;
21 
25  {
26 
27  public:
28  //typedefs at the top so they can be used as function parameters
29  typedef std::vector<DtTickable*> TickableList;
30  typedef std::vector<TickableList> TickablesArray;
31 
32  public:
35 
37  virtual ~DtTickableManager();
38 
48  virtual bool addTickableObject( DtTickable* ticObj );
49 
56  virtual bool addTickableObjectToMainList(DtTickable* ticObj);
57 
60  virtual bool addTickableObjectToThreadSafeList(DtTickable* ticObj);
61 
69  virtual void removeTickableObject( DtTickable* ticObj );
70 
73  virtual void removeTickableObjectFromMainList(DtTickable* ticObj);
74 
77  virtual void removeTickableObjectFromThreadSafeList(DtTickable* ticObj);
78 
88  virtual void tick(DtTime tNow = 0.0);
89 
91  virtual bool inTick();
92 
94  virtual int numTickables();
95 
97  // May want how many thread safe tickables reported instead
98  virtual int numMultithreadedTickables();
99 
101  virtual int numTickedLastFrame();
102 
104  virtual double timeSpentThisFrame();
105 
107  virtual void setUseAdaptiveTickRate(bool value);
108 
110  virtual bool useAdaptiveTickRate();
111 
113  virtual void resetAdaptiveTickrate();
114 
117  virtual void setUseMultithreadUpdate(bool useIt);
118 
121  virtual bool useMultithreadUpdate() const;
122  protected:
123 
125  bool addTickableObject(TickableList& array, DtTickable* ticObj);
126 
127  protected:
130 
132 
134 
135  std::atomic<bool> myOnTickFlag;
140  };
141 
142 }
int myNumTickablesLastFrame
Definition: DtTickableManager.h:137
An abstract interface for managers of DtTickable objects.
Definition: DtTickableManagerInterface.h:26
std::vector< DtTickable * > TickableList
Definition: DtTickableManager.h:29
A base class for managers of DtTickable objects.
Definition: DtTickableManager.h:24
bool myUseMultithreadUpdate
Definition: DtTickableManager.h:131
Contains makVrv::DtDe class.
Contains the declaration for makVrv::DtTickableManagerInterface.
An abstract base class for objects that require updates. This object automatically adds itself to a D...
Definition: DtTickable.h:26
TickableList myThreadSafeTickables
Definition: DtTickableManager.h:129
std::vector< TickableList > TickablesArray
Definition: DtTickableManager.h:30
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
double myTimeSpentThisFrame
Definition: DtTickableManager.h:139
bool myUseAdaptiveTickRate
Definition: DtTickableManager.h:136
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtSignalConnectionManager myConnections
Definition: DtTickableManager.h:133
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:76
DtDe & myDe
Definition: DtTickableManager.h:138
std::atomic< bool > myOnTickFlag
Definition: DtTickableManager.h:135
TickableList myTickables
Definition: DtTickableManager.h:128
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)