VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtModelInstanceFactory.h
Go to the documentation of this file.
00001 /****************************************************************************** 
00002 ** Copyright (c) 2010 MAK Technologies, Inc. 
00003 ** All rights reserved. 
00004 ******************************************************************************/ 
00005 /****************************************************************************** 
00006 ** $RCSfile: DtModelInstanceFactory.h,v $ $Revision: 1.11 $ $State: Exp $ 
00007 ******************************************************************************/ 
00008  
00012  
00013 #ifndef DtModelInstanceFactory_H_ 
00014 #define DtModelInstanceFactory_H_ 
00015  
00016 #include <vrvCore/vrvCore.h> 
00017 #include <list>
00018 #include <string>
00019 #include <map>
00020 #include <vrvUtil/DtVirtualBaseClass.h>
00021  
00022 namespace makVrv 
00023 { 
00024    class DtDe;
00025    class DtModelDefinition;
00026    class DtModelInstance;
00027    class DtModelInstanceCreator;
00028 
00031    class DT_DLL_VRVCORE DtModelInstanceFactory : public DtVirtualBaseClass
00032    {
00033 
00034    public:
00035       typedef std::list<std::string> CreatorClassList;
00036 
00039       static DtModelInstanceFactory& instance(DtDe& de);
00040 
00042       virtual ~DtModelInstanceFactory();
00043 
00045       static std::string modelInstanceHintParameterName();
00046 
00076       DtModelInstance* createModelInstance(const std::string& objectClassName,
00077          DtModelDefinition& definition,
00078          bool ignoreDefinitionHint = false,
00079          const std::string& modelInstanceClassOverride = "");
00080 
00082       bool isClassRegistered(const std::string& objectClass) const;
00083 
00085       void registerSceneObjectClass(const std::string& objectClass,
00086          const CreatorClassList& classes);
00087 
00089       void registerModelInstanceCreator(const std::string& modelInstanceClassName,
00090          DtModelInstanceCreator*);
00091 
00093       const CreatorClassList& sceneObjectClassCreators(const std::string& objectClass);     
00094 
00098       void addObjectClassCreatorToFront(const std::string& objectClass,
00099          const std::string& newCreatorClass);
00100 
00104       void addObjectClassCreatorToBack(const std::string& objectClass,
00105          const std::string& newCreatorClass);
00106 
00107    protected:
00108 
00110       DtModelInstanceFactory(DtDe& de);
00111 
00113       virtual CreatorClassList modelDefinitionHints(const DtModelDefinition& modelInstance);
00114 
00120       virtual DtModelInstance* createAndRealize(const std::string& modelInstanceClassName, 
00121          DtModelDefinition& modelDefinition);
00122      
00123       typedef std::map<std::string,DtModelInstanceCreator*> CreatorMap;   
00124       typedef std::map<std::string,CreatorClassList> ObjectClassMap;
00125 
00126       DtDe& myDe;
00127 
00128       bool myEnableDebugModelInstanceFallback;
00129       std::string myDebugModelInstanceClass;
00130 
00131       CreatorMap myCreators;
00132       ObjectClassMap myObjectCreatorMap;
00133    };
00134 } 
00135  
00136 #endif 
00137  

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)