Re: [eigen] Do we need geometry refactoring?

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


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
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/