Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

MaskedInterestPointSelector.h

Go to the documentation of this file.
00001 #ifndef Impala_Core_Geometry_MaskedInterestPointSelector_h
00002 #define Impala_Core_Geometry_MaskedInterestPointSelector_h
00003 
00004 #include "Core/Array/Arrays.h"
00005 
00006 namespace Impala
00007 {
00008 namespace Core
00009 {
00010 namespace Geometry
00011 {
00012 
00013 
00014 class MaskedInterestPointSelector : public InterestPointSelector
00015 {
00016 public:
00017 
00018     MaskedInterestPointSelector(Array::Array2dScalarInt32* pointList, int index)
00019         : mPointList(pointList), mIndex(index+2)
00020     {
00021         mIter = 0;
00022     }
00023 
00024     bool
00025     Accept(int x, int y, int imageWidth, int imageHeight)
00026     {
00027         bool restarted = false;
00028         while(true)
00029         {
00030             if(mIter >= mPointList->CH())
00031             {
00032                 if(restarted) break;
00033                 restarted = true;
00034                 mIter = 0;
00035             }
00036             if((x == mPointList->Value(0,mIter)) && (y == mPointList->Value(1,mIter)))
00037             {
00038                 // found it
00039                 Int32 value = mPointList->Value(mIndex,mIter);
00040                 if(value) return true;
00041                 return false;
00042             }
00043             mIter++;
00044         }
00045         ILOG_VAR(Impala.Core.Geometry.MaskedInterestPointSelector);
00046         ILOG_WARN("not found: " << x << " " << y);
00047         return false;
00048     }
00049 private:
00050     Array::Array2dScalarInt32* mPointList;
00051     int mIndex;
00052     int mIter;
00053 };
00054 
00055 
00056 } // namespace Geometry
00057 } // namespace Core
00058 } // namespace Impala
00059 
00060 #endif

Generated on Thu Jan 13 09:04:27 2011 for ImpalaSrc by  doxygen 1.5.1