aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/TutorialGeometry.dox
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-12-22 20:50:47 +0000
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-12-22 20:50:47 +0000
commit789ea9d6762b2a0b2c737978f83939853cdb9fc3 (patch)
treea24c40b1ea4683edc86887c7e3a70ed029d1298b /doc/TutorialGeometry.dox
parent4336cf3833d87bc1c8b4c9ef6f884547c80e31f0 (diff)
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
Diffstat (limited to 'doc/TutorialGeometry.dox')
-rw-r--r--doc/TutorialGeometry.dox22
1 files changed, 22 insertions, 0 deletions
diff --git a/doc/TutorialGeometry.dox b/doc/TutorialGeometry.dox
index 5a1a3e06e..b30499763 100644
--- a/doc/TutorialGeometry.dox
+++ b/doc/TutorialGeometry.dox
@@ -18,6 +18,28 @@ namely 2D and 3D rotations and affine transformations.
- \ref TutorialGeoTransform
- \ref TutorialGeoEulerAngles
+Eigen's Geometry module provides two different kinds of geometric transformations:
+ - Abstract transformations, such as rotations (represented by \ref AngleAxis "angle and axis" or by a \ref Quaternion "quaternion"), \ref Translation "translations", \ref Scaling "scalings". These transformations are NOT represented as matrices, but you can nevertheless mix them with matrices and vectors in expressions, and convert them to matrices if you wish.
+ - Affine transformation matrices: see the Transform class. These are really matrices.
+
+\note If you are working with OpenGL 4x4 matrices then Transform3f and Transform3d are what you want. Since Eigen defaults to column-major storage, you can directly use the Transform::data() method to pass your transformation matrix to OpenGL.
+
+You can construct a Transform from an abstract transformation, like this:
+\code
+ Transform t(AngleAxis(angle,axis));
+\endcode
+or like this:
+\code
+ Transform t;
+ t = AngleAxis(angle,axis);
+\endcode
+But note that unfortunately, because of how C++ works, you can \b not do this:
+\code
+ Transform t = AngleAxis(angle,axis);
+\endcode
+<span class="note">\b Explanation: In the C++ language, this would require Transform to have a non-explicit conversion constructor from AngleAxis, but we really don't want to allow implicit casting here.
+</span>
+
\section TutorialGeoElementaryTransformations Transformation types
<table class="tutorial_code">