// ***************************************************************
//  CornerDetector   version:  1.0   ·  date: 12/14/2006
//  -------------------------------------------------------------
//  Author: Pablo Carneiro Elias
//  -------------------------------------------------------------
//  
//  -------------------------------------------------------------
//  Copyright (C) 2006 - All Rights Reserved
// ***************************************************************
// 
// ***************************************************************

#ifndef _CORNER_DETECTOR_H_
#define _CORNER_DETECTOR_H_

class CornerDetector
{
public:
	
	CornerDetector( int maxCorners );
	
	virtual void detect( const unsigned char* img, int w, int h ) = 0;

	virtual inline void setThreshold( int threshold ) { _threshold = threshold; }

	virtual inline int getThreshold() { return _threshold; }

	virtual inline int getNumCornersDetected() { return _numDetectedCorners; };

	virtual inline int *getDetectedCorners() { return _detectedCorners; }

	virtual void refreshDetection() = 0;

	virtual int getType() = 0;

protected:

	int _numDetectedCorners;
	int* _detectedCorners;
	int _threshold;
	int _maxCorners;
};

#endif