VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTemplatedModelInstanceCreator.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 <vrvCore/vrvCore.h>
13 #include <vrvCore/DtDe.h>
14 
17 
18 namespace makVrv
19 {
20  template <typename ModelInstanceClass>
21  inline const char* modelInstanceClassName(void) = delete;
22 
23  template <typename ModelInstanceClass>
24  inline const char* modelInstanceObjectClass(void) = delete;
25 
27  {
28  FRONT = 0, BACK = 1, NONE = 2
29  };
30 
31  template<class ModelInstanceClass>
33  {
34  public:
36  static void registerCreator(DtDe& de, DtObjectClassCreatorLocation location);
37 
40 
42  virtual DtModelInstance* create(DtDe& de);
43  protected:
45  };
46 
47  template<class ModelInstanceClass>
49  {
50  // no op
51  }
52 
53  template<class ModelInstanceClass>
55  {
56  // no op
57  }
58 
59  template<class ModelInstanceClass>
61  {
62  return new ModelInstanceClass(de);
63  }
64 
65  template<class ModelInstanceClass>
67  {
69  modelInstanceClassName<ModelInstanceClass>(),
71  if (location == FRONT)
72  {
74  modelInstanceObjectClass<ModelInstanceClass>(), modelInstanceClassName<ModelInstanceClass>());
75  }
76  else if (location == BACK)
77  {
79  modelInstanceObjectClass<ModelInstanceClass>(), modelInstanceClassName<ModelInstanceClass>());
80  }
81  else if (location == NONE)
82  {
83  // ignore
84  }
85  }
86 }
87 
The base class for all model instances.
Definition: DtModelInstance.h:41
const char * modelInstanceClassName(void)=delete
Contains makVrv::DtModelInstanceFactory class.
Definition: DtTemplatedModelInstanceCreator.h:32
virtual ~DtTemplatedModelInstanceCreator()
DTOR.
Definition: DtTemplatedModelInstanceCreator.h:54
Contains makVrv::DtDe class.
const char * modelInstanceObjectClass(void)=delete
virtual void addObjectClassCreatorToBack(const std::string &objectClass, const std::string &newCreatorClass)
Register a new creator class with the object Class to the back of the list. This means that the creat...
Definition: DtTemplatedModelInstanceCreator.h:28
The polymorphic creator for the DtModelInstance.
Definition: DtModelInstance.h:153
virtual DtModelInstance * create(DtDe &de)
Create a new model instance.
Definition: DtTemplatedModelInstanceCreator.h:60
static void registerCreator(DtDe &de, DtObjectClassCreatorLocation location)
Register the creator with the factory.
Definition: DtTemplatedModelInstanceCreator.h:66
virtual void addObjectClassCreatorToFront(const std::string &objectClass, const std::string &newCreatorClass)
Register a new creator class with the object Class to the front of the list. This means that the crea...
Contains makVrv::DtModelInstance class.
DtObjectClassCreatorLocation
Definition: DtTemplatedModelInstanceCreator.h:26
Definition: DtTemplatedModelInstanceCreator.h:28
static DtModelInstanceFactory & instance(DtDe &de)
Get the instance for this factory. Creates this factory if one doesn&#39;t exist (lazy creation)...
DtTemplatedModelInstanceCreator()
Definition: DtTemplatedModelInstanceCreator.h:48
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
virtual void registerModelInstanceCreator(const std::string &modelInstanceClassName, DtModelInstanceCreator *)
Register a model instance creator.
Definition: DtTemplatedModelInstanceCreator.h:28
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)