From 0b8da30b819c25eb263b1af1ea76605ca1f9b4fe 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 file changed, 3 insertions(+) diff --git a/src/HLRBRep/HLRBRep.cxx b/src/HLRBRep/HLRBRep.cxx index be3dd4ae74..c3b10080fb 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())