Mantid
Loading...
Searching...
No Matches
PeakShape.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2015 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
9#include "MantidGeometry/DllConfig.h"
11#include <boost/optional.hpp>
12#include <memory>
13#include <string>
14
15namespace Mantid {
16namespace Geometry {
17
20class MANTID_GEOMETRY_DLL PeakShape {
21public:
25 virtual std::string toJSON() const = 0;
27 virtual PeakShape *clone() const = 0;
29 virtual std::string algorithmName() const = 0;
31 virtual int algorithmVersion() const = 0;
33 virtual std::string shapeName() const = 0;
35 enum RadiusType { Radius = 0, OuterRadius = 1, InnerRadius = 2 };
37 virtual boost::optional<double> radius(RadiusType type) const = 0;
39 virtual ~PeakShape() = default;
40};
41
42using PeakShape_sptr = std::shared_ptr<PeakShape>;
43using PeakShape_const_sptr = std::shared_ptr<const PeakShape>;
44
45} // namespace Geometry
46} // namespace Mantid
PeakShape : Abstract type to describes the shape of a peak.
Definition: PeakShape.h:20
virtual ~PeakShape()=default
Destructor.
virtual PeakShape * clone() const =0
Deep copy this.
virtual Mantid::Kernel::SpecialCoordinateSystem frame() const =0
Coordinte frame used upon creation.
RadiusType
For selecting different radius types.
Definition: PeakShape.h:35
virtual std::string toJSON() const =0
Serialize.
virtual int algorithmVersion() const =0
Algorithm Version.
virtual boost::optional< double > radius(RadiusType type) const =0
Radius.
virtual std::string shapeName() const =0
Shape name.
virtual std::string algorithmName() const =0
Algorithm.
std::shared_ptr< const PeakShape > PeakShape_const_sptr
Definition: PeakShape.h:43
std::shared_ptr< PeakShape > PeakShape_sptr
Definition: PeakShape.h:42
SpecialCoordinateSystem
Special coordinate systems for Q3D.
Helper class which provides the Collimation Length for SANS instruments.