VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtModelInstanceFactory.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtModelInstanceFactory_H_
11 #define DtModelInstanceFactory_H_
12 
13 #include <vrvCore/vrvCore.h>
15 
16 #include <list>
17 #include <string>
18 #include <map>
19 
20 namespace makVrv
21 {
22  class DtDe;
23  class DtModelDefinition;
24  class DtModelInstance;
25  class DtModelInstanceCreator;
26 
30  {
31 
32  public:
33  typedef std::list<std::string> CreatorClassList;
34 
37  static DtModelInstanceFactory& instance(DtDe& de);
38 
40  virtual ~DtModelInstanceFactory();
41 
43  DtModelInstanceFactory() = delete;
47  DtModelInstanceFactory& operator=(const DtModelInstanceFactory& rhs) = delete;
48 
49  public:
50 
52  static const std::string& modelInstanceHintParameterName();
53 
84  virtual DtModelInstance* createModelInstance(const std::string& objectClassName,
85  const DtModelDefinition& definition,
86  bool ignoreDefinitionHint = false,
87  const std::string& modelInstanceClassOverride = "",
88  bool realize = true);
89 
91  virtual bool isClassRegistered(const std::string& objectClass) const;
92 
94  virtual void registerSceneObjectClass(const std::string& objectClass,
95  const CreatorClassList& classes);
96 
98  virtual void registerModelInstanceCreator(const std::string& modelInstanceClassName,
100 
101  virtual DtModelInstanceCreator* modelInstanceCreator(const std::string& modelInstanceClassName) const;
102 
104  virtual const CreatorClassList& sceneObjectClassCreators(const std::string& objectClass);
105 
109  virtual void addObjectClassCreatorToFront(const std::string& objectClass,
110  const std::string& newCreatorClass);
111 
115  virtual void addObjectClassCreatorToBack(const std::string& objectClass,
116  const std::string& newCreatorClass);
117 
118  protected:
119 
122 
123  protected:
125  virtual CreatorClassList modelDefinitionHints(const DtModelDefinition& modelInstance);
126 
132  virtual DtModelInstance* createAndRealize(const std::string& modelInstanceClassName,
133  const DtModelDefinition& modelDefinition, bool realize);
134 
135  typedef std::map<std::string,DtModelInstanceCreator*> CreatorMap;
136  typedef std::map<std::string,CreatorClassList> ObjectClassMap;
137 
139 
142 
145  };
146 }
147 
148 #endif
149 
std::map< std::string, CreatorClassList > ObjectClassMap
Definition: DtModelInstanceFactory.h:136
The base class for all model instances.
Definition: DtModelInstance.h:41
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
const char * modelInstanceClassName(void)=delete
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:42
Model Instance.
Definition: DtModelInstanceFactory.h:29
std::list< std::string > CreatorClassList
Definition: DtModelInstanceFactory.h:33
Contains makVrv::DtVirtualBaseClass class.
std::string myDebugModelInstanceClass
Definition: DtModelInstanceFactory.h:141
ObjectClassMap myObjectCreatorMap
Definition: DtModelInstanceFactory.h:144
DtDe & myDe
Definition: DtModelInstanceFactory.h:138
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
The polymorphic creator for the DtModelInstance.
Definition: DtModelInstance.h:153
std::map< std::string, DtModelInstanceCreator * > CreatorMap
Definition: DtModelInstanceFactory.h:135
CreatorMap myCreators
Definition: DtModelInstanceFactory.h:143
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:72
bool myEnableDebugModelInstanceFallback
Definition: DtModelInstanceFactory.h:140
Contains DLL export macros.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)