|
ROOT
Reference Guide |
|
Go to the documentation of this file.
18 #ifndef ROOT_Math_GenVector_RotationZYX
19 #define ROOT_Math_GenVector_RotationZYX 1
103 template <
class OtherRotation>
110 template <
class OtherRotation>
129 assert(begin == end);
143 assert(begin == end);
207 template <
class CoordSystem,
class U>
216 template <
class CoordSystem,
class U>
227 template <
class CoordSystem>
241 template <
class ForeignVector>
246 return ForeignVector ( rxyz.
X(), rxyz.
Y(), rxyz.
Z() );
252 template <
class AVector>
304 if(
fPhi != rhs.
fPhi )
return false;
306 if(
fPsi != rhs.
fPsi )
return false;
334 RotationZYX
operator* (RotationX
const & r1, RotationZYX
const & r2);
335 RotationZYX
operator* (RotationY
const & r1, RotationZYX
const & r2);
336 RotationZYX
operator* (RotationZ
const & r1, RotationZYX
const & r2);
343 std::ostream &
operator<< (std::ostream & os,
const RotationZYX &
e);
void SetPhi(Scalar phi)
Set Phi angle (Z rotation angle)
bool operator!=(const RotationZYX &rhs) const
AxisAngle class describing rotation represented with direction axis (3D Vector) and an angle of rotat...
void SetComponents(Scalar phi, Scalar theta, Scalar psi)
Set the components phi, theta, psi based on three Scalars.
RotationZYX(const OtherRotation &r)
Construct from another supported rotation type (see gv_detail::convert )
Scalar Theta() const
Return Theta angle (Y' rotation angle)
void GetComponents(IT begin) const
Get the axis and then the angle into data specified by an iterator begin.
RotationZYX & operator*=(const R &r)
Post-Multiply (on right) by another rotation : T = T*R.
void Rectify()
Re-adjust components place angles in canonical ranges.
Rotation class with the (3D) rotation represented by angles describing first a rotation of an angle p...
Class describing a generic position vector (point) in 3 dimensions.
Rotation class representing a 3D rotation about the Z axis by the angle of rotation.
RotationZYX(IT begin, IT end)
Construct given a pair of pointers or iterators defining the beginning and end of an array of three S...
Rotation class with the (3D) rotation represented by a 3x3 orthogonal matrix.
void SetTheta(Scalar theta)
Set Theta angle (Y' rotation angle)
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.
RotationZYX()
Default constructor.
Scalar Y() const
Cartesian Y, converting if necessary from internal coordinate system.
RotationZYX Inverse() const
Return inverse of a rotation.
#define R(a, b, c, d, e, f, g, h, i)
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...
double dist(Rotation3D const &r1, Rotation3D const &r2)
Scalar Distance(const R &r) const
Distance between two rotations.
bool operator==(const RotationZYX &rhs) const
Equality/inequality operators.
EulerAngles class describing rotation as three angles (Euler Angles).
Scalar X() const
Cartesian X, converting if necessary from internal coordinate system.
Rotation class representing a 3D rotation about the X axis by the angle of rotation.
typedef void((*Func_t)())
Scalar Phi() const
Return Phi angle (Z rotation angle)
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
AxisAngle operator*(RotationX const &r1, AxisAngle const &r2)
Multiplication of an axial rotation by an AxisAngle.
RotationZYX & operator=(OtherRotation const &r)
Assign from another supported rotation type (see gv_detail::convert )
void SetPsi(Scalar psi)
Set Psi angle (X'' rotation angle)
RotationZYX(Scalar phi, Scalar theta, Scalar psi)
Constructor from phi, theta and psi.
void convert(R1 const &, R2 const)
Class describing a generic displacement vector in 3 dimensions.
void Invert()
Invert a rotation in place.
AVector operator*(const AVector &v) const
Overload operator * for rotation on a vector.
Rotation class with the (3D) rotation represented by a unit quaternion (u, i, j, k).
DisplacementVector3D< CoordSystem, U > operator()(const DisplacementVector3D< CoordSystem, U > &v) const
Rotation operation on a displacement vector in any coordinate system and tag.
AxisAngle::Scalar Distance(const AxisAngle &r1, const R &r2)
Distance between two rotations.
Scalar Psi() const
Return Psi angle (X'' rotation angle)
Namespace for new Math classes and functions.
Rotation class representing a 3D rotation about the Y axis by the angle of rotation.
void GetComponents(Scalar &phi, Scalar &theta, Scalar &psi) const
Get the components phi, theta, psi into three Scalars.
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...