![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2005 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: signaturePropagatorFactory.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *******************************************************************************/ 00008 #ifndef signaturePropagatorFactory_H_ 00009 #define signaturePropagatorFactory_H_ 00010 00014 00017 00018 #include "vrfobjcore/signaturePropagator.h" 00019 #include <vlutil/vlConfig.h> 00020 #include <map> 00021 00022 class DtSignaturePropagatorDescriptor; 00023 00024 typedef DtSignaturePropagator * (*DtSignaturePropagatorCreatorFcn)( 00025 const DtSignaturePropagatorDescriptor* desc, DtPhysicalWorld* physicalWorld); 00026 00028 #include "vrfobjcore/vrfobjcoreDefines.h" 00029 class DT_DLL_vrfobjcore DtSignaturePropagatorFactory 00030 { 00031 public: 00033 DtSignaturePropagatorFactory(); 00034 00036 virtual ~DtSignaturePropagatorFactory(); 00037 00039 virtual void addCreatorFcn(const DtString& type, 00040 DtSignaturePropagatorCreatorFcn fcn); 00041 00043 virtual DtSignaturePropagator* createSignaturePropagator(const DtString& type, 00044 const DtSignaturePropagatorDescriptor* desc, DtPhysicalWorld* physicalWorld); 00045 00046 static DtSignaturePropagatorFactory* create(); 00047 00048 private: 00050 DtSignaturePropagatorFactory(const DtSignaturePropagatorFactory& orig); 00052 DtSignaturePropagatorFactory& operator=(const DtSignaturePropagatorFactory& orig); 00053 00054 protected: 00055 typedef std::map<DtString, DtSignaturePropagatorCreatorFcn> DtSignaturePropagatorCreatorMap; 00056 DtSignaturePropagatorCreatorMap myCreatorMap; 00057 }; 00058 00059 #endif