OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimBilinearProjection.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Garrett Potts
6 //
7 //********************************************************************
8 // $Id: ossimBilinearProjection.h 17497 2010-06-02 01:43:43Z gpotts $
9 #ifndef ossimBilinearProjection_HEADER
10 #define ossimBilinearProjection_HEADER
11 
12 #include <vector>
13 #include <ossim/base/ossimDpt.h>
14 #include <ossim/base/ossimGpt.h>
18 
21 
22 {
23 public:
27  const ossimDpt& ur,
28  const ossimDpt& lr,
29  const ossimDpt& ll,
30  const ossimGpt& ulg,
31  const ossimGpt& urg,
32  const ossimGpt& lrg,
33  const ossimGpt& llg);
34  virtual ossimObject *dup()const;
35  virtual ossimGpt origin()const;
36 
37  virtual void worldToLineSample(const ossimGpt& worldPoint,
38  ossimDpt& lineSampPt) const;
43  virtual void lineSampleToWorld(const ossimDpt& lineSampPt,
44  ossimGpt& worldPt) const;
45 
52  virtual void lineSampleHeightToWorld(const ossimDpt& lineSampPt,
53  const double& heightAboveEllipsoid,
54  ossimGpt& worldPt) const;
55  virtual bool saveState(ossimKeywordlist& kwl,
56  const char* prefix=0)const;
57 
58  virtual bool loadState(const ossimKeywordlist& kwl,
59  const char* prefix=0);
60 
61  virtual bool operator==(const ossimProjection& projection) const;
62  virtual ossimDpt getMetersPerPixel() const;
63 
64  virtual std::ostream& print(std::ostream& out) const;
65 
71  virtual ossim_float64 setTiePoints(const std::vector<ossimDpt>& lsPt,
72  const std::vector<ossimGpt>& geoPt);
73 
74  /*
75  * optimizable interface
76  */
77  virtual bool setupOptimizer(const ossimString& setup);
78 
79  inline virtual bool useForward()const {return false;}
81 
82  virtual ossim_uint32 degreesOfFreedom()const;
83  virtual double optimizeFit(const ossimTieGptSet& tieSet, double* targetVariance=0);
84 
90  virtual bool isAffectedByElevation() const { return false; }
91 
93  void getTiePoints(std::vector<ossimDpt>& lsPt, std::vector<ossimGpt>& geoPt) const;
94 
95 protected:
96  virtual ~ossimBilinearProjection();
97  void initializeBilinear();
98 
104  bool dPtsHaveNan() const;
105 
111  bool gPtsHaveNan() const;
112 
116  ossimDpt midLineSamplePt() const;
117 
118  std::vector<ossimDpt> theLineSamplePt;
119  std::vector<ossimGpt> theGeographicPt;
124 
127 
128 TYPE_DATA
129 };
130 
131 #endif /* #ifndef ossimBilinearProjection_HEADER */
virtual ossimObject * dup() const =0
virtual bool setupOptimizer(const ossimString &setup)
setupFromString() Derived classes should implement as needed. Initialize parameters needed for optimi...
ossimLeastSquaresBilin theXFit
Represents serializable keyword/value map.
virtual ossim_uint32 degreesOfFreedom() const =0
std::ostream & print(H5::H5File *file, std::ostream &out)
Print method.
Definition: ossimH5Util.cpp:41
virtual double optimizeFit(const ossimTieGptSet &tieSet, double *targetVariance=0)=0
std::vector< ossimGpt > theGeographicPt
double ossim_float64
virtual bool useForward() const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
ossimLeastSquaresBilin theLatFit
virtual class enabling projection optimization (can be used for outlier rejection - RANSAC) ...
ossimLeastSquaresBilin theYFit
#define TYPE_DATA
Definition: ossimRtti.h:339
virtual ossimDpt getMetersPerPixel() const =0
virtual void lineSampleHeightToWorld(const ossimDpt &lineSampPt, const double &heightAboveEllipsoid, ossimGpt &worldPt) const =0
unsigned int ossim_uint32
Provide 2D Least Squares Bilinear model fitting The math model is that of a bilinear surface of the ...
virtual bool isAffectedByElevation() const
Implementation of pure virtual ossimProjection::isAffectedByElevation method.
bool operator==(const ossimRefPtr< _Tp1 > &__a, const ossimRefPtr< _Tp2 > &__b) noexcept
Definition: ossimRefPtr.h:101
std::vector< ossimDpt > theLineSamplePt
virtual ossimGpt origin() const =0
storage class for a set of geographic tie points, between master and slave images ...
#define OSSIM_DLL
ossimLeastSquaresBilin theLonFit
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual void lineSampleToWorld(const ossimDpt &lineSampPt, ossimGpt &worldPt) const =0
virtual void worldToLineSample(const ossimGpt &worldPoint, ossimDpt &lineSampPt) const =0
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23