Commit Graph

650 Commits

Author SHA1 Message Date
Gael Guennebaud
6825c8dd6b QTransform conversion and doc 2008-09-01 06:33:19 +00:00
Gael Guennebaud
994629721a update of the geometry tutorial 2008-08-31 17:30:09 +00:00
Benoit Jacob
d74916e4fe same thing with EIGEN_BINARY_DIR. Now the doc generation works from kdesupport. 2008-08-31 15:20:25 +00:00
Benoit Jacob
c931867909 also use EIGEN_SOURCE_DIR here. according to grep this was the last place to
change.
2008-08-31 15:12:55 +00:00
Benoit Jacob
ff60c9ccb1 fix cmakelists: wrong assumption on CMAKE_SOURCE_DIR. One can now use
EIGEN_SOURCE_DIR for that use, guaranteed to point to eigen2/ directory.
2008-08-31 15:08:41 +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
Benoit Jacob
5c34d8e20a The discussed changes to Hyperplane, the ParametrizedLine class, and the
API update in Regression...
2008-08-31 04:25:30 +00:00
Gael Guennebaud
5c8c09e021 add uniform scale/prescale functions in Tranform 2008-08-30 23:10:46 +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
027ee14f31 api.kde.org is still bugged, let's do another try... 2008-08-30 16:30:58 +00:00
Gael Guennebaud
f1e6c56b77 * rename TranformationKnowledge to TransformTraits
* apply the same principle to extractRotation and fix it to
  extract a rotation corresponding to a positive scaling
2008-08-30 15:22:45 +00:00
Gael Guennebaud
236b7a545d 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)
2008-08-30 12:42:06 +00:00
Gael Guennebaud
9e7a9cde14 Add Scaling and Translation class as discussed on ML, still missing:
* 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
2008-08-30 00:08:23 +00:00
Gael Guennebaud
13a9d93bc0 minor doc fixes 2008-08-29 17:45:11 +00:00
Gael Guennebaud
582c1b6c3a in doc for kde: fix project name and number, add the amssymb latex package 2008-08-29 16:32:54 +00:00
Gael Guennebaud
063d1bb811 tweak root/Mainpage.dox to make it compatible with kde's doxygen.sh script
plus some hacks to compile the examples from doxygen...
Hopefully, api.kde.org/eigen2 will be beautiful by tomorrow....
2008-08-29 16:17:06 +00:00
Gael Guennebaud
68fbd6f531 typos in bench/ 2008-08-29 16:10:08 +00:00
Gael Guennebaud
6d841512c7 some hyperplane changes:
- the coefficients are stored in a single vector
- added transformation methods
- removed Line* typedef since in 2D this is really an hyperplane
  and not really a line...
- HyperPlane => Hyperplane
2008-08-29 13:30:37 +00:00
Gael Guennebaud
409e82be06 doc and use sed to clean the class hierarchy instead of
preprocessor directives.
2008-08-28 23:25:27 +00:00
Gael Guennebaud
7ea821d18e spelling + some krazy directives 2008-08-28 21:44:56 +00:00
Gael Guennebaud
80be1ea515 remove CoreDeclaration from the documentation 2008-08-28 19:11:03 +00:00
Gael Guennebaud
9b4d46c82e * Add an HyperPlane class in the Geometry module
with its respective unit-test.
  Feel free to discuss the API on the ML.
* Some bugfix in unitOrthogonal found by the hyperplane unit test.
2008-08-28 17:44:27 +00:00
Jure Repinc
ee2df6026a CoreDeclarations was removed 2008-08-28 17:33:27 +00:00
Gael Guennebaud
3ced3f91c2 * temporarily remove doxygen customization, we'll see if that fix api.kde.org
but I no hope, that would be too simple !
* added Rotation2D typedefs
* remove CoreDeclarations header file
2008-08-28 15:28:23 +00:00
Gael Guennebaud
70266b4d05 doc + quick bug fix in Matrix ctor 2008-08-28 00:33:58 +00:00
Benoit Jacob
f7de12de69 Missing inline keywords in AltiVec/PacketMath were making Avogadro fail
to compile (duplicate symbols).
2008-08-27 20:06:15 +00:00
Benoit Jacob
252e0c45b2 * missing cmake make_directory command
* show svn revision number if available
* fix warnings about unused argc/argv

Gael: I just saw your latest docs, it's completely awesome.
2008-08-27 06:43:42 +00:00
Benoit Jacob
a0cfe6ebdc remove double ; 2008-08-27 02:58:04 +00:00
Gael Guennebaud
8e8019d289 improvements in geometry tutorial 2008-08-27 00:46:24 +00:00
Gael Guennebaud
083ffa8c41 #undef vector after including altivec.h 2008-08-27 00:09:58 +00:00
Benoit Jacob
12c6b45ae5 replace vector by __vector to prevent conflict with std::vector 2008-08-26 23:25:10 +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
Gael Guennebaud
00a8d314c5 * move memory related stuff to util/Memory.h
* clean ugly doxygen inheritence of expressions
* keep improving the documentation... slowly !
2008-08-26 19:12:23 +00:00
Gael Guennebaud
3e526dcdbd BTL:added trisolve action file 2008-08-26 10:46:58 +00:00
Gael Guennebaud
8f9d30cb20 * patch from Konstantinos Margaritis: bugfix in Altivec version of ei_pdiv
and various cleaning in Altivec code. Altivec vectorization have been re-enabled
  in CoreDeclaration
* added copy constructors in non empty functors because I observed weird behavior with
  std::complex<>
2008-08-25 16:22:56 +00:00
Gael Guennebaud
7ce70e1437 various updates in BTL 2008-08-25 14:23:08 +00:00
Gael Guennebaud
d2b345e6a9 bugfix in test/packetmath.h 2008-08-25 14:19:57 +00:00
Gael Guennebaud
9e25dfcb2c Various doc improvements... including a owl in the API doc header. 2008-08-25 10:49:53 +00:00
Benoit Jacob
da674fa032 Shut up two bogus gcc 4.3 warnings 2008-08-25 03:13:14 +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
aa54d6bef0 arf, of course a meta-selector was required here 2008-08-24 21:36:14 +00:00
Benoit Jacob
124ec71c50 allow constructing Transform from small-matrix (like fromPosOrientScale
but with trivial Pos and Scale)
2008-08-24 21:25:04 +00:00
Benoit Jacob
bf31d81aac argh, gael you're more clever than i remembered. diagonal product is
optimized. so, i almost revert, just reordering to reduce # of
load/store.
2008-08-24 20:53:04 +00:00
Benoit Jacob
d3529e9c40 optimization: spare the 3x3 matrix product in
fromPositionOrientationScale
2008-08-24 20:50:18 +00:00
Benoit Jacob
6a36b5a6e0 add AngleAxis::operator*(const Vector3&) 2008-08-24 20:13:32 +00:00
Benoit Jacob
6b591d06c5 add data() methods to Transform 2008-08-24 20:02:20 +00:00
Benoit Jacob
b815b23e09 forgot to install Regression public header 2008-08-24 19:39:07 +00:00
Gael Guennebaud
854d6e8458 Documentation: fill the placeholders, add a custom CSS file,
add a reference to the tutorial in the main page.
2008-08-24 19:14:20 +00:00
Benoit Jacob
251ecc0ab9 Rename someOrthogonal to unitOrthogonal. Fix a bug in it, with dyn-size vectors of size <=3.
Update doc and test to reflect that it always returns a unit vector.
2008-08-24 17:31:03 +00:00