diff --git a/GUI/Model/Beam/BeamDistributionItem.h b/GUI/Model/Beam/BeamDistributionItem.h index faa043b65d86a4f6ed6df62659a429101fa165ab..f4862706b5159b5965856a5a6af1d27df5321155 100644 --- a/GUI/Model/Beam/BeamDistributionItem.h +++ b/GUI/Model/Beam/BeamDistributionItem.h @@ -36,7 +36,10 @@ public: virtual double scaleFactor() const; - template <typename T> T* setDistributionItemType(); + template <typename T> T* setDistributionItemType() + { + return m_distribution.createCertainItem<T>(); + } DistributionItem* distributionItem() const { return m_distribution.certainItem(); } PolyItem<DistributionsCatalog>& distributionSelection() { return m_distribution; } @@ -46,10 +49,4 @@ protected: PolyItem<DistributionsCatalog> m_distribution; }; -template <typename T> T* BeamDistributionItem::setDistributionItemType() -{ - m_distribution.createCertainItem<T>(); - return dynamic_cast<T*>(m_distribution.certainItem()); -} - #endif // BORNAGAIN_GUI_MODEL_BEAM_BEAMDISTRIBUTIONITEM_H diff --git a/GUI/Model/Detector/DetectorItem.h b/GUI/Model/Detector/DetectorItem.h index dc7869e488b1e770b60d4750eb335b060b575066..1027d33551e3089732134c7a0064f61132722570 100644 --- a/GUI/Model/Detector/DetectorItem.h +++ b/GUI/Model/Detector/DetectorItem.h @@ -38,7 +38,10 @@ public: return m_resolution_function; } - template <typename T> T* setResolutionFunctionType(); + template <typename T> T* setResolutionFunctionType() + { + return m_resolution_function.createCertainItem<T>(); + } void writeTo(QXmlStreamWriter* w) const; void readFrom(QXmlStreamReader* r); @@ -63,10 +66,4 @@ private: std::unique_ptr<MasksSet> m_prjns; //!< projections }; -template <typename T> T* DetectorItem::setResolutionFunctionType() -{ - m_resolution_function.createCertainItem<T>(); - return dynamic_cast<T*>(m_resolution_function.certainItem()); -} - #endif // BORNAGAIN_GUI_MODEL_DETECTOR_DETECTORITEM_H diff --git a/GUI/Model/Sim/InstrumentItems.h b/GUI/Model/Sim/InstrumentItems.h index abe8900b0a2483e723ae84d8c5fb3e00529207db..b391b2a9cef150485c82138604a51a7964b26ed0 100644 --- a/GUI/Model/Sim/InstrumentItems.h +++ b/GUI/Model/Sim/InstrumentItems.h @@ -66,7 +66,11 @@ public: template <typename T> bool is() const { return dynamic_cast<const T*>(this) != nullptr; } - template <typename T> T* setBackgroundItemType(); + template <typename T> T* setBackgroundItemType() + { + return m_background.createCertainItem<T>(); + } + PolyItem<BackgroundItemCatalog>& backgroundSelection() { return m_background; } BackgroundItem* backgroundItem() const { return m_background.certainItem(); } @@ -197,14 +201,4 @@ private: AxisProperty m_z_axis; }; - -// ************************************************************************************************ -// templated functions implementation -// ************************************************************************************************ - -template <typename T> T* InstrumentItem::setBackgroundItemType() -{ - return m_background.createCertainItem<T>(); -} - #endif // BORNAGAIN_GUI_MODEL_SIM_INSTRUMENTITEMS_H