Eigen::Translation< Scalar_, Dim_ > Class Template Reference

Represents a translation transformation. More...

#include <Translation.h>

Public Types

enum  { Dim = Dim_ }
 
typedef Scalar_ Scalar
 
typedef Matrix< Scalar, Dim, 1 > VectorType
 
typedef Matrix< Scalar, Dim, DimLinearMatrixType
 
typedef Transform< Scalar, Dim, AffineAffineTransformType
 
typedef Transform< Scalar, Dim, IsometryIsometryTransformType
 

Public Member Functions

EIGEN_DEVICE_FUNC Translation ()
 
EIGEN_DEVICE_FUNC Translation (const Scalar &sx, const Scalar &sy)
 
EIGEN_DEVICE_FUNC Translation (const Scalar &sx, const Scalar &sy, const Scalar &sz)
 
EIGEN_DEVICE_FUNC Translation (const VectorType &vector)
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalar x () const
 Returns the x-translation by value. More...
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalar y () const
 Returns the y-translation by value. More...
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalar z () const
 Returns the z-translation by value. More...
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalarx ()
 Returns the x-translation as a reference. More...
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalary ()
 Returns the y-translation as a reference. More...
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalarz ()
 Returns the z-translation as a reference. More...
 
EIGEN_DEVICE_FUNC const VectorTypevector () const
 
EIGEN_DEVICE_FUNC VectorTypevector ()
 
EIGEN_DEVICE_FUNC const VectorTypetranslation () const
 
EIGEN_DEVICE_FUNC VectorTypetranslation ()
 
EIGEN_DEVICE_FUNC Translation operator* (const Translation &other) const
 
EIGEN_DEVICE_FUNC AffineTransformType operator* (const UniformScaling< Scalar > &other) const
 
template<typename OtherDerived >
EIGEN_DEVICE_FUNC AffineTransformType operator* (const EigenBase< OtherDerived > &linear) const
 
template<typename Derived >
EIGEN_DEVICE_FUNC IsometryTransformType operator* (const RotationBase< Derived, Dim > &r) const
 
template<int Mode, int Options>
EIGEN_DEVICE_FUNC Transform< Scalar, Dim, Mode > operator* (const Transform< Scalar, Dim, Mode, Options > &t) const
 
template<typename Derived >
std::enable_if_t< Derived::IsVectorAtCompileTime, VectorTypeoperator* (const MatrixBase< Derived > &vec) const
 
Translation inverse () const
 
template<typename NewScalarType >
EIGEN_DEVICE_FUNC internal::cast_return_type< Translation, Translation< NewScalarType, Dim > >::type cast () const
 
template<typename OtherScalarType >
EIGEN_DEVICE_FUNC Translation (const Translation< OtherScalarType, Dim > &other)
 
EIGEN_DEVICE_FUNC bool isApprox (const Translation &other, const typename NumTraits< Scalar >::Real &prec=NumTraits< Scalar >::dummy_precision()) const
 

Static Public Member Functions

static const Translation Identity ()
 

Protected Attributes

VectorType m_coeffs
 

Friends

template<typename OtherDerived >
EIGEN_DEVICE_FUNC AffineTransformType operator* (const EigenBase< OtherDerived > &linear, const Translation &t)
 

Detailed Description

template<typename Scalar_, int Dim_>
class Eigen::Translation< Scalar_, Dim_ >

Represents a translation transformation.

\geometry_module

Template Parameters
Scalar_the scalar type, i.e., the type of the coefficients.
Dim_the dimension of the space, can be a compile time value or Dynamic
Note
This class is not aimed to be used to store a translation transformation, but rather to make easier the constructions and updates of Transform objects.
See also
class Scaling, class Transform

Member Typedef Documentation

◆ AffineTransformType

template<typename Scalar_ , int Dim_>
typedef Transform<Scalar, Dim, Affine> Eigen::Translation< Scalar_, Dim_ >::AffineTransformType

corresponding affine transformation type

◆ IsometryTransformType

template<typename Scalar_ , int Dim_>
typedef Transform<Scalar, Dim, Isometry> Eigen::Translation< Scalar_, Dim_ >::IsometryTransformType

corresponding isometric transformation type

◆ LinearMatrixType

template<typename Scalar_ , int Dim_>
typedef Matrix<Scalar, Dim, Dim> Eigen::Translation< Scalar_, Dim_ >::LinearMatrixType

corresponding linear transformation matrix type

◆ Scalar

template<typename Scalar_ , int Dim_>
typedef Scalar_ Eigen::Translation< Scalar_, Dim_ >::Scalar

the scalar type of the coefficients

◆ VectorType

template<typename Scalar_ , int Dim_>
typedef Matrix<Scalar, Dim, 1> Eigen::Translation< Scalar_, Dim_ >::VectorType

corresponding vector type

Member Enumeration Documentation

◆ anonymous enum

template<typename Scalar_ , int Dim_>
anonymous enum

dimension of the space

Enumerator
Dim 
37 { Dim = Dim_ };
@ Dim
Definition: Translation.h:37

