big rework of the Transform class:

* add Projective and AffineCompact modes as an optional third template
  argument
* extend Transform::operator* to support more use cases
This commit is contained in:
Gael Guennebaud
2009-03-08 11:35:30 +00:00
parent 7718a8ed83
commit 3ac42fed94
7 changed files with 638 additions and 234 deletions

View File

@@ -240,11 +240,10 @@ enum {
};
enum TransformTraits {
Affine = 0x1,
Isometry = 0x2,
AffineSquare = Affine|0x10,
AffineCompact = Affine|0x20,
Projective = 0x30
Isometry = 0x1,
Affine = 0x2,
AffineCompact = 0x10 | Affine,
Projective = 0x20
};
const int EiArch_Generic = 0x0;

View File

@@ -118,7 +118,7 @@ template<typename Lhs, typename Rhs> class Cross;
template<typename Scalar> class Quaternion;
template<typename Scalar> class Rotation2D;
template<typename Scalar> class AngleAxis;
template<typename Scalar,int Dim/*,int Mode=AffineSquare*/> class Transform;
template<typename Scalar,int Dim,int Mode=Affine> class Transform;
template <typename _Scalar, int _AmbientDim> class ParametrizedLine;
template <typename _Scalar, int _AmbientDim> class Hyperplane;
template<typename Scalar,int Dim> class Translation;