#ifndef D2CornerDetector_h__ #define D2CornerDetector_h__ #include "SimpleCornerDetector.h" #include using std::deque; namespace pagic { class AngDeltaInfo { public: AngDeltaInfo() : m_ld(0) , m_rd(0) , m_leftIdx(-1) , m_rightIdx(-1) , m_cenIdx(-1) { } double m_ld, m_rd; int m_leftIdx, m_rightIdx, m_cenIdx; }; class D2CornerDetector : public SimpleCornerDetector { public: D2CornerDetector(); virtual void detectCorners(const vector& posVec, vector& cornerVec, vector* pCifVec = 0, vector* pDVec = 0, int* pStartIdx = 0, int* pEndIdx = 0); virtual void detectCorners(const deque& posVec, deque& cornerVec, deque* pCifVec = 0, deque* pDVec = 0, int* pStartIdx = 0, int* pEndIdx = 0); AngDeltaInfo* genAngDeltaInfo(const vector& angDeltaVec, int cenIdx); CornerInfo* isCorner(const vector& posVec, int cenIdx); bool isCorner(const vector& dVec, int cenIdx); void genDVec(const vector& cifVec, vector& dVec, int startIdx = 1); void genDDeq(const deque& cifVec, deque& dVec, int startIdx = 1); }; } #endif // D2CornerDetector_h__