OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimTiledElevationDatabase.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // File: ossimTiledElevationDatabase.h
4 //
5 // License: MIT
6 //
7 // See LICENSE.txt file in the top level directory for more details.
8 //
9 // Author: David Burken
10 //
11 // Description: See description for class below.
12 //
13 //----------------------------------------------------------------------------
14 // $Id$
15 
16 #ifndef ossimTiledElevationDatabase_HEADER
17 #define ossimTiledElevationDatabase_HEADER 1
18 
21 #include <ossim/base/ossimGrect.h>
22 #include <ossim/base/ossimRefPtr.h>
23 #include <ossim/base/ossimRtti.h>
24 #include <vector>
25 
26 class ossimDblGrid;
27 class ossimFilename;
28 class ossimFileWalker;
29 class ossimImageData;
30 class ossimImageGeometry;
31 class ossimImageHandler;
32 class ossimProjection;
34 class ossimString;
35 
49 {
50 public:
51 
54 
64  virtual bool open(const ossimString& connectionString);
65 
67  virtual void close();
68 
74  void mapRegion(const ossimGrect& region);
75 
83  virtual double getHeightAboveMSL(const ossimGpt& gpt);
84 
92  virtual double getHeightAboveEllipsoid(const ossimGpt&);
93 
99  virtual bool pointHasCoverage(const ossimGpt& gpt) const;
100 
101 
103  virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0);
104 
106  virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0)const;
107 
108  bool getAccuracyInfo(ossimElevationAccuracyInfo& info, const ossimGpt& /*gpt*/) const
109  {
110  info.makeNan();
111 
112  return false;
113  }
114 
127  virtual void processFile(const ossimFilename& file);
128 
129  virtual std::ostream& print(std::ostream& out) const;
130 
131  virtual ossimObject* dup() const
132  {
134  duped->open(m_connectionString);
135  return duped;
136  }
137 
138 protected:
140  virtual ~ossimTiledElevationDatabase();
141 
142 private:
143 
144  // Private container to hold bounding rect and image handler.
146  {
149 
153 
156 
159  };
160 
164  void addEntry(const ossimTiledElevationEntry& entry);
165 
169  void initializeReferenceProjection();
170 
175  bool isDirectoryBasedImage(ossimRefPtr<ossimImageHandler> ih);
176 
182  bool isCompatible(ossimImageHandler* ih,
183  ossimImageGeometry* geom,
184  ossimProjection* proj) const;
185 
194  void getBoundingRect(ossimRefPtr<ossimImageGeometry> geom, ossimGrect& boundingRect) const;
195 
197  void mapRegion();
198 
200  template <class T> void fillGrid(T dummyTemplate, ossimRefPtr<ossimImageData> data);
201 
204 
205  std::vector<ossimTiledElevationEntry> m_entries;
206 
209 
212 
215  ossimGrect m_mappedRect; // Requested expanded to even post boundary.
216 
218 
219  TYPE_DATA
220 };
221 
222 #endif /* ossimTiledElevationDatabase_HEADER */
virtual double getHeightAboveMSL(const ossimGpt &)=0
Height access methods:
Represents serializable keyword/value map.
ossimRefPtr< ossimProjection > m_referenceProj
Projection of the first entry.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual ossimObject * dup() const
Elevation source used for working with generic images opened by an ossimImageHandler.
Utility class to walk through directories and get a list of files to process.
Single image chain class.
bool getAccuracyInfo(ossimElevationAccuracyInfo &info, const ossimGpt &) const
ossimGrect m_rect
Bounding rectangle in decimal degrees.
ossimDblGrid * m_grid
Hold region of elevation.
#define TYPE_DATA
Definition: ossimRtti.h:339
virtual bool pointHasCoverage(const ossimGpt &) const =0
METHOD: pointHasCoverage(gpt) Returns TRUE if coverage exists over gpt:
Container class that holds both 2D transform and 3D projection information for an image Only one inst...
This class defines an abstract Handler which all image handlers(loaders) should derive from...
#define OSSIM_DLL
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual std::ostream & print(std::ostream &out) const
Outputs theErrorStatus as an ossimErrorCode and an ossimString.
virtual bool open(const ossimString &connectionString)
Open a connection to a database.
virtual double getHeightAboveEllipsoid(const ossimGpt &)
ossimRefPtr< ossimSingleImageChain > m_sic
Hold pointer to single image chain.
std::vector< ossimTiledElevationEntry > m_entries
virtual bool open(const ossimString &connectionString)=0
Open a connection to a database.
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
virtual void processFile(const ossimFilename &file)=0
Pure virtual processFile method.