16#ifndef ROOT_MathX_GenVectorX_Translation3D
17#define ROOT_MathX_GenVectorX_Translation3D 1
55template <
typename T =
double>
75 fVect.SetCoordinates(begin, end);
86 template <
class CoordSystem,
class Tag>
98 template <
class CoordSystem,
class Tag>
120 fVect.SetCoordinates(begin, end);
130 fVect.GetCoordinates(begin, end);
139 fVect.GetCoordinates(begin);
162 template <
class CoordSystem,
class Tag>
170 template <
class CoordSystem,
class Tag>
180 template <
class CoordSystem,
class Tag>
188 template <
class CoordSystem,
class Tag>
197 template <
class CoordSystem,
class Tag1,
class Tag2>
208 template <
class CoordSystem,
class Tag1,
class Tag2>
219 template <
class CoordSystem>
227 template <
class CoordSystem>
244 return PLANE(
operator()(
n),
operator()(p));
288#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
299 return os <<
"\n" <<
m[0] <<
" " <<
m[1] <<
" " <<
m[2] <<
"\n";
DefaultCoordinateSystemTag Default tag for identifying any coordinate system.
Class describing a generic displacement vector in 3 dimensions.
Class describing a geometrical plane in 3 dimensions.
Scalar HesseDistance() const
Return the Hesse Distance (distance from the origin) of the plane or the d coefficient expressed in n...
Vector Normal() const
Return normal vector to the plane as Cartesian DisplacementVector.
Class describing a 3 dimensional translation.
DisplacementVector3D< Cartesian3D< T >, DefaultCoordinateSystemTag > Vector
LorentzVector< CoordSystem > operator*(const LorentzVector< CoordSystem > &q) const
Transformation operation.
bool operator!=(const Translation3D< T > &rhs) const
void SetComponents(T dx, T dy, T dz)
Set the components from 3 scalars.
LorentzVector< CoordSystem > operator()(const LorentzVector< CoordSystem > &q) const
Transformation operation for a Lorentz Vector in any coordinate system A LorentzVector contains a dis...
Translation3D(const PositionVector3D< CoordSystem, Tag > &p1, const PositionVector3D< CoordSystem, Tag > &p2)
Construct transformation from one coordinate system defined one point (the origin) to a new coordinat...
void SetComponents(IT begin, IT end)
Set the 3 components given an iterator to the start of the desired data, and another to the end (3 pa...
bool operator==(const Translation3D< T > &rhs) const
Equality/inequality operators.
Translation3D(IT begin, IT end)
Construct given a pair of pointers or iterators defining the beginning and end of an array of 3 Scala...
void GetComponents(IT begin, IT end) const
Get the 3 components into data specified by an iterator begin and another to the end of the desired d...
Translation3D< T > operator*(const Translation3D< T > &t) const
multiply (combine) two transformations
Plane3D< T > operator()(const Plane3D< T > &plane) const
Transformation on a 3D plane.
PositionVector3D< CoordSystem, Tag > operator()(const PositionVector3D< CoordSystem, Tag > &p) const
Transformation operation for Position Vector in any coordinate system and default tag.
Translation3D(const DisplacementVector3D< CoordSystem, Tag > &v)
Construct from any Displacement vector in ant tag and coordinate system.
Translation3D< T > & operator*=(const Translation3D< T > &t)
multiply (combine) with another transformation in place
void SetXYZ(T dx, T dy, T dz)
Set the XYZ vector components from 3 scalars.
void Invert()
Invert the transformation in place.
const Vector & Vect() const
return a const reference to the underline vector representing the translation
void GetComponents(IT begin) const
Get the 3 matrix components into data specified by an iterator begin.
Translation3D()
Default constructor ( zero translation ).
DisplacementVector3D< CoordSystem, Tag > operator*(const DisplacementVector3D< CoordSystem, Tag > &v) const
Transformation operation.
Translation3D(T dx, T dy, T dz)
Construct from x,y,z values representing the translation.
void Transform(const PositionVector3D< CoordSystem, Tag1 > &p1, PositionVector3D< CoordSystem, Tag2 > &p2) const
Transformation operation for points between different coordinate system tags.
void Transform(const DisplacementVector3D< CoordSystem, Tag1 > &v1, DisplacementVector3D< CoordSystem, Tag2 > &v2) const
Transformation operation for Displacement Vector of different coordinate systems.
Translation3D< T > Inverse() const
Return the inverse of the transformation.
DisplacementVector3D< CoordSystem, Tag > operator()(const DisplacementVector3D< CoordSystem, Tag > &v) const
Transformation operation for Displacement Vector in any coordinate system and default tag For the Dis...
PositionVector3D< CoordSystem, Tag > operator*(const PositionVector3D< CoordSystem, Tag > &v) const
Transformation operation.
void GetComponents(T &dx, T &dy, T &dz) const
Get the components into 3 scalars.
Class describing a generic LorentzVector in the 4D space-time, using the specified coordinate system ...
Class describing a generic position vector (point) in 3 dimensions.
Scalar Y() const
Cartesian Y, converting if necessary from internal coordinate system.
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
PositionVector3D< 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 X() const
Cartesian X, converting if necessary from internal coordinate system.
std::ostream & operator<<(std::ostream &os, const Plane3D< T > &p)
Stream Output and Input.
Impl::Translation3D< float > Translation3DF
Impl::Translation3D< double > Translation3D