How does vmtksurfacecenterlineprojection work


I was wondering how the vmtksurfacecenterlineprojection function actually carries out the centerline projection to a surface.


Hi @Nadun_19,
for each point on the surface, the “closest” location on the centerline is computed and its attributes are set as the attributes of the surface point. Note that the centerline location is typically found in-between centerline points (i.e. looking along each segment), so the attributes might be interpolated accordingly.

The way “closest” is determined is done in two ways:

  • by just using Euclidean distance (-useradius 0)
  • by determining the location on the surface that is the center of the sphere of radius R whose surface is closest to the surface point (-useradius 1). In other words, thinking about the continuous envelope of spheres along the centerline (the so-called “canal surface”, or “tube”), for each surface point we determine the closest point on the canal surface, and from there the location on the centerline that is a center of the sphere that is tangent to the canal surface in that point.

Hope this helps