I'm not 100% sure I'm correct, but I think the "through" points are almost always the knot points. A knot point of a spline is a point whose corresponding parameter value is a knot. Sorry the terminology is so confusing -- I didn't invent it. So, to get the knot points, you just calculate a point on the spline at each knot value. Since you seem to have access to SNAP, the code would be something like this:
Dim knotList As New List(Of Double)(mySpline.Knots) Dim distinctKnotList = knotList.Distinct Dim knotPointList As New List(Of Position) For Each t In distinctKnotList Dim pt = mySpline.Position(t) knotPointList.Add(pt) Next
For this to work, you need to put at the top of your file
Option Infer On Imports Snap Imports System.Linq
Linq is necessary because that's where we find the "Distinct" function, which removes duplicates from a list.