VerticalBinLayer.h
Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Sonic Visualiser
5  An audio file viewer and annotation editor.
6  Centre for Digital Music, Queen Mary, University of London.
7  This file copyright 2006-2016 Chris Cannam and QMUL.
8 
9  This program is free software; you can redistribute it and/or
10  modify it under the terms of the GNU General Public License as
11  published by the Free Software Foundation; either version 2 of the
12  License, or (at your option) any later version. See the file
13  COPYING included with this distribution for more information.
14 */
15 
16 #ifndef VERTICAL_BIN_LAYER_H
17 #define VERTICAL_BIN_LAYER_H
18 
19 #include "SliceableLayer.h"
20 
29 {
30 public:
37  virtual double getYForBin(const LayerGeometryProvider *, double bin) const = 0;
38 
42  virtual int getIYForBin(const LayerGeometryProvider *v, int bin) const {
43  return int(round(getYForBin(v, bin)));
44  }
45 
52  virtual double getBinForY(const LayerGeometryProvider *, double y) const = 0;
53 
57  virtual int getIBinForY(const LayerGeometryProvider *v, int y) const {
58  return int(floor(getBinForY(v, y)));
59  }
60 };
61 
62 #endif
63 
virtual int getIBinForY(const LayerGeometryProvider *v, int y) const
As getBinForY, but rounding to integer values.
virtual double getBinForY(const LayerGeometryProvider *, double y) const =0
Return the bin number, possibly fractional, at the given y coordinate.
Interface for classes that provide geometry information (such as size, start frame, and a large number of other properties) about the disposition of a layer.
Interface for layers in which the Y axis corresponds to bin number rather than scale value...
virtual double getYForBin(const LayerGeometryProvider *, double bin) const =0
Return the y coordinate at which the given bin "starts" (i.e.
Base class for layers that can be sliced, that is, that contain models appropriate for use in a Slice...
virtual int getIYForBin(const LayerGeometryProvider *v, int bin) const
As getYForBin, but rounding to integer values.