From e3458da80fba0872b860b51dae723fb18ed6bab5 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Sun, 22 Jan 2023 13:57:09 +0100
Subject: [PATCH] rm distribution limits from GUI

---
 GUI/Model/Descriptor/DistributionItems.cpp    | 14 +------------
 GUI/Model/Descriptor/DistributionItems.h      |  6 ------
 GUI/Model/Device/BeamAngleItems.cpp           |  4 ----
 GUI/Model/Device/BeamDistributionItem.cpp     |  3 +--
 GUI/Model/Device/BeamWavelengthItem.cpp       |  3 ---
 .../Device/SpecularBeamInclinationItem.cpp    |  2 --
 GUI/Model/FromCore/ItemizeSimulation.cpp      |  3 ---
 GUI/View/Instrument/DistributionPlot.cpp      | 20 +------------------
 GUI/View/Instrument/DistributionPlot.h        |  1 -
 9 files changed, 3 insertions(+), 53 deletions(-)

diff --git a/GUI/Model/Descriptor/DistributionItems.cpp b/GUI/Model/Descriptor/DistributionItems.cpp
index 8e8e2535dc4..b40fbaa52ac 100644
--- a/GUI/Model/Descriptor/DistributionItems.cpp
+++ b/GUI/Model/Descriptor/DistributionItems.cpp
@@ -44,11 +44,6 @@ using std::variant;
 
 DistributionItem::DistributionItem() {}
 
-void DistributionItem::setLimits(const RealLimits& limits)
-{
-    m_limits = limits;
-}
-
 void DistributionItem::initSigmaFactor()
 {
     m_sigmaFactor.init("Sigma factor", "", 2.0, Unit::unitless, "sigmaFactor");
@@ -63,7 +58,7 @@ void DistributionItem::writeTo(QXmlStreamWriter* w) const
 {
     XML::writeAttribute(w, XML::Attrib::version, uint(1));
 
-    // m_limits and a changed unit (with setUnit) will not be serialized here. They have to be set
+    // a changed unit (with setUnit) will not be serialized here. They have to be set
     // again by the owner of DistributionItem after reading it
 
     // number of samples
@@ -115,12 +110,6 @@ void SymmetricResolutionItem::setUnit(const variant<QString, Unit>& unit)
     m_mean.setUnit(unit);
 }
 
-void SymmetricResolutionItem::setLimits(const RealLimits& limits)
-{
-    DistributionItem::setLimits(limits);
-    m_mean.setLimits(limits);
-}
-
 void SymmetricResolutionItem::setMeanDecimals(uint d)
 {
     m_mean.setDecimals(d);
@@ -325,7 +314,6 @@ void DistributionLorentzItem::initDistribution(double value)
 
     setMean(value);
     setHwhm(hw);
-    m_hwhm.setLimits(RealLimits::lowerLimited(0.0));
 }
 
 void DistributionLorentzItem::writeTo(QXmlStreamWriter* w) const
diff --git a/GUI/Model/Descriptor/DistributionItems.h b/GUI/Model/Descriptor/DistributionItems.h
index 9497f6ee2cb..0d5d9634139 100644
--- a/GUI/Model/Descriptor/DistributionItems.h
+++ b/GUI/Model/Descriptor/DistributionItems.h
@@ -37,9 +37,6 @@ public:
 
     virtual void initDistribution(double) {}
 
-    virtual void setLimits(const RealLimits& limits);
-    RealLimits limits() const { return m_limits; }
-
     //! Set the unit of the distributed value
     virtual void setUnit(const std::variant<QString, Unit>& unit) = 0;
 
@@ -64,8 +61,6 @@ public:
 protected:
     void initSigmaFactor();
 
-    RealLimits m_limits;
-
     uint m_numberOfSamples = 5;
 
     DoubleProperty m_sigmaFactor;
@@ -75,7 +70,6 @@ class SymmetricResolutionItem : public DistributionItem {
 public:
     SymmetricResolutionItem(double mean, int decimals = 3, const QString& meanLabel = "Mean");
     void setUnit(const std::variant<QString, Unit>& unit) override;
-    void setLimits(const RealLimits& limits) override;
 
     DoubleProperty& mean() { return m_mean; }
     const DoubleProperty& mean() const { return m_mean; }
diff --git a/GUI/Model/Device/BeamAngleItems.cpp b/GUI/Model/Device/BeamAngleItems.cpp
index a2501e9cd23..d41bbadf84f 100644
--- a/GUI/Model/Device/BeamAngleItems.cpp
+++ b/GUI/Model/Device/BeamAngleItems.cpp
@@ -26,14 +26,12 @@ void BeamAzimuthalAngleItem::readFrom(QXmlStreamReader* r)
     // Here we only directly call parental method, so no versioning
     BeamDistributionItem::readFrom(r);
 
-    m_distribution->setLimits(RealLimits::limited(-90.0, 90.0));
     m_distribution->setUnit(Unit::degree);
 }
 
 void BeamAzimuthalAngleItem::initDistribution(DistributionItem* newDistribution,
                                               const DistributionItem* currentDistribution)
 {
-    newDistribution->setLimits(RealLimits::limited(-90.0, 90.0));
     newDistribution->setUnit(Unit::degree);
 
     double meanVal = 0.0;
@@ -71,7 +69,6 @@ void BeamInclinationAngleItem::readFrom(QXmlStreamReader* r)
     // Here we only directly call parental method, so no versioning
     BeamDistributionItem::readFrom(r);
 
-    m_distribution->setLimits(RealLimits::limited(-90.0, 90.0));
     m_distribution->setUnit(Unit::degree);
 }
 
@@ -88,7 +85,6 @@ double BeamInclinationAngleItem::scaleFactor() const
 void BeamInclinationAngleItem::initDistribution(DistributionItem* newDistribution,
                                                 const DistributionItem* currentDistribution)
 {
-    newDistribution->setLimits(RealLimits::limited(-90.0, 90.0));
     newDistribution->setUnit(Unit::degree);
 
     double meanVal = 0.2;
diff --git a/GUI/Model/Device/BeamDistributionItem.cpp b/GUI/Model/Device/BeamDistributionItem.cpp
index d5a98fbaa0e..92f86185aa2 100644
--- a/GUI/Model/Device/BeamDistributionItem.cpp
+++ b/GUI/Model/Device/BeamDistributionItem.cpp
@@ -60,10 +60,9 @@ std::unique_ptr<ParameterDistribution> BeamDistributionItem::getParameterDistrib
         if (distribution1D) {
             const auto nbrOfSamples = d->numberOfSamples();
             const double sigmaFactor = d->hasSigmaFactor() ? d->sigmaFactor() : 0.0;
-            const auto limits = d->limits().scaledLimits(scaleFactor());
 
             return std::make_unique<ParameterDistribution>(which, *distribution1D, nbrOfSamples,
-                                                           sigmaFactor, limits);
+                                                           sigmaFactor);
         }
     }
     return {};
