VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTickable.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 
15 
16 #include <vlutil/vlTime.h>
17 
18 
19 namespace makVrv
20 {
21  class DtTickableManagerInterface;
22 
27  {
28  public:
32  {
36  };
37 
38  public:
39 
49  virtual bool needsUpdate( DtTime tNow );
50 
52  virtual bool updateIfNeeded(DtTime tNow);
53 
56  virtual void update( DtTime tNow ) = 0;
57 
59  virtual ~DtTickable();
60 
64  virtual void setTickableEnabled( bool enabled );
66 
68  virtual void setIsThreadSafe(bool safe);
73  virtual bool isThreadSafe() const;
75 
77  virtual void setTickableListState(TickableListState safeList);
83  virtual TickableListState tickableListState() const;
85 
87  virtual void setUpdatePeriod( unsigned int period );
94  virtual unsigned int updatePeriod() const;
95 
97  virtual bool adaptiveTickLodEnabled() const;
98 
100  protected:
107 
109  DtTickable() = delete;
110 
111  virtual void slot_managerAboutToBeDeleted();
112 
113  protected:
116 
117  protected:
119  unsigned int myFrameCounter;
120  unsigned int myFrameToUpdate;
121  unsigned int myUpdatePeriod;
122  unsigned int myTickableIndex;
123  // NOTE: Several derived updater classes also have a myLastUpdateTime
124  // member variable with its own initializer
125  // Double check whether you are modifying the child or the parent!
126  // Ideally all the children myLastUpdateTime should go away
130  };
131 }
unsigned int myTickableIndex
Definition: DtTickable.h:122
Definition: DtTickable.h:34
unsigned int myFrameToUpdate
Definition: DtTickable.h:120
An abstract interface for managers of DtTickable objects.
Definition: DtTickableManagerInterface.h:26
An abstract base class for objects that require updates. This object automatically adds itself to a D...
Definition: DtTickable.h:26
DtTime myLastUpdateTime
Definition: DtTickable.h:127
TickableListState
Enumeration used to indicate which DtTickableManager&#39;s tickable list the tickable is on...
Definition: DtTickable.h:31
unsigned int myUpdatePeriod
Definition: DtTickable.h:121
DtSignalConnectionManager myConnections
Definition: DtTickable.h:118
bool myIsThreadSafe
Definition: DtTickable.h:128
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtTickableManagerInterface * myManager
Pointer to manager for removal during destruction.
Definition: DtTickable.h:115
unsigned int myFrameCounter
Definition: DtTickable.h:119
Base class to provide boost signal/slot management.
Definition: DtTickable.h:33
TickableListState myTickableListState
Definition: DtTickable.h:129
Contains DLL export macros.

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)