OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Attributes | List of all members
ossimMapProjectionFactory Class Reference

#include <ossimMapProjectionFactory.h>

Inheritance diagram for ossimMapProjectionFactory:
ossimProjectionFactoryBase ossimObjectFactory ossimObject ossimReferenced

Public Member Functions

virtual ossimProjectioncreateProjection (const ossimFilename &filename, ossim_uint32 entryIdx) const
 takes a filename. More...
 
virtual ossimProjectioncreateProjection (const ossimString &name) const
 
virtual ossimProjectioncreateProjection (const ossimKeywordlist &kwl, const char *prefix=0) const
 Take a keywordlist. More...
 
virtual ossimObjectcreateObject (const ossimString &typeName) const
 
virtual ossimObjectcreateObject (const ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual void getTypeNameList (std::vector< ossimString > &typeList) const
 
- Public Member Functions inherited from ossimProjectionFactoryBase
virtual ossimProjectioncreateProjection (ossimImageHandler *handler) const
 
- Public Member Functions inherited from ossimObjectFactory
virtual ~ossimObjectFactory ()
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimObjectdup () const
 
virtual ossimString getShortName () const
 
virtual ossimString getLongName () const
 
virtual ossimString getDescription () const
 
virtual ossimString getClassName () const
 
virtual RTTItypeid getType () const
 
virtual bool canCastTo (ossimObject *obj) const
 
virtual bool canCastTo (const RTTItypeid &id) const
 
virtual bool canCastTo (const ossimString &parentClassName) const
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 
virtual std::ostream & print (std::ostream &out) const
 Generic print method. More...
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
virtual void accept (ossimVisitor &visitor)
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 

Static Public Member Functions

static ossimMapProjectionFactoryinstance ()
 

Protected Member Functions

 ossimMapProjectionFactory ()
 
- Protected Member Functions inherited from ossimProjectionFactoryBase
ossimProjectioncreateProjectionFromGeometryFile (const ossimFilename &imageFile, ossim_uint32 entryIdx) const
 This method takes the filename and tries to find an external ".geom" file. More...
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Static Protected Attributes

static ossimMapProjectionFactorytheInstance = 0
 

Detailed Description

Definition at line 26 of file ossimMapProjectionFactory.h.

Constructor & Destructor Documentation

◆ ossimMapProjectionFactory()

ossimMapProjectionFactory::ossimMapProjectionFactory ( )
inlineprotected

Definition at line 61 of file ossimMapProjectionFactory.h.

Referenced by instance().

61 {}

Member Function Documentation

◆ createObject() [1/2]

ossimObject * ossimMapProjectionFactory::createObject ( const ossimString typeName) const
virtual

Creates an object given a type name.

Implements ossimObjectFactory.

Definition at line 249 of file ossimMapProjectionFactory.cpp.

References createProjection().

250 {
251  return createProjection(typeName);
252 }
virtual ossimProjection * createProjection(const ossimFilename &filename, ossim_uint32 entryIdx) const
takes a filename.

◆ createObject() [2/2]

ossimObject * ossimMapProjectionFactory::createObject ( const ossimKeywordlist kwl,
const char *  prefix = 0 
) const
virtual

Creates and object given a keyword list.

Implements ossimObjectFactory.

Definition at line 254 of file ossimMapProjectionFactory.cpp.

References createProjection().

256 {
257  return createProjection(kwl, prefix);
258 }
virtual ossimProjection * createProjection(const ossimFilename &filename, ossim_uint32 entryIdx) const
takes a filename.

◆ createProjection() [1/3]

ossimProjection * ossimMapProjectionFactory::createProjection ( const ossimFilename filename,
ossim_uint32  entryIdx 
) const
virtual

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.

Implements ossimProjectionFactoryBase.

Definition at line 83 of file ossimMapProjectionFactory.cpp.

References ossimKeywordlist::addFile(), ossimProjectionFactoryBase::createProjectionFromGeometryFile(), ossimFilename::exists(), and ossimFilename::setExtension().

Referenced by createObject(), createProjection(), ossimFgdcTxtDoc::getProjectionV1(), and ossimAdjMapModel::loadState().

85 {
86  if(!filename.exists())
87  {
88  return NULL;
89  }
90 
91  // Check for external geometry file.
93  entryIdx);
94  if (proj)
95  {
96  return proj;
97  }
98 
99  ossimFilename geomFile = filename;
100  geomFile = geomFile.setExtension("geom");
101  if(!geomFile.exists())
102  {
103  return NULL;
104  }
105  ossimKeywordlist kwl;
106  if(kwl.addFile(geomFile))
107  {
108  return createProjection(kwl);
109  }
110 
111  return NULL;
112 }
virtual ossimProjection * createProjection(const ossimFilename &filename, ossim_uint32 entryIdx) const
takes a filename.
ossimProjection * createProjectionFromGeometryFile(const ossimFilename &imageFile, ossim_uint32 entryIdx) const
This method takes the filename and tries to find an external ".geom" file.
Represents serializable keyword/value map.
bool addFile(const char *file)
bool exists() const
ossimFilename & setExtension(const ossimString &e)
Sets the extension of a file name.

