|Re: [eigen] Do we need geometry refactoring?|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Do we need geometry refactoring?
- From: Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>
- Date: Mon, 2 Aug 2010 21:35:10 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=7f3AaLuUNPttADD7ri1zGDx9ZmUBXgS8ngm0q74iT+Y=; b=Od+gFLw1Oq6Q+CR7jSvTJ4DbxZtXTaIc8+yMJHlZv8ZxY3QnrTDu+nkJvHUP/sdaRq riqTpVBugSAHw6mZcPJpKWM+tTOSkb8ewe57ELOzHmRkafhFJPt6wfWPmwZ1QGyxzhOD +n566xFdEP6AKusjZUWfB0DWAiMJNyvaX4xZQ=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=XWnhKlKvJoMwgWXSjs+paXRQ7Ws2Ip/4dT19PTS7JiXLBnPgVZsflVdQOfBR48jTD1 fA+FsfB8ov5zMFXAc1cDA3lVr17eoRTUR4Lyf3IKALXthVWgsutfPIvROPkodVwSIoAX Op35UKi0q1SKmTh2g9vGrHWIbDNn2X8HdkQ7c=
Yes, this is a sad side-effect when you are using code like this
Transform3f T( AngleAxisf( 0.5f, Vector3f::UnitX() ) );
Vector3f a = Vector3f::Random();
Vector3f b = T*a;
Why? Well, because your Transform3f definition is too generic. For
homogeneous transformations it is not possible to return a 3 vector.
It is only possible for affine transformations.
I just recognized that there were two error sources. Well, one error
source and one bug :) - I forgot to change the Affine typedef.
It should be fixed now.
On Mon, Aug 2, 2010 at 7:40 PM, Manuel Yguel <manuel.yguel@xxxxxxxxx> wrote:
> Sorry to come late on this,
> the recent changes (I guess this is this one) broke my code in the
> following manner, now the product of a transform times a point (an
> (n+1) x (n+1) matrix by a n vector) returns an homogeneous point aka a
> (n+1) vector.
> This was not the case previously.
> I don't know if this is on purpose but I have to know if I must fix my
> code or work on a fix for the transform class.
> - best regards,
> On Thu, Jul 29, 2010 at 5:10 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>> 2010/7/29 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>>> I pushed the following changes:
>>> - Transform is now per default Projective.
>>> - Improved invert() in the Transform class.
>>> - RotationBase offers matrix() to be conform with Transform's naming scheme.
>>> - Added Translation::translation() to be conform with Transform's naming scheme.
>>> - Safeguarded some Transform functions with compile time asserts.
>>> - Added missing static Identity() to Rotation2D, AngleAxis.
>> Thanks a lot for getting this done. This is the attitude!
>> Have you just checked that these changes are appropriately covered by
>> the unit tests? Thinking especially about the inverse() code removal.
>>> For the very last point, how about adding Translation::Identity() ?
>> OK for that.
>>> - Hauke