00001
00002
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _ALGO_CALCULATE_OVERLAP_H
00031 #define _ALGO_CALCULATE_OVERLAP_H
00032
00033 #include <hugin_shared.h>
00034 #include <panodata/PanoramaData.h>
00035 #include <panodata/Panorama.h>
00036 #include <panotools/PanoToolsInterface.h>
00037
00038 namespace HuginBase
00039 {
00040
00042 class IMPEX CalculateImageOverlap
00043 {
00044 public:
00046 CalculateImageOverlap(const PanoramaData * pano);
00048 virtual ~CalculateImageOverlap();
00051 void calculate(unsigned int steps);
00053 double getOverlap(unsigned int i, unsigned int j);
00055 void limitToImages(UIntSet img);
00057 UIntSet getOverlapForImage(unsigned int i);
00058
00059 private:
00060 std::vector<std::vector<double> > m_overlap;
00061 std::vector<PTools::Transform*> m_transform;
00062 std::vector<PTools::Transform*> m_invTransform;
00063 unsigned int m_nrImg;
00064 const PanoramaData* m_pano;
00065 UIntSet testImages;
00066 };
00067
00068 }
00069 #endif // _ALGO_CALCULATE_OVERLAP_H