Coloring Isosurface Using Centerline Data

Hello VTK community,

Our team is working on a project to generate an isosurface of a binary 3D segmentation mask of the aorta and label the each segment (aortic arch, ascending aorta, etc.) by assigning different colors to each region.

Currently, the delineation between segments is based on the centerline data which contains a numeric label at each centerline point. We loop through each isosurface point, find the closest centerline point, and assign the numeric label to that isosurface point which is then mapped to a discrete color LUT. However, the resulting edges of each region are fairly jagged. Is there a way to define cleaner boundary?

In a previous iteration of this project, we were generating a discrete label map of each aorta region and using vtkSurfaceNets3D to generate a colored isosurface, which worked well, but we recently shifted to a strictly mesh-based approach for labelling. I’m still quite new to VTK, so hopefully you all can provide some guidance as to potential functions to use, or if this is perhaps the wrong approach entirely.