diff --git a/Framework/API/inc/MantidAPI/IPeaksWorkspace.h b/Framework/API/inc/MantidAPI/IPeaksWorkspace.h index 9b639df34821c66aac3a0639159b500c2204cb2e..0246f6119dc011bf7779202ad94c039d81064e9c 100644 --- a/Framework/API/inc/MantidAPI/IPeaksWorkspace.h +++ b/Framework/API/inc/MantidAPI/IPeaksWorkspace.h @@ -134,6 +134,12 @@ public: virtual std::unique_ptr<Geometry::IPeak> createPeakHKL(const Mantid::Kernel::V3D &HKL) const = 0; + /** + * Create an instance of a peak using default constructor + * @return a pointer to a new Peak object. + */ + virtual std::unique_ptr<Geometry::IPeak> createPeak() const = 0; + //--------------------------------------------------------------------------------------------- /** Determine if the workspace has been integrated using a peaks integration * algorithm. diff --git a/Framework/DataObjects/inc/MantidDataObjects/LeanElasticPeaksWorkspace.h b/Framework/DataObjects/inc/MantidDataObjects/LeanElasticPeaksWorkspace.h index 673557927433877e86d4d70fa1a3d3c61473d9e3..e2f671536441855ac5b736951b55b650e8b889df 100644 --- a/Framework/DataObjects/inc/MantidDataObjects/LeanElasticPeaksWorkspace.h +++ b/Framework/DataObjects/inc/MantidDataObjects/LeanElasticPeaksWorkspace.h @@ -106,6 +106,8 @@ public: std::unique_ptr<Geometry::IPeak> createPeakHKL(const Kernel::V3D &HKL) const override; + std::unique_ptr<Geometry::IPeak> createPeak() const override; + int peakInfoNumber(const Kernel::V3D &qFrame, bool labCoords) const override; std::vector<LeanElasticPeak> &getPeaks(); diff --git a/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h b/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h index c459f8459bec9f3542c7bdbf431172933d2f084d..a06284d2fa48a48ce246529ea963f17572be103f 100644 --- a/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h +++ b/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h @@ -104,6 +104,8 @@ public: std::unique_ptr<Geometry::IPeak> createPeakHKL(const Kernel::V3D &HKL) const override; + std::unique_ptr<Geometry::IPeak> createPeak() const override; + int peakInfoNumber(const Kernel::V3D &qFrame, bool labCoords) const override; std::vector<Peak> &getPeaks(); diff --git a/Framework/DataObjects/src/LeanElasticPeaksWorkspace.cpp b/Framework/DataObjects/src/LeanElasticPeaksWorkspace.cpp index 2c471adb77e7c2f59444fd0b398fc1058ebd6a3d..942e74339c4395ff663b520364ec214d29d327be 100644 --- a/Framework/DataObjects/src/LeanElasticPeaksWorkspace.cpp +++ b/Framework/DataObjects/src/LeanElasticPeaksWorkspace.cpp @@ -327,6 +327,15 @@ LeanElasticPeaksWorkspace::createPeakHKL(const V3D &HKL) const { return peak; } +/** + * Create a Peak using default values + * + * @return a point to a new peak object + */ +std::unique_ptr<IPeak> LeanElasticPeaksWorkspace::createPeak() const { + return std::make_unique<LeanElasticPeak>(); +} + /** * Returns selected information for a "peak" at QLabFrame. * diff --git a/Framework/DataObjects/src/PeaksWorkspace.cpp b/Framework/DataObjects/src/PeaksWorkspace.cpp index 2741e8cb74c7a2eca8f841484bd2ae4bf6ba2d05..52f7be186a9bd892b9d076122e6fb2e120da1b33 100644 --- a/Framework/DataObjects/src/PeaksWorkspace.cpp +++ b/Framework/DataObjects/src/PeaksWorkspace.cpp @@ -509,6 +509,15 @@ std::unique_ptr<IPeak> PeaksWorkspace::createPeakHKL(const V3D &HKL) const { return peak; } +/** + * Create a Peak using default values + * + * @return a point to a new peak object + */ +std::unique_ptr<IPeak> PeaksWorkspace::createPeak() const { + return std::make_unique<Peak>(); +} + /** * Returns selected information for a "peak" at QLabFrame. *