00001 // This is oxl/mvl/HomgMap2D.h 00002 #ifndef HomgMap2D_h_ 00003 #define HomgMap2D_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \brief General 2D projective map 00010 // 00011 // HomgMap2D represents a mapping between two 2D spaces. 00012 // It is used to represent a variety of such mappings, including 00013 // camera calibration and numerical conditioning. 00014 // 00015 // \author 00016 // Andrew W. Fitzgibbon, Oxford RRG, 06 Nov 96 00017 //----------------------------------------------------------------------------- 00018 00019 #include "HomgPoint2D.h" 00020 00021 class HomgMap2D 00022 { 00023 public: 00024 virtual ~HomgMap2D() = 0; 00025 //: Transform a point from space 1 to space 2. 00026 virtual HomgPoint2D transform(const HomgPoint2D& p) = 0; 00027 //: Transform a point from space 2 to space 1. 00028 virtual HomgPoint2D inverse_transform(const HomgPoint2D& p) = 0; 00029 }; 00030 00031 #endif // HomgMap2D_h_