OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimAlphaSensor.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Dave Hicks
6 //
7 // Description: Alpha Sensor Base Class
8 //
9 //*******************************************************************
10 // $Id$
11 #ifndef ossimAlphaSensor_HEADER
12 #define ossimAlphaSensor_HEADER 1
14 
16 {
17 public:
19 
21 
22  virtual ossimObject* dup()const;
23 
24 
25  virtual void lineSampToWorld(const ossimDpt& image_point,
26  ossimGpt& worldPoint) const;
27 
28  virtual void lineSampleHeightToWorld(const ossimDpt& image_point,
29  const double& heightEllipsoid,
30  ossimGpt& worldPoint) const;
31 
32  virtual void updateModel();
33 
34  inline virtual bool useForward()const {return true;}
35 
36  virtual void initAdjustableParameters();
37  virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0);
38  virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0)const;
39 
40  void setFov(const double fov);
41  void setRollBias(const double rollBias);
42  void setPitchBias(const double pitchBias);
43  void setHeadingBias(const double headingBias);
44  void setSlitRot(const double slitRot);
45 
46  void setRollPoly(const std::vector< ossim_float64 > rollPoly);
47  void setPitchPoly(const std::vector< ossim_float64 > pitchPoly);
48  void setHeadingPoly(const std::vector< ossim_float64 > headingPoly);
49  void setLonPoly(const std::vector< ossim_float64 > lonPoly);
50  void setLatPoly(const std::vector< ossim_float64 > latPoly);
51  void setAltPoly(const std::vector< ossim_float64 > altPoly);
52  void setScanPoly(const std::vector< ossim_float64 > scanPoly);
53 
54  void getPositionOrientation(const ossim_float64& line,
55  ossimEcefPoint& pos,
56  NEWMAT::Matrix& cam2EcfRot)const;
57 
58  ossimEcefPoint getCameraPosition(const ossim_float64& line)const;
59 
60  NEWMAT::Matrix getPlatform2LocalRot(const ossim_float64& line)const;
61 
62  ossim_float64 evalPoly(const std::vector<ossim_float64>& polyCoef,
63  const ossim_float64& line)const;
64 
65 protected:
66  NEWMAT::Matrix formHPRmat(const ossim_float64& roll,
67  const ossim_float64& pitch,
68  const ossim_float64& heading)const;
69 
70  NEWMAT::Matrix formLLAmat(const ossim_float64& lat,
71  const ossim_float64& lon,
72  const ossim_float64& az)const;
73 
79 
81 
82  std::vector< ossim_float64 > m_rollPoly;
83  std::vector< ossim_float64 > m_pitchPoly;
84  std::vector< ossim_float64 > m_headingPoly;
85  std::vector< ossim_float64 > m_lonPoly;
86  std::vector< ossim_float64 > m_latPoly;
87  std::vector< ossim_float64 > m_altPoly;
88  std::vector< ossim_float64 > m_scanPoly;
89 
90  // Bias rotation matrix
91  NEWMAT::Matrix m_cam2Platform;
92 
94  TYPE_DATA
95 };
96 
97 #endif // #ifndef ossimAlphaSensor_HEADER
virtual ossimObject * dup() const =0
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Represents serializable keyword/value map.
NEWMAT::Matrix m_cam2Platform
std::vector< ossim_float64 > m_rollPoly
ossim_float64 m_slitRot
std::vector< ossim_float64 > m_latPoly
std::vector< ossim_float64 > m_altPoly
std::vector< ossim_float64 > m_lonPoly
double ossim_float64
ossim_float64 m_pitchBias
#define TYPE_DATA
Definition: ossimRtti.h:339
ossim_float64 m_fov
virtual void lineSampleHeightToWorld(const ossimDpt &lineSampPt, const double &heightEllipsoid, ossimGpt &worldPt) const =0
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual void updateModel()
#define OSSIM_DLL
std::vector< ossim_float64 > m_headingPoly
std::vector< ossim_float64 > m_pitchPoly
ossim_float64 m_headingBias
ossim_float64 m_rollBias
virtual bool useForward() const
std::vector< ossim_float64 > m_scanPoly
ossim_float64 m_adjustedFocalLength
ossim_float64 m_focalLength