update Transform::inverse() to take an optional argument stating whether the transformation is:

NonAffine, Affine (default), contains NoShear, contains NoScaling
that allows significant speed improvements. If you like it, this concept could be applied to
Transform::extractRotation (or to a more advanced decomposition function) and to Hyperplane::transformed()
and maybe to some other places... e.g., I think a Transform::normalMatrix() function would not harm and
warn user that the transformation of normals is not that trivial (I saw this mistake much too often)
This commit is contained in:
Gael Guennebaud
2008-08-30 12:42:06 +00:00
parent 9e7a9cde14
commit 236b7a545d
6 changed files with 188 additions and 37 deletions

View File

@@ -41,12 +41,17 @@ template<typename _Scalar, int _Dim>
class Translation
{
public:
/** dimension of the space */
enum { Dim = _Dim };
/** the scalar type of the coefficients */
typedef _Scalar Scalar;
typedef Matrix<Scalar,Dim,Dim> LinearMatrixType;
/** corresponding vector type */
typedef Matrix<Scalar,Dim,1> VectorType;
/** corresponding linear transformation matrix type */
typedef Matrix<Scalar,Dim,Dim> LinearMatrixType;
/** corresponding scaling transformation type */
typedef Scaling<Scalar,Dim> ScalingType;
/** corresponding affine transformation type */
typedef Transform<Scalar,Dim> TransformType;
protected: