Re: [eigen] Re: proposal: call the Geometry module experimental |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Re: proposal: call the Geometry module experimental
- From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Thu, 22 Jan 2009 23:23:18 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=Ns8DF/aBc+veCQ0bpKsfwmofidyqamotGBWYJplgiiY=; b=fb30EuDUXxy+txnwpb91zD0mq7WH/dGVffzvajfWu0pWbWi/lbyd83AJb7eyuRlLyN cIn6B7EDcUqPgcF2RaowJ7Xy+WMlVgsQApuH56/vdeNNPz3Za+djchLfim0Ta8Ak4SMY r4h9ZqSiEHWEs04y+/9SIyczjP6sgXJwmNSpc=
- 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:content-transfer-encoding; b=l+7eAwk2bKjjjYMYGyFjFQW/LUntI7H2F+MkuTZvJqXlkLSIPAr7jDCg3egoGvOVTf JCvi/eVrCnGaTHEHzUf5DW2hi3lM1fYNZLl566ioAj72Qc6QsGHFqFgiRHHNVuKUmD+Z D8w+SBFXFyf+CBnWg2LFYCJViYQZHpGWrm+UQ=
the current situation have at least 4 advantages:
- it is consistent with AngleAxis, Rotation2D, Quaternion, etc.
- it allows nicer ctor: Translation(1,2,3) versus Vector3f(1, 2,
3).asTranslation()
- it allows ctor from scalar: Scaling3f(2);
- it allows for storage if someone want (think about the current
issues with DiagonalMatrix)
(ok ok the 2nd and 3th could count for 1)
and they are already very simple classes. The proxy you propose would
not be simpler, just replace the storage Matrix by a reference and add
the respective MatrixBase functions and you're done.
This is my current opinion, but as you know I changed my mind several
times by the past, so if you have good arguments who knows !
cheers,
Gael.
On Thu, Jan 22, 2009 at 9:01 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
> Ah i remember now what was the point of Translation and Scaling: to
> allow to construct a Transform by doing
>
> translation * rotation * scaling
>
> and other expressions.
>
> However, since Translation and Scaling are useless for storage, I
> think that they could be made much more simple proxys around vectors,
> and do
>
> v.asTranslation()
>
> (returning a proxy) instead of
>
> Translation(v);
>
> Benoit
>
> 2009/1/22 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
>> Hi,
>>
>> I propose to call the Geometry module experimental for the 2.0 release.
>>
>> I'd still make sure to preserve compatibility for the subset that I
>> know Krita uses (and also Avogadro).
>>
>> But i'd like to keep some freedom to improve the API.
>> I think that some classes are useless as they are just trivial
>> wrappers around vectors: Translation and Scaling. Moreover as Ben's
>> email shows they can be confusing as a geometric scaling is in general
>> not representable by class Scaling (as soon as the scaling axes are
>> rotated).
>>
>> The alternative would be to selectively mark classes as experimental,
>> but i have an overall uneasy feeling about part of the Geometry module
>> API.
>>
>> Cheers,
>> Benoit
>>
>
>
>