Retrieving internal and external domains from a TopoDS_Shell

Hi everybody,

I have been looking for a way identify the Edges belonging to the Outer Boundary and to the Inner Boundary of a TopoDS_Shell (e.g. a list of the Edges at the contour of the Shell and a list of the Edges lying inside the contour).

Does anyone tried this before and could give me a hint?

Thank you in advance.

Kind regards,
Fernando

Evgeny Lodyzhehsky's picture

Dear Fernando Ghedin.

It is quite simple to find the edges of free boundaries for the shell.
//
//about like that ...
Standard_Integer i, aNbE, aNbF;
TopTools_IndexedDataMapOfShapeListOfShape M;
TopTools_ListOfShape LE;
//
TopExp::MapShapesAndAncestors(aS, TopAbs_EDGE, TopAbs_FACE, M);
aNbE=M.Extent();
for (i=1; i<=aNbE; ++i) {
const TopoDS_Edge aE=TopoDS::Edge(M.FindKey(i));
const TopTools_ListOfShape& LF=M(i);
aNbF=LF.Extent();
if (aNbF==1) {
LE.Append(aE);
}
}
//
As for classifying on Outer and Inner parts, try to think over the pb yourself. I hope you'll publish the results here.