diff --git a/GUI/Model/Device/BeamWavelengthItem.cpp b/GUI/Model/Device/BeamWavelengthItem.cpp
index 054242d2d81..6f4fda43a3e 100644
--- a/GUI/Model/Device/BeamWavelengthItem.cpp
+++ b/GUI/Model/Device/BeamWavelengthItem.cpp
@@ -22,7 +22,6 @@ const double default_wl = 0.1;
 void initDistribution(DistributionItem* newDistribution,
                       const DistributionItem* currentDistribution)
 {
-    newDistribution->setLimits(RealLimits::positive());
     newDistribution->setUnit(Unit::nanometer);
 
     double meanVal = default_wl;
@@ -58,7 +57,6 @@ void BeamWavelengthItem::readFrom(QXmlStreamReader* r)
     // Here we only directly call parental method, so no versioning
     BeamDistributionItem::readFrom(r);
 
-    m_distribution->setLimits(RealLimits::positive());
     m_distribution->setUnit(Unit::nanometer);
 }
 
@@ -82,6 +80,5 @@ void SpecularBeamWavelengthItem::setToRange(const RealLimits& limits)
                 limits.isLimited() ? (limits.upperLimit() - limits.lowerLimit()) / 2. : default_wl;
             symmetricDistribution->setMean(new_value);
         }
-        symmetricDistribution->setLimits(limits);
     }
 }
