/** 
* @file ClusterAlgorithm.h
* @brief Interface for Cluster-Algorithms
* @author Erik Rodner
* @date 10/29/2007

*/
#ifndef CLUSTERALGORITHMINCLUDE
#define CLUSTERALGORITHMINCLUDE

#include "core/vector/VectorT.h"
#include "core/vector/MatrixT.h"

#include "core/vector/VVector.h"


namespace OBJREC {

/** Interface for Cluster-Algorithms */
class ClusterAlgorithm
{

    protected:

    public:
  
	/** simple constructor */
	ClusterAlgorithm();
      
	/** simple destructor */
	virtual ~ClusterAlgorithm();

	virtual void cluster ( 
		       const NICE::VVector & features,
		       NICE::VVector & prototypes,
		       std::vector<double> & weights,
		       std::vector<int>    & assignment ) = 0;
     
};


} // namespace

#endif