OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimRsmModel.h
Go to the documentation of this file.
1 //---
2 // File: ossimRsmModel.h
3 //---
4 #ifndef ossimRsmModel_H
5 #define ossimRsmModel_H 1
6 
11 #include <iosfwd>
12 #include <vector>
13 
18 {
19 public:
20 
22  ossimRsmModel();
23 
25  ossimRsmModel( const ossimRsmModel& obj );
26 
28  const ossimRsmModel& operator=( const ossimRsmModel& rhs );
29 
35  virtual void worldToLineSample(const ossimGpt& world_point,
36  ossimDpt& image_point) const;
37 
38 
43  virtual void lineSampleToWorld(const ossimDpt& image_point,
44  ossimGpt& world_point) const;
50  virtual void lineSampleHeightToWorld(const ossimDpt& image_point,
51  const double& heightEllipsoid,
52  ossimGpt& worldPoint) const;
53 
58  virtual void imagingRay(const ossimDpt& image_point,
59  ossimEcefRay& image_ray) const;
60 
61  virtual void updateModel();
62  virtual void initAdjustableParameters();
63 
68  virtual ossimObject* dup() const;
69 
70  inline virtual bool useForward()const {return false;}
71 
72 
77  virtual std::ostream& print(std::ostream& out) const;
78 
84  virtual bool saveState(ossimKeywordlist& kwl,
85  const char* prefix=0) const;
86 
92  virtual bool loadState(const ossimKeywordlist& kwl,
93  const char* prefix=0);
94 
95 protected:
96 
106  ossim_uint32 getPcaIndex( const double& x, const double& y, const double& z ) const;
107 
122  ossim_uint32 getPcaIndex( const ossimDpt& ipt, bool shiftPoint ) const;
123 
133  void lowOrderPolynomial( const double& x, const double& y, const double& z,
134  ossimDpt& ipt ) const;
135 
136  double polynomial( const double& x, const double& y, const double& z,
137  const ossim_uint32& maxx, const ossim_uint32& maxy,
138  const ossim_uint32& maxz,
139  std::vector<double> pcf ) const;
140 
141  double dPoly_dLat( const double& x, const double& y, const double& z,
142  const ossim_uint32& maxx, const ossim_uint32& maxy,
143  const ossim_uint32& maxz,
144  std::vector<double> pcf) const;
145 
146  double dPoly_dLon( const double& x, const double& y, const double& z,
147  const ossim_uint32& maxx, const ossim_uint32& maxy,
148  const ossim_uint32& maxz,
149  std::vector<double> pcf ) const;
150 
151  double dPoly_dHgt( const double& x, const double& y, const double& z,
152  const ossim_uint32& maxx, const ossim_uint32& maxy,
153  const ossim_uint32& maxz,
154  std::vector<double> pcf ) const;
155 
160  bool validate() const;
161 
163  virtual ~ossimRsmModel();
164 
167  std::vector<ossimRsmpca> m_pca;
168 
169  TYPE_DATA
170 
171 }; // End: class ossimRsmModel
172 
173 #endif /* #ifndef ossimRsmModel_H */
ossim_uint32 x
virtual ossimObject * dup() const =0
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Represents serializable keyword/value map.
ossim_uint32 y
virtual void lineSampleToWorld(const ossimDpt &image_point, ossimGpt &world_point) const
const ossimSensorModel & operator=(const ossimSensorModel &rhs)
assignment operator
std::vector< ossimRsmpca > m_pca
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
virtual bool useForward() const
Definition: ossimRsmModel.h:70
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 void updateModel()
ossimRsmpia m_pia
virtual void worldToLineSample(const ossimGpt &world_point, ossimDpt &image_point) const
#define OSSIM_DLL
ossimRsmida m_ida
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23