diff --git a/GUI/Model/Device/SpecularBeamInclinationItem.cpp b/GUI/Model/Device/SpecularBeamInclinationItem.cpp
index cdfd84571ff..461b5dae3c7 100644
--- a/GUI/Model/Device/SpecularBeamInclinationItem.cpp
+++ b/GUI/Model/Device/SpecularBeamInclinationItem.cpp
@@ -46,7 +46,6 @@ void setAxisPresentationDefaults(BasicAxisItem* axisItem)
 void initDistribution(DistributionItem* newDistribution,
                       const DistributionItem* currentDistribution)
 {
-    newDistribution->setLimits(RealLimits::limited(-90.0, 90.0));
     newDistribution->setUnit(Unit::degree);
 
     double meanVal = 0.0;
@@ -115,7 +114,6 @@ void SpecularBeamInclinationItem::readFrom(QXmlStreamReader* r)
         // parameters from base class
         if (tag == Tag::BaseData) {
             BeamDistributionItem::readFrom(r);
-            m_distribution->setLimits(RealLimits::limited(-90.0, 90.0));
             m_distribution->setUnit(Unit::degree);
             XML::gotoEndElementOfTag(r, tag);
 
diff --git a/GUI/Model/FromCore/ItemizeSimulation.cpp b/GUI/Model/FromCore/ItemizeSimulation.cpp
index 9302b12ff40..20ebf344f46 100644
--- a/GUI/Model/FromCore/ItemizeSimulation.cpp
+++ b/GUI/Model/FromCore/ItemizeSimulation.cpp
@@ -204,9 +204,6 @@ void setDistribution(BeamDistributionItem* part_distr_item, ParameterDistributio
 
     if (distItem->hasSigmaFactor())
         distItem->setSigmaFactor(par_distr.sigmaFactor());
-
-    // TODO It's wrong if domain distribution made for angles.
-    distItem->setLimits(par_distr.getLimits().scaledLimits(factor));
 }
 
 void setItemFromSample(BeamDistributionItem* beam_distribution_item,
diff --git a/GUI/View/Instrument/DistributionPlot.cpp b/GUI/View/Instrument/DistributionPlot.cpp
index 4b9ba810b0e..0ed9358e0ca 100644
--- a/GUI/View/Instrument/DistributionPlot.cpp
+++ b/GUI/View/Instrument/DistributionPlot.cpp
@@ -178,13 +178,10 @@ void DistributionPlot::plot_multiple_values()
     if (m_distItem->hasSigmaFactor())
         sigmafactor = m_distItem->sigmaFactor();
 
-    plotLimits(m_distItem->limits());
-
     auto dist = m_distItem->createDistribution();
 
     // Calculating bars
-    std::vector<double> xp =
-        dist->equidistantPoints(numberOfSamples, sigmafactor, m_distItem->limits());
+    std::vector<double> xp = dist->equidistantPoints(numberOfSamples, sigmafactor);
     std::vector<double> yp(xp.size());
     std::transform(xp.begin(), xp.end(), yp.begin(),
                    [&](double value) { return dist->probabilityDensity(value); });
@@ -268,21 +265,6 @@ void DistributionPlot::plotVerticalLine(double xMin, double yMin, double xMax, d
     line->end->setCoords(xMax, yMax);
 }
 
-//! Plots red line denoting lower and upper limits, if any.
-
-void DistributionPlot::plotLimits(const RealLimits& limits)
-{
-    if (limits.hasLowerLimit()) {
-        double value = limits.lowerLimit();
-        plotVerticalLine(value, default_yrange.first, value, default_yrange.second, Qt::red);
-    }
-
-    if (limits.hasUpperLimit()) {
-        double value = limits.upperLimit();
-        plotVerticalLine(value, default_yrange.first, value, default_yrange.second, Qt::red);
-    }
-}
-
 void DistributionPlot::setXAxisName(const QString& xAxisName)
 {
     m_plot->xAxis->setLabel(xAxisName);
diff --git a/GUI/View/Instrument/DistributionPlot.h b/GUI/View/Instrument/DistributionPlot.h
index c83d325f749..e66a440aa01 100644
--- a/GUI/View/Instrument/DistributionPlot.h
+++ b/GUI/View/Instrument/DistributionPlot.h
@@ -54,7 +54,6 @@ private:
     void plotFunction(const QVector<double>& xFunc, const QVector<double>& yFunc);
     void plotVerticalLine(double xMin, double yMin, double xMax, double yMax,
                           const QColor& color = Qt::blue);
-    void plotLimits(const RealLimits& limits);
     QPoint positionForCautionSign();
 
     QCustomPlot* m_plot;
-- 
GitLab