0027261: Incorrect bounding boxes computed for the b-spline faces
authoraml <aml@opencascade.com>
Tue, 15 Mar 2016 11:57:15 +0000 (14:57 +0300)
committerabv <abv@opencascade.com>
Fri, 18 Mar 2016 08:22:20 +0000 (11:22 +0300)
Protection from the out of bounds parameters is added.
Test cases are added.

src/BndLib/BndLib_AddSurface.cxx
tests/bugs/moddata_3/bug27261_1 [new file with mode: 0644]
tests/bugs/moddata_3/bug27261_2 [new file with mode: 0644]

index 1b89468..e2ad6e7 100644 (file)
@@ -195,6 +195,11 @@ void ComputePolesIndexes(const TColStd_Array1OfReal &theFlatKnots,
                          Standard_Integer &theOutMinIdx,
                          Standard_Integer &theOutMaxIdx)
 {
+  // Set initial values for the result indexes to handle situation when requested parameter space
+  // is slightly greater than B-spline parameter space.
+  theOutMinIdx = theFlatKnots.Lower();
+  theOutMaxIdx = theFlatKnots.Upper();
+
   // Compute first and last used flat knots.
   for(Standard_Integer aKnotIdx = theFlatKnots.Lower();
       aKnotIdx < theFlatKnots.Upper();
diff --git a/tests/bugs/moddata_3/bug27261_1 b/tests/bugs/moddata_3/bug27261_1
new file mode 100644 (file)
index 0000000..1938ec7
--- /dev/null
@@ -0,0 +1,15 @@
+puts "================"
+puts "0027261"
+puts "================"
+puts ""
+############################################################### 
+# Incorrect bounding box is created for the face
+##############################################################
+
+restore [locate_data_file bug27261_f1.brep] f1
+bounding f1
+
+# Visual check.
+smallview
+fit
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
\ No newline at end of file
diff --git a/tests/bugs/moddata_3/bug27261_2 b/tests/bugs/moddata_3/bug27261_2
new file mode 100644 (file)
index 0000000..b2912e1
--- /dev/null
@@ -0,0 +1,15 @@
+puts "================"
+puts "0027261"
+puts "================"
+puts ""
+############################################################### 
+# Incorrect bounding box is created for the face
+##############################################################
+
+restore [locate_data_file bug27261_f2.brep] f2
+bounding f2
+
+# Visual check.
+smallview
+fit
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
\ No newline at end of file