BrepAlgo_API_Cut on Revolution -> free edges


I am trying to Perfrom a Boolean cut between a Solid and a Plane. Everything is fine when the baseShape is a Prism, but when I use a shape Constructed as a Revolution, Some of the resulting edges go gree, meaning they are free Edges and my solid is not closed anymore since it seems to be missing the faces which ought to be constructed on the cutting plane.

How can I close my resulting solid? I have experiemented with shape_fix, but with no result.

TopoDS_Shape baseShape = *pShape;

//Create a Box from the plane. mPlane is a Handle(Geom_Plane)
gp_Ax1 ax = mPlane->Axis();

gp_Pnt p1, p2, p3, p4;
mPlane->D0(-1000, -1000, p1);
mPlane->D0(-1000, 1000, p2);
mPlane->D0( 1000, 1000, p3);
mPlane->D0( 1000, -1000, p4);

TopoDS_Edge e1, e2, e3, e4;
e1 = BRepBuilderAPI_MakeEdge(p1, p2);
e2 = BRepBuilderAPI_MakeEdge(p2, p3);
e3 = BRepBuilderAPI_MakeEdge(p3, p4);
e4 = BRepBuilderAPI_MakeEdge(p4, p1);

TopoDS_Wire wire = BRepBuilderAPI_MakeWire(e1, e2, e3, e4);

TopoDS_Face baseFace = BRepBuilderAPI_MakeFace(mPlane, wire);

TopoDS_Shape cutShape, destShape;

//build the cutting prism
cutShape = BRepPrimAPI_MakePrism(baseFace, gp_Vec(ax.Direction())*5000);

//perform cutting operation
destShape = BRepAlgoAPI_Cut(TopoDS::Solid(baseShape), cutShape);

Tilman Leune's picture

Quick reply to self:
These free edges do not show up when a simpler baseShape is used, one without holes or arcs