[Insight-developers] Tensor anisotropy filters template default: Concept Checking

Luis Ibanez luis.ibanez at kitware.com
Sat Mar 11 16:28:59 EST 2006


Hi Casey,


Thanks for pointing this out.


Adding a concept checking for the Tensor pixel type seems to
be reasonable. We will explore the option of adding a specific
concept check for Tensor types.



      Regards,


         Luis



---------------------
Casey Goodlett wrote:
> Hi Luis,
> 
> I think adding concept checking to the classes to require an input pixel
> of a tensor type and an output pixel of a scalar type is a good idea for
> these filters.  My main concern was that a user who saw the default for
> the output type would believe that an input and output of the same type
> is a valid operation.  If the required input/output types are documented
> through concept checking instead of changing the default output type, I
> think thats fine.
> 
> Thank You
> 
> Casey
> 
> Luis Ibanez wrote:
> 
>>Hi Casey,
>>
>>I agree with you in that this filter has a quite specific output
>>type and it would be healthy to enforce it at compilation time.
>>
>>
>>The issue at this point will be to respect the Backward Compatibility
>>Policy (BCP) as stated in:
>>
>>http://www.insightsoftwareconsortium.org/wiki/index.php/Administration-BackwardCompatibility
>>
>>
>>
>>
>>which says:
>>
>>
>>API's can change if:
>>
>>   1. The compiler, if possible, can warn the user about the
>>      deprecated API. Some compilers show line numbers where
>>      the deprecated API is being used.
>>
>>   2. At run-time, deprecated API's report how to change code
>>      from the old API to the new API.
>>
>>   3. Documentation in the deprecated code clearly informs the
>>      user how to move the code from the old API to the new API.
>>
>>
>>
>>In this particular case, it seems that we could use the Concept
>>Checking in order to enforce the use of the correct output image
>>type while still respecting the BCP.
>>
>>
>>Please let us know if you could find this to be a reasonable compromise,
>>
>>
>>   Thanks
>>
>>
>>     Luis
>>
>>
>>----------------------
>>Casey Goodlett wrote:
>>
>>>Hello,
>>>
>>>There is a small bug in itkTensorFractionalAnisotropyImageFilter.h and
>>>itkTensorRelativeAnisotropyImageFilter.h.  Both filters use a default
>>>template parameter of TOutputImage=TInputImage.  This is an invalid
>>>default since these filters map from tensors -> scalars.  A better
>>>default would be the following
>>>
>>>template <typename TInputImage,
>>>          typename TOutputImage=itk::Image<ITK_TYPENAME
>>>                              TInputImage::PixelType::RealValueType,
>>>  ::itk::GetImageDimension<TInputImage>::ImageDimension > >
>>>
>>>I filed this bug at
>>>http://www.itk.org/Bug/bug.php?op=show&bugid=2899&pos=0
>>>
>>>Thanks
>>>
>>>-- 
>>>Casey Goodlett
>>>
>>>_______________________________________________
>>>Insight-developers mailing list
>>>Insight-developers at itk.org
>>>http://www.itk.org/mailman/listinfo/insight-developers
>>>
>>>
>>
> 
> _______________________________________________
> Insight-developers mailing list
> Insight-developers at itk.org
> http://www.itk.org/mailman/listinfo/insight-developers
> 
> 



More information about the Insight-developers mailing list