VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVisualizerAttributeFactory.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2011 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
13 #include <vrvUtil/DtUnicode.h>
14 #include <boost/unordered_map.hpp>
15 
16 namespace makVrv
17 {
18  class DtVisualizerAttribute;
19  class DtDe;
20 
25  {
26  public:
27 
31  {
32  public:
34  virtual ~CreatorInterface();
35 
37  virtual DtVisualizerAttribute* create() = 0;
38 
39  virtual const DtVisualizerAttribute::TypeInfo& attributeTypeInfo() const
40  = 0;
41  };
42 
44  template <typename Attribute>
45  class Creator : public CreatorInterface
46  {
47  public:
49  {
50  return new Attribute();
51  }
52 
54  {
55  return Attribute::theTypeInfo();
56  }
57  };
58 
60  static DtVisualizerAttributeFactory& instance(DtDe&);
61 
64  static void registerInstance(DtDe&, DtVisualizerAttributeFactory*);
65 
68 
70  virtual DtVisualizerAttribute* create(const std::string& className);
71 
72 
75  virtual DtVisualizerAttribute* create(const std::string& className,
76  const DtUnicode& value);
77 
80  virtual void registerClass(CreatorInterface* creator);
81 
82  protected:
84 
85  protected:
86  typedef boost::unordered_map<std::string, CreatorInterface*> CreatorMap;
90  };
91 }
92 
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
CreatorMap myCreators
Definition: DtVisualizerAttributeFactory.h:87
DtDe & myDe
Definition: DtVisualizerAttributeFactory.h:89
Definition: DtVisualizerAttribute.h:43
Creator interface for visualizer attributes to register with this factory.
Definition: DtVisualizerAttributeFactory.h:30
virtual DtVisualizerAttribute * create()
create a visualizer attribute
Definition: DtVisualizerAttributeFactory.h:48
boost::unordered_map< std::string, CreatorInterface * > CreatorMap
Definition: DtVisualizerAttributeFactory.h:86
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
The visualizer attribute factory takes class name + string value pairs and creates a visualizer attri...
Definition: DtVisualizerAttributeFactory.h:24
Creator< DtVisualizerAttributeString > myDefaultCreator
Definition: DtVisualizerAttributeFactory.h:88
virtual const DtVisualizerAttribute::TypeInfo & attributeTypeInfo() const
Definition: DtVisualizerAttributeFactory.h:53
The abstract base visualizer attribute class.
Definition: DtVisualizerAttribute.h:27
Template attribute creator, provided for convenience.
Definition: DtVisualizerAttributeFactory.h:45
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:76

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)