Skip to content
Snippets Groups Projects
Commit 85a362b8 authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

Scale parameter introduced to DistributionItems to allow centralized deg2rad convertion.

parent 0e7c336e
No related branches found
No related tags found
No related merge requests found
...@@ -25,7 +25,7 @@ const QString DistributionItem::P_SIGMA_FACTOR = Constants::DistributionSigmaFac ...@@ -25,7 +25,7 @@ const QString DistributionItem::P_SIGMA_FACTOR = Constants::DistributionSigmaFac
const QString DistributionItem::P_IS_INITIALIZED = "is initialized"; const QString DistributionItem::P_IS_INITIALIZED = "is initialized";
const QString DistributionItem::P_LIMITS = "Limits"; const QString DistributionItem::P_LIMITS = "Limits";
DistributionItem::DistributionItem(const QString name) : SessionItem(name) DistributionItem::DistributionItem(const QString& name) : SessionItem(name)
{ {
addProperty(P_IS_INITIALIZED, false)->setVisible(false); addProperty(P_IS_INITIALIZED, false)->setVisible(false);
} }
...@@ -69,8 +69,9 @@ DistributionNoneItem::DistributionNoneItem() : DistributionItem(Constants::Distr ...@@ -69,8 +69,9 @@ DistributionNoneItem::DistributionNoneItem() : DistributionItem(Constants::Distr
getItem(P_VALUE)->setDecimals(4); getItem(P_VALUE)->setDecimals(4);
} }
std::unique_ptr<IDistribution1D> DistributionNoneItem::createDistribution() const std::unique_ptr<IDistribution1D> DistributionNoneItem::createDistribution(double scale) const
{ {
Q_UNUSED(scale);
return nullptr; return nullptr;
} }
...@@ -91,11 +92,11 @@ DistributionGateItem::DistributionGateItem() : DistributionItem(Constants::Distr ...@@ -91,11 +92,11 @@ DistributionGateItem::DistributionGateItem() : DistributionItem(Constants::Distr
register_number_of_samples(); register_number_of_samples();
} }
std::unique_ptr<IDistribution1D> DistributionGateItem::createDistribution() const std::unique_ptr<IDistribution1D> DistributionGateItem::createDistribution(double scale) const
{ {
double min = getItemValue(P_MIN).toDouble(); double min = getItemValue(P_MIN).toDouble();
double max = getItemValue(P_MAX).toDouble(); double max = getItemValue(P_MAX).toDouble();
return GUIHelpers::make_unique<DistributionGate>(min, max); return GUIHelpers::make_unique<DistributionGate>(scale*min, scale*max);
} }
void DistributionGateItem::init_distribution(double value) void DistributionGateItem::init_distribution(double value)
...@@ -122,11 +123,11 @@ DistributionLorentzItem::DistributionLorentzItem() ...@@ -122,11 +123,11 @@ DistributionLorentzItem::DistributionLorentzItem()
register_limits(); register_limits();
} }
std::unique_ptr<IDistribution1D> DistributionLorentzItem::createDistribution() const std::unique_ptr<IDistribution1D> DistributionLorentzItem::createDistribution(double scale) const
{ {
double mean = getItemValue(P_MEAN).toDouble(); double mean = getItemValue(P_MEAN).toDouble();
double hwhm = getItemValue(P_HWHM).toDouble(); double hwhm = getItemValue(P_HWHM).toDouble();
return GUIHelpers::make_unique<DistributionLorentz>(mean, hwhm); return GUIHelpers::make_unique<DistributionLorentz>(scale*mean, scale*hwhm);
} }
void DistributionLorentzItem::init_distribution(double value) void DistributionLorentzItem::init_distribution(double value)
...@@ -155,11 +156,11 @@ DistributionGaussianItem::DistributionGaussianItem() ...@@ -155,11 +156,11 @@ DistributionGaussianItem::DistributionGaussianItem()
register_limits(); register_limits();
} }
std::unique_ptr<IDistribution1D> DistributionGaussianItem::createDistribution() const std::unique_ptr<IDistribution1D> DistributionGaussianItem::createDistribution(double scale) const
{ {
double mean = getItemValue(P_MEAN).toDouble(); double mean = getItemValue(P_MEAN).toDouble();
double std_dev = getItemValue(P_STD_DEV).toDouble(); double std_dev = getItemValue(P_STD_DEV).toDouble();
return GUIHelpers::make_unique<DistributionGaussian>(mean, std_dev); return GUIHelpers::make_unique<DistributionGaussian>(scale*mean, scale*std_dev);
} }
void DistributionGaussianItem::init_distribution(double value) void DistributionGaussianItem::init_distribution(double value)
...@@ -189,11 +190,11 @@ DistributionLogNormalItem::DistributionLogNormalItem() ...@@ -189,11 +190,11 @@ DistributionLogNormalItem::DistributionLogNormalItem()
register_limits(); register_limits();
} }
std::unique_ptr<IDistribution1D> DistributionLogNormalItem::createDistribution() const std::unique_ptr<IDistribution1D> DistributionLogNormalItem::createDistribution(double scale) const
{ {
double median = getItemValue(P_MEDIAN).toDouble(); double median = getItemValue(P_MEDIAN).toDouble();
double scale_par = getItemValue(P_SCALE_PAR).toDouble(); double scale_par = getItemValue(P_SCALE_PAR).toDouble();
return GUIHelpers::make_unique<DistributionLogNormal>(median, scale_par); return GUIHelpers::make_unique<DistributionLogNormal>(scale*median, scale_par);
} }
void DistributionLogNormalItem::init_distribution(double value) void DistributionLogNormalItem::init_distribution(double value)
...@@ -222,11 +223,11 @@ DistributionCosineItem::DistributionCosineItem() ...@@ -222,11 +223,11 @@ DistributionCosineItem::DistributionCosineItem()
register_limits(); register_limits();
} }
std::unique_ptr<IDistribution1D> DistributionCosineItem::createDistribution() const std::unique_ptr<IDistribution1D> DistributionCosineItem::createDistribution(double scale) const
{ {
double mean = getItemValue(P_MEAN).toDouble(); double mean = getItemValue(P_MEAN).toDouble();
double sigma = getItemValue(P_SIGMA).toDouble(); double sigma = getItemValue(P_SIGMA).toDouble();
return GUIHelpers::make_unique<DistributionCosine>(mean, sigma); return GUIHelpers::make_unique<DistributionCosine>(scale*mean, scale*sigma);
} }
void DistributionCosineItem::init_distribution(double value) void DistributionCosineItem::init_distribution(double value)
......
...@@ -28,9 +28,9 @@ public: ...@@ -28,9 +28,9 @@ public:
static const QString P_SIGMA_FACTOR; static const QString P_SIGMA_FACTOR;
static const QString P_IS_INITIALIZED; static const QString P_IS_INITIALIZED;
static const QString P_LIMITS; static const QString P_LIMITS;
explicit DistributionItem(const QString name); explicit DistributionItem(const QString& name);
virtual std::unique_ptr<IDistribution1D> createDistribution() const=0; virtual std::unique_ptr<IDistribution1D> createDistribution(double scale = 1.0) const=0;
void init_parameters(double); void init_parameters(double);
protected: protected:
...@@ -47,7 +47,7 @@ public: ...@@ -47,7 +47,7 @@ public:
static const QString P_VALUE; static const QString P_VALUE;
DistributionNoneItem(); DistributionNoneItem();
virtual std::unique_ptr<IDistribution1D> createDistribution() const; virtual std::unique_ptr<IDistribution1D> createDistribution(double scale = 1.0) const;
virtual void init_distribution(double value); virtual void init_distribution(double value);
}; };
...@@ -58,7 +58,7 @@ public: ...@@ -58,7 +58,7 @@ public:
static const QString P_MAX; static const QString P_MAX;
DistributionGateItem(); DistributionGateItem();
virtual std::unique_ptr<IDistribution1D> createDistribution() const; virtual std::unique_ptr<IDistribution1D> createDistribution(double scale = 1.0) const;
virtual void init_distribution(double value); virtual void init_distribution(double value);
}; };
...@@ -70,7 +70,7 @@ public: ...@@ -70,7 +70,7 @@ public:
static const QString P_HWHM; static const QString P_HWHM;
DistributionLorentzItem(); DistributionLorentzItem();
virtual std::unique_ptr<IDistribution1D> createDistribution() const; virtual std::unique_ptr<IDistribution1D> createDistribution(double scale = 1.0) const;
virtual void init_distribution(double value); virtual void init_distribution(double value);
}; };
...@@ -81,7 +81,7 @@ public: ...@@ -81,7 +81,7 @@ public:
static const QString P_STD_DEV; static const QString P_STD_DEV;
DistributionGaussianItem(); DistributionGaussianItem();
virtual std::unique_ptr<IDistribution1D> createDistribution() const; virtual std::unique_ptr<IDistribution1D> createDistribution(double scale = 1.0) const;
virtual void init_distribution(double value); virtual void init_distribution(double value);
}; };
...@@ -93,7 +93,7 @@ public: ...@@ -93,7 +93,7 @@ public:
static const QString P_SCALE_PAR; static const QString P_SCALE_PAR;
DistributionLogNormalItem(); DistributionLogNormalItem();
virtual std::unique_ptr<IDistribution1D> createDistribution() const; virtual std::unique_ptr<IDistribution1D> createDistribution(double scale = 1.0) const;
virtual void init_distribution(double value); virtual void init_distribution(double value);
}; };
...@@ -105,7 +105,7 @@ public: ...@@ -105,7 +105,7 @@ public:
static const QString P_SIGMA; static const QString P_SIGMA;
DistributionCosineItem(); DistributionCosineItem();
virtual std::unique_ptr<IDistribution1D> createDistribution() const; virtual std::unique_ptr<IDistribution1D> createDistribution(double scale = 1.0) const;
virtual void init_distribution(double value); virtual void init_distribution(double value);
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment