From c2e6c12db3c547ea043f3b1f067409e2445a569e Mon Sep 17 00:00:00 2001 From: skv Date: Wed, 9 Apr 2014 12:38:15 +0400 Subject: [PATCH] 0022512: [CEA 1073] FuseCollinearEdgesWithinWire makes the orginal shape invalid --- src/GEOMImpl/GEOMImpl_ShapeDriver.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx b/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx index 1ea14d97b..86ee0fa95 100644 --- a/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx @@ -991,8 +991,11 @@ TopoDS_Edge GEOMImpl_ShapeDriver::MakeEdgeFromWire(const TopoDS_Shape& aWire, if (CurveSeq(1)->IsInstance(STANDARD_TYPE(Geom_TrimmedCurve))) CurveSeq(1) = (*((Handle(Geom_TrimmedCurve)*)&(CurveSeq(1))))->BasisCurve(); - CurveSeq(1)->Transform(LocSeq(1).Location().Transformation()); - ResEdge = BRepLib_MakeEdge(CurveSeq(1), + Handle(Geom_Curve) aNewCurve = + Handle(Geom_Curve)::DownCast(CurveSeq(1)->Copy()); + + aNewCurve->Transform(LocSeq(1).Location().Transformation()); + ResEdge = BRepLib_MakeEdge(aNewCurve, FirstVtx_final, LastVtx_final, FparSeq(1), LparSeq(1)); } -- 2.39.2