ON_3dPoint in a surface and an edge (or face/trim)

I would like to know if it is possible to determine wether or not an ON_3dPoint is laying on a surface of a brep, and also on an edge of a brep (and ofc which surface/edge).

If you were using version of openNURBS included with Rhino, then the answer is yes. But, the standalone version of openNURBS will not perform closest point calculations. In this case, the answer is no.

http://wiki.mcneel.com/developer/opennurbs/limitations

I see, thats to bad.

Would it in that case be possible to use a trimcurve in a brep to “trim away” everything that is outside this trimcurve on the surface which it trims?

Also, is it possible to get the U,V parameters (in the surfaces parameter space) for the trim curve? In other words, given a parameter (t) in the domain of a trimcurve that trims a surface, find the corresponding U,V “position”

If you have already calculated both the 3-D curve and the 2-D parameter space curves, then it is possible to build a trimmed Brep from scratch. If you don’t already have all this information, then you won’t be able to do this, as the standalone openNURBS toolkit will not calculate these for you. (The version of openNURBS included with Rhino will, by the way).

There is no relationship between a surface and curve which may (or may not) lie on it. So, this would require a closest point calculation, which is not included in standalone openNURBS.

Keep in mind that stanalone openNURBS is a toolkit for reading and writing models in the 3DM format.