VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtStateVisualizerFactory.h
Go to the documentation of this file.
00001 /****************************************************************************** 
00002 ** Copyright (c) 2010 MAK Technologies, Inc. 
00003 ** All rights reserved. 
00004 ******************************************************************************/ 
00005 /****************************************************************************** 
00006 ** $RCSfile: DtStateVisualizerFactory.h,v $ $Revision: 1.15 $ $State: Exp $ 
00007 ******************************************************************************/ 
00008  
00012  
00013 #pragma once
00014 #include <vrvCore/vrvCore.h> 
00015 #include <vrvCore/DtSharedSettings.h>
00016 #include <vrvCore/DtStateVisualizer.h>
00017 #include <vrvCore/DtElementDefinitionManager.h>
00018 #include <boost/unordered_map.hpp>
00019 #include <string>
00020 #include <vector>
00021 #include <set>
00022  
00023 namespace makVrv 
00024 { 
00025    class DtBaseConnection;
00026    class DtSharedSettingsManager;
00027    class DtStateListener;
00028    class DtStateVisualizerCreator;
00029 
00032    class DT_DLL_VRVCORE DtStateVisualizerFactory : public DtVirtualBaseClass
00033    {
00034    public:
00035 
00037       typedef boost::unordered_map<std::string, const DtStateVisualizer::TypeInfo*> 
00038          TypeInfoMap;
00039 
00041       typedef boost::unordered_map<std::string, DtStateVisualizerCreator*>
00042          CreatorMap;
00043 
00044       typedef std::vector<std::pair<std::string, DtUnicode> > 
00045          FunctionalNameScreenNameList;
00046 
00048       typedef std::set<std::string> CreatorNameSet;
00049 
00051       DtStateVisualizerFactory();
00052 
00054       virtual ~DtStateVisualizerFactory();
00055 
00057       DtStateVisualizerFactory(const DtStateVisualizerFactory& rhs);
00058 
00060       DtStateVisualizerFactory& operator=(const DtStateVisualizerFactory& rhs);
00061 
00063       static DtStateVisualizerFactory& instance(DtDe& de);
00064 
00066       static DtStateVisualizerFactory& instance(DtBaseConnection& con);
00067 
00070       static void copyInstance(DtBaseConnection& con, DtDe& de);
00071 
00076       virtual void addStateVisualizerCreator(DtDe& de,
00077          DtStateVisualizerCreator* creator);
00078 
00082       DtStateVisualizer* createStateVisualizer( const std::string& creatorName, 
00083          std::string tag, DtBaseConnection& simulation,  
00084          DtStateListener& listener,  int modelSet, 
00085          DtStateVisualizer::Type = DtStateVisualizer::AllVisualizerTypes) const;
00086 
00088       const CreatorMap& creators() const;
00089 
00091       const DtStateVisualizerCreator* findCreator(
00092          const std::string& creatorName, const std::string& tag) const;
00093 
00098       virtual bool visualizerSupportsType(const std::string& visualizer,
00099          DtStateVisualizer::Type) const;
00100 
00103       virtual void getCreatorNames(std::set<std::string>& names ) const;
00104 
00108       virtual const DtStateVisualizer::TypeInfo* findTypeInfo(
00109          const std::string& functionalTypeName) const;
00110 
00112       virtual void findFunctionalNameWhichSupportSchema(const std::string& schema,
00113          DtStateVisualizer::Type type,
00114          FunctionalNameScreenNameList& functionalNames) const;
00115 
00116 
00119       static DtStateVisualizer::Type elementDefinitionTypeToVisualizerType(
00120          DtElementDefinitionTypeManager::ElementDefinitionType type);
00121 
00122    protected:
00123       TypeInfoMap myTypeInfoMap;
00124       CreatorMap myCreators;
00125    };
00126 } 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)