contrib/oxl/mvl/TriTensorCompute.h
Go to the documentation of this file.
00001 // This is oxl/mvl/TriTensorCompute.h
00002 #ifndef BaseTriTensorCompute_h_
00003 #define BaseTriTensorCompute_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 // \file
00009 //
00010 // A class to generate a Trifocal Tensor from point/line segment matched triplets,
00011 // with separate functions for the linear/non-linear computations.
00012 // Linear computation uses RANSAC and is robust to the presence of
00013 // incorrect matches.
00014 //
00015 // \author
00016 //             Paul Beardsley, 29.03.96
00017 //             Oxford University, UK
00018 //---------------------------------------------------------------------------
00019 
00020 #include <vcl_list.h>
00021 
00022 class HomgMatchLineSeg2D2D2D;
00023 class HomgMatchPoint2D2D2D;
00024 class TriTensor;
00025 
00026 class BaseTriTensorCompute
00027 {
00028  public:
00029 
00030   // Constructors/Initializers/Destructors---------------------------------
00031 
00032   BaseTriTensorCompute();
00033   ~BaseTriTensorCompute();
00034 
00035   // Data Access-----------------------------------------------------------
00036 
00037   void add_matches (vcl_list<HomgMatchLineSeg2D2D2D*> *match_list);
00038 
00039   void add_matches (vcl_list<HomgMatchPoint2D2D2D*> *match_list);
00040 
00041   void clear_matches_line (void);
00042   void clear_matches_point (void);
00043 
00044   // INTERNALS-------------------------------------------------------------
00045 
00046  protected:
00047   // Data Members----------------------------------------------------------
00048 
00049   // the matched points.
00050   vcl_list<HomgMatchPoint2D2D2D*> *matchpoint_list_ptr_;
00051 
00052   // the matched line segments.
00053   vcl_list<HomgMatchLineSeg2D2D2D*> *matchlineseg_list_ptr_;
00054 };
00055 
00056 #endif // BaseTriTensorCompute_h_