Isis 3 Programmer Reference
SmtkPoint.h
Go to the documentation of this file.
1 #ifndef SmtkPoint_h
2 #define SmtkPoint_h
3 
27 #include "Camera.h"
28 #include "GruenTypes.h"
29 #include "ControlPoint.h"
30 #include "SpecialPixel.h"
31 
32 namespace Isis {
33 
41  class PointGeometry {
42  public:
43  PointGeometry() : m_point(), m_geom() { }
44  PointGeometry(const Coordinate &pnt,
45  const Coordinate &geom = Coordinate()) :
46  m_point(pnt), m_geom(geom) { }
47  ~PointGeometry() { }
48 
49  inline bool isValid() const {
50  return ( m_point.isValid() && m_geom.isValid() );
51  }
52 
53  inline const Coordinate &getPoint() const { return (m_point); }
54  inline const Coordinate &getGeometry() const { return (m_geom); }
55 
56  Coordinate m_point;
57  Coordinate m_geom;
58  };
59 
71  class SmtkPoint {
72  public:
73  SmtkPoint() : m_matchpt(), m_regpnt(), m_geom(), m_registered(false),
74  m_isValid(false) { }
75  SmtkPoint(const PointPair &point, const PointPair &geom = PointPair()) :
76  m_matchpt(point),
77  m_regpnt(PointGeometry(point.getRight(), geom.getRight())),
78  m_geom(geom), m_registered(false), m_isValid(false) { }
79  SmtkPoint(const MatchPoint &mpt, const PointGeometry &regpnt,
80  const PointPair &geom) : m_matchpt(mpt), m_regpnt(regpnt),
81  m_geom(geom),
82  m_registered(mpt.isValid()),
83  m_isValid(false) { }
84  ~SmtkPoint() { }
85 
87  inline bool isValid() const { return (m_isValid); }
88 
90  inline double GoodnessOfFit() const { return (m_matchpt.getEigen()); }
91 
105  inline const PointPair &getPoints() const {
106  return (m_matchpt.m_point);
107  }
108 
110  inline const PointPair &getGeometry() const {
111  return (m_geom);
112  }
113 
115  inline const Coordinate &getLeft() const {
116  return (getPoints().getLeft());
117  }
118 
129  inline const Coordinate &getRight() const {
130  return (m_regpnt.getPoint());
131  }
132 
134  inline const AffineRadio &getAffine() const {
135  return (m_matchpt.m_affine);
136  }
137 
150  inline bool isRegistered() const { return (m_registered); }
151 
152  MatchPoint m_matchpt;
153  PointGeometry m_regpnt;
154  PointPair m_geom;
155  bool m_registered;
156  bool m_isValid;
157  };
158 };
159 
160 #endif
bool isValid() const
Indicates the smtk portion of the point is valid.
Definition: SmtkPoint.h:87
Define a generic Y/X container.
Definition: GruenTypes.h:69
Define a point set of left, right and geometry at that location.
Definition: GruenTypes.h:187
const Coordinate & getRight() const
Returns the registered right coordinate.
Definition: SmtkPoint.h:129
Container for a point and its geometry.
Definition: SmtkPoint.h:41
double GoodnessOfFit() const
Returns goodness of the fit registration.
Definition: SmtkPoint.h:90
bool isRegistered() const
Returns registration status.
Definition: SmtkPoint.h:150
const AffineRadio & getAffine() const
Returns the affine transform and radiometic results.
Definition: SmtkPoint.h:134
const Coordinate & getLeft() const
Returns the left point.
Definition: SmtkPoint.h:115
bool isValid() const
Check for goodness.
Definition: GruenTypes.h:123
const PointPair & getPoints() const
Get initial left and right point pair.
Definition: SmtkPoint.h:105
Container for affine and radiometric parameters.
Definition: GruenTypes.h:258
Structure containing comprehensive registration info/results.
Definition: GruenTypes.h:449
const PointPair & getGeometry() const
Return left and right point geometry.
Definition: SmtkPoint.h:110
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
Container for SMTK match points
Definition: SmtkPoint.h:71