Mantid
Loading...
Searching...
No Matches
ShapeRotation.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2026 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"
10#include "MantidKernel/Matrix.h"
11
12#include <memory>
13
14namespace Mantid {
15namespace Geometry {
16
17class IObject;
18
19/* Reconcile a sample shape with the goniometer rotation of the workspace holding it: both ask the
20 * shape which frame it is already in rather than rotating blindly. See IObject::getAppliedRotation.
21 */
22
33MANTID_GEOMETRY_DLL std::shared_ptr<IObject> getLabFrameShape(const IObject &shape,
34 const Kernel::Matrix<double> &goniometerR);
35
40MANTID_GEOMETRY_DLL Kernel::Matrix<double> outstandingGoniometerRotation(const IObject &shape,
41 const Kernel::Matrix<double> &goniometerR);
42
43} // namespace Geometry
44} // namespace Mantid
MANTID_GEOMETRY_DLL std::shared_ptr< IObject > getLabFrameShape(const IObject &shape, const Kernel::Matrix< double > &goniometerR)
The shape as it sits in the lab frame: a clone rotated by whatever part of goniometerR it does not al...
MANTID_GEOMETRY_DLL Kernel::Matrix< double > outstandingGoniometerRotation(const IObject &shape, const Kernel::Matrix< double > &goniometerR)
The part of goniometerR that the shape does not already carry.
Helper class which provides the Collimation Length for SANS instruments.