61 double u32 = (m23-m12*m13/m11)/u22;
62 double u33 =
std::sqrt(m33 - u31*u31 - u32*u32);
68 double v32 = -v33*u32/u22;
69 double v31 = -(v32*u21+v33*u31)/u11;
71 double v21 = -v22*u21/u11;
77 double n11 = v11*v11 + v21*v21 + v31*v31;
78 double n12 = v11*v21 + v21*v22 + v31*v32;
79 double n13 = v11*v31 + v21*v32 + v31*v33;
80 double n22 = v21*v21 + v22*v22 + v32*v32;
81 double n23 = v21*v31 + v22*v32 + v32*v33;
82 double n33 = v31*v31 + v32*v32 + v33*v33;
88 std::copy(fM, &fM[9], mA);
104 static inline void swap(
double &
a,
double &
b) {
106 double t=
b; b=
a; a=t;
142 os <<
"\n" << m[0] <<
" " << m[1] <<
" " << m[2];
143 os <<
"\n" << m[3] <<
" " << m[4] <<
" " << m[5];
144 os <<
"\n" << m[6] <<
" " << m[7] <<
" " << m[8] <<
"\n";
Namespace for new ROOT classes and functions.
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 with the (3D) rotation represented by angles describing first a rotation of an angle p...
Rotation class with the (3D) rotation represented by a unit quaternion (u, i, j, k).
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.
AxisAngle class describing rotation represented with direction axis (3D Vector) and an angle of rotat...
static void swap(double &a, double &b)
void Rectify()
Re-adjust components to eliminate small deviations from perfect orthonormality.
AVector operator*(const AVector &v) const
Overload operator * for rotation on a vector.
Rotation class with the (3D) rotation represented by a 3x3 orthogonal matrix.
EulerAngles class describing rotation as three angles (Euler Angles).
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
Namespace for new Math classes and functions.
void Invert()
Invert a rotation in place.
Rotation3D()
Default constructor (identity rotation)
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b