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
ossimTiffProjectionFactory Class Reference

#include <ossimTiffProjectionFactory.h>

Inheritance diagram for ossimTiffProjectionFactory:
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...
 
ossimProjectioncreateProjection (ossimImageHandler *handler) const
 
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 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 ossimTiffProjectionFactoryinstance ()
 

Protected Member Functions

 ossimTiffProjectionFactory ()
 
bool isTiff (const ossimFilename &filename) const
 
- 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 ossimTiffProjectionFactorytheInstance = 0
 

Detailed Description

Definition at line 25 of file ossimTiffProjectionFactory.h.

Constructor & Destructor Documentation

◆ ossimTiffProjectionFactory()

ossimTiffProjectionFactory::ossimTiffProjectionFactory ( )
inlineprotected

Definition at line 62 of file ossimTiffProjectionFactory.h.

Referenced by instance().

62 {}

Member Function Documentation

◆ createObject() [1/2]

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

Creates an object given a type name.

Implements ossimObjectFactory.

Definition at line 108 of file ossimTiffProjectionFactory.cpp.

References createProjection().

109 {
110  return (ossimObject*)createProjection(typeName);
111 }
virtual ossimProjection * createProjection(const ossimFilename &filename, ossim_uint32 entryIdx) const
takes a filename.

◆ createObject() [2/2]

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

Creates and object given a keyword list.

Implements ossimObjectFactory.

Definition at line 113 of file ossimTiffProjectionFactory.cpp.

References createProjection().

115 {
116  return createProjection(kwl, prefix);
117 }
virtual ossimProjection * createProjection(const ossimFilename &filename, ossim_uint32 entryIdx) const
takes a filename.

◆ createProjection() [1/4]

ossimProjection * ossimTiffProjectionFactory::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 40 of file ossimTiffProjectionFactory.cpp.

References ossimGeoTiff::addImageGeometry(), ossimProjectionFactoryRegistry::createProjection(), ossimProjectionFactoryRegistry::instance(), and ossimGeoTiff::readTags().

Referenced by createObject().

42 {
43  std::shared_ptr<ossim::TiffHandlerState> state = std::make_shared<ossim::TiffHandlerState>();
44  if(state->loadDefaults(filename))
45  {
46  ossimGeoTiff geotiff;
47  ossimKeywordlist kwl;
48  if(geotiff.readTags(state, entryIdx))
49  {
50  if(geotiff.addImageGeometry(kwl))
51  {
53  }
54  }
55  }
56  return 0;
57 }
bool addImageGeometry(ossimKeywordlist &kwl, const char *prefix=0) const
Add geometry info from tags to keword list.
Represents serializable keyword/value map.
ossimProjection * createProjection(const ossimFilename &filename, ossim_uint32 entryIdx) const
static ossimProjectionFactoryRegistry * instance()
bool readTags(const ossimFilename &file, ossim_uint32 entryIdx=0)
Reads tags.

◆ createProjection() [2/4]

ossimProjection * ossimTiffProjectionFactory::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 74 of file ossimTiffProjectionFactory.cpp.

75 {
76  return 0;
77 }

◆ createProjection() [3/4]

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

Take a keywordlist.

Implements ossimProjectionFactoryBase.

Definition at line 64 of file ossimTiffProjectionFactory.cpp.

66 {
67  return 0;
68 }

◆ createProjection() [4/4]

ossimProjection * ossimTiffProjectionFactory::createProjection ( ossimImageHandler handler) const
virtual

Reimplemented from ossimProjectionFactoryBase.

Definition at line 79 of file ossimTiffProjectionFactory.cpp.

References ossimGeoTiff::addImageGeometry(), ossimProjectionFactoryRegistry::createProjection(), ossimImageHandler::getCurrentEntry(), ossimImageHandler::getState(), ossimProjectionFactoryRegistry::instance(), ossimGeoTiff::readTags(), and ossimTiffTileSource::tiffPtr().

80 {
81  ossimTiffTileSource* tiff = dynamic_cast<ossimTiffTileSource*> (handler);
82 
83  if(tiff)
84  {
85  ossimGeoTiff geotiff;
86  ossimKeywordlist kwl;
87  std::shared_ptr<ossim::TiffHandlerState> state = std::dynamic_pointer_cast<ossim::TiffHandlerState>(tiff->getState());
88  bool addGeometry = false;
89  if(state)
90  {
91  addGeometry = geotiff.readTags(state,
92  tiff->getCurrentEntry());
93  }
94  else
95  {
96  addGeometry = geotiff.readTags(tiff->tiffPtr(),
97  tiff->getCurrentEntry(), false);
98  }
99  if(addGeometry&&geotiff.addImageGeometry(kwl))
100  {
102  }
103  }
104 
105  return 0;
106 }
bool addImageGeometry(ossimKeywordlist &kwl, const char *prefix=0) const
Add geometry info from tags to keword list.
Represents serializable keyword/value map.
std::shared_ptr< ossim::ImageHandlerState > getState()
ossimProjection * createProjection(const ossimFilename &filename, ossim_uint32 entryIdx) const
virtual ossim_uint32 getCurrentEntry() const
static ossimProjectionFactoryRegistry * instance()
bool readTags(const ossimFilename &file, ossim_uint32 entryIdx=0)
Reads tags.

◆ getTypeNameList()

void ossimTiffProjectionFactory::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 119 of file ossimTiffProjectionFactory.cpp.

120 {
121 }

◆ instance()

ossimTiffProjectionFactory * ossimTiffProjectionFactory::instance ( )
static

METHOD: instance() Instantiates singleton instance of this class:

Definition at line 29 of file ossimTiffProjectionFactory.cpp.

References ossimTiffProjectionFactory(), and theInstance.

Referenced by ossimProjectionFactoryRegistry::initializeDefaults().

◆ isTiff()

bool ossimTiffProjectionFactory::isTiff ( const ossimFilename filename) const
protected

Definition at line 123 of file ossimTiffProjectionFactory.cpp.

References ossimString::c_str().

124 {
125  std::ifstream in;
126  unsigned char header[2];
127 
128  in.open( filename.c_str(), ios::in|ios::binary);
129  if( !in)
130  return false;
131 
132  in.read( (char*)header, 2);
133 
134  if( (header[0] != 'M' || header[1] != 'M')
135  && (header[0] != 'I' || header[1] != 'I') )
136  {
137  return false;
138  }
139 
140  return true;
141 }
std::basic_ifstream< char > ifstream
Class for char input file streams.
Definition: ossimIosFwd.h:44
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396

Member Data Documentation

◆ theInstance

ossimTiffProjectionFactory * ossimTiffProjectionFactory::theInstance = 0
staticprotected

Definition at line 63 of file ossimTiffProjectionFactory.h.

Referenced by instance().


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