Test if polysurface is enclosed by other polysurface? BooleanIntersection is empty

rhinoformac
rhinocommon

#1

I want to detect cases as in the attached image: finding out programmatically if one given polysurface (green) is contained within another one (grey). When their edges do not overlap the boolean intersection is empty. It should work for arbitrary shapes, not only boxes, so a simple bounding box inclusion test would not suffice. Is there another way to do it with the RhinoCommon C# API?


#2

in the meantime, I found the method Brep.IsPointInside() and if successful (at least one point is inside), I check if the intersection of both objects is empty. Because A is fully enclosed by B iff any point in A (e.g. a vertex) lies inside B but no edges of A and B intersect.

outerBrep.IsPointInside(inner.Vertices.First().Location, doc.PageAbsoluteTolerance, true)

(Chuck Welsh) #3

I’m pretty sure there isn’t a method in the sdk. But if there were, it would do exactly what you’ve done.