[Insight-users] Cswig_java/Wrap_ITK generate different java APIs

Gaëtan Lehmann gaetan.lehmann at jouy.inra.fr
Fri Feb 2 05:40:44 EST 2007


Can you send a small example that I can try to build ?

Thanks,

Gaetan


Le Fri, 02 Feb 2007 04:37:21 +0100, Blair Cruz <blair.cruz at gmail.com> a  
écrit:

> It works fine with the Wrap_ITK option. except that I cant set the
> tkRecursiveMultiResolutionPyramidImageFilterIF3IF3_Pointer to a
> itkMultiResolutionImageRegistrationMethodIF3IF3_Pointer object
>
> The registration object expects a SWIGTYPE object where as with the
> cswig_java build API I can set the output of the pyramid to
> registrator.setFixedPyramid(...
>
> Like I said, it's not a big deal, just a slight performance issue and  
> thank
> you very much for the response.  I will post something if I find a way to
> get the MultiResPyramid class working with the bindings.
>
> -blair
>
> On 2/1/07, Gaëtan Lehmann <gaetan.lehmann at jouy.inra.fr> wrote:
>>
>> Le Thu, 01 Feb 2007 21:02:26 +0100, Blair Cruz <blair.cruz at gmail.com> a
>> écrit:
>>
>> > Quick question.  I noticed that when I build ITK with the cswig_java
>> > option
>> > I get a jar that has a different api then when I use the wrap_itk
>> > option.  I
>> > particular, the class names change, an example is:
>> >
>> > itkMutualInformationImageToImageMetricIF3IF3_Pointer is generated with
>> > the
>> > wrap_itk option in cmake, and:
>> > itkMutualInformationImageToImageMetricF3F3_Pointer is generated with  
>> the
>> > cswig_java option in cmake.
>> >
>> > There are a few other differences in the API as well, for instance,  
>> with
>> > the
>> > wrap_itk option I cant set a
>> > itkRecursiveMultiResolutionPyramidImageFilterIF3IF3_Pointer object to  
>> a
>> > itkMultiResolutionImageRegistrationMethodIF3IF3_Pointer object.
>>
>> The name of the template instantiations have been changed to be more
>> consistent in all the instantiations, and more descriptive.
>>
>> > I can get
>> > by without this but I do notice a performance difference.
>>
>> I doubt you can see any difference: cswig and WrapITK both use the same
>> system (cable swig), and wrap the same code (ITK).
>>
>> > There is also a
>> > very noticeable size difference in the compiled libraries (~60mb).
>>
>> WrapITK produce huge binaries because it instantiate a lot of templated
>> classes. On one side you get a lot much classes, but on the other side,
>> you have bigger binaries.
>> Note that you can easily customize your WrapITK to fit your needs, by
>> removing the wrap_*.cmake files of the class you don't use, or by  
>> turning
>> to OFF the WRAP_ options of the modules or the types you don't use. All
>> those methods will highly impact the size of the binary.
>> You may also want to build WrapITK in MinSizeRel mode, and to turn on
>> explicit instantiations in cmake.
>>
>> >  I would
>> > use the cswig_java option however it wont build with this on os x.
>>
>> cswig has open the way, but should be replaced by WrapITK in the next
>> releases. I don't think cswig has ever worked properly out of the box  
>> with
>> java on mac os x.
>>
>> >
>> > This is not an issue right now but in the future I will have to  
>> address
>> > some
>> > performance issues and I would like to know why this is happening.
>> >
>>
>> I hope to have replied above. Please let us know if you have any  
>> problem,
>> or if you think to things which could be enhanced.
>>
>> Regards,
>>
>> Gaetan
>>
>>
>>
>> --
>> 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
>>



-- 
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


More information about the Insight-users mailing list