# HG changeset patch # User Chris Cannam # Date 1468914913 -3600 # Node ID 67dd16e33a3dd0b94957da2190226111d4320466 # Parent 477521f95a84475ec815e2d6dc5451821d0b07e5 Make VerticalBinLayer an actual Layer (via SliceableLayer) diff -r 477521f95a84 -r 67dd16e33a3d layer/Colour3DPlotLayer.h --- a/layer/Colour3DPlotLayer.h Mon Jul 18 15:37:15 2016 +0100 +++ b/layer/Colour3DPlotLayer.h Tue Jul 19 08:55:13 2016 +0100 @@ -38,8 +38,7 @@ * implementation that derived the spectrogram itself from a * DenseTimeValueModel instead of using a three-dimensional model. */ -class Colour3DPlotLayer : public SliceableLayer, - public VerticalBinLayer +class Colour3DPlotLayer : public VerticalBinLayer { Q_OBJECT diff -r 477521f95a84 -r 67dd16e33a3d layer/Colour3DPlotRenderer.cpp --- a/layer/Colour3DPlotRenderer.cpp Mon Jul 18 15:37:15 2016 +0100 +++ b/layer/Colour3DPlotRenderer.cpp Tue Jul 19 08:55:13 2016 +0100 @@ -215,6 +215,8 @@ //!!! todo, here or in caller: illuminateLocalFeatures + //!!! todo: colourmap rotation + //!!! fft model scaling? //!!! should we own the Dense3DModelPeakCache here? or should it persist diff -r 477521f95a84 -r 67dd16e33a3d layer/SpectrogramLayer.h --- a/layer/SpectrogramLayer.h Mon Jul 18 15:37:15 2016 +0100 +++ b/layer/SpectrogramLayer.h Tue Jul 19 08:55:13 2016 +0100 @@ -48,8 +48,7 @@ * DenseTimeValueModel) in spectrogram form. */ -class SpectrogramLayer : public SliceableLayer, - public VerticalBinLayer, +class SpectrogramLayer : public VerticalBinLayer, public PowerOfSqrtTwoZoomConstraint { Q_OBJECT diff -r 477521f95a84 -r 67dd16e33a3d layer/VerticalBinLayer.h --- a/layer/VerticalBinLayer.h Mon Jul 18 15:37:15 2016 +0100 +++ b/layer/VerticalBinLayer.h Tue Jul 19 08:55:13 2016 +0100 @@ -16,13 +16,15 @@ #ifndef VERTICAL_BIN_LAYER_H #define VERTICAL_BIN_LAYER_H +#include "SliceableLayer.h" + /** * Interface for layers in which the Y axis corresponds to bin number * rather than scale value. Colour3DPlotLayer is the obvious example. *!!! should just be a mapper interface, not a layer one? *!!! or even an application of RangeMapper */ -class VerticalBinLayer +class VerticalBinLayer : public SliceableLayer { public: /**