I might have had the wrong expectations, but I assumed that GH component Solid Intersection (pictured) followed the same logic as the RhinoCommon (RC) command Brep.CreateBooleanIntersection, but the latter doesn’t recognize if one Brep is entirely inside (“contains”) another Brep.
Fig 1. The component: “Solid Intersection”:
Fig 2. What’s the same: If any Brep’s surface or edge intersects any surface of the other Brep, then an intersection is detected (here some lower edges of a smaller BoundingBox is outside a larger BBox, and thus that part is cut off by the RC.CreateBooleanIntersection(). This is OK and expected:
Fig 3. What differs: However, when the inner BBox (green edges) is entirely inside the outer BBox (red edges), the intersection is not detected by RC.CreateBooleanIntersection() whereas the gh component “Solid Intersection” does detect it as an intersection:
My workaround: In C# code, when no intersection is found with the RC.CreateBooleanIntersection() command, I make an extra test for “Box.Contains(TheOtherBox)
”.
What to say? Is this difference intended or is the gh “Solid Intersection” component meant to be an entirely different idea?
// Rolf