VR-Forces 4.8 Class Documentation
 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.
Definition: DtVirtualBaseClass.h:22
A unicode string.
Definition: DtUnicode.h:33
CreatorMap myCreators
Definition: DtVisualizerAttributeFactory.h:87
DtDe & myDe
Definition: DtVisualizerAttributeFactory.h:89
Definition: DtVisualizerAttribute.h:40
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:24
Template attribute creator, provided for convenience.
Definition: DtVisualizerAttributeFactory.h:45
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69

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)