17#ifndef ROOT_Math_GenVector_RotationX
18#define ROOT_Math_GenVector_RotationX 1
125 template <
class CoordSystem,
class U>
136 template <
class CoordSystem,
class U>
147 template <
class CoordSystem>
161 template <
class ForeignVector>
166 return ForeignVector ( rxyz.
X(), rxyz.
Y(), rxyz.
Z() );
172 template <
class AVector>
244 os <<
" RotationX(" <<
r.Angle() <<
") ";
double atan2(double, double)
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 > & SetXYZ(Scalar a, Scalar b, Scalar c)
set the values of the vector from the cartesian components (x,y,z) (if the vector is held in polar or...
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
Class describing a generic position vector (point) in 3 dimensions.
Rotation class representing a 3D rotation about the X axis by the angle of rotation.
AVector operator*(const AVector &v) const
Overload operator * for rotation on a vector.
RotationX & operator*=(const RotationX &r)
Post-Multiply (on right) by another rotation : T = T*R.
void GetAngle(Scalar &angle) const
Get the angle.
void SetAngle(Scalar angle)
Set given the angle.
void GetComponents(Scalar &angle) const
void Invert()
Invert a rotation in place.
RotationX Inverse() const
Return inverse of a rotation.
RotationX(Scalar angle)
Construct from an angle.
DisplacementVector3D< CoordSystem, U > operator()(const DisplacementVector3D< CoordSystem, U > &v) const
Rotation operation on a cartesian vector.
bool operator!=(const RotationX &rhs) const
Scalar SinAngle() const
Sine or Cosine of the rotation angle.
bool operator==(const RotationX &rhs) const
Equality/inequality operators.
Scalar Angle() const
Angle of rotation.
void SetComponents(Scalar angle)
RotationX()
Default constructor (identity rotation)
void Rectify()
Rectify makes sure the angle is in (-pi,pi].
Namespace for new Math classes and functions.
double dist(Rotation3D const &r1, Rotation3D const &r2)
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
AxisAngle::Scalar Distance(const AxisAngle &r1, const R &r2)
Distance between two rotations.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...