/** 
* @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