[Insight-developers] Proposal: Changing NumericTraits of vector types to use macros

Gaëtan Lehmann gaetan.lehmann at jouy.inra.fr
Mon Nov 30 04:38:32 EST 2009


Brad, Luis,

I have already commited some code on that subject, while working on  
two long standing bugs in wrapitk - the missing NumericTraits while  
building with dimension 4, and the empty NumericTraits< FixedArray< *  
 > > classes.

I've modified some macros from RGBAPixel numeric traits to refactor  
the numeric traits of FixedArray, Vector, CovariantVector and  
SymmetricSecondRankTensor.

Regards,

Gaëtan



Le 28 nov. 09 à 18:09, Luis Ibanez a écrit :

> Hi Brad,
>
> Yes, it is a good idea to propagate the use of Macros for other  
> NumericTraits.
>
> We took a historical detour in the development of the NumericTraits,  
> and
> only come to use the convenience macros with the most recently added
> classes. It will be great to back-port this practice to the initial  
> vector-like
> classes.
>
> As you pointed out, using the macros will result in more consistent  
> and
> maintainable code.
>
>
>    Luis
>
>
> ---------------------------------------------------------------------------
> On Fri, Nov 27, 2009 at 11:16 AM, Bradley Lowekamp
> <blowekamp at mail.nih.gov> wrote:
>> Hello,
>> The next logical step after adding itk::NumericTraits<long long> is  
>> to also
>> add it to all the vector types that also have numeric traits
>> defined. Unfortunately I am lazy, and manually going through all  
>> these
>> files, and close to 5,000 lines of code, to perform copy, paste,  
>> edit seems
>> like too much work.
>> Looking at itkNumericTratisVariableLengthVectorPixel.h:
>> http://public.kitware.com/cgi-bin/viewcvs.cgi/Code/Common/itkNumericTraitsVariableLengthVectorPixel.h?revision=1.7&root=Insight&view=markup
>> This seems to have an elegant macro which both does total template
>> specialization and partial specialization when needed. It seems  
>> like much
>> less work to implement similar macros in each file. One important  
>> change I'd
>> make to similar macros for other types is to make the  
>> "ElementTypes" (which
>> are needed for bcc) private so as to not add additional traits that  
>> have not
>> been defined as part of the interface.
>> As a "good" side effect, this will help maintainability and correct  
>> errors
>> that currently exist in the traits. For example  the many numeric  
>> traits for
>> for char vector types still have the char vector type as the  
>> PrintType,
>> which is wrong because it'll print ASCII value instead of numbers.  
>> There are
>> also missing trait types in many vector types as well. For example  
>> the
>> CovariantVector traits are missing the FloatType.
>>
>> Brad
>>
>> ========================================================
>>
>> Bradley Lowekamp
>>
>> Lockheed Martin Contractor for
>>
>> Office of High Performance Computing and Communications
>>
>> National Library of Medicine
>>
>> blowekamp at mail.nih.gov
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://kitware.com/products/protraining.html
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-developers
>>
>>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers

-- 
Gaëtan Lehmann
Biologie du Développement et de la Reproduction
INRA de Jouy-en-Josas (France)
tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
http://voxel.jouy.inra.fr  http://www.itk.org
http://www.mandriva.org  http://www.bepo.fr

-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 203 bytes
Desc: Ceci est une signature ?lectronique PGP
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20091130/57db4afa/attachment.pgp>


More information about the Insight-developers mailing list