From c0ade4c610132d4af1bf179ddb86b0b0e0cefe54 Mon Sep 17 00:00:00 2001 From: jgv Date: Thu, 27 Mar 2014 17:25:41 +0400 Subject: [PATCH] 0024767: Crash on making edges in HLRBRep --- src/HLRBRep/HLRBRep.cxx | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/src/HLRBRep/HLRBRep.cxx b/src/HLRBRep/HLRBRep.cxx index be3dd4a..c3b1008 100644 --- a/src/HLRBRep/HLRBRep.cxx +++ b/src/HLRBRep/HLRBRep.cxx @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -88,6 +89,8 @@ TopoDS_Edge HLRBRep::MakeEdge (const HLRBRep_Curve& ec, TopoDS_Edge anEdge = ec.GetCurve().Edge(); Standard_Real fpar, lpar; Handle(Geom_Curve) aCurve = BRep_Tool::Curve(anEdge, fpar, lpar); + if (aCurve->DynamicType() == STANDARD_TYPE(Geom_TrimmedCurve)) + aCurve = (Handle(Geom_TrimmedCurve)::DownCast(aCurve))->BasisCurve(); const Handle(Geom_BSplineCurve)& BSplCurve = Handle(Geom_BSplineCurve)::DownCast(aCurve); Handle(Geom_BSplineCurve) theCurve = Handle(Geom_BSplineCurve)::DownCast(BSplCurve->Copy()); if (theCurve->IsPeriodic() && !GAcurve.IsClosed()) -- 1.7.2.5