[Insight-developers] ITKImageFunction dependecy in Transform

M Stauffer (V) mstauff at verizon.net
Wed Aug 10 13:32:56 EDT 2011


><mstauff at verizon.net> wrote:
>> Thanks Matt, see below...
>>
>>>> In rebasing the Transform changes patch set onto the latest
>>>itk master, I've
>>>> got a dependency problem. DeformationFieldTransform
>>>> includes itkVectorLinearInterpolateImageFunction.h, which is
>>>> in ITKImageFunction. But adding this to
>>>Transform/itk-module.cmake causes a
>>>> circular dependency. Any suggestions? I don't know how to
>>>handle this.
>>>
>>>That is a difficult problem.  Moving DeformationFieldTransform to
>>>ITKImageFunction would probably not be appropriate.  Is it 
>possible to
>>>use a C++ forward declaration for
>>>VectorLinearInterpolateImageFunction?  I assume that any module
>>>depending on ITKTransform is also likely to depend on 
>ITKImageFunction
>>>anyway.
>>
>> OK, a forward declare works. Of course I have to declare the template
>> parrameters along with the forward declaration so it's a 
>little messy in
>> that it will need changing if the 
>VectorLinearInterpolateImageFunction
>> template parameters change. Although if the class template 
>pararmeters
>> change, lots of classes will change so I figure that's not a real
>> problem. So is forward-declaration like this ok in the ITK style?
>
>Great.
>
>ITK has very strong backwards compatibility, changes to the API like
>that will not take place after the ITKv4 release, and changes that
>break compatibility during ITKv4 need to have migration documents.
>http://www.vtk.org/Wiki/ITK_Release_4/Users_Migration_Guide
>
>Forward declaration is not typical ITK style.  However, if it is
>documented with a comment in the code explaining the need to break
>circular dependency, it could be OK.
>
>Thanks,
>Matt

OK, I've done this, and documented as to why.

-Michael



More information about the Insight-developers mailing list