From 186bd335856188c2b2b6ea5fec41f96856691eef Mon Sep 17 00:00:00 2001 From: balazs-bamer Date: Sat, 27 Dec 2014 20:10:34 +0100 Subject: [PATCH] WMayer's fix: subshape copy The subshape is copied to prevent the wire tool from modifying it. This lets the user modify any supporting Bezier curves and the Bezier surface will follow them. --- src/Mod/Surface/App/FeatureBezSurf.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Mod/Surface/App/FeatureBezSurf.cpp b/src/Mod/Surface/App/FeatureBezSurf.cpp index e732cd62ff..8ea4d9a5fb 100644 --- a/src/Mod/Surface/App/FeatureBezSurf.cpp +++ b/src/Mod/Surface/App/FeatureBezSurf.cpp @@ -23,6 +23,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ +#include #include #include #include @@ -173,6 +174,9 @@ void getCurves(GeomFill_BezierCurves& aBuilder,TopoDS_Wire& aWire, const App::Pr //we want only the subshape which is linked sub = ts.getSubShape(set.sub); + // make a copy of the shape and the underlying geometry to avoid to affect the input shapes + BRepBuilderAPI_Copy copy(sub); + sub = copy.Shape(); if(sub.ShapeType() == TopAbs_EDGE) { //Check Shape type and assign edge etmp = TopoDS::Edge(sub);