Mantid
Loading...
Searching...
No Matches
EigenConversionHelpers.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2017 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 "MantidKernel/DllConfig.h"
10#include "MantidKernel/Quat.h"
11#include "MantidKernel/V2D.h"
12#include "MantidKernel/V3D.h"
13
14#include <Eigen/Geometry>
15
16namespace Mantid {
17namespace Kernel {
18
27inline Kernel::V3D toV3D(const Eigen::Vector3d &vec) { return Kernel::V3D(vec[0], vec[1], vec[2]); }
28
30inline Kernel::V2D toV2D(const Eigen::Vector2d &vec) { return Kernel::V2D(vec[0], vec[1]); }
31
33inline Kernel::Quat toQuat(const Eigen::Quaterniond &quat) {
34 return Kernel::Quat(quat.w(), quat.x(), quat.y(), quat.z());
35}
36
38inline Eigen::Vector3d toVector3d(const Kernel::V3D &vec) { return Eigen::Vector3d(vec[0], vec[1], vec[2]); }
39
41inline Eigen::Vector2d toVector2d(const Kernel::V2D &vec) { return Eigen::Vector2d(vec.X(), vec.Y()); }
42
44inline Eigen::Quaterniond toQuaterniond(const Kernel::Quat &quat) {
45 return Eigen::Quaterniond(quat.real(), quat.imagI(), quat.imagJ(), quat.imagK());
46}
47
48} // namespace Kernel
49} // namespace Mantid
std::vector< T > const * vec
Class for quaternions.
Definition Quat.h:39
double imagJ() const
Access the coefficient of j.
Definition Quat.h:121
double real() const
Access the real part.
Definition Quat.h:117
double imagI() const
Access the coefficient of i.
Definition Quat.h:119
double imagK() const
Access the coefficient of k.
Definition Quat.h:123
Implements a 2-dimensional vector embedded in a 3D space, i.e.
Definition V2D.h:29
Class for 3D vectors.
Definition V3D.h:34
Kernel::Quat toQuat(const Eigen::Quaterniond &quat)
Converts Eigen::Quaterniond to Kernel::Quat.
Kernel::V2D toV2D(const Eigen::Vector2d &vec)
Converts Eigen::Vector2d to Kernel::V2D.
Eigen::Vector3d toVector3d(const Kernel::V3D &vec)
Converts Kernel::V3D to Eigen::Vector3d.
Eigen::Vector2d toVector2d(const Kernel::V2D &vec)
Converts Kernel::V2D to Eigen::Vector2d.
Kernel::V3D toV3D(const Eigen::Vector3d &vec)
This header provides conversion helpers between vector and rotation types in MantidKernel and equival...
Eigen::Quaterniond toQuaterniond(const Kernel::Quat &quat)
Converts Kernel::Quat to Eigen::Quaterniond.
Helper class which provides the Collimation Length for SANS instruments.