]> OCCT Git - occt.git/commitdiff
0033727: Modeling Algorithms - Add corner check in AddClose function to detect void... CR0-Hybrid-780-2024071501 CR0-Hybrid-780-2024071601 CR0-Hybrid-780-2024071801 CR0-Hybrid-780-2024071802
authorFtpSantos <francisco.santos@opencascade.com>
Mon, 15 Jul 2024 18:15:39 +0000 (19:15 +0100)
committeroan <oan@opencascade.com>
Mon, 15 Jul 2024 18:15:39 +0000 (19:15 +0100)
Added corner check to AddClose for void bounding boxes

src/BRepBndLib/BRepBndLib.cxx

index db239c421753696f5e352ebb787a82995cb8c7ea..22d8cb7dbbe27ec247190360a7e6170c551bf8fe 100644 (file)
@@ -207,19 +207,26 @@ void BRepBndLib::AddClose(const TopoDS_Shape& S, Bnd_Box& B)
 
   BRepAdaptor_Curve BC;
 
-  for (ex.Init(S,TopAbs_EDGE); ex.More(); ex.Next()) {
+  for (ex.Init (S, TopAbs_EDGE); ex.More(); ex.Next())
+  {
     const TopoDS_Edge& anEdge = TopoDS::Edge (ex.Current());
     if (BRep_Tool::IsGeometric (anEdge))
     {
       BC.Initialize (anEdge);
-      BndLib_Add3dCurve::Add(BC,0.,B);
+      BndLib_Add3dCurve::Add (BC, 0., B);
     }
   }
 
   // Add the vertices not in edges
 
-  for (ex.Init(S,TopAbs_VERTEX,TopAbs_EDGE); ex.More(); ex.Next()) {
-    B.Add(BRep_Tool::Pnt(TopoDS::Vertex(ex.Current())));
+  for (ex.Init (S, TopAbs_VERTEX, TopAbs_EDGE); ex.More(); ex.Next())
+  {
+    B.Add (BRep_Tool::Pnt (TopoDS::Vertex (ex.Current())));
+  }
+
+  if (!B.IsVoid() && B.CornerMax().IsEqual (B.CornerMin(), Precision::Confusion() + 2 * B.GetGap()))
+  {
+    B.SetVoid();
   }
 }