//******************************************************************* // Copyright (C) 2014 RadiantBlue, Inc. // // License: MIT // // See LICENSE.txt file in the top level directory for more details. // //******************************************************************* // $Id$ #ifndef ossimNgaProjectionFactory_HEADER #define ossimNgaProjectionFactory_HEADER #include class OSSIM_DLL ossimNgaProjectionFactory : public ossimProjectionFactoryBase { public: static ossimNgaProjectionFactory* instance(); /** * takes a filename. This filename can be an image file or * it can also be a ossim .geom file. It could be other * forms of geom files as well. The factories job will be to * determine what parser to use and return a projection if * successful. */ virtual ossimProjection* createProjection(const ossimFilename& filename, ossim_uint32 entryIdx)const; /** * Take a projection type name. */ virtual ossimProjection* createProjection(const ossimString& name)const; /** * Take a keywordlist. */ virtual ossimProjection* createProjection(const ossimKeywordlist& kwl, const char* prefix)const; virtual ossimObject* createObject(const ossimString& typeName)const; /*! * Creates and object given a keyword list. */ virtual ossimObject* createObject(const ossimKeywordlist& kwl, const char* prefix=0) const; /*! * This should return the type name of all objects in all factories. * This is the name used to construct the objects dynamially and this * name must be unique. */ virtual void getTypeNameList(std::vector& typeList)const; protected: //! Constructor loads all SRS CSV files specified in the ossim prefs. Protected as part of //! singleton implementation. ossimNgaProjectionFactory() {} TYPE_DATA }; #endif