diff layer/Colour3DPlotRenderer.h @ 1071:65b183494331 spectrogram-minor-refactor

Start stubbing Colour3DPlotRenderer
author Chris Cannam
date Thu, 23 Jun 2016 17:07:21 +0100
parents
children 76b50b48e1e4
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/layer/Colour3DPlotRenderer.h	Thu Jun 23 17:07:21 2016 +0100
@@ -0,0 +1,72 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Sonic Visualiser
+    An audio file viewer and annotation editor.
+    Centre for Digital Music, Queen Mary, University of London.
+    This file copyright 2006-2016 Chris Cannam and QMUL.
+    
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License as
+    published by the Free Software Foundation; either version 2 of the
+    License, or (at your option) any later version.  See the file
+    COPYING included with this distribution for more information.
+*/
+
+#ifndef COLOUR_3D_PLOT_RENDERER_H
+#define COLOUR_3D_PLOT_RENDERER_H
+
+#include "ColourScale.h"
+
+#include "base/ColumnOp.h"
+
+class DenseThreeDimensionalModel;
+class Dense3DModelPeakCache;
+class FFTModel;
+
+class Colour3DPlotRenderer
+{
+public:
+    enum BinDisplay {
+	AllBins,
+	PeakBins,
+	PeakFrequencies
+    };
+
+    enum BinScale {
+	LinearBinScale,
+	LogBinScale
+    };
+    
+    struct Parameters {
+
+	Parameters() :
+	    source(0), peaks(0), fft(0),
+	    colourScale(ColourScale::Parameters()),
+	    normalization(ColumnOp::NoNormalization),
+	    binDisplay(AllBins), binScale(LinearBinScale),
+	    alwaysOpaque(false), interpolate(false), invertVertical(false) { }
+	
+	DenseThreeDimensionalModel *source;    // always
+	Dense3DModelPeakCache *peaks;	       // optionally
+	FFTModel *fft;			       // optionally
+
+	ColourScale colourScale;       // complete ColourScale object by value
+	ColumnOp::Normalization normalization;
+	BinDisplay binDisplay;
+	BinScale binScale;
+	bool alwaysOpaque;
+	bool interpolate;
+	bool invertVertical;
+    };
+
+    Colour3DPlotRenderer(Parameters parameters) :
+	m_params(parameters)
+    { }
+
+private:
+    Parameters m_params;
+};
+
+#endif
+