Mantid
Loading...
Searching...
No Matches
ConcretePeakTransformFactory.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
10#include <memory>
11
12namespace Mantid {
13namespace Geometry {
19template <typename PeakTransformProduct> class DLLExport ConcretePeakTransformFactory : public PeakTransformFactory {
20public:
26 PeakTransform_sptr createTransform(const std::string &xPlotLabel, const std::string &yPlotLabel) const override {
27 return std::make_shared<PeakTransformProduct>(xPlotLabel, yPlotLabel);
28 }
29
33 PeakTransform_sptr createDefaultTransform() const override { return std::make_shared<PeakTransformProduct>(); }
34};
35} // namespace Geometry
36} // namespace Mantid
#define DLLExport
Definitions of the DLLImport compiler directives for MSVC.
Definition: System.h:53
Concrete PeakTransformFactory producing PeakTransforms of type provided by type argument.
PeakTransform_sptr createTransform(const std::string &xPlotLabel, const std::string &yPlotLabel) const override
Overriden Factory Method.
PeakTransform_sptr createDefaultTransform() const override
Overriden Factory Method.
Abstract type defining Factory Method interface for generating PeakTransforms.
std::shared_ptr< PeakTransform > PeakTransform_sptr
Typedef for a PeakTransform wrapped in a shared_pointer.
Definition: PeakTransform.h:59
Helper class which provides the Collimation Length for SANS instruments.