aboutsummaryrefslogtreecommitdiff
path: root/projectionobserver.h
blob: 5ac6988d6fb6593bec8510d80c8a2e598125a17a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef PROJECTIONOBSERVER_H
#define PROJECTIONOBSERVER_H

#include <QObject>
#include <armadillo>

#include "distortionmeasure.h"

class ProjectionObserver : public QObject
{
    Q_OBJECT
public:
    ProjectionObserver(const arma::mat &X, const arma::uvec &cpIndices);

signals:
    void mapChanged(const arma::vec &values) const;

public slots:
    void setMap(const arma::mat &Y);

private:
    arma::mat m_X, m_Y, m_origY, m_prevY;
    arma::mat m_distX, m_distY, m_distOrigY, m_distPrevY;
    arma::uvec m_cpIndices;

    // TODO: one per implemented measure
    arma::vec m_values;
};

#endif // PROJECTIONOBSERVER_H