26 Commits

Author SHA1 Message Date
Gael Guennebaud
3d385ae968 angle-axis doc: make it more clear the axis must be normalized 2009-03-18 19:38:55 +00:00
Gael Guennebaud
82e70fbcae fix duplicated geometry module in the doc 2009-01-29 23:10:16 +00:00
Gael Guennebaud
1752a3a677 more MSVC fixes, and more code factorization in Geometry module 2009-01-29 09:36:48 +00:00
Kenneth Frank Riddile
6736e52d25 * suppressed some minor warnings 2009-01-06 04:38:00 +00:00
Benoit Jacob
789ea9d676 unless i find more failures in the tests, this will be beta3...
* 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
2008-12-22 20:50:47 +00:00
Benoit Jacob
3d90c13970 norm2() renamed to squaredNorm(), kept as deprecated for now. 2008-11-03 19:14:17 +00:00
Gael Guennebaud
ec0a423862 Add isApprox in Geometry module's classes.
Complete unit tests wrt previous commits.
2008-10-25 23:10:21 +00:00
Gael Guennebaud
505ce85814 oops forgot the inline keyword (though for gcc it was implicit) 2008-10-25 22:41:53 +00:00
Gael Guennebaud
e5b8a59cfa Add smart cast functions and ctor with scalar conversion (explicit)
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
2008-10-25 22:38:22 +00:00
Gael Guennebaud
7e8aa63bb7 * Add Hyperplane::transform(Matrix/Transform)
* Fix compilations with gcc 3.4, ICC and doxygen
* Fix krazy directives (hopefully)
2008-08-31 13:32:29 +00:00
Gael Guennebaud
9c450a52a2 Split Rotation.h to Rotation2D.h and RotationBase.h,
and more code factorization based on RotationBase.
Added notes about the main aim of the Translation and Scaling classes.
2008-08-30 21:36:04 +00:00
Gael Guennebaud
6ba991aa3a * added a RotationBase class following the CRT pattern
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.
2008-08-30 20:11:04 +00:00
Gael Guennebaud
63d3ef8204 * remove debug code commited by mistake in Assign
* keep going on the doc: added a short geometry tutorial
2008-08-26 23:07:33 +00:00
Benoit Jacob
5ac883b10a Fix a bug discovered in Avogadro: the AngleAxis*Matrix and the newer
AngleAxis*Vector products were wrong because they returned the product
_expression_
   toRotationMatrix()*other;
and toRotationMatrix() died before that expression would be later
evaluated. Here it would not have been practical to NestByValue as this
is a whole matrix. So, let them simply evaluate and return the result by
value.

The geometry.cpp unit-test only checked for compatibility between
various rotations, it didn't check the correctness of the rotations
themselves. That's why this bug escaped us. So, this commit checks that
the rotations produced by AngleAxis have all the expected properties.
Since the compatibility with the other rotations is already checked,
this should validate them as well.
2008-08-24 23:16:51 +00:00
Benoit Jacob
6a36b5a6e0 add AngleAxis::operator*(const Vector3&) 2008-08-24 20:13:32 +00:00
Gael Guennebaud
f2f48b6560 * remove LargeBit and related stuff
* replaced the Flags template parameter of Matrix by StorageOrder
  and move it back to the 4th position such that we don't have to
  worry about the two Max* template parameters
* extended EIGEN_USING_MATRIX_TYPEDEFS with the ei_* math functions
2008-08-23 17:11:44 +00:00
Gael Guennebaud
2120fed849 * bug fixes in: Dot, generalized eigen problem, singular matrix detetection in Cholesky
* fix all numerical instabilies in the unit tests, now all tests can be run 2000 times
  with almost zero failures.
2008-08-23 15:14:20 +00:00
Benoit Jacob
c705c38a23 * it's \returns not \Returns
* add some explanations in the typedefs page
* expand a bit the new QuickStartGuide. Some placeholders (not a pb since
it's not even yet linked to from other pages). The point I want to make is
that it's super important to have fully compilable short programs (even
with compile instructions for the first one) not just small snippets, at
least at the beginning. Let's start with examples of compilable programs.
2008-08-20 04:34:04 +00:00
Gael Guennebaud
95dd09bea6 * revert the previous interface change in solveTriangular (pointer vs reference)
* remove the cast operators in the Geometry module: they are replaced by constructors
  and new operator= in Matrix
* extended the operations supported by Rotation2D
* rewrite in solveTriangular:
  - merge the Upper and Lower specializations
  - big optimization of the path for row-major triangular matrices
2008-08-18 22:17:42 +00:00
Gael Guennebaud
516db2c3b9 Fix compilation issues with icc and g++ < 4.1. Those include:
- conflicts with operator * overloads
 - discard the use of ei_pdiv for interger
   (g++ handles operators on __m128* types, this is why it worked)
 - weird behavior of icc in fixed size Block() constructor complaining
   the initializer of m_blockRows and m_blockCols were missing while
   we are in fixed size (maybe this hide deeper problem since this is a
   recent one, but icc gives only little feedback)
2008-07-21 12:40:56 +00:00
Gael Guennebaud
ce425d92f1 Various documentation improvements, in particualr in Cholesky and Geometry module.
Added doxygen groups for Matrix typedefs and the Geometry module
2008-07-20 15:18:54 +00:00
Gael Guennebaud
269f683902 Add cholesky's members to MatrixBase
Various documentation improvements including new snippets (AngleAxis and Cholesky)
2008-07-19 22:59:05 +00:00
Gael Guennebaud
6e2c53e056 Added an automatically generated list of selected examples in the documentation.
Added the custom gemetry_module tag, and use it.
2008-07-19 20:36:41 +00:00
Gael Guennebaud
05ad083467 Added MatrixBase::Unit*() static function to easily create unit/basis vectors.
Removed EulerAngles, addes typdefs for Quaternion and AngleAxis,
and added automatic conversions from Quaternion/AngleAxis to Matrix3 such that:
 Matrix3f m = AngleAxisf(0.2,Vector3f::UnitX) * AngleAxisf(0.2,Vector3f::UnitY);
just works.
2008-07-19 13:03:23 +00:00
Benoit Jacob
f5791eeb70 the big Array/Cwise rework as discussed on the mailing list. The new API
can be seen in Eigen/src/Core/Cwise.h.
2008-07-08 00:49:10 +00:00
Gael Guennebaud
32c5ea388e work on rotations in the Geometry module:
- convertions are done trough constructors and operator=
 - added a EulerAngles class
2008-06-21 15:01:49 +00:00