0025957: nurbsconvert modifies original shape
authorisn <isn@opencascade.com>
Tue, 7 Jun 2016 04:20:13 +0000 (07:20 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 18 Aug 2016 11:46:13 +0000 (14:46 +0300)
commitb47bcd7ea71797f861de917154c8c21e112fc62f
tree5c62b89d181a0820b69fccc883f5c0215b388239
parent5a0fc7ce60b575492fc3807bcc664b5e7797bc23
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
12 files changed:
src/BRepTools/BRepTools_Modifier.cxx
src/BRepTools/BRepTools_Modifier.hxx
src/BRepTools/BRepTools_NurbsConvertModification.cxx
src/ShapeProcess/ShapeProcess_OperLibrary.cxx
src/ShapeProcess/ShapeProcess_OperLibrary.hxx
tests/bugs/iges/bug25632_2
tests/bugs/modalg_5/bug25976
tests/bugs/modalg_6/bug24890
tests/bugs/modalg_6/bug25957_1 [new file with mode: 0644]
tests/bugs/modalg_6/bug25957_2 [new file with mode: 0644]
tests/bugs/moddata_2/bug466
tests/bugs/moddata_3/bug623