]> OCCT Git - occt-copy.git/commitdiff
0032236: Modeling Algorithms - Exception on calculation optimal bounding box CR32236
authorkgv <kgv@opencascade.com>
Wed, 24 Mar 2021 07:37:29 +0000 (10:37 +0300)
committerkgv <kgv@opencascade.com>
Wed, 24 Mar 2021 09:14:48 +0000 (12:14 +0300)
BRepBndLib - added VOID box checks to AdjustFaceBox() method.

src/BRepBndLib/BRepBndLib.cxx

index 5d015da73727a2a6a758089f0879cdf1aca2ce8d..a225c555409f024df62d18bff78dacd7b80eb1aa 100644 (file)
@@ -306,9 +306,13 @@ void BRepBndLib::AddOptimal(const TopoDS_Shape& S, Bnd_Box& B,
                           Tol);
           }
         }
-        Standard_Real xmin, ymin, zmin, xmax, ymax, zmax;
-        aLocBox.Get(xmin, ymin, zmin, xmax, ymax, zmax);
-        B.Update(xmin, ymin, zmin, xmax, ymax, zmax);
+
+        if (!aLocBox.IsVoid())
+        {
+          Standard_Real xmin, ymin, zmin, xmax, ymax, zmax;
+          aLocBox.Get(xmin, ymin, zmin, xmax, ymax, zmax);
+          B.Update(xmin, ymin, zmin, xmax, ymax, zmax);
+        }
       }
     }
   }
@@ -703,6 +707,16 @@ void AdjustFaceBox(const BRepAdaptor_Surface& BS,
                    Bnd_Box& FaceBox,
                    const Bnd_Box& EdgeBox, const Standard_Real Tol)
 {
+  if (EdgeBox.IsVoid())
+  {
+    return;
+  }
+  if (FaceBox.IsVoid())
+  {
+    FaceBox = EdgeBox;
+    return;
+  }
+
   Standard_Real fxmin, fymin, fzmin, fxmax, fymax, fzmax;
   Standard_Real exmin, eymin, ezmin, exmax, eymax, ezmax;
   //