69 Scalar aqu = au*
q.U() - ai*
q.I() - aj*
q.J() - ak*
q.K();
70 Scalar aqi = au*
q.I() + ai*
q.U() + aj*
q.K() - ak*
q.J();
71 Scalar aqj = au*
q.J() - ai*
q.K() + aj*
q.U() + ak*
q.I();
72 Scalar aqk = au*
q.K() + ai*
q.J() - aj*
q.I() + ak*
q.U();
73 Scalar r = std::sqrt(aqi*aqi + aqj*aqj + aqk*aqk);
75 if (aqu < 0) { aqu = - aqu; aqi = - aqi; aqj = - aqj, aqk = - aqk; }
77 DisplacementVector3D< Cartesian3D<double> > axis ( aqi, aqj, aqk );
79 axis.SetCoordinates(0,0,1);
99 Scalar qu = std::sqrt( .5*(1+
c) );
100 Scalar qi = std::sqrt( .5*(1-
c) );
102 Scalar aqu = au*qu - ai*qi;
103 Scalar aqi = ai*qu + au*qi;
104 Scalar aqj = aj*qu + ak*qi;
105 Scalar aqk = ak*qu - aj*qi;
106 Scalar r = std::sqrt(aqi*aqi + aqj*aqj + aqk*aqk);
108 if (aqu < 0) { aqu = - aqu; aqi = - aqi; aqj = - aqj, aqk = - aqk; }
129 if (
c < -1 )
c = -1;
130 Scalar qu = std::sqrt( .5*(1+
c) );
131 Scalar qj = std::sqrt( .5*(1-
c) );
133 Scalar aqu = au*qu - aj*qj;
134 Scalar aqi = ai*qu - ak*qj;
135 Scalar aqj = aj*qu + au*qj;
136 Scalar aqk = ak*qu + ai*qj;
137 Scalar r = std::sqrt(aqi*aqi + aqj*aqj + aqk*aqk);
139 if (aqu < 0) { aqu = - aqu; aqi = - aqi; aqj = - aqj, aqk = - aqk; }
160 if (
c < -1 )
c = -1;
161 Scalar qu = std::sqrt( .5*(1+
c) );
162 Scalar qk = std::sqrt( .5*(1-
c) );
164 Scalar aqu = au*qu - ak*qk;
165 Scalar aqi = ai*qu + aj*qk;
166 Scalar aqj = aj*qu - ai*qk;
167 Scalar aqk = ak*qu + au*qk;
168 Scalar r = std::sqrt(aqi*aqi + aqj*aqj + aqk*aqk);
170 if (aqu < 0) { aqu = - aqu; aqi = - aqi; aqj = - aqj, aqk = - aqk; }
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...
AVector operator*(const AVector &v) const
Overload operator * for rotation on a vector.
AxisAngle()
Default constructor (axis is z and angle is zero)
Class describing a generic displacement vector in 3 dimensions.
Scalar X() const
Cartesian X, converting if necessary from internal coordinate system.
Scalar Y() const
Cartesian Y, converting if necessary from internal coordinate system.
DisplacementVector3D< CoordSystem, Tag > & SetCoordinates(const Scalar src[])
Set internal data based on a C-style array of 3 Scalar numbers.
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
EulerAngles class describing rotation as three angles (Euler Angles).
Rotation class with the (3D) rotation represented by a unit quaternion (u, i, j, k).
Rotation class with the (3D) rotation represented by a 3x3 orthogonal 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.
Rotation class representing a 3D rotation about the Y axis by the 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...
Rotation class representing a 3D rotation about the Z axis by the angle of rotation.
Scalar SinAngle() const
Sine or Cosine of the rotation angle.
Namespace for new Math classes and functions.
AxisAngle operator*(RotationX const &r1, AxisAngle const &r2)
Multiplication of an axial rotation by an AxisAngle.
Rotation3D::Scalar Scalar
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.