I observed a changed behavior of the BRepAlgoAPI_Common operation after upgrading from 6.5.2 to 6.7.1:
Suppose two unit boxes touching each other with a single face:
TopoDS_Solid box1 = BRepPrimAPI_MakeBox(1.0,1.0,1.0);
gp_Pnt pnt(0.0, -1.0, 0.0);
TopoDS_Solid box2 = BRepPrimAPI_MakeBox(pnt, 1.0,1.0,1.0);
Then build their intersection with the BRepAlgoAPI_Common:
BRepAlgoAPI_Common common(box1, box2);
TopoDS_Shape commonShape = common.Shape();
Resulting commonShape is empty. My 1st question is: Why is it empty? I would expect that the result will consist of single face that the boxes touch each other. Anyway this was the same even in 6.5.2 so no changed behavior so far.
But in my code I need to check even such kind of intersections so I used for this case the call:
that in such cases returned the edges of the touching face (in 6.5.2). But this behavior is gone in 6.7.1 and SectionEdges() returns empty list too. Even the BRepAlgoAPI_Section(box1, box2) builds empty shape. So my second question is: Is there any suggested way of checking whether two shapes has a common face in 6.7.1? Or in more general: Way of checking intersection "type" of two shapes - i.e. none, touch, partial (one shape contains part of the other), full (one shape contains the whole other shape)?
Please help me, any hints/suggestions?