00001 #ifndef _KMEANCLUSTER_H 00002 #define _KMEANCLUSTER_H 00003 #include <list> 00004 #include "../util/Vector.h" 00005 00007 00010 class KMeanCluster 00011 { 00012 public: 00014 typedef std::list<Vector3d> VectorList; 00015 00017 KMeanCluster(int nCentres); 00018 00023 void train(VectorList &v); 00024 00030 int clusterize(Vector3d &v); 00031 00036 VectorList::iterator begin() { return m_centres.begin(); } 00037 00042 VectorList::iterator end() { return m_centres.end(); } 00043 00048 const size_t getClusterCount() const { return m_centres.size(); } 00049 00054 void setCentres(VectorList ¢res) { m_centres = centres; } 00055 00056 private: 00057 bool isSameSet(VectorList &a, VectorList &b); 00058 VectorList m_centres; 00059 }; 00060 00061 #endif