VR-Forces 4.0.4 Class Documentation
include/terrainDbFactory/terrainReaderFactory.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2003 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: terrainReaderFactory.h,v $ $Revision: 1.11 $ $State: Exp $
00007 *******************************************************************************/
00008 #ifndef terrainReaderFactory_H_
00009 #define terrainReaderFactory_H_
00010 
00011 //
00012 // \file terrainReaderFactory.h
00013 // \brief Contains the DtTerrainReaderFactory class declaration and related typedefs.
00014 //
00015 
00016 #include "terrainDbFactory/terrainDbFactoryDefines.h"
00017 #include <vlutil/vlConfig.h>
00018 #include <map>
00019 #include <vlutil/vlString.h>
00020 #include <vlutil/vlFilename.h>
00021 #include <vlutil/vlList.h>
00022 
00023 class DtTerrainDatabase;
00024 class DtTerrainReader;
00025 class DtMetafileRecord;
00026 class DtTdbMetafileFactory;
00027 
00028 //
00029 // DtTerrainReaderFactory contains a container of DtTerrainFactoryEntry creators,
00030 // indexed by the DtString type that represents the type of file able to load.
00031 // It is used to dynamically create the type of terrain reader that is desired.
00032 class DT_DLL_terrainDbFactory DtTerrainReaderFactory
00033 {
00034 public:
00035    typedef DtTerrainReader* (*DtTerrainReaderCreatorFcn)();
00036    typedef std::map<DtString, DtTerrainReaderCreatorFcn> DtTerrainReaderCreatorContainer;
00037 
00038 
00039 private:
00040    // Default constructor not available
00041    DtTerrainReaderFactory();
00042 
00043 public:
00044    // constructor
00045    DtTerrainReaderFactory(DtTdbMetafileFactory *factory);
00046 
00047    // copy constructor
00048    DtTerrainReaderFactory(const DtTerrainReaderFactory& orig);
00049 
00050    // assignment operator
00051    const DtTerrainReaderFactory& operator=(const DtTerrainReaderFactory& orig);
00052 
00053    // Destructor: deletes factory and any entries on the factory.
00054    virtual ~DtTerrainReaderFactory();
00055 
00056    virtual void setMetafileFactory(DtTdbMetafileFactory* factory);
00057    virtual DtTdbMetafileFactory* metafileFactory();
00058    virtual const DtTdbMetafileFactory* metafileFactory() const;
00059 
00060    // Registers all the default terrain readers with the factory.
00061    virtual void init();
00062 
00063    // Registers a creator associated with the specified type with the factory.
00064    virtual void registerTerrainReaderCreator(const DtString &type, 
00065       DtTerrainReaderCreatorFcn fcn);
00066 
00067    // \return A DtTerrainReader of the specified type, OR 0 if the type is unknown.
00068    virtual DtTerrainReader* createTerrainReader(const DtString &type);
00069 
00070    static DtTerrainReaderFactory* create();
00071 
00072    virtual bool loadTerrain(const DtFilename& fileName, DtTerrainDatabase* terrain, 
00073       const DtList& searchPaths);
00074 
00075 protected:
00076 
00077    virtual bool loadTerrain(const DtFilename& fileName, DtTerrainDatabase* terrain);
00078 
00079    DtTerrainReaderCreatorContainer myTerrainReaders;
00080    DtTdbMetafileFactory* myTdbMetafileFactory;
00081 };
00082 
00083 #endif

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)