From 4b620a45ea7960dfe2833e78f92a5990a49927f5 Mon Sep 17 00:00:00 2001 From: Samuel Fadel Date: Mon, 25 Jan 2016 19:51:19 +0100 Subject: LinearScale: additional helper methods. --- scale.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/scale.h b/scale.h index ccf23c5..4c3f341 100644 --- a/scale.h +++ b/scale.h @@ -18,6 +18,11 @@ public: virtual ~Scale() {} + T rangeMin() const { return m_rangeMin; } + T rangeMax() const { return m_rangeMax; } + T domainMin() const { return m_domainMin; } + T domainMax() const { return m_domainMax; } + void setRangeMin(T rangeMin) { m_rangeMin = rangeMin; valuesUpdated(); } void setRangeMax(T rangeMax) { m_rangeMax = rangeMax; valuesUpdated(); } void setDomainMin(T domainMin) { m_domainMin = domainMin; valuesUpdated(); } @@ -30,6 +35,11 @@ public: valuesUpdated(); } + void setRange(const Scale &other) + { + setRange(other.m_rangeMin, other.m_rangeMax); + } + void setDomain(const T &domainMin, const T &domainMax) { m_domainMin = domainMin; @@ -37,6 +47,11 @@ public: valuesUpdated(); } + void setDomain(const Scale &other) + { + setDomain(other.m_domainMin, other.m_domainMax); + } + void inverse() { std::swap(m_rangeMin, m_domainMin); @@ -70,6 +85,13 @@ public: return (value - Scale::m_domainMin) * m_transformSlope + Scale::m_rangeMin; } + T slope() const { return m_transformSlope; } + + T offset() const + { + return Scale::m_rangeMin - Scale::m_domainMin * m_transformSlope; + } + protected: virtual void valuesUpdated() { -- cgit v1.2.3