9#include "MantidKernel/DllConfig.h"
17template <
class T>
class Matrix;
39class MANTID_KERNEL_DLL
Quat {
44 Quat(
const double _w,
const double _a,
const double _b,
const double _c);
51 Quat(
const double _deg,
const V3D &_axis);
54 void operator()(
const Quat &);
55 void operator()(
const double ww,
const double aa,
const double bb,
const double cc);
56 void operator()(
const double angle,
const V3D &);
57 void operator()(
const V3D &rX,
const V3D &rY,
const V3D &rZ);
59 void set(
const double ww,
const double aa,
const double bb,
const double cc);
60 void setAngleAxis(
const double _deg,
const V3D &_axis);
61 void getAngleAxis(
double &_deg,
double &_ax0,
double &_ax1,
double &ax2)
const;
62 std::vector<double> getEulerAngles(
const std::string &convention)
const;
78 bool isNull(
const double tolerance = 0.001)
const;
82 void GLMatrix(
double *mat)
const;
87 std::vector<double> getRotation(
bool check_normalisation =
false,
bool throw_on_errors =
false)
const;
89 void setQuat(
double mat[16]);
94 void rotate(
V3D &)
const;
101 void rotateBB(
double &xmin,
double &ymin,
double &zmin,
double &xmax,
double &ymax,
double &zmax)
const;
111 double operator[](
int)
const;
112 double &operator[](
int);
117 inline double real()
const {
return w; }
119 inline double imagI()
const {
return a; }
121 inline double imagJ()
const {
return b; }
123 inline double imagK()
const {
return c; }
126 void printSelf(std::ostream &)
const;
127 void readPrinted(std::istream &);
128 std::string toString()
const;
129 void fromString(
const std::string &str);
142MANTID_KERNEL_DLL std::ostream &
operator<<(std::ostream &,
const Quat &);
143MANTID_KERNEL_DLL std::istream &
operator>>(std::istream &,
Quat &q);
void(ComponentInfo::* setRotation)(const size_t, const Mantid::Kernel::Quat &)
double imagJ() const
Access the coefficient of j.
double real() const
Access the real part.
double imagI() const
Access the coefficient of i.
double imagK() const
Access the coefficient of k.
MatrixWorkspace_sptr MANTID_API_DLL operator*(const MatrixWorkspace_sptr &lhs, const MatrixWorkspace_sptr &rhs)
Multiply two workspaces.
MatrixWorkspace_sptr MANTID_API_DLL operator+=(const MatrixWorkspace_sptr &lhs, const MatrixWorkspace_sptr &rhs)
Adds two workspaces.
MatrixWorkspace_sptr MANTID_API_DLL operator-=(const MatrixWorkspace_sptr &lhs, const MatrixWorkspace_sptr &rhs)
Subtracts two workspaces.
MatrixWorkspace_sptr MANTID_API_DLL operator-(const MatrixWorkspace_sptr &lhs, const MatrixWorkspace_sptr &rhs)
Subtracts two workspaces.
MatrixWorkspace_sptr MANTID_API_DLL operator*=(const MatrixWorkspace_sptr &lhs, const MatrixWorkspace_sptr &rhs)
Multiply two workspaces.
MatrixWorkspace_sptr MANTID_API_DLL operator+(const MatrixWorkspace_sptr &lhs, const MatrixWorkspace_sptr &rhs)
Adds two workspaces.
MANTID_KERNEL_DLL std::ostream & operator<<(std::ostream &, CPUTimer &)
Convenience function to provide for easier debug printing.
MANTID_KERNEL_DLL std::istream & operator>>(std::istream &, Interpolation &)
Reads in parameter value.
MANTID_KERNEL_DLL V3D normalize(V3D v)
Normalizes a V3D.
Helper class which provides the Collimation Length for SANS instruments.
constexpr bool operator==(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)
constexpr bool operator!=(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)