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?