Re: [eigen] geometry module...

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


My point is that we must preserve associativity (up to machine precision ;) )

  (Scaling * Translation) * Vector == Scaling * (Translation * Vector)

We would lose that if we let Scaling * Translation return the
translation by the scaled vector.

Benoit

2010/3/19 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
> On Fri, Mar 19, 2010 at 7:44 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>>> - make UniformScale * Translation return a Translation
>>
>> I don't understand that. UniformScale * Translation should return the
>> composite transformation, that consists in first translating and then
>> scaling. This is not a translation!
>
> Well, maybe the bigger problem is that we do not yet have expressions
> in the transformation chain. A translation is not even a
> transformation but it behaves as such since
>
> Vector = Translation * Vector
>
> is a valid operation - i.e. translations behaves like a transformation
> matrices. And given
>
> Vector = Scaling * Translation * Vector
>
> which can be written as
>
> Vector = (Scaling * Translation) * Vector = OtherTranslation * Vector
>
> I considered returning a translation - in particular since
>
> Translation * Vector
>
> is way more efficient than
>
> ProjectiveTransformation * Vector.
>
> Maybe now I managed to maximize confusion but I agree that such a
> trivial fix is not really a fix and thus I will leave it alone for the
> moment.
>
> - Hauke
>
>
>



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