18#ifndef ROOT_MathX_GenVectorX_RotationZYX
19#define ROOT_MathX_GenVectorX_RotationZYX 1
107 template <
class OtherRotation>
116 template <
class OtherRotation>
233 template <
class CoordSystem,
class U>
242 template <
class CoordSystem,
class U>
253 template <
class CoordSystem>
267 template <
class ForeignVector>
278 template <
class AVector>
319 return *
this = (*this) *
r;
375#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
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
AxisAngle class describing rotation represented with direction axis (3D Vector) and an angle of rotat...
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.
Rotation class representing a 3D rotation about the Y axis by the angle of rotation.
Rotation class with the (3D) rotation represented by angles describing first a rotation of an angle p...
RotationZYX & operator*=(const R &r)
Post-Multiply (on right) by another rotation : T = T*R.
Scalar Phi() const
Return Phi angle (Z rotation angle)
void GetComponents(IT begin) const
Get the axis and then the angle into data specified by an iterator begin.
AVector operator*(const AVector &v) const
Overload operator * for rotation on a vector.
PositionVector3D< CoordSystem, U > operator()(const PositionVector3D< CoordSystem, U > &v) const
Rotation operation on a position vector in any coordinate system.
LorentzVector< CoordSystem > operator()(const LorentzVector< CoordSystem > &v) const
Rotation operation on a Lorentz vector in any 4D coordinate system.
DisplacementVector3D< CoordSystem, U > operator()(const DisplacementVector3D< CoordSystem, U > &v) const
Rotation operation on a displacement vector in any coordinate system and tag.
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 Distance(const R &r) const
Distance between two rotations.
void GetComponents(Scalar &phi, Scalar &theta, Scalar &psi) const
Get the components phi, theta, psi into three Scalars.
RotationZYX(const OtherRotation &r)
Construct from another supported rotation type (see gv_detail::convert )
bool operator!=(const RotationZYX &rhs) const
RotationZYX()
Default constructor.
void SetPhi(Scalar phi)
Set Phi angle (Z rotation angle)
void SetTheta(Scalar theta)
Set Theta angle (Y' rotation angle)
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...
bool operator==(const RotationZYX &rhs) const
Equality/inequality operators.
void Invert()
Invert a rotation in place.
RotationZYX & operator=(OtherRotation const &r)
Assign from another supported rotation type (see gv_detail::convert )
RotationZYX(Scalar phi, Scalar theta, Scalar psi)
Constructor from phi, theta and psi.
Scalar Psi() const
Return Psi angle (X'' rotation angle)
RotationZYX Inverse() const
Return inverse of a 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...
void SetPsi(Scalar psi)
Set Psi angle (X'' rotation angle)
Scalar Theta() const
Return Theta angle (Y' rotation angle)
ForeignVector operator()(const ForeignVector &v) const
Rotation operation on an arbitrary vector v.
void Rectify()
Re-adjust components place angles in canonical ranges.
void SetComponents(Scalar phi, Scalar theta, Scalar psi)
Set the components phi, theta, psi based on three Scalars.
Rotation class representing a 3D rotation about the Z axis by the angle of rotation.
double dist(Rotation3D const &r1, Rotation3D const &r2)
void convert(R1 const &, R2 const)
AxisAngle::Scalar Distance(const AxisAngle &r1, const R &r2)
Distance between two rotations.
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.
AxisAngle operator*(RotationX const &r1, AxisAngle const &r2)
Multiplication of an axial rotation by an AxisAngle.