1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-29 14:00:49 +03:00

0025957: nurbsconvert modifies original shape

- Ensure that the subshapes from the original shape will not be changed after nurbsconvert operation.
For that create the new vertexes (NewPoint(..)) as well as new curves (NewCurve(..)) and new surfaces (NewSurface(..)) before calling of Rebuild() method. Make copies of all vertexes impacted by curve or surface modifications. This eliminates necessity of creation of new vertices during recursive rebuilding of the entire shape.

- Compatibility with the old behavior of BRepTools_Modifier has been retained as an option. For that the new flag MutableInput has been added in the interface of the class.

- This patch also impacts other operations based on BRepTools_Modifier, in the sense that they also become safe regarding input shapes.

- Create new test cases. Some test cases with nurbsconvert command are changed to lock input shapes from modifications.

fix regressions
This commit is contained in:
isn
2016-06-07 07:20:13 +03:00
committed by bugmaster
parent 5a0fc7ce60
commit b47bcd7ea7
12 changed files with 386 additions and 127 deletions

View File

@@ -8,6 +8,7 @@ puts ""
restore [locate_data_file bug24890_f0.brep] f0
setflags f0 locked
nurbsconvert result f0
checkshape result

View File

@@ -0,0 +1,12 @@
puts "============"
puts "OCC25957"
puts "============"
puts ""
######################################################
# nurbsconvert modifies original shape
######################################################
psphere s 10
setflags s locked
nurbsconvert q s
checkshape s

View File

@@ -0,0 +1,13 @@
puts "============"
puts "OCC25957"
puts "============"
puts ""
######################################################
# nurbsconvert modifies original shape
######################################################
restore [locate_data_file bug25957__face2.brep] s
checkshape s
setflags s locked
nurbsconvert nurbs_s s
checkshape s