aboutsummaryrefslogtreecommitdiff
path: root/colormap.h
diff options
context:
space:
mode:
authorSamuel Fadel <samuelfadel@gmail.com>2016-01-16 20:55:45 +0100
committerSamuel Fadel <samuelfadel@gmail.com>2016-01-16 20:55:45 +0100
commit4c066a82962a9a0634dcfe0a305de7b2a4cacc5b (patch)
tree5dc99bee13b3c216426945c3e1692d4585f2cf6a /colormap.h
parent8ffae45e1dd3965763fd74f2f20d88478e939389 (diff)
Added the Colormap component.
* The Colormap component is a simple rect with a texture mapped that displays a ColorScale with a fixed number of samples. This number of samples is exported as a member const, which is used on other components (such as VoronoiSplat). * The texture mapping is reflecting the colormap lookup used in VoronoiSplat. * The ColorScale class now has a method for sampling the color scale and outputs the samples to iterator-style objects, providing easy intergration with existing code.
Diffstat (limited to 'colormap.h')
-rw-r--r--colormap.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/colormap.h b/colormap.h
new file mode 100644
index 0000000..806624a
--- /dev/null
+++ b/colormap.h
@@ -0,0 +1,40 @@
+#ifndef COLORMAP_H
+#define COLORMAP_H
+
+#include <vector>
+
+#include <QtQuick>
+#include <QSGDynamicTexture>
+
+#include <armadillo>
+
+#include "colorscale.h"
+
+class Colormap
+ : public QQuickItem
+{
+ Q_OBJECT
+public:
+ static const int SAMPLES = 128;
+
+ Colormap(QQuickItem *parent = 0);
+ ~Colormap();
+
+signals:
+ void colorScaleChanged(const ColorScale &scale) const;
+
+public slots:
+ void setColorScale(const ColorScale &scale);
+
+protected:
+ QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *);
+
+private:
+ QSGNode *newSceneGraph();
+
+ QSGDynamicTexture *m_texture;
+ bool m_shouldUpdateTexture;
+ std::vector<float> m_cmap;
+};
+
+#endif // COLORMAP_H