From 0ec1e067cb1faa20c2a357994a9b719bc52c8e93 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de>
Date: Tue, 4 Apr 2023 15:24:53 +0200
Subject: [PATCH] axes classes: express operator[] through binCenter

---
 Base/Axis/FixedBinAxis.cpp    | 2 +-
 Base/Axis/FixedBinAxis.h      | 4 +---
 Base/Axis/IAxis.h             | 2 +-
 Base/Axis/PointwiseAxis.h     | 3 ---
 Base/Axis/VariableBinAxis.cpp | 5 -----
 Base/Axis/VariableBinAxis.h   | 2 --
 6 files changed, 3 insertions(+), 15 deletions(-)

diff --git a/Base/Axis/FixedBinAxis.cpp b/Base/Axis/FixedBinAxis.cpp
index 2aa1fa5b8b8..73f00afdd0b 100644
--- a/Base/Axis/FixedBinAxis.cpp
+++ b/Base/Axis/FixedBinAxis.cpp
@@ -32,7 +32,7 @@ FixedBinAxis* FixedBinAxis::clone() const
     return result;
 }
 
-double FixedBinAxis::operator[](size_t index) const
+double FixedBinAxis::binCenter(size_t index) const
 {
     if (index >= m_nbins)
         throw std::runtime_error("FixedBinAxis::operator[] -> Error. Wrong index.");
diff --git a/Base/Axis/FixedBinAxis.h b/Base/Axis/FixedBinAxis.h
index 2eff9b0c255..1250f5ed198 100644
--- a/Base/Axis/FixedBinAxis.h
+++ b/Base/Axis/FixedBinAxis.h
@@ -34,14 +34,12 @@ public:
 
     size_t size() const override { return m_nbins; }
 
-    double operator[](size_t index) const override;
-
     Bin1D bin(size_t index) const override;
 
     double min() const override { return m_start; }
     double max() const override { return m_end; }
 
-    double binCenter(size_t index) const override { return (*this)[index]; }
+    double binCenter(size_t index) const override;
 
     size_t findClosestIndex(double value) const override;
 
diff --git a/Base/Axis/IAxis.h b/Base/Axis/IAxis.h
index 376c51ad3de..9af934d6c6a 100644
--- a/Base/Axis/IAxis.h
+++ b/Base/Axis/IAxis.h
@@ -65,7 +65,7 @@ public:
     virtual std::vector<double> binBoundaries() const;
 
     //! indexed accessor retrieves a sample
-    virtual double operator[](size_t index) const = 0;
+    double operator[](size_t index) const { return binCenter(index); }
 
     //! retrieve a 1d bin for the given index
     virtual Bin1D bin(size_t index) const = 0;
diff --git a/Base/Axis/PointwiseAxis.h b/Base/Axis/PointwiseAxis.h
index 9cc24105b2c..4a08355e9b2 100644
--- a/Base/Axis/PointwiseAxis.h
+++ b/Base/Axis/PointwiseAxis.h
@@ -46,9 +46,6 @@ public:
     //! retrieve the number of bins
     size_t size() const override { return m_coordinates.size(); }
 
-    //! indexed accessor retrieves a sample
-    double operator[](size_t index) const override { return binCenter(index); }
-
     //! retrieve a 1d bin for the given index
     Bin1D bin(size_t index) const override;
 
diff --git a/Base/Axis/VariableBinAxis.cpp b/Base/Axis/VariableBinAxis.cpp
index 60241dce213..4fb56920ea3 100644
--- a/Base/Axis/VariableBinAxis.cpp
+++ b/Base/Axis/VariableBinAxis.cpp
@@ -37,11 +37,6 @@ VariableBinAxis* VariableBinAxis::clone() const
     return result;
 }
 
-double VariableBinAxis::operator[](size_t index) const
-{
-    return bin(index).center();
-}
-
 Bin1D VariableBinAxis::bin(size_t index) const
 {
     if (index >= m_nbins)
diff --git a/Base/Axis/VariableBinAxis.h b/Base/Axis/VariableBinAxis.h
index 813e758abf7..3b48887bb69 100644
--- a/Base/Axis/VariableBinAxis.h
+++ b/Base/Axis/VariableBinAxis.h
@@ -28,8 +28,6 @@ public:
 
     size_t size() const override { return m_nbins; }
 
-    double operator[](size_t index) const override;
-
     Bin1D bin(size_t index) const override;
 
     double min() const override;
-- 
GitLab