Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
MatchQuery.hpp
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:28 for Jafar by doxygen 1.7.6.1
LAAS-CNRS