Mercurial > hg > svgui
diff layer/SliceLayer.h @ 1238:4d0ca1ab4cd0
Some work to make spectrum layers (and slice layers generally) zoomable in the frequency axis. Also fixes a number of view id mixups in SliceLayer which broke offset calculations for the x axis scale.
author | Chris Cannam |
---|---|
date | Tue, 07 Feb 2017 14:55:19 +0000 |
parents | 4fe7a09be0fe |
children | a34a2a25907c |
line wrap: on
line diff
--- a/layer/SliceLayer.h Fri Jan 27 13:19:21 2017 +0000 +++ b/layer/SliceLayer.h Tue Feb 07 14:55:19 2017 +0000 @@ -65,6 +65,14 @@ virtual bool getValueExtents(double &min, double &max, bool &logarithmic, QString &unit) const; + virtual bool getDisplayExtents(double &min, double &max) const; + virtual bool setDisplayExtents(double min, double max); + + virtual int getVerticalZoomSteps(int &defaultStep) const; + virtual int getCurrentVerticalZoomStep() const; + virtual void setVerticalZoomStep(int); + virtual RangeMapper *getNewVerticalZoomRangeMapper() const; + virtual bool hasTimeXAxis() const { return false; } virtual bool isLayerScrollable(const LayerGeometryProvider *) const { return false; } @@ -109,11 +117,11 @@ void modelAboutToBeDeleted(Model *); protected: - virtual double getXForBin(int bin, int totalBins, double w) const; - virtual int getBinForX(double x, int totalBins, double w) const; + virtual double getXForBin(const LayerGeometryProvider *, double bin) const; + virtual double getBinForX(const LayerGeometryProvider *, double x) const; - virtual double getYForValue(double value, const LayerGeometryProvider *v, double &norm) const; - virtual double getValueForY(double y, const LayerGeometryProvider *v) const; + virtual double getYForValue(const LayerGeometryProvider *v, double value, double &norm) const; + virtual double getValueForY(const LayerGeometryProvider *v, double y) const; virtual QString getFeatureDescriptionAux(LayerGeometryProvider *v, QPoint &, bool includeBinDescription, @@ -140,10 +148,12 @@ float m_threshold; float m_initialThreshold; float m_gain; + int m_minbin; + int m_maxbin; mutable std::vector<int> m_scalePoints; - mutable std::map<const LayerGeometryProvider *, int> m_xorigins; - mutable std::map<const LayerGeometryProvider *, int> m_yorigins; - mutable std::map<const LayerGeometryProvider *, int> m_heights; + mutable std::map<int, int> m_xorigins; // LayerGeometryProvider id -> x + mutable std::map<int, int> m_yorigins; // LayerGeometryProvider id -> y + mutable std::map<int, int> m_heights; // LayerGeometryProvider id -> h mutable sv_frame_t m_currentf0; mutable sv_frame_t m_currentf1; mutable std::vector<float> m_values;