0026261: Create a tool to remove tails from any wire
authorabk <abk@opencascade.com>
Tue, 19 May 2015 17:03:11 +0000 (20:03 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 28 May 2015 12:18:44 +0000 (15:18 +0300)
commitfbf3becf6568ce357499e0bb9096879b68953005
treeb98f68e2e82b890f50f4d24640895342968fb412
parent70fd50ec90cf23aa0385c1aad5a187cd374020a4
0026261: Create a tool to remove tails from any wire

A tool to remove tails from the wires of a shape was created.
The tool is based on mechanism 'ShapeFix',
is located in types 'ShapeFix_Wire' and 'ShapeAnalysis_Wire',
is enabled through method 'ShapeFix_Wire::FixTailMode' and
is initialized by methods 'ShapeFix_Wire::SetMaxTailAngle' and 'ShapeFix_Wire::SetMaxTailWidth' and
is called through method 'ShapeFix_Wire::FixTails'.
The status of any performing of the last method is accessible through method 'ShapeFix_Wire::StatusFixTails'.
The tail angle is checked only at the tail start.

Mechanism 'ShapeFix' was modified:
- the tool is disabled by default;
- algorithm 'Fix notched edges' is disabled then the tool is enabled;
- the tool and the last algorithm work in turns then the tool works on the request.

'Draw' command 'fixshape' was extended by options '-maxtaila' and '-maxtailw' to test the tool.

'Draw' tests to test the tool were created.

Algorithm 'fixshape' was changed in type 'ShapeProcess_OperLibrary' to
- use new parameters named 'FixTailMode', 'MaxTailAngle' (in degrees) and 'MaxTailWidth' from the algorithm context;
- apply the tool after the shape will be fully fixed if the tool was enabled.

Place holders for the new parameters were created in the resource file of mechsnism 'STEPControl_Reader'.

Test cases for issue CR26261
38 files changed:
src/SWDRAW/SWDRAW_ShapeFix.cxx
src/ShapeAnalysis/ShapeAnalysis_Wire.cdl
src/ShapeAnalysis/ShapeAnalysis_Wire.cxx
src/ShapeFix/ShapeFix_Face.cxx
src/ShapeFix/ShapeFix_Wire.cdl
src/ShapeFix/ShapeFix_Wire.cxx
src/ShapeFix/ShapeFix_Wire.lxx
src/ShapeProcess/ShapeProcess_OperLibrary.cxx
src/XSTEPResource/STEP
tests/heal/begin
tests/heal/end
tests/heal/grids.list
tests/heal/wire_tails_composed/A1 [new file with mode: 0644]
tests/heal/wire_tails_composed/A10 [new file with mode: 0644]
tests/heal/wire_tails_composed/A11 [new file with mode: 0644]
tests/heal/wire_tails_composed/A12 [new file with mode: 0644]
tests/heal/wire_tails_composed/A13 [new file with mode: 0644]
tests/heal/wire_tails_composed/A14 [new file with mode: 0644]
tests/heal/wire_tails_composed/A15 [new file with mode: 0644]
tests/heal/wire_tails_composed/A16 [new file with mode: 0644]
tests/heal/wire_tails_composed/A17 [new file with mode: 0644]
tests/heal/wire_tails_composed/A18 [new file with mode: 0644]
tests/heal/wire_tails_composed/A19 [new file with mode: 0644]
tests/heal/wire_tails_composed/A2 [new file with mode: 0644]
tests/heal/wire_tails_composed/A3 [new file with mode: 0644]
tests/heal/wire_tails_composed/A4 [new file with mode: 0644]
tests/heal/wire_tails_composed/A5 [new file with mode: 0644]
tests/heal/wire_tails_composed/A6 [new file with mode: 0644]
tests/heal/wire_tails_composed/A7 [new file with mode: 0644]
tests/heal/wire_tails_composed/A8 [new file with mode: 0644]
tests/heal/wire_tails_composed/A9 [new file with mode: 0644]
tests/heal/wire_tails_real/A1 [new file with mode: 0644]
tests/heal/wire_tails_real/A2 [new file with mode: 0644]
tests/heal/wire_tails_real/A3 [new file with mode: 0644]
tests/heal/wire_tails_real/A4 [new file with mode: 0644]
tests/heal/wire_tails_real/A5 [new file with mode: 0644]
tests/heal/wire_tails_real/A6 [new file with mode: 0644]
tests/heal/wire_tails_real/A7 [new file with mode: 0644]