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

Luis Ibanez luis.ibanez at kitware.com
Mon Nov 30 07:23:50 EST 2009


Gaetan,

Excellent,
Thanks for making these changes.


     Luis


-------------------------------------------------------------------
2009/11/30 Gaëtan Lehmann <gaetan.lehmann at jouy.inra.fr>:
>
> 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
>
>


More information about the Insight-developers mailing list