Method ProjectToSolid
- Namespace
- GeometryHelper.Core
- Assembly
- GeometryHelper.dll
ProjectToSolid(GeoSolid3, GeoPoint3)
Projects a point onto the surface of a solid.
public static GeoPoint3 ProjectToSolid(GeoSolid3 solid, GeoPoint3 point)
Parameters
Returns
ProjectToSolid(GeoSolid3, GeoPoint3, Tolerance)
Projects a point onto the surface of a solid, within a tolerance.
public static GeoPoint3 ProjectToSolid(GeoSolid3 solid, GeoPoint3 point, Tolerance tolerance)
Parameters
Returns
Remarks
The answer is always on the boundary, interior points included, because a solid is described only by its faces and there is nothing else to land on.
The boundary is where the material ends, openings included. A body keeps an opening as a whole body subtracted from it, so its faces run straight across every hole, and the nearest point of a face can sit in the middle of one. The nearest point of the material is then on the rim, which is a point of neither the faces nor the opening alone — it only exists once the opening is cut in. So the openings within reach are cut in and the answer is taken from what is left; see ProjectToMaterial(GeoSolid3, GeoPoint3, Tolerance) for which are within reach.