Represents a possibly non uniform scaling transformation. More...
#include <Scaling.h>
Public Types | |
enum | { Dim = _Dim } |
typedef _Scalar | Scalar |
typedef Matrix< Scalar, Dim, 1 > | VectorType |
typedef Matrix< Scalar, Dim, Dim > | LinearMatrixType |
typedef Translation< Scalar, Dim > | TranslationType |
typedef Transform< Scalar, Dim > | TransformType |
Public Member Functions | |
Scaling () | |
Scaling (const Scalar &s) | |
Scaling (const Scalar &sx, const Scalar &sy) | |
Scaling (const Scalar &sx, const Scalar &sy, const Scalar &sz) | |
Scaling (const VectorType &coeffs) | |
const VectorType & | coeffs () const |
VectorType & | coeffs () |
Scaling | operator* (const Scaling &other) const |
TransformType | operator* (const TranslationType &t) const |
TransformType | operator* (const TransformType &t) const |
LinearMatrixType | operator* (const LinearMatrixType &other) const |
template<typename Derived > | |
LinearMatrixType | operator* (const RotationBase< Derived, Dim > &r) const |
VectorType | operator* (const VectorType &other) const |
Scaling | inverse () const |
Scaling & | operator= (const Scaling &other) |
template<typename NewScalarType > | |
internal::cast_return_type < Scaling, Scaling < NewScalarType, Dim > >::type | cast () const |
template<typename OtherScalarType > | |
Scaling (const Scaling< OtherScalarType, Dim > &other) | |
bool | isApprox (const Scaling &other, typename NumTraits< Scalar >::Real prec=precision< Scalar >()) const |
Protected Attributes | |
VectorType | m_coeffs |
Friends | |
LinearMatrixType | operator* (const LinearMatrixType &other, const Scaling &s) |
Represents a possibly non uniform scaling transformation.
Represents a generic uniform scaling transformation.
_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 |
_Scalar | the scalar type, i.e., the type of the coefficients. |
This class represent a uniform scaling transformation. It is the return type of Scaling(Scalar), and most of the time this is the only way it is used. In particular, this class is not aimed to be used to store a scaling transformation, but rather to make easier the constructions and updates of Transform objects.
To represent an axis aligned scaling, use the DiagonalMatrix class.
typedef Matrix<Scalar,Dim,Dim> Scaling< _Scalar, _Dim >::LinearMatrixType |
corresponding linear transformation matrix type
the scalar type of the coefficients
typedef Transform<Scalar,Dim> Scaling< _Scalar, _Dim >::TransformType |
corresponding affine transformation type
typedef Translation<Scalar,Dim> Scaling< _Scalar, _Dim >::TranslationType |
corresponding translation type
typedef Matrix<Scalar,Dim,1> Scaling< _Scalar, _Dim >::VectorType |
corresponding vector type
Default constructor without initialization.
Scaling< _Scalar, _Dim >::Scaling | ( | const Scalar & | s | ) | [inline, explicit] |
Constructs and initialize a uniform scaling transformation
Scaling< _Scalar, _Dim >::Scaling | ( | const Scalar & | sx, | |
const Scalar & | sy | |||
) | [inline] |
2D only
Scaling< _Scalar, _Dim >::Scaling | ( | const Scalar & | sx, | |
const Scalar & | sy, | |||
const Scalar & | sz | |||
) | [inline] |
3D only
Scaling< _Scalar, _Dim >::Scaling | ( | const VectorType & | coeffs | ) | [inline, explicit] |
Constructs and initialize the scaling transformation from a vector of scaling coefficients
Scaling< _Scalar, _Dim >::Scaling | ( | const Scaling< OtherScalarType, Dim > & | other | ) | [inline, explicit] |
Copy constructor with scalar type conversion
internal::cast_return_type<Scaling,Scaling<NewScalarType,Dim> >::type Scaling< _Scalar, _Dim >::cast | ( | ) | const [inline] |
*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
.
const VectorType& Scaling< _Scalar, _Dim >::coeffs | ( | ) | const [inline] |
VectorType& Scaling< _Scalar, _Dim >::coeffs | ( | ) | [inline] |
Scaling Scaling< _Scalar, _Dim >::inverse | ( | void | ) | const [inline] |
bool Scaling< _Scalar, _Dim >::isApprox | ( | const Scaling< _Scalar, _Dim > & | other, | |
typename NumTraits< Scalar >::Real | prec = precision<Scalar>() | |||
) | const [inline] |
true
if *this
is approximately equal to other, within the precision determined by prec.Scaling< Scalar, Dim >::TransformType Scaling< Scalar, Dim >::operator* | ( | const TransformType & | t | ) | const [inline] |
Concatenates a scaling and an affine transformation
LinearMatrixType Scaling< _Scalar, _Dim >::operator* | ( | const RotationBase< Derived, Dim > & | r | ) | const [inline] |
Scaling Scaling< _Scalar, _Dim >::operator* | ( | const Scaling< _Scalar, _Dim > & | other | ) | const [inline] |
Concatenates two scaling
LinearMatrixType Scaling< _Scalar, _Dim >::operator* | ( | const LinearMatrixType & | other | ) | const [inline] |
Concatenates a scaling and a linear transformation matrix
VectorType Scaling< _Scalar, _Dim >::operator* | ( | const VectorType & | other | ) | const [inline] |
Applies scaling to vector
Scaling< Scalar, Dim >::TransformType Scaling< Scalar, Dim >::operator* | ( | const TranslationType & | t | ) | const [inline] |
Concatenates a scaling and a translation
Scaling& Scaling< _Scalar, _Dim >::operator= | ( | const Scaling< _Scalar, _Dim > & | other | ) | [inline] |
LinearMatrixType operator* | ( | const LinearMatrixType & | other, | |
const Scaling< _Scalar, _Dim > & | s | |||
) | [friend] |
Concatenates a linear transformation matrix and a scaling
VectorType Scaling< _Scalar, _Dim >::m_coeffs [protected] |