Skip to content
Snippets Groups Projects
Commit 3d6d27e3 authored by t.knopff's avatar t.knopff
Browse files

Use string constants for resolution function item type names

parent 90deb5c5
No related branches found
No related tags found
1 merge request!102Refactor model: resolution function items
...@@ -145,7 +145,7 @@ void DetectorItem::update_resolution_function_tooltips() ...@@ -145,7 +145,7 @@ void DetectorItem::update_resolution_function_tooltips()
{ {
auto& resfuncItem = groupItem<ResolutionFunctionItem>(DetectorItem::P_RESOLUTION_FUNCTION); auto& resfuncItem = groupItem<ResolutionFunctionItem>(DetectorItem::P_RESOLUTION_FUNCTION);
if (resfuncItem.modelType() == "ResolutionFunction2DGaussian") { if (resfuncItem.modelType() == ResolutionFunction2DGaussianItem::M_TYPE) {
QString units = modelType() == SphericalDetectorItem::M_TYPE ? "deg" : "mm"; QString units = modelType() == SphericalDetectorItem::M_TYPE ? "deg" : "mm";
resfuncItem.getItem(ResolutionFunction2DGaussianItem::P_SIGMA_X) resfuncItem.getItem(ResolutionFunction2DGaussianItem::P_SIGMA_X)
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "GUI/Models/PointwiseAxisItem.h" #include "GUI/Models/PointwiseAxisItem.h"
#include "GUI/Models/RealLimitsItems.h" #include "GUI/Models/RealLimitsItems.h"
#include "GUI/Models/RectangularDetectorItem.h" #include "GUI/Models/RectangularDetectorItem.h"
#include "GUI/Models/ResolutionFunctionItems.h"
#include "GUI/Models/SphericalDetectorItem.h" #include "GUI/Models/SphericalDetectorItem.h"
GroupInfoCatalog::GroupInfoCatalog() GroupInfoCatalog::GroupInfoCatalog()
...@@ -149,9 +150,9 @@ GroupInfoCatalog::GroupInfoCatalog() ...@@ -149,9 +150,9 @@ GroupInfoCatalog::GroupInfoCatalog()
addInfo(info); addInfo(info);
info = GroupInfo("Resolution function group"); info = GroupInfo("Resolution function group");
info.add("ResolutionFunctionNone", "None"); info.add(ResolutionFunctionNoneItem::M_TYPE, "None");
info.add("ResolutionFunction2DGaussian", "2D Gaussian"); info.add(ResolutionFunction2DGaussianItem::M_TYPE, "2D Gaussian");
info.setDefaultType("ResolutionFunctionNone"); info.setDefaultType(ResolutionFunctionNoneItem::M_TYPE);
addInfo(info); addInfo(info);
info = GroupInfo("Minimizer library group"); info = GroupInfo("Minimizer library group");
......
...@@ -192,8 +192,8 @@ ItemCatalog::ItemCatalog() ...@@ -192,8 +192,8 @@ ItemCatalog::ItemCatalog()
addItem<SpecularBeamInclinationItem>(); addItem<SpecularBeamInclinationItem>();
addItem<SpecularBeamWavelengthItem>(); addItem<SpecularBeamWavelengthItem>();
add("ResolutionFunctionNone", create_new<ResolutionFunctionNoneItem>); addItem<ResolutionFunctionNoneItem>();
add("ResolutionFunction2DGaussian", create_new<ResolutionFunction2DGaussianItem>); addItem<ResolutionFunction2DGaussianItem>();
add("MaskContainer", create_new<MaskContainerItem>); add("MaskContainer", create_new<MaskContainerItem>);
add("RectangleMask", create_new<RectangleItem>); add("RectangleMask", create_new<RectangleItem>);
......
...@@ -19,8 +19,10 @@ ResolutionFunctionItem::ResolutionFunctionItem(const QString& name) : SessionIte ...@@ -19,8 +19,10 @@ ResolutionFunctionItem::ResolutionFunctionItem(const QString& name) : SessionIte
/* --------------------------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------------------------- */
const QString ResolutionFunctionNoneItem::M_TYPE = "ResolutionFunctionNone";
ResolutionFunctionNoneItem::ResolutionFunctionNoneItem() ResolutionFunctionNoneItem::ResolutionFunctionNoneItem()
: ResolutionFunctionItem("ResolutionFunctionNone") : ResolutionFunctionItem(M_TYPE)
{ {
} }
...@@ -35,8 +37,10 @@ ResolutionFunctionNoneItem::createResolutionFunction(double) const ...@@ -35,8 +37,10 @@ ResolutionFunctionNoneItem::createResolutionFunction(double) const
const QString ResolutionFunction2DGaussianItem::P_SIGMA_X = QString::fromStdString("SigmaX"); const QString ResolutionFunction2DGaussianItem::P_SIGMA_X = QString::fromStdString("SigmaX");
const QString ResolutionFunction2DGaussianItem::P_SIGMA_Y = QString::fromStdString("SigmaY"); const QString ResolutionFunction2DGaussianItem::P_SIGMA_Y = QString::fromStdString("SigmaY");
const QString ResolutionFunction2DGaussianItem::M_TYPE = "ResolutionFunction2DGaussian";
ResolutionFunction2DGaussianItem::ResolutionFunction2DGaussianItem() ResolutionFunction2DGaussianItem::ResolutionFunction2DGaussianItem()
: ResolutionFunctionItem("ResolutionFunction2DGaussian") : ResolutionFunctionItem(M_TYPE)
{ {
addProperty(P_SIGMA_X, 0.02) addProperty(P_SIGMA_X, 0.02)
->setLimits(RealLimits::lowerLimited(0.0)) ->setLimits(RealLimits::lowerLimited(0.0))
......
...@@ -33,6 +33,8 @@ public: ...@@ -33,6 +33,8 @@ public:
class BA_CORE_API_ ResolutionFunctionNoneItem : public ResolutionFunctionItem { class BA_CORE_API_ ResolutionFunctionNoneItem : public ResolutionFunctionItem {
public: public:
static const QString M_TYPE;
ResolutionFunctionNoneItem(); ResolutionFunctionNoneItem();
std::unique_ptr<IResolutionFunction2D> createResolutionFunction(double scale = 1.0) const; std::unique_ptr<IResolutionFunction2D> createResolutionFunction(double scale = 1.0) const;
}; };
...@@ -42,6 +44,9 @@ class BA_CORE_API_ ResolutionFunction2DGaussianItem : public ResolutionFunctionI ...@@ -42,6 +44,9 @@ class BA_CORE_API_ ResolutionFunction2DGaussianItem : public ResolutionFunctionI
public: public:
static const QString P_SIGMA_X; static const QString P_SIGMA_X;
static const QString P_SIGMA_Y; static const QString P_SIGMA_Y;
static const QString M_TYPE;
ResolutionFunction2DGaussianItem(); ResolutionFunction2DGaussianItem();
std::unique_ptr<IResolutionFunction2D> createResolutionFunction(double scale = 1.0) const; std::unique_ptr<IResolutionFunction2D> createResolutionFunction(double scale = 1.0) const;
}; };
......
...@@ -321,7 +321,7 @@ void TransformFromDomain::setDetectorResolution(DetectorItem* detector_item, ...@@ -321,7 +321,7 @@ void TransformFromDomain::setDetectorResolution(DetectorItem* detector_item,
if (auto resfunc = dynamic_cast<const ResolutionFunction2DGaussian*>( if (auto resfunc = dynamic_cast<const ResolutionFunction2DGaussian*>(
p_convfunc->getResolutionFunction2D())) { p_convfunc->getResolutionFunction2D())) {
SessionItem* item = detector_item->setResolutionFunctionType SessionItem* item = detector_item->setResolutionFunctionType
("ResolutionFunction2DGaussian"); (ResolutionFunction2DGaussianItem::M_TYPE);
double scale(1.0); double scale(1.0);
if (detector_item->modelType() == SphericalDetectorItem::M_TYPE) if (detector_item->modelType() == SphericalDetectorItem::M_TYPE)
scale = 1. / Units::deg; scale = 1. / Units::deg;
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "GUI/Models/InstrumentItems.h" #include "GUI/Models/InstrumentItems.h"
#include "GUI/Models/InstrumentModel.h" #include "GUI/Models/InstrumentModel.h"
#include "GUI/Models/RectangularDetectorItem.h" #include "GUI/Models/RectangularDetectorItem.h"
#include "GUI/Models/ResolutionFunctionItems.h"
#include "Tests/GTestWrapper/google_test.h" #include "Tests/GTestWrapper/google_test.h"
class TestDetectorItems : public ::testing::Test { class TestDetectorItems : public ::testing::Test {
...@@ -35,7 +36,7 @@ TEST_F(TestDetectorItems, test_resolutionFunction) ...@@ -35,7 +36,7 @@ TEST_F(TestDetectorItems, test_resolutionFunction)
DetectorItem* detectorItem = instrument->detectorItem(); DetectorItem* detectorItem = instrument->detectorItem();
detectorItem->setResolutionFunctionType("ResolutionFunction2DGaussian"); detectorItem->setResolutionFunctionType(ResolutionFunction2DGaussianItem::M_TYPE);
auto detector = detectorItem->createDetector(); auto detector = detectorItem->createDetector();
auto convol = auto convol =
......
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