aboutsummaryrefslogtreecommitdiff
path: root/scatterplot.h
diff options
context:
space:
mode:
authorSamuel Fadel <samuelfadel@gmail.com>2016-01-21 19:36:14 +0100
committerSamuel Fadel <samuelfadel@gmail.com>2016-01-21 19:36:14 +0100
commitd414b68cea008edc063e26133564d120a7430bd2 (patch)
tree7ae861a100d0b1560294b646014743dcd785ab4b /scatterplot.h
parente9d14f93498832687cbdbeb79748f9030e49fb2f (diff)
Added selection linking. Needs more tests.
Diffstat (limited to 'scatterplot.h')
-rw-r--r--scatterplot.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/scatterplot.h b/scatterplot.h
index c15215b..0fb12ba 100644
--- a/scatterplot.h
+++ b/scatterplot.h
@@ -1,8 +1,9 @@
#ifndef SCATTERPLOT_H
#define SCATTERPLOT_H
+#include <vector>
+
#include <QtQuick>
-#include <QSet>
#include <armadillo>
@@ -35,7 +36,8 @@ signals:
void xyInteractivelyChanged(const arma::mat &XY) const;
void colorDataChanged(const arma::vec &colorData) const;
void opacityDataChanged(const arma::vec &opacityData) const;
- void selectionChanged(const QSet<int> &selection) const;
+ void selectionChanged(const std::vector<bool> &selection) const;
+ void selectionInteractivelyChanged(const std::vector<bool> &selection) const;
void scaleChanged(const LinearScale<float> &sx, const LinearScale<float> &sy) const;
void glyphSizeChanged(float glyphSize) const;
@@ -43,7 +45,7 @@ public slots:
void setXY(const arma::mat &xy);
void setColorData(const arma::vec &colorData);
void setOpacityData(const arma::vec &opacityData);
- void setSelection(const QSet<int> &selection);
+ void setSelection(const std::vector<bool> &selection);
void setScale(const LinearScale<float> &sx, const LinearScale<float> &sy);
Q_INVOKABLE void setGlyphSize(float glyphSize);
@@ -74,8 +76,8 @@ private:
LinearScale<float> m_sx, m_sy;
// Internal state
- bool updateSelection(bool mergeSelection);
- QSet<int> m_selectedGlyphs;
+ bool interactiveSelection(bool mergeSelection);
+ std::vector<bool> m_selection;
enum InteractionState {
INTERACTION_NONE,