1 #ifndef RIVET_MATH_MATRIX3 2 #define RIVET_MATH_MATRIX3 4 #include "Rivet/Math/MathHeader.hh" 5 #include "Rivet/Math/MathUtils.hh" 6 #include "Rivet/Math/MatrixN.hh" 7 #include "Rivet/Math/Vector3.hh" 21 _matrix.loadRotation3(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.loadIdentity();
46 _matrix.loadRotation3(theta, normaxis._vec);
Definition: ALICE_2010_I880049.cc:13
Specialisation of MatrixN to aid 3 dimensional rotations.
Definition: Matrix3.hh:13
double angle(const Vector3 &a, const Vector3 &b)
Angle (in radians) between two 3-vectors.
Definition: Vector3.hh:286
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:21
Three-dimensional specialisation of Vector.
Definition: Vector3.hh:26