◆ createProjection() [2/3]

ossimProjection * ossimMapProjectionFactory::createProjection ( const ossimString name) const
virtual

METHOD: create() Attempts to create an instance of the projection specified by name. Returns successfully constructed projection or NULL.

Implements ossimProjectionFactoryBase.

Definition at line 181 of file ossimMapProjectionFactory.cpp.

References STATIC_TYPE_NAME.

182 {
183  //***
184  // ADD_PROJECTION: Test for each map projection here:
185  //***
187  return new ossimAlbersProjection;
189  return new ossimAzimEquDistProjection;
191  return new ossimBonneProjection;
193  return new ossimBngProjection;
195  return new ossimCassiniProjection;
197  return new ossimCylEquAreaProjection;
199  return new ossimEquDistCylProjection;
201  return new ossimEckert4Projection;
203  return new ossimEckert6Projection;
205  return new ossimGnomonicProjection;
209  return new ossimLlxyProjection;
211  return new ossimMercatorProjection;
213  return new ossimMillerProjection;
215  return new ossimMollweidProjection;
221  return new ossimOrthoGraphicProjection;
223  return new ossimPolarStereoProjection;
225  return new ossimPolyconicProjection;
227  return new ossimSinusoidalProjection;
229  return new ossimStereographicProjection;
233  return new ossimTransMercatorProjection;
235  return new ossimUpsProjection;
237  return new ossimUtmProjection;
239  return new ossimVanDerGrintenProjection;
243  return new ossimGoogleProjection;
245  return new ossimAdjMapModel;
246  return NULL;
247 }
#define STATIC_TYPE_NAME(T)
Definition: ossimRtti.h:325
Albers Equal Area Conic Projection.
Special "sensor model" that provides a conventional map projection but with.

◆ createProjection() [3/3]

ossimProjection * ossimMapProjectionFactory::createProjection ( const ossimKeywordlist kwl,
const char *  prefix = 0 
) const
virtual

Take a keywordlist.

Implements ossimProjectionFactoryBase.

Definition at line 118 of file ossimMapProjectionFactory.cpp.

References ossimKeywordlist::add(), ossimKeywordlist::addFile(), ossimProjectionFactoryRegistry::createProjection(), createProjection(), ossimSpaceImagingGeom::exportToOssim(), ossimKeywordlist::find(), ossimKeywordNames::GEOM_FILE_KW, ossimProjectionFactoryRegistry::instance(), ossimProjection::loadState(), ossimSpaceImagingGeom::setGeometry(), ossimSpaceImagingGeom::SIG_PRODUCER_KW, and ossimKeywordNames::TYPE_KW.

