00001 #ifndef Impala_Core_Geometry_InterestPointList_h 00002 #define Impala_Core_Geometry_InterestPointList_h 00003 00004 #include "Core/Geometry/InterestPoint.h" 00005 00006 namespace Impala 00007 { 00008 namespace Core 00009 { 00010 namespace Geometry 00011 { 00012 00016 class InterestPointList : public std::list<InterestPoint*> 00017 { 00018 public: 00019 00021 typedef std::back_insert_iterator<InterestPointList> back_insert_iterator; 00022 00024 InterestPointList& 00025 operator<<(InterestPoint* s) 00026 { 00027 push_back(s); 00028 return *this; 00029 } 00030 00032 void 00033 EraseAll() 00034 { 00035 erase(begin(), end()); 00036 } 00037 00038 void 00039 EraseAndDelete() 00040 { 00041 for(iterator iter = begin(); iter != end(); iter++) { 00042 delete (*iter); 00043 } 00044 erase(begin(), end()); 00045 } 00046 00047 }; 00048 00049 typedef InterestPointList::back_insert_iterator InterestPointListListBI; 00050 00051 } // namespace Geometry 00052 } // namespace Core 00053 } // namespace Impala 00054 00055 #endif