occt: master 4f7d41ea

Author Committer Branch Timestamp Parent
emv bugmaster master 2018-03-21 13:59:29 master a3d3777d
Affected Issues  0029604: Uniform mechanism providing History of shape's modifications for OCCT algorithms in DRAW
Changeset 0029604: Uniform mechanism providing History of shape's modifications for OCCT algorithms in DRAW

Implementation of the mechanism for unification of the history commands for all OCCT algorithms.
The following Draw commands should be used to track the history of shapes modifications of any operation:
- modified - to find the shapes modified from the given shape in the given history.
- generated - to find the shapes generated from the given shape in the given history.
- isdeleted - to check if the given shape has been deleted during operation.

The mechanism allows fast & easy enabling of the DRAW history support for the algorithms supporting the history on the API level (i.e. the algorithm should have the methods Modified(), Generated() and IsDeleted()).
To enable the draw history support it is necessary to store the history of the algorithm into the session. For instance:

TopTools_ListOfShape Objects = ...; // Objects
TopTools_ListOfShape Tools = ...; // Tools

BRepAlgoAPI_Cut aCut(Objects, Tools); // Boolean cut operation

BRepTest_Objects::SetHistory(Objects, aCut); // Store the history for the Objects (overwrites the history in the session)
BRepTest_Objects::AddHistory(Tools, aCut); // Add the history for the Tools

To get the stored history in draw the command "savehistory" should be used. It saves the history kept in session into a Drawable object with the given name:

# perform cut
bcut r s1 s2

# save history of cut
savehistory cut_history

explode s1 f
modified m cut_history s1_1

The Draw History commands of the following algorithms have been removed:
- Boolean Operations;
- Defeaturing;
- Unify same domain;
- Sweep;
- Thrusections;

All these algorithms have been switched to support the new Draw history mechanism.

