28 template<
typename _Scalar,
int _Dim>
57 inline Scaling(
const Scalar& sx,
const Scalar& sy)
64 inline Scaling(
const Scalar& sx,
const Scalar& sy,
const Scalar& sz)
82 inline TransformType
operator* (
const TranslationType& t)
const;
85 inline TransformType
operator* (
const TransformType& t)
const;
89 inline LinearMatrixType
operator* (
const LinearMatrixType& other)
const 90 {
return coeffs().asDiagonal() * other; }
94 friend inline LinearMatrixType
operator* (
const LinearMatrixType& other,
const Scaling& s)
95 {
return other * s.
coeffs().asDiagonal(); }
97 template<
typename Derived>
102 inline VectorType
operator* (
const VectorType& other)
const 103 {
return coeffs().asDiagonal() * other; }
120 template<
typename NewScalarType>
125 template<
typename OtherScalarType>
127 { m_coeffs = other.
coeffs().template cast<Scalar>(); }
134 {
return m_coeffs.isApprox(other.
m_coeffs, prec); }
146 template<
typename Scalar,
int Dim>
158 template<
typename Scalar,
int Dim>
162 TransformType res = t;
Represents a possibly non uniform scaling transformation.
Scaling(const VectorType &coeffs)
Matrix< Scalar, Dim, Dim > LinearMatrixType
const VectorType & vector() const
Scaling< double, 3 > Scaling3d
Scaling(const Scalar &sx, const Scalar &sy)
Scaling operator*(const Scaling &other) const
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
LinearMatrixType operator*(const RotationBase< Derived, Dim > &r) const
bool isApprox(const Scaling &other, typename NumTraits< Scalar >::Real prec=precision< Scalar >()) const
Represents a translation transformation.
const VectorType & coeffs() const
internal::cast_return_type< Scaling, Scaling< NewScalarType, Dim > >::type cast() const
Translation< Scalar, Dim > TranslationType
Scaling & operator=(const Scaling &other)
Scaling< float, 3 > Scaling3f
Transform< Scalar, Dim > TransformType
Common base class for compact rotation representations.
Matrix< Scalar, Dim, 1 > VectorType
Derived & setZero(Index size)
Derived & setConstant(Index size, const Scalar &value)
Scaling< float, 2 > Scaling2f
Scaling(const Scalar &sx, const Scalar &sy, const Scalar &sz)
Scaling< double, 2 > Scaling2d
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar, Size)
Scaling(const Scaling< OtherScalarType, Dim > &other)
RotationMatrixType toRotationMatrix() const