1 // This is oxl/mvl/HomgMap2D.h
2 #ifndef HomgMap2D_h_
3 #define HomgMap2D_h_
4 //:
5 //  \file
6 // \brief General 2D projective map
7 //
8 //    HomgMap2D represents a mapping between two 2D spaces.
9 //    It is used to represent a variety of such mappings, including
10 //    camera calibration and numerical conditioning.
11 //
12 // \author
13 //     Andrew W. Fitzgibbon, Oxford RRG, 06 Nov 96
14 //-----------------------------------------------------------------------------
15 
16 #include "HomgPoint2D.h"
17 
18 class HomgMap2D
19 {
20  public:
21   virtual ~HomgMap2D() = 0;
22   //: Transform a point from space 1 to space 2.
23   virtual HomgPoint2D transform(const HomgPoint2D& p) = 0;
24   //: Transform a point from space 2 to space 1.
25   virtual HomgPoint2D inverse_transform(const HomgPoint2D& p) = 0;
26 };
27 
28 #endif // HomgMap2D_h_
29