Jafar
|
00001 /* $Id$ */ 00002 00003 #ifndef _SPAFDB_MATCH_QUERY_HPP_ 00004 #define _SPAFDB_MATCH_QUERY_HPP_ 00005 00006 #include <list> 00007 #include <map> 00008 00009 namespace jafar { 00010 namespace spaf { 00011 class FeaturesBag; 00012 class MatchResult; 00013 class Feature; 00014 } 00015 namespace spafdb { 00016 class Storage; 00022 class MatchQuery { 00023 protected: 00024 typedef std::map< const spaf::Feature*, double > Feature2Double; 00025 typedef Feature2Double::const_iterator Feature2Double_cit; 00026 typedef std::map< const spaf::Feature*, Feature2Double > VoteMap; 00027 typedef VoteMap::const_iterator VoteMap_cit; 00028 public: 00029 MatchQuery(); 00030 virtual ~MatchQuery(); 00031 virtual std::list<spaf::MatchResult> execute(const Storage*, const spaf::FeaturesBag& ) const = 0; 00032 void setMinimumVote(double _minimumVote); 00033 protected: 00034 std::list<spaf::MatchResult> votesToMatches(const VoteMap& ) const; 00035 private: 00036 struct Private; 00037 Private* const d; 00038 }; 00044 class MatchQueryGeometricRelationSimilarity : public MatchQuery { 00045 public: 00046 MatchQueryGeometricRelationSimilarity( ); 00047 virtual ~MatchQueryGeometricRelationSimilarity(); 00048 virtual std::list<spaf::MatchResult> execute(const Storage*, const spaf::FeaturesBag& ) const; 00049 private: 00050 struct Private; 00051 Private* const d; 00052 }; 00058 class MatchQueryGeometricRelationGroupSimilarity : public MatchQuery { 00059 public: 00060 MatchQueryGeometricRelationGroupSimilarity( ); 00061 virtual ~MatchQueryGeometricRelationGroupSimilarity(); 00062 virtual std::list<spaf::MatchResult> execute(const Storage*, const spaf::FeaturesBag& ) const; 00063 private: 00064 struct Private; 00065 Private* const d; 00066 }; 00067 } 00068 } 00069 00070 #endif
Generated on Wed Oct 15 2014 00:37:28 for Jafar by doxygen 1.7.6.1 |