aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Geometry/Translation.h
Commit message (Collapse)AuthorAge
* EIGEN_MAKE_ALIGNED_OPERATOR_NEW didn't actually need to get the classGravatar Benoit Jacob2009-01-08
| | | | name as parameter
* the big memory changes. the most important changes are:Gravatar Benoit Jacob2009-01-08
| | | | | | | ei_aligned_malloc now really behaves like a malloc (untyped, doesn't call ctor) ei_aligned_new is the typed variant calling ctor EIGEN_MAKE_ALIGNED_OPERATOR_NEW now takes the class name as parameter
* * introduce macros to replace inheritance for operator new overloadingGravatar Benoit Jacob2009-01-06
| | | | | | | | | (former solution still available and tested) This plays much better with classes that already have base classes -- don't force the user to mess with multiple inheritance, which gave much trouble with MSVC. * Expand the unaligned assert dox page * Minor fixes in the lazy evaluation dox page
* inherit from ei_with_aligned_operator_new even with disabled vectorizationGravatar Armin Berres2009-01-05
|
* unless i find more failures in the tests, this will be beta3...Gravatar Benoit Jacob2008-12-22
| | | | | * fixes for mistakes (especially in the cast() methods in Geometry) revealed by the new "mixing types" test * dox love, including a section on coeff access in core and an overview in geometry
* Add an axis aligned box in the geometry module.Gravatar Gael Guennebaud2008-10-26
| | | | | | | | Some naming questions: - for "extend" we could also think of: "expand", "union", "add" - same for "clamp": "crop", "intersect" - same for "contains": "isInside", "intersect" => ah "intersect" is conflicting, so that eliminates this one !
* Add isApprox in Geometry module's classes.Gravatar Gael Guennebaud2008-10-25
| | | | Complete unit tests wrt previous commits.
* oops forgot the inline keyword (though for gcc it was implicit)Gravatar Gael Guennebaud2008-10-25
|
* Add smart cast functions and ctor with scalar conversion (explicit)Gravatar Gael Guennebaud2008-10-25
| | | | | to all classes of the Geometry module. By smart I mean that if current type == new type, then it returns a const reference to *this => zero overhead
* Solve a big issue with data alignment and dynamic allocation:Gravatar Gael Guennebaud2008-09-03
| | | | | | | | | | | | | | | | * add a WithAlignedOperatorNew class with overloaded operator new * make Matrix (and Quaternion, Transform, Hyperplane, etc.) use it if needed such that "*(new Vector4) = xpr" does not failed anymore. * Please: make sure your classes having fixed size Eigen's vector or matrice attributes inherit WithAlignedOperatorNew * add a ei_new_allocator STL memory allocator to use with STL containers. This allocator really calls operator new on your types (unlike GCC's new_allocator). Example: std::vector<Vector4f> data(10); will segfault if the vectorization is enabled, instead use: std::vector<Vector4f,ei_new_allocator<Vector4f> > data(10); NOTE: you only have to worry if you deal with fixed-size matrix types with "sizeof(matrix_type)%16==0"...
* Split Rotation.h to Rotation2D.h and RotationBase.h,Gravatar Gael Guennebaud2008-08-30
| | | | | and more code factorization based on RotationBase. Added notes about the main aim of the Translation and Scaling classes.
* * added a RotationBase class following the CRT patternGravatar Gael Guennebaud2008-08-30
| | | | | | | | This allow code factorization and generic template specialization of functions * added any_rotation * {Translation,Scaling,Transform} products methods * rewrite of the actually broken ToRoationMatrix helper class to a global ei_toRotationMatrix function.
* update Transform::inverse() to take an optional argument stating whether the ↵Gravatar Gael Guennebaud2008-08-30
| | | | | | | | | | 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)
* Add Scaling and Translation class as discussed on ML, still missing:Gravatar Gael Guennebaud2008-08-30
* handling Quaternion, AngleAxis and Rotation2D, 2 options here: 1- make all of them inheriting a common base class Rotation such that we can have a single version of operator* for all the rotation type (they all get converted to a matrix) 2- write a version for all type (so 3 rotations types * 3 for Transform,Translation and Scaling) * real documentation