Constructor & Destructor Documentation

◆ Translation() [1/5]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC Eigen::Translation< Scalar_, Dim_ >::Translation ( )
inline

◆ Translation() [2/5]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC Eigen::Translation< Scalar_, Dim_ >::Translation ( const Scalar sx,
const Scalar sy 
)
inline
56  {
57  eigen_assert(Dim == 2);
58  m_coeffs.x() = sx;
59  m_coeffs.y() = sy;
60  }
#define eigen_assert(x)
Definition: Macros.h:910
VectorType m_coeffs
Definition: Translation.h:50

References Eigen::Translation< Scalar_, Dim_ >::Dim, eigen_assert, and Eigen::Translation< Scalar_, Dim_ >::m_coeffs.

◆ Translation() [3/5]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC Eigen::Translation< Scalar_, Dim_ >::Translation ( const Scalar sx,
const Scalar sy,
const Scalar sz 
)
inline
62  {
63  eigen_assert(Dim == 3);
64  m_coeffs.x() = sx;
65  m_coeffs.y() = sy;
66  m_coeffs.z() = sz;
67  }

References Eigen::Translation< Scalar_, Dim_ >::Dim, eigen_assert, and Eigen::Translation< Scalar_, Dim_ >::m_coeffs.

◆ Translation() [4/5]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC Eigen::Translation< Scalar_, Dim_ >::Translation ( const VectorType vector)
inlineexplicit

Constructs and initialize the translation transformation from a vector of translation coefficients

69 : m_coeffs(vector) {}
EIGEN_DEVICE_FUNC const VectorType & vector() const
Definition: Translation.h:85

◆ Translation() [5/5]

template<typename Scalar_ , int Dim_>
template<typename OtherScalarType >
EIGEN_DEVICE_FUNC Eigen::Translation< Scalar_, Dim_ >::Translation ( const Translation< OtherScalarType, Dim > &  other)
inlineexplicit

Copy constructor with scalar type conversion

156  {
157  m_coeffs = other.vector().template cast<Scalar>();
158  }

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs, and Eigen::Translation< Scalar_, Dim_ >::vector().

Member Function Documentation

◆ cast()

template<typename Scalar_ , int Dim_>
template<typename NewScalarType >
EIGEN_DEVICE_FUNC internal::cast_return_type<Translation, Translation<NewScalarType, Dim> >::type Eigen::Translation< Scalar_, Dim_ >::cast ( ) const
inline
Returns
*this with scalar type casted to NewScalarType

Note that if NewScalarType is equal to the current scalar type of *this then this function smartly returns a const reference to *this.

150  {
151  return typename internal::cast_return_type<Translation, Translation<NewScalarType, Dim> >::type(*this);
152  }
type
Definition: compute_granudrum_aor.py:141

References compute_granudrum_aor::type.

◆ Identity()

template<typename Scalar_ , int Dim_>
static const Translation Eigen::Translation< Scalar_, Dim_ >::Identity ( )
inlinestatic
141 { return Translation(VectorType::Zero()); }
EIGEN_DEVICE_FUNC Translation()
Definition: Translation.h:54
double Zero
Definition: pseudosolid_node_update_elements.cc:35

References Eigen::Translation< Scalar_, Dim_ >::Translation(), and oomph::PseudoSolidHelper::Zero.

◆ inverse()

template<typename Scalar_ , int Dim_>
Translation Eigen::Translation< Scalar_, Dim_ >::inverse ( ) const
inline
Returns
the inverse translation (opposite)
139 { return Translation(-m_coeffs); }

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs, and Eigen::Translation< Scalar_, Dim_ >::Translation().

◆ isApprox()

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC bool Eigen::Translation< Scalar_, Dim_ >::isApprox ( const Translation< Scalar_, Dim_ > &  other,
const typename NumTraits< Scalar >::Real prec = NumTraits<Scalar>::dummy_precision() 
) const
inline
Returns
true if *this is approximately equal to other, within the precision determined by prec.
See also
MatrixBase::isApprox()
165  {
166  return m_coeffs.isApprox(other.m_coeffs, prec);
167  }

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs.

◆ operator*() [1/6]

template<typename Scalar , int Dim>
template<typename OtherDerived >
EIGEN_DEVICE_FUNC Translation< Scalar, Dim >::AffineTransformType Eigen::Translation< Scalar, Dim >::operator* ( const EigenBase< OtherDerived > &  linear) const
inline

Concatenates a translation and a linear transformation

192  {
194  res.matrix().setZero();
195  res.linear() = linear.derived();
196  res.translation() = m_coeffs;
197  res.matrix().row(Dim).setZero();
198  res(Dim, Dim) = Scalar(1);
199  return res;
200 }
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition: PartialRedux_count.cpp:3
Transform< Scalar, Dim, Affine > AffineTransformType
Definition: Translation.h:45
Scalar_ Scalar
Definition: Translation.h:39

References Eigen::EigenBase< Derived >::derived(), Global_Variables::Dim, and res.

◆ operator*() [2/6]

