From 4cf1941672fecf65fb3d693021ca942824b12cdb Mon Sep 17 00:00:00 2001 From: msv Date: Tue, 23 Jun 2015 18:01:39 +0300 Subject: [PATCH] Fix the problem when merged edges have different location. --- src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx b/src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx index e6d10d335b..660f18954b 100644 --- a/src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx +++ b/src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx @@ -569,11 +569,11 @@ static Standard_Boolean MergeEdges(const TopTools_SequenceOfShape& SeqEdges, } // union edges in chain // first step: union lines and circles - TopLoc_Location Loc; Standard_Real fp1,lp1,fp2,lp2; for(j=1; jIsKind(STANDARD_TYPE(Geom_TrimmedCurve))) { Handle(Geom_TrimmedCurve) tc = @@ -581,7 +581,7 @@ static Standard_Boolean MergeEdges(const TopTools_SequenceOfShape& SeqEdges, c3d1 = tc->BasisCurve(); } TopoDS_Edge edge2 = TopoDS::Edge(aChain.Value(j+1)); - Handle(Geom_Curve) c3d2 = BRep_Tool::Curve(edge2,Loc,fp2,lp2); + Handle(Geom_Curve) c3d2 = BRep_Tool::Curve(edge2,fp2,lp2); if(c3d2.IsNull()) break; while(c3d2->IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) { Handle(Geom_TrimmedCurve) tc = @@ -691,6 +691,7 @@ static Standard_Boolean MergeEdges(const TopTools_SequenceOfShape& SeqEdges, bool NeedUnion = true; for(j=1; j<=aChain.Length(); j++) { TopoDS_Edge edge = TopoDS::Edge(aChain.Value(j)); + TopLoc_Location Loc; Handle(Geom_Curve) c3d = BRep_Tool::Curve(edge,Loc,fp1,lp1); if(c3d.IsNull()) continue; while(c3d->IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) { -- 2.39.5