Re: [eigen] Do we need geometry refactoring? |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Do we need geometry refactoring?
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Mon, 2 Aug 2010 20:33:15 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=VruPi/BUjA3i8RUsu/cbCGM69JLvNd5bSUKcYkSR28Y=; b=OtJW9lautQfpQSitWuxu6dNMXrX11aFUWHE3YGl7D4akDn3g2RSkZ46Zq2ZRwlKCA2 6khIZddPLOAiQaUX0y0TneVkTWOlPIUxQTHC+ak8fcIlTyIF15byvOwI3w+OjOu+eX+c rhD8ky2t/lP/bQi3Iq6gdgP2QTMf4bSzfNuRg=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=eiF3nu/EDwR9b/fnv8/rb9oBTKLcWBr2iO1eN7auYs4FIOJ5OqPavw4gBpmCKOTs7L Q5/zeoPCNKt59hlteMrtuqpIvRyjrIHbb1QrXVhVSZ/FvRqqEnCh++9+lBOXwtuXq1jM +/N995e1iT7Tfd3+UdzoREYwBCowHlPt/VbT0=
e2010/8/2 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
> 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.
Eeek, a lot of people will be expecting that Transform3f * Vector3f
gives a Vector3f, I didn't think about this.
This is a really big argument in favor of the old default Affine for
Transform. What do you think about reverting to Affine?
Benoit
>
> - Hauke
>
> 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,
>>
>> Manuel
>>
>> 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.
>>>
>>> Benoit
>>>
>>>>
>>>> - Hauke
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>