VMTKCENTERLINES(1)

πŸ“¦ version 1.5.0, in ubuntu stonking

πŸ’– vmtkcenterlines(1) πŸ’–

okay bestie, gather round 🫢 we're reading a User Commands man page today, and it's vmtkcenterlines, section 1, and it is lowkey iconic. vmtk script, centerlines, vibes. let's GO ✨


✨ NAME ✨

vmtkcenterlines β€” it's a vmtk script, bestie. that's the whole name. that's the vibe. πŸ’…


🌸 DESCRIPTION 🌸

Automatic piping vmtkcenterlines Parsing options vmtkcenterlines. yep, that's really what it says, and honestly? mood.

so vmtkcenterlines computes centerlines from a branching tubular surface 🌈 (see papers for details, iykyk). the way that seed points can be interactively selected on the surface, or specified as the barycenters of the open boundaries of the surface?? obsessed. and if vmtk is compiled with support for TetGen, then TetGen can be employed to compute the Delaunay tessellation of the input points. no cap. πŸ”₯


🌟 Input arguments 🌟

  • -id Id (str,1); default=0 β€” the script id, bestie. just the id. πŸŽ€
  • -handle Self (self,1) β€” a handle to self. self-care, literally πŸ’…
  • -disabled Disabled (bool,1); default=0 β€” disables execution and piping. it's giving "do not perceive me" πŸ™ˆ
  • -i Surface (vtkPolyData,1) β€” this is the input surface, the main character of the whole operation πŸ‘‘
  • -ifile SurfaceInputFileName (str,1) β€” filename for the default Surface reader.
  • -seedselector SeedSelectorName (str,1) in ['pickpoint', 'openprofiles', 'carotidprofiles', 'profileidlist', 'idlist', 'pointlist']; default=pickpoint β€” the seed point selection method, and here's the tea on each one πŸ“:
    • pickpoint: interactive, you literally pick it 🫡
    • openprofiles: choose among the barycenters of the open profiles of the surface
    • carotidprofiles: open profiles are automatically selected based on their z-axis coordinate (lower to higher: CCA, ECA, ICA)
    • profileidlist: a list of open profile ids (specified as argument to -sourceids and -targetids)
    • idlist: a list of surface point ids (specified as argument to -sourceids and -targetids)
    • pointlist: a list of surface points (specified as argument to -sourcepoints and -targetpoints)
  • -sourceids SourceIds (int,-1); default=[] β€” list of source point ids. yes the default is empty brackets. πŸ’€
  • -targetids TargetIds (int,-1); default=[] β€” list of target point ids.
  • -sourcepoints SourcePoints (float,-1); default=[] β€” list of source point coordinates.
  • -targetpoints TargetPoints (float,-1); default=[] β€” list of target point coordinates.
  • -endpoints AppendEndPoints (bool,1); default=0 β€” toggle append open profile barycenters to centerlines.
  • -nonmanifoldcheck CheckNonManifold (bool,1); default=0 β€” toggle checking the surface for non-manifold edges.
  • -flipnormals FlipNormals (bool,1); default=0 β€” flip normals after outward normal computation. listen: outward oriented normals must be computed for the removal of outer tetrahedra, and the algorithm might fail so for weird geometries, so changing this might solve the problem. it's a whole thing. 😭
  • -capdisplacement CapDisplacement (float,1); default=0.0 β€” displacement of the center points of caps at open profiles along their normals (this avoids the creation of degenerate tetrahedra, slay 🧚).
  • -delaunaytolerance DelaunayTolerance (float,1); default=0.001 β€” tolerance for evaluating coincident points during Delaunay tessellation, evaluated as a fraction of the bounding box.
  • -radiusarray RadiusArrayName (str,1); default=MaximumInscribedSphereRadius β€” name of the array where radius values of maximal inscribed spheres have to be stored.
  • -endpoints AppendEndPoints (bool,1); default=0 β€” toggle append open profile barycenters to centerlines. not me spotting the same option listed twice πŸ™ˆ it's in the original, so it stays, periodt.
  • -resampling Resampling (bool,1); default=0 β€” toggle centerlines resampling.
  • -resamplingstep ResamplingStepLength (float,1) >= 0.0; default=1.0 β€” distance between points in the resampled line.
  • -delaunaytessellation DelaunayTessellation (vtkUnstructuredGrid,1) β€” optional input Delaunay tessellation.
  • -simplifyvoronoi SimplifyVoronoi (bool,1); default=0 β€” toggle simplification of Voronoi diagram.
  • -usetetgen UseTetGen (bool,1); default=0 β€” toggle use TetGen to compute Delaunay tessellation.
  • -tetgendetectinter TetGenDetectInter (bool,1); default=1 β€” TetGen option. that's it, that's the whole description πŸ’€
  • -costfunction CostFunction (str,1); default=1/R β€” specify cost function to be minimized during centerline computation.
  • -renderer vmtkRenderer (vmtkRenderer,1) β€” external renderer.
  • -poleids PoleIds (vtkIdList,1)
  • -voronoidiagram VoronoiDiagram (vtkPolyData,1)
  • -voronoidiagramfile VoronoiDiagramInputFileName (str,1) β€” filename for the default VoronoiDiagram reader.
  • -stopontarget StopFastMarchingOnReachingTarget (bool,1); default=0 β€” terminate fast marching front propagation when the front reaches the target seed point. this can greatly speed up execution, but heads up bestie ⚠️ it only works when one target seed id is set.
  • -ofile CenterlinesOutputFileName (str,1) β€” filename for the default Centerlines writer.
  • -delaunaytessellationfile DelaunayTessellationOutputFileName (str,1) β€” filename for the default DelaunayTessellation writer.
  • -voronoidiagramfile VoronoiDiagramOutputFileName (str,1) β€” filename for the default VoronoiDiagram writer. (yes, same flag name as the input one up there. it's giving twin energy 🫢)

πŸ¦‹ Output arguments πŸ¦‹

  • -id Id (str,1); default=0 β€” script id, again. iconic of it. ✨
  • -handle Self (self,1) β€” handle to self, again.
  • -o Centerlines (vtkPolyData,1) β€” the output centerlines!! the moment we've all been waiting for πŸ‘‘
  • -radiusarray RadiusArrayName (str,1); default=MaximumInscribedSphereRadius β€” name of the array where radius values of maximal inscribed spheres are stored.
  • -eikonalsolutionarray EikonalSolutionArrayName (str,1); default=EikonalSolution
  • -edgearray EdgeArrayName (str,1); default=EdgeArray
  • -edgepcoordarray EdgePCoordArrayName (str,1); default=EdgePCoordArray
  • -costfunctionarray CostFunctionArrayName (str,1); default=CostFunctionArray
  • -delaunaytessellation DelaunayTessellation (vtkUnstructuredGrid,1)
  • -voronoidiagram VoronoiDiagram (vtkPolyData,1)
  • -poleids PoleIds (vtkIdList,1)
a lil caution note for my girlies πŸŽ€: some of these options are shared between the input and output sides (looking at you, -id, -handle, -radiusarray, -delaunaytessellation, -voronoidiagram, -poleids, and the -voronoidiagramfile situation). that's not a typo, that's just how the script parses, so don't come for me πŸ™ˆ

that's the whole page babe, every flag, every default, every bracket, accounted for πŸ’– and that's the end of the manual β€” it's vmtkcenterlines 1.5, dated April 2026, straight from the User Commands source. go compute some centerlines bestie, you're gonna eat πŸ”₯βœ¨πŸ’…

πŸ“¦ where this page comes from