annotate layer/ColourMapper.h @ 1012:2a85ab180d08 colourschemes

Experimentation with colour schemes and mappings
author Chris Cannam
date Wed, 02 Dec 2015 15:01:38 +0000
parents a1226b3b7925
children ac69043f82b6
rev   line source
Chris@376 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@376 2
Chris@376 3 /*
Chris@376 4 Sonic Visualiser
Chris@376 5 An audio file viewer and annotation editor.
Chris@376 6 Centre for Digital Music, Queen Mary, University of London.
Chris@376 7 This file copyright 2006-2007 Chris Cannam and QMUL.
Chris@376 8
Chris@376 9 This program is free software; you can redistribute it and/or
Chris@376 10 modify it under the terms of the GNU General Public License as
Chris@376 11 published by the Free Software Foundation; either version 2 of the
Chris@376 12 License, or (at your option) any later version. See the file
Chris@376 13 COPYING included with this distribution for more information.
Chris@376 14 */
Chris@376 15
Chris@376 16 #ifndef _COLOUR_MAPPER_H_
Chris@376 17 #define _COLOUR_MAPPER_H_
Chris@376 18
Chris@376 19 #include <QObject>
Chris@376 20 #include <QColor>
Chris@376 21 #include <QString>
Chris@376 22
Chris@376 23 /**
Chris@376 24 * A class for mapping intensity values onto various colour maps.
Chris@376 25 */
Chris@376 26
Chris@376 27 class ColourMapper : public QObject
Chris@376 28 {
Chris@376 29 Q_OBJECT
Chris@376 30
Chris@376 31 public:
Chris@902 32 ColourMapper(int map, double minValue, double maxValue);
Chris@376 33 virtual ~ColourMapper();
Chris@376 34
Chris@376 35 enum StandardMap {
Chris@376 36 DefaultColours,
Chris@376 37 Sunset,
Chris@376 38 WhiteOnBlack,
Chris@376 39 BlackOnWhite,
Chris@376 40 RedOnBlue,
Chris@376 41 YellowOnBlack,
Chris@376 42 BlueOnBlack,
Chris@376 43 FruitSalad,
Chris@376 44 Banded,
Chris@376 45 Highlight,
Chris@536 46 Printer,
Chris@1012 47 HighGain,
Chris@1012 48 YlGnBu,
Chris@376 49 };
Chris@376 50
Chris@376 51 int getMap() const { return m_map; }
Chris@902 52 double getMinValue() const { return m_min; }
Chris@902 53 double getMaxValue() const { return m_max; }
Chris@376 54
Chris@376 55 static int getColourMapCount();
Chris@376 56 static QString getColourMapName(int n);
Chris@376 57
Chris@902 58 QColor map(double value) const;
Chris@376 59
Chris@376 60 QColor getContrastingColour() const; // for cursors etc
Chris@376 61 bool hasLightBackground() const;
Chris@376 62
Chris@376 63 protected:
Chris@376 64 int m_map;
Chris@902 65 double m_min;
Chris@902 66 double m_max;
Chris@376 67 };
Chris@376 68
Chris@376 69 #endif
Chris@376 70