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.
This commit is contained in:
balazs-bamer
2014-12-27 20:10:34 +01:00
committed by wmayer
parent 14014bc61a
commit 186bd33585

View File

@@ -23,6 +23,7 @@
#include "PreCompiled.h"
#ifndef _PreComp_
#include <BRepBuilderAPI_Copy.hxx>
#include <BRepBuilderAPI_MakeFace.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Face.hxx>
@@ -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);