VR-Forces 4.8 Class Documentation
 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) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtModelInstanceFactory_H_
11 #define DtModelInstanceFactory_H_
12 
13 #include <vrvCore/vrvCore.h>
14 #include <list>
15 #include <string>
16 #include <map>
18 
19 namespace makVrv
20 {
21  class DtDe;
22  class DtModelDefinition;
23  class DtModelInstance;
24  class DtModelInstanceCreator;
25 
29  {
30 
31  public:
32  typedef std::list<std::string> CreatorClassList;
33 
36  static DtModelInstanceFactory& instance(DtDe& de);
37 
39  virtual ~DtModelInstanceFactory();
40 
42  static const std::string& modelInstanceHintParameterName();
43 
74  DtModelInstance* createModelInstance(const std::string& objectClassName,
75  DtModelDefinition& definition,
76  bool ignoreDefinitionHint = false,
77  const std::string& modelInstanceClassOverride = "",
78  bool realize = true);
79 
81  bool isClassRegistered(const std::string& objectClass) const;
82 
84  void registerSceneObjectClass(const std::string& objectClass,
85  const CreatorClassList& classes);
86 
88  void registerModelInstanceCreator(const std::string& modelInstanceClassName,
90 
92  const CreatorClassList& sceneObjectClassCreators(const std::string& objectClass);
93 
97  void addObjectClassCreatorToFront(const std::string& objectClass,
98  const std::string& newCreatorClass);
99 
103  void addObjectClassCreatorToBack(const std::string& objectClass,
104  const std::string& newCreatorClass);
105 
106  protected:
107 
110 
112  virtual CreatorClassList modelDefinitionHints(const DtModelDefinition& modelInstance);
113 
119  virtual DtModelInstance* createAndRealize(const std::string& modelInstanceClassName,
120  DtModelDefinition& modelDefinition, bool realize);
121 
122  typedef std::map<std::string,DtModelInstanceCreator*> CreatorMap;
123  typedef std::map<std::string,CreatorClassList> ObjectClassMap;
124 
126 
129 
132 
133 
134  };
135 }
136 
137 #endif
138 
std::map< std::string, CreatorClassList > ObjectClassMap
Definition: DtModelInstanceFactory.h:123
The base class for all model instances.
Definition: DtModelInstance.h:39
Virtual base class.
Definition: DtVirtualBaseClass.h:22
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:33
Model Instance.
Definition: DtModelInstanceFactory.h:28
std::list< std::string > CreatorClassList
Definition: DtModelInstanceFactory.h:32
Contains makVrv::DtVirtualBaseClass class.
std::string myDebugModelInstanceClass
Definition: DtModelInstanceFactory.h:128
ObjectClassMap myObjectCreatorMap
Definition: DtModelInstanceFactory.h:131
DtDe & myDe
Definition: DtModelInstanceFactory.h:125
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
The polymorphic creator for the DtModelInstance.
Definition: DtModelInstance.h:148
std::map< std::string, DtModelInstanceCreator * > CreatorMap
Definition: DtModelInstanceFactory.h:122
CreatorMap myCreators
Definition: DtModelInstanceFactory.h:130
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
bool myEnableDebugModelInstanceFallback
Definition: DtModelInstanceFactory.h:127
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)