GeomAPI_ProjectPointOnSurf aka orthogonal projection

I don't understand why an orthogonal projection is used to do projections.

Case in point:
half cylinder (say v, the periodic parameter, goes from 0 to pi) - full cylinder goes from 0 to 2pi
say you have a point at v=pi+epsilon. It's slightly off the half-cylinder.
If you do an orthogonal projection, you're gonna end up on the other side, say at v=0+epsilon.
Not really what you would expect from a projection since the expected solution would be at v=pi

To circumvent this problem, in order to do a real projection on a face, you need to basically project on the face, but also on the bounding edges (and the bounding vertices), to get the minimum distance to the face!!! Not so good when you need a reasonably fast projection routine.

Is that the only way or is there another API function that does a "regular" projection?

Forum supervisor's picture

Dear Ugo,
You may define a direction (Curve(pnt, dir)) and use GeomAPI_IntCS API.
Regards

Ugo Capeto's picture

What I meant is:
What's the proper way to get the minimum distance for point to a face?

Right now, I am using GeomAPI_ProjectPointOnSurf to get the orthogonal projection, which of course may not be the closest projector.
So, I am also considering the orthogonal projection on the bounding edges and the distances to the bounding vertices to get the minimum distance.

If there were a 'minimum distance to a face' API call, then that would be much more helpful, because I don't think I can ever be sure with the method show above to get the actual minimum distance to the face.

Forum supervisor's picture

Dear Ugo,
BRepExtrema_DistanceShapeShape should help you.
Regards

Mauro Mariotti's picture

I suppose it is BRepExtrema_DistShapeShape.

Mauro

Forum supervisor's picture

Surely.
Regards