[Insight-developers] reusing VTK code

Luis Ibanez ibanez@cs.unc.edu
Fri, 26 Jan 2001 09:56:13 -0500


Hi

This is a quite important point,  there are a lot of functionalities
in VTK that could be useful in Segmentation and Registration.

Maybe we could anticipate a large variety of Adaptors (or wrappers)
in a similiar way to what has been done to use the vnl optimizaion 
algorithms for Registration, and eventually put this adaptors in the 
"Interfaces" directory. 

In that way, if somebody doesn't want to use VTK, he can still produce 
an adaptor to any other Voronoi code without having to rewrite the 
particular segmentation algorith that uses it. Maybe somebody will
argue that it is better to use CGAL for geometry computations, and 
it would be nice if there is a not so difficult process to let him 
use it.

The current use of ITK factories can also help a lot to support a 
common interface for these kind of objects, allowing to change 
components even at run time.

How difficult could be to use VTK filters inside ITK ones ?
Specially with respect to the data pipeline and streaming ?

How about VTK users that will eventually want to use ITK
in some of their process ?

It is clear that the use of customizable Containers inside
the itkImage and itkMesh are the basis for facilitating
communication with other libraries.

The main problem will be to say to users :

"If you want  to use a particular set of  ITK  classes
  you'll  have to install VTK..."

In the same way we could say :

"If you want to use  itkRegistrationOptimizerGeneticAlgorithm
 you'll have to install GALib..."

Other packages do this. Doxygen itself says : "if you want
collaboration diagrams you have to install DOT"

----

BTW:  
I'm looking forward to use vtk's Mesh
Decimation for an itk deformable model method    :-)


Luis


----

Will Schroeder wrote:
> This is an interesting question. I would suggest that 
> the "right" way to do this is to use vtk's classes rather 
> than reimplementing the code in Insight. We ought to build 
> bridges to systems, rather than trying to redo what' been 
> done.
>
> On the other hand, there is a certain amount of pain to 
> interface into and out of a system.
>
> Comments?