VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtMetaObjectFactory.h
Go to the documentation of this file.
1 /*****************************************************************************
2 * Copyright (c) 2023 MAK Technologies, Inc.
3 * All rights reserved.
4 *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
14 #include <vrvCore/DtUniqueID.h>
15 
17 
18 #include <rapidjson/document.h>
19 
20 #include <unordered_map>
21 #include <osg/Node>
22 
23 namespace makVrv
24 {
25  class DtMetaObjectCreator;
26  class DtOsgArticulatedModel;
27 
32  {
33  public:
35  DtMetaObjectFactory() = delete;
37  DtMetaObjectFactory(const DtMetaObjectFactory& rhs) = delete;
39  DtMetaObjectFactory& operator=(const DtMetaObjectFactory& rhs) = delete;
40 
41  typedef std::unordered_map<std::string, DtMetaObjectCreator*> DtMetaObjectCreators;
42 
44  static DtMetaObjectFactory& instance(DtDe& de);
45 
47  virtual ~DtMetaObjectFactory();
48 
50  virtual void addCreator(const std::string& creatorName, DtMetaObjectCreator* creator);
51 
53  virtual DtVirtualBaseClass* createMetaObject(
54  const std::string& metaFeatureName, osg::Node* node,
55  DtOsgArticulatedModel* osgArticulatedModel,
56  const rapidjson::Value& jsonObject, const std::string& modelDefName,
57  const DtElementID elementId, const DtUniqueID uniqueId
58  , const unsigned int nodeTypeIndex) const;
59 
61  const DtMetaObjectCreators& creators() const;
62 
63  protected:
67 
68  protected:
69 
71 
73  };
74 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::unordered_map< std::string, DtMetaObjectCreator * > DtMetaObjectCreators
Definition: DtMetaObjectFactory.h:41
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DtMetaObjectCreators myDtMetaObjectCreators
Definition: DtMetaObjectFactory.h:70
An articulated model manipulator for controlling an articulated model. Supports indirect rendering of...
Definition: DtOsgArticulatedModel.h:67
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
Contains makVrv::DtVirtualBaseClass class.
IMGUI_API void Value(const char *prefix, bool b)
Factory to create the specific DtMetaObjects registered when vrvOsg starts up.
Definition: DtMetaObjectFactory.h:31
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtDe & myDe
Definition: DtMetaObjectFactory.h:72
Contains makVrv::DtUniqueID type.
Contains DLL export macros.
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
Abstract dynamic feature creator class. A dynamic feature retrieves data from a .meta file and applie...
Definition: DtMetaObjectCreator.h:35

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)