OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimSpectraboticsRedEdgeModel.h
Go to the documentation of this file.
1 #ifndef ossimSpectraboticsRedEdgeModel_HEADER
2 #define ossimSpectraboticsRedEdgeModel_HEADER 1
5 #include <ossim/base/ossimDpt.h>
8 
10 {
11 public:
13  ossimSpectraboticsRedEdgeModel(const ossimDrect& imageRect, // center in image space
14  const ossimGpt& platformPosition,
15  double roll,
16  double pitch,
17  double heading,
18  const ossimDpt& principalPoint, // in millimeters
19  double focalLength, // in millimeters
20  const ossimDpt& pixelSize); // in millimeters
22  virtual ossimObject* dup()const;
23 
24  virtual void imagingRay(const ossimDpt& image_point,
25  ossimEcefRay& image_ray) const;
26 
27  void lineSampleToWorld(const ossimDpt& image_point,
28  ossimGpt& gpt) const;
29 
30 
31  virtual void lineSampleHeightToWorld(const ossimDpt& image_point,
32  const double& heightEllipsoid,
33  ossimGpt& worldPoint) const;
34  virtual void worldToLineSample(const ossimGpt& world_point,
35  ossimDpt& image_point) const;
36 
37  virtual void updateModel();
38 
39  void setPrincipalPoint(ossimDpt principalPoint);
40 
41  virtual bool insideImage(const ossimDpt& p) const
42  {
43  /* return( (p.u>=(0.0-FLT_EPSILON)) && */
44  /* (p.u<=(double)(theImageSize.u-(1-FLT_EPSILON))) && */
45  /* (p.v>=(0.0-FLT_EPSILON)) && */
46  /* (p.v<=(double)(theImageSize.v-(1-FLT_EPSILON))) ); */
47  // if it's close to the edge we will consider it inside the image
48  //
49  return theImageClipRect.pointWithin(p, theImageClipRect.width());
50  }
51 
52 
53  void setRollPitchHeading(double roll,
54  double pitch,
55  double heading);
56 
57  void setPixelSize(const ossimDpt& pixelSize);
58  void setImageRect(const ossimDrect& rect);
59  void setFocalLength(double focalLength);
60  void setPlatformPosition(const ossimGpt& gpt);
61 
62  virtual bool saveState(ossimKeywordlist& kwl,
63  const char* prefix=0) const;
64 
65  virtual bool loadState(const ossimKeywordlist& kwl,
66  const char* prefix=0);
67  virtual void initAdjustableParameters();
68 
72 // inline virtual bool useForward()const {return true;} //!ground to image faster (you don't need DEM)
73  inline virtual bool useForward()const {return false;}
74  virtual bool setupOptimizer(const ossimString& init_file);
75 
76 protected:
77 
78  NEWMAT::Matrix m_compositeMatrix;
79  NEWMAT::Matrix m_compositeMatrixInverse;
80  double m_roll;
81  double m_pitch;
82  double m_heading;
83  double m_fov;
87  double m_focalLength;
88  double m_norm; // for lens normalization
89  double m_focalX;
90  double m_focalY;
93 
94 
96 
98 };
99 
100 #endif
virtual ossimObject * dup() const =0
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual bool setupOptimizer(const ossimString &setup)
setupFromString() Derived classes should implement as needed. Initialize parameters needed for optimi...
Represents serializable keyword/value map.
virtual void lineSampleToWorld(const ossimDpt &image_point, ossimGpt &world_point) const
ossimRefPtr< ossimTangentialRadialLensDistortion > m_lensDistortion
#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 void updateModel()
void setImageRect(const ossimDrect &imageRect)
virtual void worldToLineSample(const ossimGpt &world_point, ossimDpt &image_point) const
#define OSSIM_DLL
virtual bool insideImage(const ossimDpt &p) const
NEWMAT::Matrix m_compositeMatrix
uses file path to init model