While writing a model editor, besides enabling raytracing I can think about couple of operations where I'd like to find an very good approximation about the intersection point between a ray and a triangular bezier patch.

How to do this? I know couple of ways but likely there's better ones.

Exact use-cases: I might want to use one bezier triangle patch as a reference surface for drawing detailed shapes with mouse. I might too want to pinpoint a splitting-point from such patch.

If there's C source code for it, I might like to see that too. Perhaps even use it instead of rolling my own code.