diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx index bbafce4fbd..dffce44d40 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx @@ -534,6 +534,20 @@ void BOPAlgo_PaveFiller::PerformEE() //========================================= // post treatment //========================================= + { + Standard_Integer aNbV; + Handle(BOPDS_PaveBlock) aPB1, aPB2; + // + aNbV=aMVCPB.Extent(); + for (i=1; i<=aNbV; ++i) { + const BOPDS_CoupleOfPaveBlocks& aCPB=aMVCPB.FindFromIndex(i); + aCPB.PaveBlocks(aPB1, aPB2); + // + aMPBToUpdate.Remove(aPB1); + aMPBToUpdate.Remove(aPB2); + } + } + // aItPB.Initialize(aMPBToUpdate); for (; aItPB.More(); aItPB.Next()) { Handle(BOPDS_PaveBlock) aPB=aItPB.Value(); @@ -917,6 +931,7 @@ void BOPAlgo_PaveFiller::ForceInterfVE(const Standard_Integer nV, aT=aProjector.LowerDistanceParameter(); // BOPDS_VectorOfInterfVE& aVEs=myDS->InterfVE(); + aVEs.SetIncrement(10); BOPDS_InterfVE& aVE=aVEs.Append1(); aVE.SetIndices(nV, nE); aVE.SetParameter(aT); diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx index 785b53d5c7..9a1f5b66fe 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx @@ -640,6 +640,7 @@ Standard_Boolean BOPAlgo_PaveFiller::ForceInterfVF BRep_Builder aBB; // BOPDS_VectorOfInterfVF& aVFs=myDS->InterfVF(); + aVFs.SetIncrement(10); BOPDS_InterfVF& aVF=aVFs.Append1(); aVF.SetIndices(nV, nF); aVF.SetUV(U, V); diff --git a/tests/bugs/modalg_5/bug25847 b/tests/bugs/modalg_5/bug25847 new file mode 100755 index 0000000000..5f704ac9c5 --- /dev/null +++ b/tests/bugs/modalg_5/bug25847 @@ -0,0 +1,37 @@ +puts "============" +puts "OCC25847" +puts "============" +puts "" +############################### +## Wrong result obtained by General Fuse operator. +############################### + +restore [locate_data_file bug25847_face_96.brep ] b1 +restore [locate_data_file bug25847_face_294.brep] b2 +restore [locate_data_file bug25847_face_533.brep] b3 +restore [locate_data_file bug25847_face_535.brep] b4 + +bclearobjects +bcleartools +baddobjects b1 b2 b3 b4 + +bfillds +bbuild result + +set square 3912.59 + +set nbshapes_expected " +Number of shapes in shape + VERTEX : 100 + EDGE : 108 + WIRE : 10 + FACE : 9 + SHELL : 0 + SOLID : 0 + COMPSOLID : 0 + COMPOUND : 1 + SHAPE : 228 +" +checknbshapes result ${nbshapes_expected} 1 "Result obtained by General Fuse operator" + +set 3dviewer 1