1 //******************************************************************* 2 // 3 // License: See top level LICENSE.txt file. 4 // 5 // Author: Garrett Potts 6 // 7 // Description: 8 // 9 // This is the DatumFactory class. You give it a code and it will 10 // construct a Datum class. It returns NULL if no code was found. 11 //******************************************************************* 12 // $Id: ossimDatumFactory.h 22851 2014-08-05 12:02:55Z gpotts $ 13 14 #ifndef ossimDatumFactory_HEADER 15 #define ossimDatumFactory_HEADER 1 16 17 #include <ossim/base/ossimDatumFactoryInterface.h> 18 #include <ossim/base/ossimEllipsoidFactory.h> 19 #include <map> 20 #include <string> 21 #include <vector> 22 23 class ossimFilename; 24 class ossimDatum; 25 class ossimWgs84Datum; 26 class ossimWgs72Datum; 27 class ossimString; 28 29 class OSSIM_DLL ossimDatumFactory : public ossimDatumFactoryInterface 30 { 31 public: 32 33 /** virtual destructor */ 34 virtual ~ossimDatumFactory(); 35 36 /** 37 * create method 38 * 39 * Implements pure virtual ossimDatumFactoryInterface::create. 40 * 41 * @return const pointer to a datum. 42 */ 43 virtual const ossimDatum* create(const ossimString &code)const; 44 virtual const ossimDatum* create(const ossimKeywordlist& kwl, const char *prefix=0)const; 45 46 const ossimDatum* create(const ossimDatum* copy) const; 47 48 static ossimDatumFactory* instance(); wgs84()49 const ossimDatum* wgs84()const{return theWgs84Datum;} wgs72()50 const ossimDatum* wgs72()const{return theWgs72Datum;} 51 std::vector<ossimString> getList()const; 52 virtual void getList(std::vector<ossimString>& list)const; 53 void writeCStructure(const ossimFilename& file); 54 protected: 55 // static ossimDatumFactory* theInstance; 56 const ossimDatum* theWgs84Datum; 57 const ossimDatum* theWgs72Datum; 58 std::map<std::string, const ossimDatum*> theDatumTable; 59 60 61 ossimDatumFactory(); 62 63 void deleteAll(); 64 void initializeDefaults(); 65 }; 66 #endif 67