MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0027049Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2015-12-29 10:462021-04-26 13:37
Reportermsv 
Assigned Toemv 
PrioritynormalSeverityminor 
StatusassignedResolutionopen 
PlatformOSOS Version
Product Version[OCCT] 7.0.0 
Target Version[OCCT] 7.6.0*Fixed in Version 
Summary0027049: Make non-destructive mode be defined by default in Boolean operations
DescriptionRecently Boolean operation has got the option of non-destructive mode of work. In this mode the algorithm does not change input shapes (in particular tolerances of vertices). The aim of this improvement is to make this mode of work the default one.
This is to be done both in algorithms (BOPAlgo, BRepAlgoAPI) and in Draw framework (BOPTest).
Steps To Reproduce1) Change the test case tests\bugs\modalg_6\bug26619 so that to remove the line:
bnondestructive 1

2) Run the test bugs modalg_6 bug26619

The result must remain OK.
TagsNo tags attached.
Test case numberbugs modalg_7 bug27049
Attached Files

- Relationships
related to 0026738closedapn Open CASCADE Make Boolean operations safely treating arguments when running with fuzzy option 
related to 0027166assignedmsv Open CASCADE Non-destructive principle in algorithms 

-  Notes
(0069550)
mkv (tester)
2017-08-17 17:00

Problem described in issue is reproduced on current state of OCCT.
(0077060)
emv (developer)
2018-06-26 15:12

The test case bugs modalg_7 bug27049 is going to be fixed by the fix for the issue #29711, so the boolean operation in test case bugs modalg_6 bug26619 is going to be working the same in both not-safe and safe modes.
The issue is still should not be closed even after integration of the fix for #29711, as it does not set the non-destructive mode as default in Boolean operations.
(0100322)
git (administrator)
2021-04-15 16:37

Branch CR27049 has been created by emv.

SHA-1: 324753e336e94b9ace4fb5047d078df7d2300061


Detailed log of new commits:

Author: emv
Date: Thu Apr 15 16:30:03 2021 +0300

    0027049: Make non-destructive mode be defined by default in Boolean operations
    
    Set non-destructive mode enabled by default in Boolean operation algorithms. It means that shapes will not be modified during any Boolean, Split, GeneralFuse, MakerVolume, CellsBuilder operations.
    
    Since now, in this default mode, the user should not expect any shape from the input arguments being present in the result shape of the operations mentioned above. Some of the input shapes may be passed to the result, in case they are not affected by the operation, but in general, it is better to work through the History mechanism. The shapes replaced by the copies should be obtained through Modified method.
    
    Incomplete: documentation of the algorithms has to be updated accordingly.
(0100586)
emv (developer)
2021-04-26 11:04

Working on the issue I was thinking if we should really enable the non-destructive mode in Booleans by default. I am currently against it for several reasons:
1. Not all users may really need it (and those who do need it can switch it on using the corresponding setter);
2. Enabling it by default we will stop testing the destructive mode.
3. Performance of non-destructive Booleans is significantly worse in some case.

Moreover, making the non-desctructive mode default in Boolean operations leads to numerous regressions:
http://occt-tests/CR27049-master-emv-OCCT/Debian80-64/summary.html [^]
http://occt-tests/CR27049-master-emv-OCCT/Windows-64-VC14/summary.html [^]
http://occt-tests/CR27049-master-emv-Products/Debian80-64/summary.html [^]
http://occt-tests/CR27049-master-emv-Products/Windows-64-VC14/summary.html [^]

Some of these regressions are caused by invalid inputs which are not allowed to be healed in Booleans in this mode and passed into result as is. Some regressions are caused by the inconsistencies in the algorithm. In any case, all these regressions have to be analyzed and resolved.

When all regressions are resolved, I propose to close the issue keeping the destructive mode default in Booleans.
(0100587)
git (administrator)
2021-04-26 11:50

Branch CR27049 has been updated forcibly by emv.

SHA-1: f858df7b56cb29f8fbf5f3261bcd94c788162eb3
(0100589)
msv (developer)
2021-04-26 12:38

I agree to leave destructive mode by default.
However, it is worth to make new tests upon those causing regressions in non-destructive mode.
(0100591)
emv (developer)
2021-04-26 13:27

I propose not only making those tests, but also fix them.
(0100592)
msv (developer)
2021-04-26 13:37

Yes, of course.

- Issue History
Date Modified Username Field Change
2015-12-29 10:46 msv New Issue
2015-12-29 10:46 msv Assigned To => msv
2015-12-29 10:47 msv Relationship added related to 0026619
2016-06-28 09:59 msv Relationship added related to 0026738
2016-10-28 17:03 msv Target Version 7.1.0 => 7.2.0
2017-07-24 09:32 msv Target Version 7.2.0 => 7.3.0
2017-08-17 17:00 mkv Test case number => bugs modalg_7 bug27049
2017-08-17 17:00 mkv Note Added: 0069550
2017-12-05 16:59 msv Target Version 7.3.0 => 7.4.0
2018-06-26 15:12 emv Note Added: 0077060
2018-06-26 15:12 emv Relationship added related to 0029711
2019-01-10 10:17 msv Relationship added related to 0027166
2019-08-12 17:45 msv Target Version 7.4.0 => 7.5.0
2020-09-14 22:54 msv Target Version 7.5.0 => 7.6.0*
2021-04-15 14:20 emv Assigned To msv => emv
2021-04-15 14:20 emv Status new => assigned
2021-04-15 16:37 git Note Added: 0100322
2021-04-26 11:04 emv Note Added: 0100586
2021-04-26 11:50 git Note Added: 0100587
2021-04-26 12:38 msv Note Added: 0100589
2021-04-26 13:27 emv Note Added: 0100591
2021-04-26 13:37 msv Note Added: 0100592


Copyright © 2000 - 2021 MantisBT Team
Powered by Mantis Bugtracker