From: akl Date: Tue, 23 Dec 2008 08:48:47 +0000 (+0000) Subject: Fix of 20764 bug ('Error SIGSEGV on Filling operation, if Edges Compound is created... X-Git-Tag: V4_1_5rc1~33 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=40825729d5f0b56d1528a6154dfcaa12d5ebc792;p=modules%2Fgeom.git Fix of 20764 bug ('Error SIGSEGV on Filling operation, if Edges Compound is created from rotation shape'): skip degenerated edges at filling creation. --- diff --git a/src/GEOMImpl/GEOMImpl_FillingDriver.cxx b/src/GEOMImpl/GEOMImpl_FillingDriver.cxx index d290e735e..7c6b48cfa 100644 --- a/src/GEOMImpl/GEOMImpl_FillingDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_FillingDriver.cxx @@ -113,6 +113,7 @@ Standard_Integer GEOMImpl_FillingDriver::Execute(TFunction_Logbook& log) const for (Ex.Init(aShape, TopAbs_EDGE); Ex.More(); Ex.Next()) { Scurrent = Ex.Current() ; if (Scurrent.IsNull() || Scurrent.ShapeType() != TopAbs_EDGE) return 0; + if (BRep_Tool::Degenerated(TopoDS::Edge(Scurrent))) continue; C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last); C = new Geom_TrimmedCurve(C, First, Last); Section.AddCurve(C); @@ -147,6 +148,7 @@ Standard_Integer GEOMImpl_FillingDriver::Execute(TFunction_Logbook& log) const for (Ex.Init(aShape, TopAbs_EDGE); Ex.More(); Ex.Next()) { Scurrent = Ex.Current() ; if (Scurrent.IsNull() || Scurrent.ShapeType() != TopAbs_EDGE) return 0; + if (BRep_Tool::Degenerated(TopoDS::Edge(Scurrent))) continue; C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last); Handle(Geom_TrimmedCurve) TC = Handle(Geom_TrimmedCurve)::DownCast(C); if(TC.IsNull()) {