Program Listing for File clustering.h
↰ Return to documentation for file (include/cpphots/interfaces/clustering.h)
#ifndef CPPHOTS_INTERFACES_CLUSTERING_H
#define CPPHOTS_INTERFACES_CLUSTERING_H
#include <vector>
#include "../types.h"
#include "streamable.h"
#include "clonable.h"
namespace cpphots {
namespace interfaces {
class Clusterer : public virtual Streamable, public ClonableBase<Clusterer> {
public:
~Clusterer() {}
virtual uint16_t cluster(const TimeSurfaceType& surface) = 0;
virtual uint16_t getNumClusters() const = 0;
virtual void addCentroid(const TimeSurfaceType& centroid) = 0;
virtual const std::vector<TimeSurfaceType>& getCentroids() const = 0;
virtual void clearCentroids() = 0;
virtual bool hasCentroids() const = 0;
virtual bool isOnline() const = 0;
virtual bool toggleLearning(bool enable = true) = 0;
virtual void train(const std::vector<TimeSurfaceType>& tss) = 0;
virtual std::vector<uint32_t> getHistogram() const = 0;
virtual void reset() = 0;
};
}
}
#endif