+ //--------------------------------------------------------
+ bHasImage1=mySplitFaces.HasImage(aF1);
+ bHasImage2=mySplitFaces.HasImage(aF2);
+ //
+ aLX1.Clear();
+ if (!bHasImage1) {
+ aLX1.Append(aF1);
+ }
+ //
+ aLX2.Clear();
+ if (!bHasImage2) {
+ aLX2.Append(aF2);
+ }
+ //
+ const TopTools_ListOfShape& aLF1r=(bHasImage1)? mySplitFaces.Image(aF1) : aLX1;
+ const TopTools_ListOfShape& aLF2r=(bHasImage2)? mySplitFaces.Image(aF2) : aLX2;
+ //
+ TopTools_DataMapOfIntegerShape aMIS;
+ TColStd_ListIteratorOfListOfInteger aItLI;
+ NMTDS_BoxBndTreeSelector aSelector;
+ NMTDS_BoxBndTree aBBTree;
+ NCollection_UBTreeFiller <Standard_Integer, Bnd_Box> aTreeFiller(aBBTree);
+ //
+ aNbF1=aLF1r.Extent();
+ aNbF2=aLF2r.Extent();
+ bForward=(aNbF1<aNbF2);
+ //
+ const TopTools_ListOfShape& aLF1=bForward ? aLF1r : aLF2r;
+ const TopTools_ListOfShape& aLF2=bForward ? aLF2r : aLF1r;
+ //
+ // 1. aTreeFiller
+ aItF2.Initialize(aLF2);
+ for (i2s=1; aItF2.More(); aItF2.Next(), ++i2s) {
+ Bnd_Box aBoxF2s;
+ //
+ const TopoDS_Face& aF2s=*((TopoDS_Face*)(&aItF2.Value()));
+ //
+ BRepBndLib::Add(aF2s, aBoxF2s);
+ //
+ aMIS.Bind(i2s, aF2s);
+ //
+ aTreeFiller.Add(i2s, aBoxF2s);
+ }//for (i2s=1; aItF2.More(); aItF2.Next(), ++i2s) {
+ //
+ aTreeFiller.Fill();
+ //
+ // 2.