120 {
121  ossimProjection *result=NULL;
122 
123  const char *lookup = keywordList.find(prefix, ossimKeywordNames::TYPE_KW);
124  const char *lookupSpaceImaging = keywordList.find(prefix, ossimSpaceImagingGeom::SIG_PRODUCER_KW);
125  if(lookup)
126  {
127  result = createProjection(ossimString(lookup).trim());
128  if(result)
129  {
130  result->loadState(keywordList, prefix);
131  }
132  }
133  else
134  {
135  if(lookupSpaceImaging)
136  {
137  ossimKeywordlist kwl;
138  ossimKeywordlist kwl2;
139  kwl.add(keywordList,
140  prefix,
141  true);
142 
143  ossimSpaceImagingGeom spaceImaging;
144 
145  spaceImaging.setGeometry(kwl);
146 
147  spaceImaging.exportToOssim(kwl2);
148 
150  if(result)
151  {
152  return result;
153  }
154  }
155  // look for the geom_file keyword.
156  //
157  lookup = keywordList.find(prefix, ossimKeywordNames::GEOM_FILE_KW);
158  if(lookup)
159  {
160  ossimKeywordlist kwl;
161 
162  kwl.addFile(lookup);
163 
164  result = createProjection(kwl);
165 
166  if(!result)
167  {
168  // maybe they prepend projection. in the geom
169  // file.
170  result = createProjection(kwl, "projection.");
171  }
172 
173  }
174  }
175  return result;
176 }
virtual ossimProjection * createProjection(const ossimFilename &filename, ossim_uint32 entryIdx) const
takes a filename.
Represents serializable keyword/value map.
bool addFile(const char *file)
void setGeometry(const ossimFilename &file)
static const char * SIG_PRODUCER_KW
static const char * TYPE_KW
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
ossimProjection * createProjection(const ossimFilename &filename, ossim_uint32 entryIdx) const
static const char * GEOM_FILE_KW
static ossimProjectionFactoryRegistry * instance()
void exportToOssim(ossimKeywordlist &kwl, const char *prefix=0) const

◆ getTypeNameList()

void ossimMapProjectionFactory::getTypeNameList ( std::vector< ossimString > &  typeList) const
virtual

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.

Implements ossimObjectFactory.

Definition at line 260 of file ossimMapProjectionFactory.cpp.

References STATIC_TYPE_NAME.

261 {
262 
263  typeList.push_back(ossimString(STATIC_TYPE_NAME(ossimAlbersProjection)));
265  typeList.push_back(ossimString(STATIC_TYPE_NAME(ossimBonneProjection)));
266  typeList.push_back(ossimString(STATIC_TYPE_NAME(ossimBngProjection)));
274  typeList.push_back(ossimString(STATIC_TYPE_NAME(ossimLlxyProjection)));
276  typeList.push_back(ossimString(STATIC_TYPE_NAME(ossimMillerProjection)));
287  typeList.push_back(ossimString(STATIC_TYPE_NAME(ossimUpsProjection)));
288  typeList.push_back(ossimString(STATIC_TYPE_NAME(ossimUtmProjection)));
291  typeList.push_back(ossimString(STATIC_TYPE_NAME(ossimGoogleProjection)));
292  typeList.push_back(ossimString(STATIC_TYPE_NAME(ossimAdjMapModel)));
293 
294 }
#define STATIC_TYPE_NAME(T)
Definition: ossimRtti.h:325
Albers Equal Area Conic Projection.
Special "sensor model" that provides a conventional map projection but with.

◆ instance()

ossimMapProjectionFactory * ossimMapProjectionFactory::instance ( )
static

Member Data Documentation

◆ theInstance

ossimMapProjectionFactory * ossimMapProjectionFactory::theInstance = 0
staticprotected

Definition at line 62 of file ossimMapProjectionFactory.h.

Referenced by instance().


The documentation for this class was generated from the following files: