00001 #ifndef _SPAF_FEATURESBAG_HPP_
00002 #define _SPAF_FEATURESBAG_HPP_
00003
00004 #include "jafarConfig.h"
00005
00006 #include <list>
00007
00008 namespace jafar {
00009 namespace spaf {
00010 class Feature;
00011 class MatchResult;
00012 class DisplayContext;
00013 class MapsTransformation;
00019 class FeaturesBag {
00020 public:
00021 FeaturesBag();
00022 FeaturesBag(const FeaturesBag& bag);
00023 FeaturesBag& operator=(const FeaturesBag& bag);
00024 ~FeaturesBag();
00025 void addFeature(Feature* f);
00026 void removeFeature(Feature* f);
00027 int count() const;
00028 const Feature* featureAt(int index) const;
00029 Feature* featureAt(int index);
00033 Feature* feature( int _id );
00037 void removeFeature( const Feature* f );
00038 std::list<MatchResult> findMatches(const FeaturesBag&) const;
00039 virtual void fillDisplayContext( DisplayContext* , MapsTransformation* mapsTransfo ) const;
00040 private:
00041 struct Private;
00042 Private* const d;
00043 };
00044 }
00045 }
00046
00047 #endif