diff --git a/src/GEOMAlgo/GEOMAlgo_Builder_2.cxx b/src/GEOMAlgo/GEOMAlgo_Builder_2.cxx index fe064bbbe..ddd4295dd 100755 --- a/src/GEOMAlgo/GEOMAlgo_Builder_2.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Builder_2.cxx @@ -18,7 +18,6 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// // File: GEOMAlgo_Builder_2.cxx // Author: Peter KURNEV @@ -411,11 +410,11 @@ static //======================================================================= void GEOMAlgo_Builder::FillSameDomainFaces() { - Standard_Boolean bIsSDF, bHasImage1, bHasImage2; + Standard_Boolean bIsSDF, bHasImage1, bHasImage2, bForward; Standard_Integer i, j, aNbFF, nF1, nF2, aNbPBInOn, aNbC, aNbSE; Standard_Integer aNbF1, aNbF2, i2s, aNbSD; TopTools_MapOfShape aMFence; - TopTools_ListOfShape aLSempty; + TopTools_ListOfShape aLX1, aLX2; TopTools_ListIteratorOfListOfShape aItF1, aItF2; NMTTools_ListOfCoupleOfShape aLCS; // @@ -463,12 +462,22 @@ static // Try to find SDF among images of nF1, nF2 aMFence.Clear(); // - //XXXXXXXXXXXXXf + //-------------------------------------------------------- bHasImage1=mySplitFaces.HasImage(aF1); bHasImage2=mySplitFaces.HasImage(aF2); // - const TopTools_ListOfShape& aLF1r=(bHasImage1)? mySplitFaces.Image(aF1) : aLSempty; - const TopTools_ListOfShape& aLF2r=(bHasImage2)? mySplitFaces.Image(aF2) : aLSempty; + 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; @@ -478,8 +487,10 @@ static // aNbF1=aLF1r.Extent(); aNbF2=aLF2r.Extent(); - const TopTools_ListOfShape& aLF1=(aNbF1