#ifndef gra_FeaturePointsMatch_H__ #define gra_FeaturePointsMatch_H__ #include "FeaturePoint.h" #include "../oo/ObjBase.h" #include #include namespace meow { struct FeaturePointIndexPair { std::pair from; std::pair to; FeaturePointIndexPair() { } FeaturePointIndexPair(size_t ff, size_t fs, size_t tf, size_t ts) { from.first = ff; from.second = fs; to.first = tf; to.second = ts; } bool operator==(FeaturePointIndexPair const& p) const { return (from == p.from && to == p.to); } }; typedef std::vector FeaturePointIndexPairs; template class FeaturePointsMatch: public ObjBase { protected: FeaturePointsMatch() { } public: typedef std::vector > FeaturePoints; typedef std::vector FeaturePointss; virtual ~FeaturePointsMatch() { } virtual FeaturePointIndexPairs match(size_t dimension, FeaturePoints const& from, FeaturePoints const& to) const = 0; virtual FeaturePointIndexPairs match(size_t dimension, FeaturePoints const& from, FeaturePointss const& to) const = 0; virtual FeaturePointIndexPairs match(size_t dimension, FeaturePointss const& from, FeaturePointss const& to) const = 0; virtual FeaturePointIndexPairs match(size_t dimension, FeaturePointss const& fpss) const = 0; }; } #endif // gra_FeaturePointsMatch_H__