From 2a2e3ecdc7df4da9716b5bff8f72891a0bd7581d Mon Sep 17 00:00:00 2001 From: emv Date: Thu, 16 Oct 2014 15:26:20 +0400 Subject: [PATCH] 0025245: General Fuse operation regression class BOPDS_DS method: void BOPDS_DS::InitPaveBlocks(const Standard_Integer theI) Correct treatment of internal edges. Test cases for the issue. Correction of test cases for issue CR25245 --- src/BOPDS/BOPDS_DS.cxx | 13 +++++++- tests/bugs/modalg_5/bug25245_1 | 56 ++++++++++++++++++++++++++++++++++ tests/bugs/modalg_5/bug25245_2 | 15 +++++++++ 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100755 tests/bugs/modalg_5/bug25245_1 create mode 100755 tests/bugs/modalg_5/bug25245_2 diff --git a/src/BOPDS/BOPDS_DS.cxx b/src/BOPDS/BOPDS_DS.cxx index b0ab814afc..99c255a6af 100644 --- a/src/BOPDS/BOPDS_DS.cxx +++ b/src/BOPDS/BOPDS_DS.cxx @@ -872,7 +872,18 @@ void BOPDS_DS::InitPaveBlocks(const Standard_Integer theI) for (; aItE.More(); aItE.Next()) { aV=*((TopoDS_Vertex*)&aItE.Value()); nV=Index(aV); - aT=BRep_Tool::Parameter(aV, aE); + // + const BOPDS_ShapeInfo& aSIV=ShapeInfo(nV); + if (aSIV.HasFlag()) { + aT=ComputeParameter(aV, aE); + } + else { + aT=BRep_Tool::Parameter(aV, aE); + } + // + if (HasShapeSD(nV, nVSD)) { + nV=nVSD; + } aPave.SetIndex(nV); aPave.SetParameter(aT); aPB->AppendExtPave1(aPave); diff --git a/tests/bugs/modalg_5/bug25245_1 b/tests/bugs/modalg_5/bug25245_1 new file mode 100755 index 0000000000..89b1b50a46 --- /dev/null +++ b/tests/bugs/modalg_5/bug25245_1 @@ -0,0 +1,56 @@ +puts "================" +puts "OCC25245" +puts "================" +puts "" +####################################################################### +# General Fuse operation regression +####################################################################### + +restore [locate_data_file bug25245_Input_0.brep] s0 +restore [locate_data_file bug25245_Input_1.brep] s1 +restore [locate_data_file bug25245_Input_2.brep] s2 +restore [locate_data_file bug25245_Input_3.brep] s3 +restore [locate_data_file bug25245_Input_4.brep] s4 +restore [locate_data_file bug25245_Input_5.brep] s5 +restore [locate_data_file bug25245_Input_6.brep] s6 +restore [locate_data_file bug25245_Input_7.brep] s7 +restore [locate_data_file bug25245_Input_8.brep] s8 +restore [locate_data_file bug25245_Input_9.brep] s9 +restore [locate_data_file bug25245_Input_10.brep] s10 +restore [locate_data_file bug25245_Input_11.brep] s11 +restore [locate_data_file bug25245_Input_12.brep] s12 +restore [locate_data_file bug25245_Input_13.brep] s13 +restore [locate_data_file bug25245_Input_14.brep] s14 +restore [locate_data_file bug25245_Input_15.brep] s15 +restore [locate_data_file bug25245_Input_16.brep] s16 +restore [locate_data_file bug25245_Input_17.brep] s17 +restore [locate_data_file bug25245_Input_18.brep] s18 +restore [locate_data_file bug25245_Input_19.brep] s19 +restore [locate_data_file bug25245_Input_20.brep] s20 +restore [locate_data_file bug25245_Input_21.brep] s21 +restore [locate_data_file bug25245_Input_22.brep] s22 +restore [locate_data_file bug25245_Input_23.brep] s23 +restore [locate_data_file bug25245_Input_24.brep] s24 +restore [locate_data_file bug25245_Input_25.brep] s25 + +bclearobjects +bcleartools +baddobjects s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 +bfillds +bbuild result + +set square 11598.4 + +set nbsh_t 1 + +set nb_v_good 34 +set nb_e_good 80 +set nb_w_good 57 +set nb_f_good 56 +set nb_sh_good 14 +set nb_sol_good 14 +set nb_compsol_good 0 +set nb_compound_good 1 +set nb_shape_good 256 + +set 2dviewer 1 diff --git a/tests/bugs/modalg_5/bug25245_2 b/tests/bugs/modalg_5/bug25245_2 new file mode 100755 index 0000000000..f6ce03dc17 --- /dev/null +++ b/tests/bugs/modalg_5/bug25245_2 @@ -0,0 +1,15 @@ +puts "================" +puts "OCC25245" +puts "================" +puts "" +####################################################################### +# General Fuse operation regression +####################################################################### + +restore [locate_data_file bug25245_Input_14.brep] s14 +restore [locate_data_file bug25245_Input_24.brep] s24 + +explode s14 e; copy s14_4 e +explode s24 f; copy s24_1 f + +bop f e