OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimCoarseGridModel.h
Go to the documentation of this file.
1 //*****************************************************************************
2 // FILE: ossimCoarseGridModel.h
3 //
4 // Copyright (C) 2001 ImageLinks, Inc.
5 //
6 // License: MIT
7 //
8 // See LICENSE.txt file in the top level directory for more details.
9 //
10 // AUTHOR: Oscar Kramer
11 //
12 // DESCRIPTION:
13 // Contains declaration of class ossimCoarseGridModel. This is an
14 // implementation of an interpolation sensor model.
15 //
16 //*****************************************************************************
17 // $Id: ossimCoarseGridModel.h 22825 2014-07-07 23:14:52Z dburken $
18 
19 #ifndef ossimCoarseGridModel_HEADER
20 #define ossimCoarseGridModel_HEADER 1
21 
23 #include <ossim/base/ossimIpt.h>
26 
27 class ossimImageGeometry;
28 
29 /******************************************************************************
30  *
31  * CLASS: ossimCoarseGridModel
32  *
33  *****************************************************************************/
35 {
36 public:
39 
42  ossimCoarseGridModel(const ossimFilename& geom_file);
43 
45  ossimCoarseGridModel(const ossimKeywordlist& geom_kwl);
46 
48 
53  virtual void buildGrid(const ossimDrect& imageBounds,
54  ossimProjection* proj,
55  double heightDelta=500.0,
56  bool enableHeightFlag=false,
57  bool makeAdjustableFlag=true);
58  virtual void buildGrid(const ossimDrect& imageBounds,
59  ossimImageGeometry* geom,
60  double heightDelta=500.0,
61  bool enableHeightFlag=false,
62  bool makeAdjustableFlag=true);
63 
66  static void setInterpolationError(double error=.1);
67  static void setMinGridSpacing(ossim_int32 minSpacing = 100);
68 
70  virtual std::ostream& print(std::ostream& out) const;
71 
74  virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0) const;
75 
78  virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0);
79 
82  static void writeGeomTemplate(ostream& os);
83 
85  virtual ossimObject* dup() const { return new ossimCoarseGridModel(*this); }
86 
89  bool saveCoarseGrid(const ossimFilename& cgFileName) const;
90 
93  bool loadCoarseGrid(const ossimFilename& cgFileName);
94 
95  virtual void imagingRay(const ossimDpt& image_point, ossimEcefRay& image_ray) const;
96 
97 
98  virtual void lineSampleToWorld(const ossimDpt& image_point, ossimGpt& gpt) const;
99 
102  virtual void lineSampleHeightToWorld(const ossimDpt& image_point,
103  const double& heightEllipsoid,
104  ossimGpt& world_pt) const;
105 
106  virtual void initAdjustableParameters();
107 
111  inline virtual bool useForward()const {return false;}
112 
115  virtual bool isAffectedByElevation() const;
116 
117 protected:
118 
121  void reallocateGrid(const ossimIpt& size);
122 
124  void initializeModelParams(ossimIrect irect);
125 
127  virtual ossimGpt extrapolate (const ossimDpt& imgPt, const double& height=ossim::nan()) const;
128 
132  ossimDblGrid theDlatDhGrid; // degrees/meter
133  ossimDblGrid theDlonDhGrid; // degrees/meter
134  ossimDblGrid* theDlatDparamGrid; // degrees/(units-of-param)
135  ossimDblGrid* theDlonDparamGrid; // degrees/(units-of-param)
136 
137  static double theInterpolationError;
141 
142  TYPE_DATA
143 };
144 
145 #endif
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
#define OSSIMDLLEXPORT
virtual bool isAffectedByElevation() const
Implementation of pure virtual ossimProjection::isAffectedByElevation method.
static double theInterpolationError
Represents serializable keyword/value map.
double nan()
Method to return ieee floating point double precision NAN.
Definition: ossimCommon.h:135
virtual bool useForward() const
virtual void lineSampleToWorld(const ossimDpt &image_point, ossimGpt &world_point) const
static ossim_int32 theMinGridSpacing
yy_size_t size
#define TYPE_DATA
Definition: ossimRtti.h:339
virtual void lineSampleHeightToWorld(const ossimDpt &lineSampPt, const double &heightEllipsoid, ossimGpt &worldPt) const =0
virtual void imagingRay(const ossimDpt &image_point, ossimEcefRay &image_ray) const
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual std::ostream & print(std::ostream &out) const
virtual ossimObject * dup() const
Returns pointer to a new instance, copy of this.
virtual ossimDpt extrapolate(const ossimGpt &gp) const
static void writeGeomTemplate(ostream &os)
Container class that holds both 2D transform and 3D projection information for an image Only one inst...
ossimAdjustmentInfo theInitialAdjustment
ossimDblGrid * theDlonDparamGrid
ossimDblGrid * theDlatDparamGrid
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
int ossim_int32