# class ROOT::Math::Translation3D

```
Class describing a 3 dimensional translation. It can be combined (using the operator *)
with the ROOT::Math::Rotation3D  classes and ROOT::Math::Transform3D to obtained combined
transformations and to operate on points and vectors.
Note that a the translation applied to a Vector object (DisplacementVector3D and LorentzVector classes)
performes a noop, i.e. it returns the same vector. A translation can be applied only to the Point objects
(PositionVector3D classes).

@ingroup GenVector

```

## Function Members (Methods)

public:
 ~Translation3D() void GetComponents(double& dx, double& dy, double& dz) const ROOT::Math::Translation3D Inverse() const void Invert() bool operator!=(const ROOT::Math::Translation3D& rhs) const ROOT::Math::Plane3D operator()(const ROOT::Math::Plane3D& plane) const ROOT::Math::Translation3D operator*(const ROOT::Math::Translation3D& t) const ROOT::Math::Translation3D& operator*=(const ROOT::Math::Translation3D& t) ROOT::Math::Translation3D& operator=(const ROOT::Math::Translation3D&) ROOT::Math::Translation3D& operator=(ROOT::Math::Translation3D&&) bool operator==(const ROOT::Math::Translation3D& rhs) const void SetComponents(double dx, double dy, double dz) void SetXYZ(double dx, double dy, double dz) ROOT::Math::Translation3D Translation3D() ROOT::Math::Translation3D Translation3D(const ROOT::Math::DisplacementVector3D,ROOT::Math::DefaultCoordinateSystemTag>& v) ROOT::Math::Translation3D Translation3D(const ROOT::Math::Translation3D&) ROOT::Math::Translation3D Translation3D(ROOT::Math::Translation3D&&) ROOT::Math::Translation3D Translation3D(double dx, double dy, double dz) const ROOT::Math::Translation3D::Vector& Vect() const

## Data Members

private:
 ROOT::Math::Translation3D::Vector fVect internal 3D vector representing the translation

## Class Charts ## Function documentation

```       Default constructor ( zero translation )

```
`{}`
Translation3D(IT begin, IT end)
```      Construct given a pair of pointers or iterators defining the
beginning and end of an array of 3 Scalars representing the z,y,z of the translation vector

```
Translation3D(double dx, double dy, double dz)
```      Construct from x,y,z values representing the translation

```
`{ }`
explicit Translation3D( const DisplacementVector3D<CoordSystem,Tag> & v)
```      Construct from any Displacement vector in ant tag and coordinate system

```
`{ }`
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 coordinate system defined by other point (origin )
@param p1  point defining origin of original reference system
@param p2  point defining origin of transformed reference system

```
`{ }`
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 past start).

```
void GetComponents(IT begin, IT end)
```      Get the 3  components into data specified by an iterator begin
and another to the end of the desired data (12 past start).

```
SetXYZ(double dx, double dy, double dz)
```      Set the XYZ vector components from 3 scalars

```
PositionVector3D<CoordSystem,Tag> operator()(const ROOT::Math::Plane3D& plane) const
``` operations on points and vectors

Transformation operation for Position Vector in any coordinate system and default tag

```
void Invert()
```       Invert the transformation in place

```
Translation3D Inverse() const
```      Return the inverse of the transformation.

```
return ! operator==(rhs)