I have two quite complex shapes resulting from a serie of operations over primitives. Both shapes are valid according to the BRepCheck_Analyzer:
BRepTools::Read(shape1, "shape1.brep", builder);
BRepTools::Read(shape2, "shape2.brep", builder);
TopoDS_Shape fuse = BRepAlgoAPI_Fuse(shape1, shape2);
When I try to merge them using BRepAlgoAPI_Fuse() I receive an unexpected result (see attached picture). You can see there is a face missing between the selected edges of the shape1. According to the BRepCheck_Analyzer even the resulting fuse shape is valid.
Any subsequent BRepAlgoAPI_Fuse() operations on the fuse shape finally leads to the Standard_ConstructionError being thrown.
Can anything else be wrong with the source shapes shape1 and shape2 even the BRepCheck_Analyzer reports them as valid?
Or is it a bug of the BRepAlgoAPI_Fuse()?
Or something else what I am missing there?