10#ifndef EIGEN_SCALING_H
11#define EIGEN_SCALING_H
14#include "./InternalHeaderCheck.h"
39template <
typename Scalar,
int Dim,
int Mode>
40struct uniformscaling_times_affine_returntype {
42 typedef Transform<Scalar, Dim, NewMode> type;
46template <
typename Scalar_>
61 inline const Scalar& factor()
const {
return m_factor; }
62 inline Scalar& factor() {
return m_factor; }
74 template <
int Dim,
int Mode,
int Options>
75 inline typename internal::uniformscaling_times_affine_returntype<Scalar, Dim, Mode>::type
operator*(
77 typename internal::uniformscaling_times_affine_returntype<Scalar, Dim, Mode>::type res = t;
78 res.prescale(factor());
84 template <
typename Derived>
86 return other * m_factor;
89 template <
typename Derived,
int Dim>
102 template <
typename NewScalarType>
108 template <
typename OtherScalarType>
110 m_factor =
Scalar(other.factor());
118 const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision())
const {
119 return internal::isApprox(m_factor, other.factor(), prec);
131template <
typename Derived,
typename Scalar>
132EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived, Scalar, product)
134 return matrix.derived() * s.factor();
142template <
typename RealScalar>
148template <
typename Scalar>
153template <
typename Scalar>
161template <
typename Derived>
167template <
typename Derived>
169 return typename DiagonalWrapper<const Derived>::PlainObject(std::move(coeffs.derived()));
182template <
typename Scalar>
187 res.
linear().diagonal().fill(factor());
189 res(Dim, Dim) =
Scalar(1);
Represents a diagonal matrix with its storage.
Definition DiagonalMatrix.h:172
Expression of a diagonal matrix.
Definition DiagonalMatrix.h:320
Base class for all dense matrices, vectors, and expressions.
Definition MatrixBase.h:52
const DiagonalWrapper< const Derived > asDiagonal() const
Definition DiagonalMatrix.h:347
The matrix class, also used for vectors and row-vectors.
Definition Matrix.h:186
Common base class for compact rotation representations.
Definition RotationBase.h:32
RotationMatrixType toRotationMatrix() const
Definition RotationBase.h:47
Represents a translation transformation.
Definition Translation.h:33
@ Affine
Definition Constants.h:458
@ Isometry
Definition Constants.h:455
Namespace containing all symbols from the Eigen library.
Definition B01_Experimental.dox:1
UniformScaling< float > Scaling(float s)
Definition Scaling.h:138
DiagonalMatrix< float, 3 > AlignedScaling3f
Definition Scaling.h:177
DiagonalMatrix< double, 3 > AlignedScaling3d
Definition Scaling.h:179
DiagonalMatrix< double, 2 > AlignedScaling2d
Definition Scaling.h:175
DiagonalMatrix< float, 2 > AlignedScaling2f
Definition Scaling.h:173