Thu, 04/18/2013 - 13:30
Hi guys.
Thanks for the super work
I am trying to access faces sharing a single vertex of a box. I get 6 faces. Same with edges.
For completeness, the vertex is the nearest in the box when I am getting distance between two boxes (see the pict). Everything works and faces are correct but they are each duplicated in the list. So the list has 6 of them. Is it a bug?
const TopoDS_Shape& shapeObjectThis= ...;
const TopoDS_Shape& shapeObjectOther = ..;
BRepExtrema_DistShapeShape extr( shapeObjectThis, shapeObjectOther);
BRepExtrema_SupportType typeSupp; = extr.SupportTypeShape2(0);
TopoDS_Shape shSupport = extr.SupportOnShape2(0);
if(typeSupp == BRepExtrema_IsVertex)
{
TopoDS_Vertex tdsVtx = TopoDS::Vertex(shSupport);
TopTools_IndexedDataMapOfShapeListOfShape mapIncidence;
TopExp::MapShapesAndAncestors(shapeObject, TopAbs_VERTEX, TopAbs_FACE, mapIncidence);
Standard_Integer iThis = mapIncidence.FindIndex(tdsVtx);
TopTools_ListOfShape& list = mapIncidence(iThis);
Standard_Integer n = list.Extent(); //6 !
}
Thank You
Nikolai
Thu, 04/18/2013 - 13:32
Correction: Indecies are actually 1:
BRepExtrema_SupportType typeSupp; = extr.SupportTypeShape2(1);
TopoDS_Shape shSupport = extr.SupportOnShape2(1);