![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: terrainWriterFactory.h,v $ $Revision: 1.9 $ $State: Exp $ 00007 *******************************************************************************/ 00008 #ifndef terrainWriterFactory_H_ 00009 #define terrainWriterFactory_H_ 00010 00011 // 00012 // \file terrainWriterFactory.h 00013 // \brief Contains the DtTerrainReaderFactory class declaration and related typedefs. 00014 00015 #include "terrainDbFactory/terrainDbFactoryDefines.h" 00016 #include <vlutil/vlConfig.h> 00017 #include <map> 00018 #include <vlutil/vlString.h> 00019 00020 class DtTerrainWriter; 00021 00022 // 00023 // DtTerrainWriterFactory has a container of DtTerrainWriterCreatorFcns, 00024 // associated with the type (DtString) of file able to write. 00025 class DT_DLL_terrainDbFactory DtTerrainWriterFactory 00026 { 00027 public: 00028 00029 typedef DtTerrainWriter* (*DtTerrainWriterCreatorFcn)(); 00030 typedef std::map<DtString, DtTerrainWriterCreatorFcn> DtTerrainWriterCreatorContainer; 00031 00032 // constructor 00033 DtTerrainWriterFactory(); 00034 00035 // copy constructor 00036 DtTerrainWriterFactory(const DtTerrainWriterFactory& orig); 00037 00038 // assignment operator 00039 const DtTerrainWriterFactory& operator=(const DtTerrainWriterFactory& orig); 00040 00041 // Destructor: deletes factory and any entries on the factory. 00042 virtual ~DtTerrainWriterFactory(); 00043 00044 // Registers default creators 00045 // @note Currently only the latest gdb writer. 00046 virtual void init(); 00047 00048 // Register a creator function with the factory. 00049 virtual void registerTerrainWriterCreator(const DtString& type, DtTerrainWriterCreatorFcn fcn); 00050 00051 // @return A DtTerrainWriter of the specified type, OR 0 if the type is unknown. 00052 virtual DtTerrainWriter* createTerrainWriter(const DtString& type); 00053 00054 static DtTerrainWriterFactory* create(); 00055 00056 protected: 00057 00058 DtTerrainWriterCreatorContainer myTerrainWriterCreators; 00059 }; 00060 00061 #endif