aboutsummaryrefslogtreecommitdiff
#ifndef MANIPULATIONHANDLER_H
#define MANIPULATIONHANDLER_H

#include <armadillo>
#include <nod.hpp>

class ManipulationHandler
{
public:
    enum Technique {
        TECHNIQUE_PLMP,
        TECHNIQUE_LAMP,
        TECHNIQUE_LSP,
        TECHNIQUE_PEKALSKA
    };

    ManipulationHandler(const arma::mat &X,
                        const arma::uvec &cpIndices);

    void setTechnique(Technique technique) { m_technique = technique; }

    nod::signal<void(const arma::mat &)> mapChanged;
    void setCP(const arma::mat &Ys);

private:
    arma::mat m_X;
    arma::uvec m_cpIndices;
    Technique m_technique;
};

#endif // MANIPULATIONHANDLER_H