I think I just solved this problem... like yesterday.

The illustration you provided suggests that the point of maximum curvature is on a horizontal line from the trailing edge of the airfoil. Is that a correct assumption?

If so, and you have an ordered list of the points of the airfoil, then you really need to just calculate the intersection point of two line segments. It's a discrete solution, obviously, but it's certainly easy to keep the error below whatever threshold seems appropriate.

If you need to search for the point of maximum curvature, I think you can accomplish it using OCC, though not directly...

Otherwise, the easiest way I can imagine to tackle that problem is to simply iterate the line segments of the curve, looking for the two segments with the smallest angle between them, then select the adjoining vertex as the point for the leading edge.

You can achieve greater accuracy and efficiency by:

1. Limiting the set of points you test. It seems to me that the leading edge should most certainly fall in the middle fifth of a set of points for any given airfoil.

2. Once you've identified the point as I described above, select the portion of the curve immediately around it, discretize it into smaller segments, and repeat until you've reduced the error to acceptable levels.

I can think of other ways to get this done, but these two approaches seem most straightforward to me.