From 40825729d5f0b56d1528a6154dfcaa12d5ebc792 Mon Sep 17 00:00:00 2001 From: akl Date: Tue, 23 Dec 2008 08:48:47 +0000 Subject: [PATCH] Fix of 20764 bug ('Error SIGSEGV on Filling operation, if Edges Compound is created from rotation shape'): skip degenerated edges at filling creation. --- src/GEOMImpl/GEOMImpl_FillingDriver.cxx | 2 ++ 1 file changed, 2 insertions(+) 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()) {