occt: master b47bcd7e

Author Committer Branch Timestamp Parent
isn bugmaster master 2016-06-07 04:20:13 master 5a0fc7ce
Changeset 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
mod - src/BRepTools/BRepTools_Modifier.cxx Diff File
mod - src/BRepTools/BRepTools_Modifier.hxx Diff File
mod - src/BRepTools/BRepTools_NurbsConvertModification.cxx Diff File
mod - src/ShapeProcess/ShapeProcess_OperLibrary.cxx Diff File
mod - src/ShapeProcess/ShapeProcess_OperLibrary.hxx Diff File
mod - tests/bugs/iges/bug25632_2 Diff File
mod - tests/bugs/modalg_5/bug25976 Diff File
mod - tests/bugs/modalg_6/bug24890 Diff File
add - tests/bugs/modalg_6/bug25957_1 Diff File
add - tests/bugs/modalg_6/bug25957_2 Diff File
mod - tests/bugs/moddata_2/bug466 Diff File
mod - tests/bugs/moddata_3/bug623 Diff File