0026757: Wrong history of a fillet
authorjgv <jgv@opencascade.com>
Fri, 30 Oct 2015 13:23:53 +0000 (16:23 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 5 Nov 2015 09:14:03 +0000 (12:14 +0300)
Small correction

Test case for issue CR26757

src/ChFi3d/ChFi3d_Builder_C1.cxx
tests/bugs/modalg_6/bug26757_1 [new file with mode: 0755]
tests/bugs/modalg_6/bug26757_2 [new file with mode: 0755]

index bb920e7..3d351ab 100644 (file)
@@ -2256,6 +2256,25 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
             inters.Perform(HC, HGs);
             if (inters.IsDone()&& inters.NbPoints()!=0) {
               Fd->ChangeSurf(DStr.AddSurface(TopOpeBRepDS_Surface(S1, DStr.ChangeSurface(Isurf).Tolerance())));
+              //update history
+              if (myEVIMap.IsBound(EdgeSpine))
+              {
+                TColStd_ListIteratorOfListOfInteger itl(myEVIMap.ChangeFind(EdgeSpine));
+                for (; itl.More(); itl.Next())
+                  if (itl.Value() == Isurf)
+                  {
+                    myEVIMap.ChangeFind(EdgeSpine).Remove(itl);
+                    break;
+                  }
+                myEVIMap.ChangeFind(EdgeSpine).Append(Fd->Surf());
+              }
+              else
+              {
+                TColStd_ListOfInteger IndexList;
+                IndexList.Append(Fd->Surf());
+                myEVIMap.Bind(EdgeSpine, IndexList);
+              }
+              ////////////////
               Isurf=Fd->Surf();
             }
           }
diff --git a/tests/bugs/modalg_6/bug26757_1 b/tests/bugs/modalg_6/bug26757_1
new file mode 100755 (executable)
index 0000000..1fe3450
--- /dev/null
@@ -0,0 +1,51 @@
+puts "============"
+puts "OCC26757"
+puts "============"
+puts ""
+###############################################################################################
+# Wrong history of a fillet
+###############################################################################################
+
+restore [locate_data_file bug26757_s.brep] s
+
+explode s e
+blend r s 2 s_14
+checkhist
+explode generated_001
+
+set nbshapes_expected_1 "
+Number of shapes in shape
+ VERTEX    : 2
+ EDGE      : 1
+ WIRE      : 0
+ FACE      : 0
+ SHELL     : 0
+ SOLID     : 0
+ COMPSOLID : 0
+ COMPOUND  : 0
+ SHAPE     : 3
+"
+checknbshapes generated_001_1 -ref ${nbshapes_expected_1} -t -m "selected edge"
+
+set nbshapes_expected_2 "
+Number of shapes in shape
+ VERTEX    : 5
+ EDGE      : 5
+ WIRE      : 1
+ FACE      : 1
+ SHELL     : 0
+ SOLID     : 0
+ COMPSOLID : 0
+ COMPOUND  : 0
+ SHAPE     : 12
+"
+if { [info exists generated_001_2] == 0 } {
+   puts "Error: Wrong history of a fillet"
+} else {
+   checknbshapes generated_001_2 -ref ${nbshapes_expected_2} -t -m "fillet face"
+}
+
+smallview
+donly generated_001_1 generated_001_2
+fit
+xwd ${imagedir}/${test_image}.png
diff --git a/tests/bugs/modalg_6/bug26757_2 b/tests/bugs/modalg_6/bug26757_2
new file mode 100755 (executable)
index 0000000..3e26476
--- /dev/null
@@ -0,0 +1,51 @@
+puts "============"
+puts "OCC26757"
+puts "============"
+puts ""
+###############################################################################################
+# Wrong history of a fillet
+###############################################################################################
+
+restore [locate_data_file bug26757_s.brep] s
+
+explode s e
+blend r s 10 s_14
+checkhist
+explode generated_001
+
+set nbshapes_expected_1 "
+Number of shapes in shape
+ VERTEX    : 2
+ EDGE      : 1
+ WIRE      : 0
+ FACE      : 0
+ SHELL     : 0
+ SOLID     : 0
+ COMPSOLID : 0
+ COMPOUND  : 0
+ SHAPE     : 3
+"
+checknbshapes generated_001_1 -ref ${nbshapes_expected_1} -t -m "selected edge"
+
+set nbshapes_expected_2 "
+Number of shapes in shape
+ VERTEX    : 5
+ EDGE      : 5
+ WIRE      : 1
+ FACE      : 1
+ SHELL     : 0
+ SOLID     : 0
+ COMPSOLID : 0
+ COMPOUND  : 0
+ SHAPE     : 12
+"
+if { [info exists generated_001_2] == 0 } {
+   puts "Error: Wrong history of a fillet"
+} else {
+   checknbshapes generated_001_2 -ref ${nbshapes_expected_2} -t -m "fillet face"
+}
+
+smallview
+donly generated_001_1 generated_001_2
+fit
+xwd ${imagedir}/${test_image}.png