I need an algorithm which finds intersection points and common segments between a curve and a face.
I have done some navigation about this topic, in the forum and in the documentation, but none of the classes I have found seem satisfying:
--- IntCurvesFace_Intersector and IntCurvesFace_ShapeIntersector
1) They do not give common segments
2) http://www.opencascade.org/org/forum/thread_9281/ :
“I strongly recommend you to use it with an infinite segment (actually a line)”.
--- GeomAPI_IntCS and IntCurveSurface_HInter
They are about a surface, not a face.
I could later discard the points which are out of the surface, with BRepClass_FaceClassifier, but ( http://www.opencascade.org/org/forum/thread_9321/?forum=3 ) "it seems that BRepClass_FaceClassifier doesn't work well actually".
I should also remove the (parts of) the common segments which are out of the face
Incredibly, for each point the curve parameter is output (by the IntTools_CommonPrt class), but not the face ones!
Its only user is the boolean operation algorithm, I wonder how it manages this issue.
Should I call a projection algorithm to find the parameters, which for sure IntTools_EdgeFace has already computed?