Public Types | Public Member Functions | Protected Attributes | Friends

Scaling< _Scalar, _Dim > Class Template Reference
[Geometry_Module]

Represents a possibly non uniform scaling transformation. More...

#include <Scaling.h>

List of all members.

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 VectorTypecoeffs () const
VectorTypecoeffs ()
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
Scalingoperator= (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)

Detailed Description

template<typename _Scalar, int _Dim>
class Scaling< _Scalar, _Dim >

Represents a possibly non uniform scaling transformation.

Represents a generic uniform scaling transformation.

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 scaling transformation, but rather to make easier the constructions and updates of Transform objects.
See also:
class Translation, class Transform
Parameters:
_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.

See also:
Scaling(), class DiagonalMatrix, MatrixBase::asDiagonal(), class Translation, class Transform

Member Typedef Documentation

template<typename _Scalar, int _Dim>
typedef Matrix<Scalar,Dim,Dim> Scaling< _Scalar, _Dim >::LinearMatrixType

corresponding linear transformation matrix type

template<typename _Scalar, int _Dim>
typedef _Scalar Scaling< _Scalar, _Dim >::Scalar

the scalar type of the coefficients

template<typename _Scalar, int _Dim>
typedef Transform<Scalar,Dim> Scaling< _Scalar, _Dim >::TransformType

corresponding affine transformation type

template<typename _Scalar, int _Dim>
typedef Translation<Scalar,Dim> Scaling< _Scalar, _Dim >::TranslationType

corresponding translation type

template<typename _Scalar, int _Dim>
typedef Matrix<Scalar,Dim,1> Scaling< _Scalar, _Dim >::VectorType

corresponding vector type


Member Enumeration Documentation

template<typename _Scalar, int _Dim>
anonymous enum

dimension of the space

Enumerator:
Dim 

Constructor & Destructor Documentation

template<typename _Scalar, int _Dim>
Scaling< _Scalar, _Dim >::Scaling (  )  [inline]

Default constructor without initialization.

template<typename _Scalar, int _Dim>
Scaling< _Scalar, _Dim >::Scaling ( const Scalar s  )  [inline, explicit]

Constructs and initialize a uniform scaling transformation

template<typename _Scalar, int _Dim>
Scaling< _Scalar, _Dim >::Scaling ( const Scalar sx,
const Scalar sy 
) [inline]

2D only

template<typename _Scalar, int _Dim>
Scaling< _Scalar, _Dim >::Scaling ( const Scalar sx,
const Scalar sy,
const Scalar sz 
) [inline]

3D only

template<typename _Scalar, int _Dim>
Scaling< _Scalar, _Dim >::Scaling ( const VectorType coeffs  )  [inline, explicit]

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

template<typename _Scalar, int _Dim>
template<typename OtherScalarType >
Scaling< _Scalar, _Dim >::Scaling ( const Scaling< OtherScalarType, Dim > &  other  )  [inline, explicit]

Copy constructor with scalar type conversion


Member Function Documentation

template<typename _Scalar, int _Dim>
template<typename NewScalarType >
internal::cast_return_type<Scaling,Scaling<NewScalarType,Dim> >::type Scaling< _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.

template<typename _Scalar, int _Dim>
const VectorType& Scaling< _Scalar, _Dim >::coeffs (  )  const [inline]
template<typename _Scalar, int _Dim>
VectorType& Scaling< _Scalar, _Dim >::coeffs (  )  [inline]
template<typename _Scalar, int _Dim>
Scaling Scaling< _Scalar, _Dim >::inverse ( void   )  const [inline]
Returns:
the inverse scaling
template<typename _Scalar, int _Dim>
bool Scaling< _Scalar, _Dim >::isApprox ( const Scaling< _Scalar, _Dim > &  other,
typename NumTraits< Scalar >::Real  prec = precision<Scalar>() 
) const [inline]
Returns:
true if *this is approximately equal to other, within the precision determined by prec.
See also:
MatrixBase::isApprox()
template<typename Scalar , int Dim>
Scaling< Scalar, Dim >::TransformType Scaling< Scalar, Dim >::operator* ( const TransformType t  )  const [inline]

Concatenates a scaling and an affine transformation

template<typename _Scalar, int _Dim>
template<typename Derived >
LinearMatrixType Scaling< _Scalar, _Dim >::operator* ( const RotationBase< Derived, Dim > &  r  )  const [inline]
template<typename _Scalar, int _Dim>
Scaling Scaling< _Scalar, _Dim >::operator* ( const Scaling< _Scalar, _Dim > &  other  )  const [inline]

Concatenates two scaling

template<typename _Scalar, int _Dim>
LinearMatrixType Scaling< _Scalar, _Dim >::operator* ( const LinearMatrixType other  )  const [inline]

Concatenates a scaling and a linear transformation matrix

template<typename _Scalar, int _Dim>
VectorType Scaling< _Scalar, _Dim >::operator* ( const VectorType other  )  const [inline]

Applies scaling to vector

template<typename Scalar , int Dim>
Scaling< Scalar, Dim >::TransformType Scaling< Scalar, Dim >::operator* ( const TranslationType t  )  const [inline]

Concatenates a scaling and a translation

template<typename _Scalar, int _Dim>
Scaling& Scaling< _Scalar, _Dim >::operator= ( const Scaling< _Scalar, _Dim > &  other  )  [inline]

Friends And Related Function Documentation

template<typename _Scalar, int _Dim>
LinearMatrixType operator* ( const LinearMatrixType other,
const Scaling< _Scalar, _Dim > &  s 
) [friend]

Concatenates a linear transformation matrix and a scaling


Member Data Documentation

template<typename _Scalar, int _Dim>
VectorType Scaling< _Scalar, _Dim >::m_coeffs [protected]

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