0029564: STEP Import and Export failure IR-2020-11-27 WEEK-48
authorskl <skl@opencascade.com>
Mon, 2 Nov 2020 16:52:44 +0000 (19:52 +0300)
committerbugmaster <bugmaster@opencascade.com>
Sat, 28 Nov 2020 09:36:49 +0000 (12:36 +0300)
commitd66f7c0fa2923b0de49f111b4f4b60fae0ca2e7a
tree62a521c7c02aa3badf8fca59f69c453522faa09b
parent59069d3fd8890ab72583b773b7278fd224b89496
0029564: STEP Import and Export failure

In the result of translation one face lying on the spherical surface converted to the two separate faces due to method IsSurfaceUVPeriodic returned false for spherical surface.
Now method IsSurfaceUVPeriodic returns true for spherical surface in order to natural bounds can be added for spherical surface too.
Method ShapeFix_Face::FixOrientation was corrected to avoid reversing inner wire for case when spherical face has only one inner bound without outer bound.
Check that wire has bounding box equal to bounding box of surface was added in the method ShapeFix_Face::FixAddNaturalBound in order to avoid addition of the natural bounds ( test bugs xde bug22535_2 1 for face 2 lying on the torus)

In order to avoid regressions fix for translation "VERTEX_LOOP" entities was added. Natural bounds for "VERTEX_LOOP" lying on the Spherical and BSpline surface is added only if face does not have any other bounds.
In other case natural bounds were added during ShapeFix operation after translation in order take into account mutual position of the all bounds in the UV space of the face.
src/ShapeFix/ShapeFix_Face.cxx
src/StepToTopoDS/StepToTopoDS_TranslateFace.cxx
tests/bugs/step/bug29564 [new file with mode: 0644]
tests/de/step_1/E6
tests/de/step_2/A3
tests/de/step_2/A5
tests/de/step_2/D2
tests/de/step_3/A5
tests/de/step_3/A9
tests/de/step_3/D8