Mantid
Loading...
Searching...
No Matches
SolidAngleParams.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2023 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
8#pragma once
9
10#include "MantidGeometry/DllConfig.h"
11#include "MantidKernel/V3D.h"
12
13namespace Mantid {
14namespace Geometry {
15
16class MANTID_GEOMETRY_DLL SolidAngleParams {
17public:
18 SolidAngleParams(Kernel::V3D observer, int numberOfCylinderSlices = 10)
19 : m_observer(std::move(observer)), m_numberOfCylinderSlices(numberOfCylinderSlices) {}
20 inline const Kernel::V3D &observer() const { return m_observer; }
21 inline int cylinderSlices() const { return m_numberOfCylinderSlices; }
22 inline const SolidAngleParams copyWithNewObserver(Kernel::V3D newObserver) const {
23 return SolidAngleParams(std::move(newObserver), m_numberOfCylinderSlices);
24 }
25
26private:
29};
30
31} // namespace Geometry
32} // namespace Mantid
SolidAngleParams(Kernel::V3D observer, int numberOfCylinderSlices=10)
const SolidAngleParams copyWithNewObserver(Kernel::V3D newObserver) const
const Kernel::V3D & observer() const
Class for 3D vectors.
Definition V3D.h:34
Helper class which provides the Collimation Length for SANS instruments.
STL namespace.