mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0029814: Modeling Data - add method TopoDS_Shape::NbChildren() for simple check of sub-shapes number
TopoDS_Shape::NbChildren() - new method has been introduced. TopoDS_Shape.lxx, TopoDS_TShape.lxx - inline methods have been moved to hxx. TopoDS_TShape_Flags has been redeclared as enumeration instead of preprocessor macros. Cyclic dependency between headers TopoDS_Shape.hxx and TopoDS_TShape.hxx eliminated. Places where TopoDS_Iterator is used only for calculation of number of sub-shapes are updated to use NbChildren() instead
This commit is contained in:
@@ -94,13 +94,10 @@ void IVtkOCC_SelectableObject::ComputeSelection (const Handle(SelectMgr_Selectio
|
||||
|
||||
TopoDS_Shape anOcctShape = myShape->GetShape();
|
||||
|
||||
if (anOcctShape.ShapeType() == TopAbs_COMPOUND)
|
||||
if (anOcctShape.ShapeType() == TopAbs_COMPOUND && anOcctShape.NbChildren() == 0)
|
||||
{
|
||||
TopoDS_Iterator anExplor (anOcctShape);
|
||||
if (!anExplor.More()) // Shape empty -> go away
|
||||
{
|
||||
return;
|
||||
}
|
||||
// Shape empty -> go away
|
||||
return;
|
||||
}
|
||||
|
||||
TopAbs_ShapeEnum aTypeOfSel = AIS_Shape::SelectionType (theMode);
|
||||
@@ -160,14 +157,11 @@ const Bnd_Box& IVtkOCC_SelectableObject::BoundingBox()
|
||||
|
||||
TopoDS_Shape anOcctShape = myShape->GetShape();
|
||||
|
||||
if (anOcctShape.ShapeType() == TopAbs_COMPOUND)
|
||||
if (anOcctShape.ShapeType() == TopAbs_COMPOUND && anOcctShape.NbChildren() == 0)
|
||||
{
|
||||
TopoDS_Iterator anExplor (anOcctShape);
|
||||
if (!anExplor.More())
|
||||
{ // Shape empty -> nothing to do
|
||||
myBndBox.SetVoid();
|
||||
return myBndBox;
|
||||
}
|
||||
// Shape empty -> nothing to do
|
||||
myBndBox.SetVoid ();
|
||||
return myBndBox;
|
||||
}
|
||||
|
||||
if (myBndBox.IsVoid())
|
||||
|
Reference in New Issue
Block a user