The Fillet and Blend algorithms have been also enabled to support history commands.
mod - dox/user_guides/boolean_operations/boolean_operations.md Diff File
mod - dox/user_guides/draw_test_harness/draw_test_harness.md Diff File
mod - dox/user_guides/modeling_algos/modeling_algos.md Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_4.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_CellsBuilder.cxx Diff File
mod - src/BOPTest/BOPTest.cxx Diff File
mod - src/BOPTest/BOPTest.hxx Diff File
mod - src/BOPTest/BOPTest_APICommands.cxx Diff File
mod - src/BOPTest/BOPTest_BOPCommands.cxx Diff File
mod - src/BOPTest/BOPTest_CellsCommands.cxx Diff File
rm - src/BOPTest/BOPTest_HistoryCommands.cxx Diff File
mod - src/BOPTest/BOPTest_PartitionCommands.cxx Diff File
mod - src/BOPTest/BOPTest_RemoveFeaturesCommands.cxx Diff File
mod - src/BOPTest/FILES Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Defeaturing.hxx Diff File
mod - src/BRepFill/BRepFill_PipeShell.hxx Diff File
mod - src/BRepOffsetAPI/BRepOffsetAPI_MakePipeShell.hxx Diff File
mod - src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.cxx Diff File
mod - src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.hxx Diff File
mod - src/BRepTest/BRepTest.cxx Diff File
mod - src/BRepTest/BRepTest.hxx Diff File
add - src/BRepTest/BRepTest_DrawableHistory.cxx Diff File
add - src/BRepTest/BRepTest_DrawableHistory.hxx Diff File
mod - src/BRepTest/BRepTest_FeatureCommands.cxx Diff File
mod - src/BRepTest/BRepTest_FilletCommands.cxx Diff File
add - src/BRepTest/BRepTest_HistoryCommands.cxx Diff File
add - src/BRepTest/BRepTest_Objects.cxx Diff File
add - src/BRepTest/BRepTest_Objects.hxx Diff File
mod - src/BRepTest/BRepTest_SweepCommands.cxx Diff File
mod - src/BRepTest/FILES Diff File
mod - src/BRepTools/BRepTools_History.cxx Diff File
mod - src/BRepTools/BRepTools_History.hxx Diff File
mod - src/SWDRAW/SWDRAW_ShapeUpgrade.cxx Diff File
mod - tests/boolean/history/A1 Diff File
mod - tests/boolean/history/A2 Diff File
mod - tests/boolean/history/A3 Diff File
mod - tests/boolean/history/A4 Diff File
mod - tests/boolean/history/A5 Diff File
mod - tests/boolean/history/A6 Diff File
add - tests/boolean/history/A7 Diff File
add - tests/boolean/history/A8 Diff File
mod - tests/boolean/removefeatures/A6 Diff File
mod - tests/boolean/removefeatures/A7 Diff File
mod - tests/boolean/removefeatures/B1 Diff File
mod - tests/boolean/removefeatures/B2 Diff File
mod - tests/boolean/removefeatures/B3 Diff File
mod - tests/boolean/removefeatures/B4 Diff File
mod - tests/boolean/removefeatures/B5 Diff File
mod - tests/boolean/removefeatures/B7 Diff File
mod - tests/boolean/removefeatures/B8 Diff File
mod - tests/boolean/removefeatures/B9 Diff File
mod - tests/boolean/removefeatures/begin Diff File
mod - tests/boolean/removefeatures/C1 Diff File
mod - tests/boolean/removefeatures/C3 Diff File
mod - tests/boolean/removefeatures/C4 Diff File
mod - tests/boolean/removefeatures/C5 Diff File
mod - tests/boolean/removefeatures/E1 Diff File
mod - tests/boolean/removefeatures/G1 Diff File
mod - tests/bugs/heal/bug26489_4 Diff File
mod - tests/bugs/modalg_4/bug22646 Diff File
mod - tests/bugs/modalg_6/bug26150_1 Diff File
mod - tests/bugs/modalg_6/bug26150_10 Diff File
mod - tests/bugs/modalg_6/bug26150_11 Diff File
mod - tests/bugs/modalg_6/bug26150_12 Diff File
mod - tests/bugs/modalg_6/bug26150_13 Diff File
mod - tests/bugs/modalg_6/bug26150_14 Diff File
mod - tests/bugs/modalg_6/bug26150_15 Diff File
mod - tests/bugs/modalg_6/bug26150_16 Diff File
mod - tests/bugs/modalg_6/bug26150_17 Diff File
mod - tests/bugs/modalg_6/bug26150_18 Diff File
mod - tests/bugs/modalg_6/bug26150_2 Diff File
mod - tests/bugs/modalg_6/bug26150_3 Diff File
mod - tests/bugs/modalg_6/bug26150_4 Diff File
mod - tests/bugs/modalg_6/bug26150_5 Diff File
mod - tests/bugs/modalg_6/bug26150_6 Diff File
mod - tests/bugs/modalg_6/bug26150_7 Diff File
mod - tests/bugs/modalg_6/bug26150_8 Diff File
mod - tests/bugs/modalg_6/bug26150_9 Diff File
mod - tests/bugs/modalg_6/bug26393 Diff File
mod - tests/bugs/modalg_6/bug27283 Diff File
mod - tests/bugs/modalg_6/bug27386_1 Diff File
mod - tests/bugs/modalg_6/bug27386_2 Diff File
mod - tests/bugs/modalg_6/bug27386_3 Diff File
mod - tests/bugs/modalg_6/bug27386_4 Diff File
mod - tests/bugs/modalg_6/bug27386_5 Diff File
mod - tests/bugs/modalg_6/bug27386_6 Diff File
mod - tests/bugs/modalg_6/bug27386_7 Diff File
mod - tests/bugs/modalg_6/bug27386_8 Diff File
mod - tests/bugs/modalg_6/bug27822 Diff File
mod - tests/bugs/step/bug27316 Diff File
mod - tests/heal/unify_same_domain/A4 Diff File
mod - tests/heal/unify_same_domain/A6 Diff File
mod - tests/heal/unify_same_domain/end Diff File
mod - tests/pipe/bugs/bug24909_3 Diff File