![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00009 00010 #pragma once 00011 00012 #include <vrvCore/vrvCore.h> 00013 #include <vrvUtil/DtVirtualBaseClass.h> 00014 00015 #include <map> 00016 #include <vector> 00017 #include <string> 00018 00019 namespace makVrv 00020 { 00021 00022 class DtSceneObject; 00023 class DtDe; 00024 class DtMotionModel; 00025 class DtMotionModelCreator; 00026 00030 class DT_DLL_VRVCORE DtMotionModelFactory : public DtVirtualBaseClass 00031 { 00032 public: 00033 00035 static DtMotionModelFactory& instance(DtDe&); 00036 00038 virtual ~DtMotionModelFactory(); 00039 00042 virtual void addMotionModelCreator(const std::string& creatorName, 00043 DtMotionModelCreator* creator); 00044 00046 virtual void setDefaultMotionModel(const std::string& creatorName); 00047 00049 virtual void removeModelModelCreator(const std::string& creatorName); 00050 00052 DtMotionModel* createMotionModel(DtSceneObject* owner, const std::string& creatorName); 00053 00055 void getMotionModelClasses(std::vector<std::string>& classes) const; 00056 00057 protected: 00058 00060 DtMotionModelFactory(DtDe& de); 00061 00062 typedef std::map<std::string,DtMotionModelCreator*> CreatorMap; 00063 00064 DtDe& myDe; 00065 CreatorMap myCreators; 00066 }; 00067 } 00068 00069