View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0029604 | Open CASCADE | OCCT:DRAW | public | 2018-03-21 12:24 | 2018-06-29 21:19 |
Reporter | Assigned To | bugmaster | |||
Priority | normal | Severity | feature | ||
Status | closed | Resolution | fixed | ||
Product Version | 7.2.0 | ||||
Target Version | 7.3.0 | Fixed in Version | 7.3.0 | ||
Summary | 0029604: Uniform mechanism providing History of shape's modifications for OCCT algorithms in DRAW | ||||
Description | For most of the algorithms in OCCT there are no DRAW commands for tracking the history of shapes modifications. And the algorithms for which such commands are present have their own implementation of these commands. It is proposed to implement the mechanism which will provide: 1. Easy DRAW history support for the algorithms; 2. Unification of all history commands implementation. Usage of the BRepTools_History algorithm will allow to implement such mechanism with minimal effort. It is proposed: 1. Keep the BRepTools_History object in session; 2. Overwrite the history kept in session after running the algorithm for which the history is required; 3. Create DRAW object for BRepTools_History; 4. Implement Draw command for creation of the Drawable history from the one kept in session. 5. Provide single implementation of the draw commands "modified", "generated" and "isdeleted" taking as an input the Drawable history object. This steps will allow working with the history in the following way: box b1 10 10 10 box b2 5 0 0 10 10 10 # this will overwrite the History in session bfuse r b1 b2 # get fuse history gethistory fuse_hist isdeleted fuse_hist b1 # this will overwrite the History in session unifysamedom ru r # get usd history gethistory usd_hist modified usd_hist <modif_shapes> r | ||||
Steps To Reproduce | Not needed. | ||||
Tags | No tags attached. | ||||
Test case number | boolean history A7 boolean history A8 | ||||
related to | 0029653 | new | Unable to get generated shapes for some of the arguments of Thrusections operation |
|
Branch CR29604 has been created by emv. SHA-1: c6ae4d27a54017d4c9704e884ed1404b035ea957 Detailed log of new commits: Author: emv Date: Wed Mar 21 16:59:29 2018 +0300 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. |
|
Branch CR29604 has been updated forcibly by emv. SHA-1: 6e391b7966ad634725a3dd3c40cbd03d6ad06179 |
|
Branch CR29604 has been updated by emv. SHA-1: 4005d57980d79a30d519582d8451a732b9015e55 Detailed log of new commits: Author: emv Date: Mon Mar 26 13:03:31 2018 +0300 # Corrections in Thrusections algorithm to avoid exceptions when filling history. |
|
Branch CR29604 has been updated forcibly by emv. SHA-1: ccdbf29b2ed15679df7c0744c076e4f3d588a3b8 |
|
Branch CR29604 has been updated forcibly by emv. SHA-1: 633019bbf5afaee739e12b92decd8d3f11b0d0b9 |
|
Branch CR29604 has been updated forcibly by emv. SHA-1: 5cb9b0e6d5d71c3540668eb0918e6c03f350b00e |
|
Dear Mikhail, could you please review the git branch CR29604? Tests results - http://jenkins-test-11.nnov.opencascade.com:8080/view/CR29604-master-emv/view/COMPARE/. |
|
Remarks: dox/user_guides/modeling_algos/modeling_algos.md - 1295: "are" => "do" dox/user_guides/draw_test_harness/draw_test_harness.md - 7328: use bold style for the command name, *removefeatures* => **removefeatures** - 8037: "includes to commands" => "includes the command" - 8054: "is save" => "is saved" - 8105,8128: the result is one shape; tell about its structure (compound). - 8163: "into the command implementation just after the operation is done" - 8165: misprint BRetTest_Objects dox/user_guides/boolean_operations/boolean_operations.md - 2954: "the tool faces" => "the tool face" - 3031: "Example of interfering faces" => "As for operation with intersecting faces. consider the following example" |
|
src/BRepTest/BRepTest_Objects.hxx - 40: "Sets" => "Adds" src/BRepTest/BRepTest_HistoryCommands.cxx - Avoid putting '\n' as the last character to theDI before return. Because this generates one extra empty line. - 150: make compound outside of the loop. src/BRepTest/BRepTest_FeatureCommands.cxx - 2175: Please delete old instance of the algorithm to avoid memory leakage. src/BRepTest/BRepTest_FilletCommands.cxx - Check Rakk->IsDone() before saving history. src/BOPTest/BOPTest_RemoveFeaturesCommands.cxx - Do not save history if -nohist option is set, or if the algorithm is failed. src/BOPTest/BOPTest_APICommands.cxx src/BOPTest/BOPTest_BOPCommands.cxx src/BOPTest/BOPTest_CellsCommands.cxx src/BOPTest/BOPTest_PartitionCommands.cxx src/BRepTest/BRepTest_SweepCommands.cxx - Do not save history if the algorithm is failed. |
|
Branch CR29604 has been updated forcibly by emv. SHA-1: 982c1ec970be3dcd35708af1b4c95a83c75bcffc |
|
All remarks have been considered, except for > src/BOPTest/BOPTest_APICommands.cxx > src/BOPTest/BOPTest_BOPCommands.cxx > src/BOPTest/BOPTest_CellsCommands.cxx > src/BOPTest/BOPTest_PartitionCommands.cxx > - Do not save history if the algorithm is failed. For booleans, I think it may be useful to have the history information for debug purposes even if the algorithm is failed. Please review again. Tests are regenerated. |
|
Reviewed. |
|
Combination - OCCT branch : CR29604 SHA - 982c1ec970be3dcd35708af1b4c95a83c75bcffc Products branch : master SHA - 8471189e8649026d76950924f8ec2b4878cba528 was compiled on Linux, MacOS and Windows platforms and tested in optimize mode. Number of compiler warnings: No new/fixed warnings Regressions/Differences/Improvements: No regressions/differences CPU differences: Debian70-64: OCCT Total CPU difference: 18114.73999999991 / 18092.32999999989 [+0.12%] Products Total CPU difference: 7437.979999999972 / 7480.610000000005 [-0.57%] Windows-64-VC10: OCCT Total CPU difference: 17895.13991169853 / 17813.754189998494 [+0.46%] Products Total CPU difference: 8102.988341900006 / 8149.242638399972 [-0.57%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR29604 has been deleted by kgv. SHA-1: 982c1ec970be3dcd35708af1b4c95a83c75bcffc |
occt: master 4f7d41ea 2018-03-21 13:59:29
Committer: bugmaster Details Diff |
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. |
Affected Issues 0029604 |
|
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 |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-03-21 12:24 |
|
New Issue | |
2018-03-21 12:24 |
|
Assigned To | => apn |
2018-03-21 12:24 |
|
Assigned To | apn => emv |
2018-03-23 14:53 | git | Note Added: 0074825 | |
2018-03-26 07:48 | git | Note Added: 0074907 | |
2018-03-26 13:03 | git | Note Added: 0074914 | |
2018-03-27 14:50 | git | Note Added: 0074959 | |
2018-03-27 15:15 |
|
Relationship added | related to 0029653 |
2018-03-27 15:42 | git | Note Added: 0074962 | |
2018-04-10 09:44 | git | Note Added: 0075254 | |
2018-04-10 12:00 |
|
Note Added: 0075262 | |
2018-04-10 12:00 |
|
Assigned To | emv => msv |
2018-04-10 12:00 |
|
Status | new => resolved |
2018-04-10 12:00 |
|
Steps to Reproduce Updated | |
2018-04-10 17:54 |
|
Note Added: 0075279 | |
2018-04-10 19:03 |
|
Note Added: 0075284 | |
2018-04-10 19:18 |
|
Assigned To | msv => emv |
2018-04-10 19:18 |
|
Status | resolved => assigned |
2018-04-11 15:24 | git | Note Added: 0075378 | |
2018-04-11 17:04 |
|
Note Added: 0075383 | |
2018-04-11 17:04 |
|
Assigned To | emv => apn |
2018-04-11 17:04 |
|
Status | assigned => resolved |
2018-04-11 18:32 |
|
Assigned To | apn => msv |
2018-04-11 18:44 |
|
Note Added: 0075385 | |
2018-04-11 18:44 |
|
Assigned To | msv => bugmaster |
2018-04-11 18:44 |
|
Status | resolved => reviewed |
2018-04-12 11:58 | bugmaster | Target Version | 7.4.0 => 7.3.0 |
2018-04-12 13:29 | bugmaster | Test case number | => boolean history A7 boolean history A8 |
2018-04-12 13:29 | bugmaster | Note Added: 0075417 | |
2018-04-12 13:29 | bugmaster | Status | reviewed => tested |
2018-04-16 14:46 | bugmaster | Changeset attached | => occt master 4f7d41ea |
2018-04-16 14:46 | bugmaster | Status | tested => verified |
2018-04-16 14:46 | bugmaster | Resolution | open => fixed |
2018-05-24 18:13 | git | Note Added: 0076252 | |
2018-06-29 21:13 |
|
Fixed in Version | => 7.3.0 |
2018-06-29 21:19 |
|
Status | verified => closed |