70 if (
math_fabs(
uX) < 8. * std::numeric_limits<double>::epsilon() &&
71 math_fabs(
uY) < 8. * std::numeric_limits<double>::epsilon() &&
72 math_fabs(
uZ) < 8. * std::numeric_limits<double>::epsilon()) {
83 static const double pi =
M_PI;
103 static const double pi =
M_PI;
123 double phi, theta,
psi;
125 static const double pi =
M_PI;
175 for (
int i = 1; i < 4; ++i) {
185 if (
w[0] > 0 &&
psi < 0)
187 if (
w[0] < 0 &&
psi > 0)
191 if (
w[1] > 0 && phi < 0)
193 if (
w[1] < 0 && phi > 0)
232 const double f = .25 / q0;
241 const double f = .25 /
q1;
248 }
else if (
d2 >=
d3) {
250 const double f = .25 /
q2;
259 const double f = .25 /
q3;
284 double phi, theta,
psi = 0;
339 for (
int i = 1; i < 4; ++i) {
350 if (
w[0] > 0 &&
psi < 0)
352 if (
w[0] < 0 &&
psi > 0)
356 if (
w[1] > 0 && phi < 0)
358 if (
w[1] < 0 && phi > 0)
391 const double uX =
u.X();
392 const double uY =
u.Y();
393 const double uZ =
u.Z();
503 const double q0 = from.
U();
504 const double q1 = from.
I();
505 const double q2 = from.
J();
506 const double q3 = from.
K();
507 const double q00 = q0 * q0;
508 const double q01 = q0 *
q1;
509 const double q02 = q0 *
q2;
510 const double q03 = q0 *
q3;
569 double phi, theta,
psi = 0;
598 double phi, theta,
psi = 0;
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint angle
AxisAngle class describing rotation represented with direction axis (3D Vector) and an angle of rotat...
DisplacementVector3D< Cartesian3D< Scalar > > AxisVector
definition of vector axis
void SetComponents(IT begin, IT end)
Set the axis and then the angle given a pair of pointers or iterators defining the beginning and end ...
AxisVector Axis() const
access to rotation axis
Scalar Angle() const
access to rotation angle
void Rectify()
Re-adjust components to eliminate small deviations from the axis being a unit vector and angles out o...
EulerAngles class describing rotation as three angles (Euler Angles).
void SetComponents(IT begin, IT end)
Set the three Euler angles given a pair of pointers or iterators defining the beginning and end of an...
Scalar Psi() const
Return Psi Euler angle.
Scalar Phi() const
Return Phi Euler angle.
Scalar Theta() const
Return Theta Euler angle.
Rotation class with the (3D) rotation represented by a unit quaternion (u, i, j, k).
Scalar U() const
Access to the four quaternion components: U() is the coefficient of the identity Pauli matrix,...
void Rectify()
Re-adjust components to eliminate small deviations from |Q| = 1 orthonormality.
void SetComponents(IT begin, IT end)
Set the four components given an iterator to the start of the desired data, and another to the end (4...
Rotation class with the (3D) rotation represented by a 3x3 orthogonal matrix.
void SetComponents(const ForeignVector &v1, const ForeignVector &v2, const ForeignVector &v3)
Set components from three orthonormal vectors (which must have methods x(), y() and z()) which will b...
void GetComponents(ForeignVector &v1, ForeignVector &v2, ForeignVector &v3) const
Get components into three vectors which will be the (orthonormal) columns of the rotation matrix.
Rotation class representing a 3D rotation about the X axis by the angle of rotation.
Scalar SinAngle() const
Sine or Cosine of the rotation angle.
Scalar Angle() const
Angle of rotation.
Rotation class representing a 3D rotation about the Y axis by the angle of rotation.
Scalar Angle() const
Angle of rotation.
Scalar SinAngle() const
Sine or Cosine of the rotation angle.
Rotation class with the (3D) rotation represented by angles describing first a rotation of an angle p...
void SetComponents(IT begin, IT end)
Set the three Euler angles given a pair of pointers or iterators defining the beginning and end of an...
void GetComponents(IT begin, IT end) const
Get the axis and then the angle into data specified by an iterator begin and another to the end of th...
Rotation class representing a 3D rotation about the Z axis by the angle of rotation.
Scalar Angle() const
Angle of rotation.
Scalar SinAngle() const
Sine or Cosine of the rotation angle.
void convert(R1 const &, R2 const)
static void correctByPi(double &psi, double &phi)
Scalar math_cos(Scalar x)
Rotation3D::Scalar Scalar
Scalar math_sqrt(Scalar x)
Scalar math_asin(Scalar x)
Scalar math_acos(Scalar x)
Scalar math_atan2(Scalar x, Scalar y)
Scalar math_fabs(Scalar x)
Scalar math_sin(Scalar x)