VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectManager.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 <vrvOsg/vrvOsg.h>
13 
15 
16 #include <map>
17 #include <string>
18 
19 namespace makVrv
20 {
21  class DtInstanceContainer;
22 
27  {
28  public:
29 
31  {
37  PerInstanceDataManager
38  };
39 
40  public:
41 
44 
46  virtual ~DtIndirectManager();
47 
48  private:
50  DtIndirectManager() = delete;
52  DtIndirectManager(const DtIndirectManager &other) = delete;
54  DtIndirectManager &operator=(const DtIndirectManager &other) = delete;
55 
56  public:
57 
59  static int managerType();
60 
61  protected:
62 
64 
66 
67  };
68 
72  {
73  public:
76 
78  virtual ~DtIndirectManagerCreator();
79 
81  virtual DtIndirectManager* create(DtInstanceContainer& container) const = 0;
82 
83  protected:
85  };
86 
90  {
91  public:
92  typedef std::map<int, DtIndirectManagerCreator*> MapManagerTypeToCreator;
93  typedef std::map<int, DtIndirectManager*> MapManagerTypeToManager;
94 
95  public:
98 
100  virtual ~DtIndirectManagerFactory();
101 
102  public:
103 
104  virtual void registerType(int managerType, DtIndirectManagerCreator* creator);
105 
107  virtual DtIndirectManager* create(int managerType, DtInstanceContainer& container) const;
108 
110  virtual MapManagerTypeToManager createAll(DtInstanceContainer& container) const;
111 
114  static DtIndirectManagerFactory& instance(DtDe& de);
115 
117  static const std::string& theClassName();
118  protected:
120 
122  };
123 
124 
125 }
Virtual base class.
Definition: DtVirtualBaseClass.h:19
std::map< int, DtIndirectManager * > MapManagerTypeToManager
Definition: DtIndirectManager.h:93
Definition: DtIndirectManager.h:33
parent manager class for all Indirect managers.
Definition: DtIndirectManager.h:26
MapManagerTypeToCreator myIndirectManagers
Definition: DtIndirectManager.h:121
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
creator for DtIndirectManager
Definition: DtIndirectManager.h:71
Definition: DtIndirectManager.h:34
Definition: DtIndirectManager.h:36
DtDe & myDe
Definition: DtIndirectManager.h:84
std::map< int, DtIndirectManagerCreator * > MapManagerTypeToCreator
Definition: DtIndirectManager.h:92
Contains makVrv::DtVirtualBaseClass class.
DtDe & myDe
Definition: DtIndirectManager.h:119
DtInstanceContainer & myInstanceContainer
Definition: DtIndirectManager.h:63
Definition: DtIndirectManager.h:32
DtDe & myDe
Definition: DtIndirectManager.h:65
creator for all the different DtIndirectManager types
Definition: DtIndirectManager.h:89
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Helper class to manage instances This class allows you to add a DtInstance_64 Internally, however it stores this as a DtInstance (which the GPU can directly read)
Definition: DtInstanceContainer.h:31
Definition: DtIndirectManager.h:35
ManagerTypes
Definition: DtIndirectManager.h:30

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)