//******************************************************************* // // License: See top level LICENSE.txt file. // // Author: Garrett Potts // // Description: // // class ossimProjectionFactory maintains a static list of projection // makers. If a user wants to create a projection they can pass in // a projection name and a datum if desired. Currently the default // datum will be WGS84. //******************************************************************* // $Id: ossimMiscProjectionFactory.h 12081 2007-11-26 21:44:18Z dburken $ #ifndef ossimMiscProjectionFactory_HEADER #define ossimMiscProjectionFactory_HEADER #include class ossimProjection; class ossimString; class ossimMiscProjectionFactory : public ossimProjectionFactoryBase { public: /*! * METHOD: instance() * Instantiates singleton instance of this class: */ static ossimMiscProjectionFactory* instance(); /*! * METHOD: create() * Attempts to create an instance of the projection specified by name. * Returns successfully constructed projection or NULL. */ virtual ossimProjection* createProjection(const ossimFilename& filename, ossim_uint32 entryIdx)const; virtual ossimProjection* createProjection(const ossimString& name)const; virtual ossimProjection* createProjection(const ossimKeywordlist& kwl, const char* prefix = 0)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: ossimMiscProjectionFactory() {} static ossimMiscProjectionFactory* theInstance; }; #endif