1 #ifndef RIVET_MATH_MATRIX3 2 #define RIVET_MATH_MATRIX3 4 #include "Rivet/Math/MathConstants.hh" 5 #include "Rivet/Math/MathUtils.hh" 6 #include "Rivet/Math/MatrixN.hh" 7 #include "Rivet/Math/Vector3.hh" 21 _matrix = Eigen::AngleAxis<double>(
angle, normaxis._vec);
25 setAsRotation(from, to);
28 static Matrix3 mkXRotation(
const double angle) {
32 static Matrix3 mkYRotation(
const double angle) {
36 static Matrix3 mkZRotation(
const double angle) {
41 const double theta =
angle(from, to);
43 _matrix = EMatrix::Identity();
46 _matrix = Eigen::AngleAxis<double>(theta, normaxis._vec);
Definition: MC_Cent_pPb.hh:10
Specialisation of MatrixN to aid 3 dimensional rotations.
Definition: Matrix3.hh:13
General -dimensional mathematical matrix object.
Definition: MatrixN.hh:14
Vector3 unit() const
Synonym for unitVec.
Definition: Vector3.hh:105
std::enable_if< std::is_floating_point< NUM >::value, bool >::type isZero(NUM val, double tolerance=1e-8)
Compare a number to zero.
Definition: MathUtils.hh:24
double angle(const Vector2 &a, const Vector2 &b)
Angle (in radians) between two 2-vectors.
Definition: Vector2.hh:175
Three-dimensional specialisation of Vector.
Definition: Vector3.hh:26