template<typename Scalar_ , int Dim_>
template<typename Derived >
std::enable_if_t<Derived::IsVectorAtCompileTime, VectorType> Eigen::Translation< Scalar_, Dim_ >::operator* ( const MatrixBase< Derived > &  vec) const
inline

Applies translation to vector

134  {
135  return m_coeffs + vec.derived();
136  }

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs.

◆ operator*() [3/6]

template<typename Scalar_ , int Dim_>
template<typename Derived >
EIGEN_DEVICE_FUNC IsometryTransformType Eigen::Translation< Scalar_, Dim_ >::operator* ( const RotationBase< Derived, Dim > &  r) const
inline

Concatenates a translation and a rotation

105  {
106  return *this * IsometryTransformType(r);
107  }
Transform< Scalar, Dim, Isometry > IsometryTransformType
Definition: Translation.h:47
r
Definition: UniformPSDSelfTest.py:20

References UniformPSDSelfTest::r.

◆ operator*() [4/6]

template<typename Scalar_ , int Dim_>
template<int Mode, int Options>
EIGEN_DEVICE_FUNC Transform<Scalar, Dim, Mode> Eigen::Translation< Scalar_, Dim_ >::operator* ( const Transform< Scalar, Dim, Mode, Options > &  t) const
inline

Concatenates a translation and a transformation

126  {
127  Transform<Scalar, Dim, Mode> res = t;
128  res.pretranslate(m_coeffs);
129  return res;
130  }
t
Definition: plotPSD.py:36

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs, res, and plotPSD::t.

◆ operator*() [5/6]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC Translation Eigen::Translation< Scalar_, Dim_ >::operator* ( const Translation< Scalar_, Dim_ > &  other) const
inline

Concatenates two translation

92  {
93  return Translation(m_coeffs + other.m_coeffs);
94  }

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs, and Eigen::Translation< Scalar_, Dim_ >::Translation().

◆ operator*() [6/6]

template<typename Scalar , int Dim>
EIGEN_DEVICE_FUNC Translation< Scalar, Dim >::AffineTransformType Eigen::Translation< Scalar, Dim >::operator* ( const UniformScaling< Scalar > &  other) const
inline

Concatenates a translation and a uniform scaling

180  {
182  res.matrix().setZero();
183  res.linear().diagonal().fill(other.factor());
184  res.translation() = m_coeffs;
185  res(Dim, Dim) = Scalar(1);
186  return res;
187 }

References Global_Variables::Dim, Eigen::UniformScaling< Scalar_ >::factor(), and res.

◆ translation() [1/2]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC VectorType& Eigen::Translation< Scalar_, Dim_ >::translation ( )
inline

◆ translation() [2/2]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC const VectorType& Eigen::Translation< Scalar_, Dim_ >::translation ( ) const
inline

◆ vector() [1/2]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC VectorType& Eigen::Translation< Scalar_, Dim_ >::vector ( )
inline

◆ vector() [2/2]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC const VectorType& Eigen::Translation< Scalar_, Dim_ >::vector ( ) const
inline

◆ x() [1/2]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalar& Eigen::Translation< Scalar_, Dim_ >::x ( )
inline

Returns the x-translation as a reference.

79 { return m_coeffs.x(); }

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs.

◆ x() [2/2]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalar Eigen::Translation< Scalar_, Dim_ >::x ( ) const
inline

Returns the x-translation by value.

72 { return m_coeffs.x(); }

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs.

◆ y() [1/2]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalar& Eigen::Translation< Scalar_, Dim_ >::y ( )
inline

Returns the y-translation as a reference.

81 { return m_coeffs.y(); }

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs.

◆ y() [2/2]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalar Eigen::Translation< Scalar_, Dim_ >::y ( ) const
inline

Returns the y-translation by value.

74 { return m_coeffs.y(); }

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs.

◆ z() [1/2]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalar& Eigen::Translation< Scalar_, Dim_ >::z ( )
inline

Returns the z-translation as a reference.

83 { return m_coeffs.z(); }

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs.

◆ z() [2/2]

template<typename Scalar_ , int Dim_>
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalar Eigen::Translation< Scalar_, Dim_ >::z ( ) const
inline

Returns the z-translation by value.

76 { return m_coeffs.z(); }

References Eigen::Translation< Scalar_, Dim_ >::m_coeffs.

Friends And Related Function Documentation

◆ operator*

template<typename Scalar_ , int Dim_>
template<typename OtherDerived >
EIGEN_DEVICE_FUNC AffineTransformType operator* ( const EigenBase< OtherDerived > &  linear,
const Translation< Scalar_, Dim_ > &  t 
)
friend
Returns
the concatenation of a linear transformation l with the translation t
113  {
115  res.matrix().setZero();
116  res.linear() = linear.derived();
117  res.translation() = linear.derived() * t.m_coeffs;
118  res.matrix().row(Dim).setZero();
119  res(Dim, Dim) = Scalar(1);
120  return res;
121  }

Member Data Documentation

◆ m_coeffs


The documentation for this class was generated from the following files: