There is a vtkMRMLMarkupsCurveNode on a plane and a line on the same plane (e.g. x=10.0 mm). I want to find a intersection point (or points) between the curve and the line.

It could be done manually (crude and inefficient). May be there is a solution in Slicer or VTK of such problem?

VTK locators can compute all intersection points of a polydata with a line extremely fast, for example vtkCellLocator::IntersectWithLine. You can get the curve as polydata by calling GetCurveWorld method of the curve node.