+
+//********************************************************************
+void ModuleBase_WidgetValidated::collectSubBodies(const ResultBodyPtr& theBody,
+ AIS_NListOfEntityOwner& theList)
+{
+ AISObjectPtr aIOPtr;
+ TopoDS_Shape aTDShape;
+ int aNb = theBody->numberOfSubs();
+ for (int i = 0; i < aNb; i++) {
+ ResultBodyPtr aSub = theBody->subResult(i);
+ if (aSub->numberOfSubs() > 0)
+ collectSubBodies(aSub, theList);
+ else {
+ aTDShape = aSub->shape()->impl<TopoDS_Shape>();
+ aIOPtr = myWorkshop->findPresentation(aSub);
+ if (aIOPtr.get()) {
+ Handle(AIS_InteractiveObject) anIO = aIOPtr->impl<Handle(AIS_InteractiveObject)>();
+ theList.Append(new StdSelect_BRepOwner(aTDShape, anIO));
+ }
+ else
+ theList.Append(new StdSelect_BRepOwner(aTDShape));
+ }
+ }
+}
+