find path from one vertex to another, both on a surface


I'm to so familiar with the underlying geometries behind TopoDS Shells so I have this problem:

I intersect to shells to find the intersection lines. Now I want to cut away a peace of one of the shells by this intersection line(s). but because these lines dont need hit the outer wire of my shell I must extend the intersection line.

So, can anybody tell me how I can get a line ON A SURFACE out of two point which are on the surface.

Thanks a lot

TheWalruss's picture

There are an infinite number of lines that satisfy that constraint.
Consider a vertical plane passing through the two points. The intersection between that plane and your surface will be a line on the surface, connecting the two lines.

Now consider a horizontal plane, still passing through the two points. Now the intersection will be a different line. Any arbitrary plane passing through your two points will do.

This should help answer your question.

samscore's picture


I have taken this approach: I take the first and last point of my not totally cutting wire. then I take the outer contour of my shell. I compute the nearest point on the contour to the first / last point of my wire (cutting line). I make an edge from the point on the contour to the first / last point. And now the solution: I project the new edge on the shell (BRepAlgo_NormalProjection).

Sorry, I didn't mention that my shell has only linear faces and that I'm searching the shortest path...