Mantid
Loading...
Searching...
No Matches
PeaksOnSurface.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2013 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
11namespace Mantid {
12namespace Crystal {
13
17class MANTID_CRYSTAL_DLL PeaksOnSurface : public PeaksIntersection {
18public:
20
21 const std::string name() const override;
23 const std::string summary() const override { return "Find peaks intersecting a single surface region."; }
24
25 int version() const override;
26 const std::vector<std::string> seeAlso() const override { return {"PeaksInRegion"}; }
27 const std::string category() const override;
28
29private:
30 void init() override;
31 void exec() override;
32
33 // Overriden base class methods.
34 void validateExtentsInput() const override;
35 int numberOfFaces() const override;
36 VecVecV3D createFaces() const override;
37 bool pointOutsideAnyExtents(const Mantid::Kernel::V3D &testPoint) const override;
38 bool pointInsideAllExtents(const Mantid::Kernel::V3D &testPoint,
39 const Mantid::Kernel::V3D &peakCenter) const override;
40 void checkTouchPoint(const Mantid::Kernel::V3D &touchPoint, const Mantid::Kernel::V3D &normal,
41 const Mantid::Kernel::V3D &faceVertex) const override;
42
44 std::vector<double> m_extents;
45
50
51 // Lines used in bounary calculations.
56};
57
59bool MANTID_CRYSTAL_DLL lineIntersectsSphere(const Mantid::Kernel::V3D &line, const Mantid::Kernel::V3D &lineStart,
60 const Mantid::Kernel::V3D &peakCenter, const double peakRadius);
61
62} // namespace Crystal
63} // namespace Mantid
size_t lineStart
Definition: LineProfile.cpp:86
PeaksIntersection : Abstract base algorithm class for algorithms that identify peaks interacting with...
PeaksOnSurface : Check peak workspace interaction with a single surface.
Mantid::Kernel::V3D m_vertex1
std::vector< double > m_extents
Extents.
Mantid::Kernel::V3D m_vertex3
const std::vector< std::string > seeAlso() const override
Function to return all of the seeAlso (these are not validated) algorithms related to this algorithm....
Mantid::Kernel::V3D m_vertex2
Mantid::Kernel::V3D m_vertex4
const std::string summary() const override
Summary of algorithms purpose.
Class for 3D vectors.
Definition: V3D.h:34
std::vector< VecV3D > VecVecV3D
bool MANTID_CRYSTAL_DLL lineIntersectsSphere(const Mantid::Kernel::V3D &line, const Mantid::Kernel::V3D &lineStart, const Mantid::Kernel::V3D &peakCenter, const double peakRadius)
Non-member helper function.
Helper class which provides the Collimation Length for SANS instruments.