45#if __cplusplus >= 202002L
74 if (
math_fabs(
uX) < 8. * std::numeric_limits<double>::epsilon() &&
75 math_fabs(
uY) < 8. * std::numeric_limits<double>::epsilon() &&
76 math_fabs(
uZ) < 8. * std::numeric_limits<double>::epsilon()) {
87 static const double pi =
M_PI;
100 to.SetComponents(
u,
angle);
107 static const double pi =
M_PI;
127 double phi, theta,
psi;
129 static const double pi =
M_PI;
179 for (
int i = 1; i < 4; ++i) {
189 if (
w[0] > 0 &&
psi < 0)
191 if (
w[0] < 0 &&
psi > 0)
195 if (
w[1] > 0 && phi < 0)
197 if (
w[1] < 0 && phi > 0)
214 to.SetComponents(phi, theta,
psi);
236 const double f = .25 / q0;
240 to.SetComponents(q0,
q1,
q2,
q3);
245 const double f = .25 /
q1;
249 to.SetComponents(q0,
q1,
q2,
q3);
252 }
else if (
d2 >=
d3) {
254 const double f = .25 /
q2;
258 to.SetComponents(q0,
q1,
q2,
q3);
263 const double f = .25 /
q3;
267 to.SetComponents(q0,
q1,
q2,
q3);
288 double phi, theta,
psi = 0;
343 for (
int i = 1; i < 4; ++i) {
354 if (
w[0] > 0 &&
psi < 0)
356 if (
w[0] < 0 &&
psi > 0)
360 if (
w[1] > 0 && phi < 0)
362 if (
w[1] < 0 && phi > 0)
379 to.SetComponents(phi, theta,
psi);
395 const double uX =
u.X();
396 const double uY =
u.Y();
397 const double uZ =
u.Z();
413 to.SetComponents(
m,
m + 9);
433 to.SetComponents(
math_cos(from.
Angle() / 2), s * axis.X(), s * axis.Y(), s * axis.Z());
507 const double q0 = from.
U();
508 const double q1 = from.
I();
509 const double q2 = from.
J();
510 const double q3 = from.
K();
511 const double q00 = q0 * q0;
512 const double q01 = q0 *
q1;
513 const double q02 = q0 *
q2;
514 const double q03 = q0 *
q3;
537 to.SetComponents(axis,
angle);
543 to.SetComponents(axis,
angle);
573 double phi, theta,
psi = 0;
602 double phi, theta,
psi = 0;
625 to.SetComponents(1, 0, 0, 0,
c, -s, 0, s,
c);
633 to.SetComponents(axis, from.
Angle());
656 to.SetComponents(0, 0, from.
Angle());
668 to.SetComponents(
c, 0, s, 0, 1, 0, -s, 0,
c);
676 to.SetComponents(axis, from.
Angle());
692 to.SetComponents(0, from.
Angle(), 0);
711 to.SetComponents(
c, -s, 0, s,
c, 0, 0, 0, 1);
719 to.SetComponents(axis, from.
Angle());
735 to.SetComponents(from.
Angle(), 0, 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
AxisVector Axis() const
access to rotation axis
Scalar Angle() const
access to rotation angle
EulerAngles class describing rotation as three angles (Euler Angles).
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,...
Rotation class with the (3D) rotation represented by a 3x3 orthogonal matrix.
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 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)