View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0026738 | Open CASCADE | OCCT:Modeling Algorithms | public | 2015-10-01 12:44 | 2019-09-05 13:13 |
Reporter | Assigned To | apn | |||
Priority | high | Severity | tweak | ||
Status | closed | Resolution | fixed | ||
Product Version | 6.9.1 | ||||
Target Version | 7.1.0 | Fixed in Version | 7.1.0 | ||
Summary | 0026738: Make Boolean operations safely treating arguments when running with fuzzy option | ||||
Description | When fuzzy option is in force Boolean operation increases tolerance of all sub-shapes of the arguments for the moment of finding intersections. It will become a trouble if the same shape is participating in Boolean operations in different threads simultaneously. So, it is needed to re-implement the fuzzy option in a different way. Instead of modifying tolerance of input shapes, the algorithm must add fuzzy value each time a tolerance of a shape is used. | ||||
Steps To Reproduce | tests bugs modalg_6 bug26738 | ||||
Tags | No tags attached. | ||||
Test case number | bugs modalg_6 bug26738 | ||||
parent of | 0027090 | closed | bugmaster | Open CASCADE | Point is classified IN solid but actually it is OUT |
related to | 0026796 | closed | bugmaster | Open CASCADE | The result of General Fuse operation is self-intersecting shape |
related to | 0027049 | assigned | Open CASCADE | Make non-destructive mode be defined by default in Boolean operations | |
child of | 0027166 | assigned | Open CASCADE | Non-destructive principle in algorithms |
|
Branch CR26738 has been created by msv. SHA-1: 26477f3e80c19ce21aa9edad32222ffe6d2f4329 Detailed log of new commits: Author: emv Date: Thu Sep 3 10:31:31 2015 +0300 0026738: Make Boolean operations non-destructive when running with fuzzy option Note: it is not complete yet. |
|
Branch CR26738 has been updated forcibly by msv. SHA-1: 29ad62b19ea8bf463a96c22a5da50d2a064c4266 |
|
Branch CR26738 has been updated by msv. SHA-1: 28fc754ae50e1f3e66f7aa519aa9388b15643008 Detailed log of new commits: Author: msv Date: Mon Jan 25 15:48:56 2016 +0300 Work against regressions. |
|
Branch CR26738_2 has been created by msv. SHA-1: 2995e74729848863b030322ead7e9a711b600cf5 Detailed log of new commits: Author: emv Date: Thu Sep 3 10:31:31 2015 +0300 0026738: Make Boolean operations guarding arguments when running with fuzzy option When fuzzy option is in force prevent increasing tolerance of input shapes. Instead pass increased by fuzzy value the tolerances of sub-shapes everywhere where it is needed by intersection algorithms. Test case for the bug has been added. Update the test boolean/bcut_complex/N9 |
|
Branch CR26738_3 has been created by emv. SHA-1: 89505bf47531f0aea6613a08a46f14444c2f0561 Detailed log of new commits: Author: emv Date: Thu Sep 3 10:31:31 2015 +0300 0026738: Make Boolean operations guarding arguments when running with fuzzy option When fuzzy option is in force prevent increasing tolerance of input shapes. Instead pass increased by fuzzy value the tolerances of sub-shapes everywhere where it is needed by intersection algorithms. Test case for the bug has been added. Update the test boolean/bcut_complex/N9 |
|
Branch CR26738_3 has been updated by emv. SHA-1: ed6a71641d58350328c3cb6e97000261ec995ecb Detailed log of new commits: Author: emv Date: Fri Jul 22 16:08:40 2016 +0300 Use fuzzy value for updating common blocks. |
|
Branch CR26738_4 has been created by msv. SHA-1: 85a7502e8b47dc638e2f81bdc9f2c9f2dc2921b8 Detailed log of new commits: Author: msv Date: Thu Sep 22 10:52:17 2016 +0300 Use fuzzy value where it is needed while projecting a vertex on edge/face (to avoid regression "bugs modalg_6 bug25880"). Author: msv Date: Mon Sep 19 18:00:28 2016 +0300 Improve computation of the vertex tolerance, taking into account intersection segments between p-curves (to avoid regression on "bugs modalg_6 bug22794"). Author: msv Date: Fri Sep 16 18:59:44 2016 +0300 // - Correct the method FilterPavesOnCurves to allow filtering of only paves // that are projected with small angle to the curve tangent. // - Undo changes in BOPAlgo_BuilderSolid.cxx - not needed any more. Author: msv Date: Thu Sep 15 17:07:46 2016 +0300 Correct test bugs/modalg_6/bug26954_3: now the result is more precise. Author: msv Date: Tue Sep 6 15:54:36 2016 +0300 //Correct the function BOPAlgo_PaveFiller::FilterPavesOnCurves - Correct the method BOPAlgo_PaveFiller::PutPaveOnCurve. Use the original vertex tolerance instead of value increased during putting it on other curves. - Add the method BOPDS_PaveBlock::RemoveExtPave Author: msv Date: Tue Aug 23 12:25:26 2016 +0300 Increase margin added to computed tolerance in the method IntTools_Tools::ComputeTolerance up to 0.001%. Author: msv Date: Tue Aug 23 16:12:53 2016 +0300 Correct test case bugs/modalg_6/bug25880 to suppress wrong bfuse commands. Author: msv Date: Tue Aug 23 10:51:05 2016 +0300 Update test case bugs/modalg_4/pro19653 to make it stable. See comment insode the script. Author: msv Date: Mon Aug 22 18:46:17 2016 +0300 In BOPAlgo_PaveFiller::MakeBlocks(), filter out paves on intersection curve that were put on the curve accidentally due to wide range of E-F intersection vertex. Author: msv Date: Fri Jul 22 18:18:39 2016 +0300 Update test cases. The following are improvements: boolean bcut_complex N9 boolean gdml_private ZH2 ZI7 ZJ7 boolean volumemaker A7 B6 C2 C4 Author: msv Date: Mon Aug 15 11:48:04 2016 +0300 Correct initialization of pave blocks for degenerated edges. Author: emv Date: Fri Jul 22 16:08:40 2016 +0300 Use fuzzy value for updating common blocks. Author: emv Date: Thu Sep 3 10:31:31 2015 +0300 0026738: Make Boolean operations guarding arguments when running with fuzzy option When fuzzy option is in force prevent increasing tolerance of input shapes. Instead pass increased by fuzzy value the tolerances of sub-shapes everywhere where it is needed by intersection algorithms. Test case for the bug has been added. Update the test boolean/bcut_complex/N9 |
|
Dear Eugeny, please review the fix. |
|
Remarks: 1. BOPDS_DS::Init() - the bounding box of the vertex should be updated with half of aTolAdd instead of theFuzz; 2. BOPAlgo_PaveFiller_4 - there is no need to check the interferences between vertices and face if no V/F were even computed; 3. BOPAlgo_PaveFiller_5 - there is no need to compare myFuzzyValue with Precision::Confusion() if by default it is initialized with this value; 4. IntTools_EdgeEdge, IntTools_FaceFace - myFuzzyValue is initialized with 0 by default, but should be initialized with Precision::Confusion(); 5. IntTools_EdgeFace, IntTools_BeanFaceIntersector - it is necessary to add the field myFuzzyValue to these classes to provide consistency with other intersection algorithms; 6. BOPTools_AlgoTools - in the methods in which fuzzy value is used, it is initialized with 0 by default. It is necessary to make it consistent with IntTools_Context::Compute* methods; 7. BOPTools_AlgoTools::MakeEdge - when using BRep_Builder there is no need to compare the tolerances before updating the vertex; 8. BOPAlgo_PaveFiller::UpdateExistingPaveBlocks - myFuzzyValue is compared with Precision::Confusion(); 9. BOPAlgo_PaveFiller_3 - the post treatment of the Edge/Edge intersection vertices is performed incorrectly. Currently, the vertices are considered as interfered if their bounding boxes are interfered. It is necessary to compare additionally the real distance between points with sum of tolerances of these vertices. |
|
Branch CR26738_5 has been created by msv. SHA-1: 3ac0cf1a6d9debce50e9169fc2898b92903400e9 Detailed log of new commits: Author: msv Date: Tue Sep 27 11:49:25 2016 +0300 Considering remarks. - In the class IntTools_EdgeFace, the methods SetTolE, SetTolF, TolE, TolF have been removed, and the methods SetFuzzyValue, FuzzyValue have been added. Author: emv Date: Thu Sep 3 10:31:31 2015 +0300 0026738: Make Boolean operations safely treating arguments when running with fuzzy option When fuzzy option is in force prevent increasing tolerance of input shapes. Instead pass increased by fuzzy value the tolerances of sub-shapes everywhere where it is needed by intersection algorithms. The following changes in API have been made: - The methods SetFuzzyValue and FuzzyValue have been moved from the classes BOPAlgo_ArgumentAnalyzer, BOPAlgo_Builder, and BOPAlgo_PaveFiller to the base class BOPAlgo_Algo. - In BOPTools_AlgoTools, a new argument "theFuzzyValue" has been added in the methods ComputeVV and AreFacesSameDomain. - In IntTools_Context, a new argument "theFuzzyValue" has been added in the methods ComputeVE and ComputeVF. - The methods SetFuzzyValue and FuzzyValue have been added in the classes IntTools_EdgeEdge, IntTools_FaceFace. - The new argument "theTol" has been added in the method IntTools_WLineTool::DecompositionOfWLine. Some improvements in algorithms have been made during fighting with regressions: - Correct initialization of pave blocks for degenerated edges. - In BOPAlgo_PaveFiller::MakeBlocks(), filter out paves on intersection curve that were put on the curve accidentally due to wide range of E-F intersection vertex. - In the method IntTools_Tools::ComputeTolerance the margin added to the computed tolerance has been increased up to 0.001%. - The method BOPAlgo_PaveFiller::PutPaveOnCurve has been corrected in order to use the original vertex tolerance instead of the value increased during putting it on other curves. - The new method BOPDS_PaveBlock::RemoveExtPave has been added. - The vertex tolerance computation in BOPTools_AlgoTools::CorrectCurveOnSurface has been improved, taking into account intersection segments between p-curves (to avoid regression on "bugs modalg_6 bug22794"). Test case for the bug has been added. The following test case have been updated as improvements: boolean gdml_private ZH2 ZI7 ZJ7 boolean volumemaker C4 The test case bugs/modalg_4/pro19653 has been corrected to make it stable. See comment inside the script for details. The test case bugs/modalg_6/bug25880 has been corrected to suppress wrong bfuse commands. The test bugs/modalg_6/bug26954_3 has been corrected to compare the result with more precise reference value. |
|
Please review the new version. |
|
Branch CR26738_5 has been updated forcibly by msv. SHA-1: fe5b266efce62184d8f1d75af1509e571419d4f2 |
|
Reviewed, please test. |
|
Dear BugMaster, Branch CR26738_5 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested. SHA-1: fe5b266efce62184d8f1d75af1509e571419d4f2 Number of compiler warnings: occt component: Linux: 0 (0 on master) Windows: 0 (0 on master) MasOS: 0 (0 on master) products component: Linux: 64 Windows: 0 MacOS: 1153 Regressions/Differences: http://occt-tests/CR26738_5-master-OCCT/Debian70-64/summary.html boolean volumemaker A8 bugs modalg_4 bug697_2, bug697_4, bug697_7, bug697_8 boolean gdml_private ZI7, ZJ7 Testing cases: bugs modalg_6 bug26738 - OK http://occt-tests/CR26738_5-master-OCCT/Debian70-64/bugs/modalg_6/bug26738.html http://occt-tests/CR26738_5-master-OCCT/Windows-64-VC10/bugs/modalg_6/bug26738.html CPU-problematic test case has been detected: blend simple Q6: 0.7020045 / 0.0936006 [+650.00%] Testing on Linux: Total MEMORY difference: 90702970 / 90175592 [+0.58%] Total CPU difference: 19769.110000000073 / 19208.04999999986 [+2.92%] Testing on Windows: Total MEMORY difference: 57172294 / 57221541 [-0.09%] Total CPU difference: 17843.955983598702 / 18310.78897609872 [-2.55%] There are differences in images found by testdiff: http://occt-tests/CR26738_5-master-OCCT/Debian70-64/diff-Debian70-64.html http://occt-tests/CR26738_5-master-OCCT/Windows-64-VC10/diff-Windows-64-VC10-image.html boolean gdml_private ZJ7 boolean gdml_private ZH2 boolean gdml_private ZI7 boolean volumemaker A8 bugs modalg_1 bug10232 |
|
Dear Mikhail, Branch CR26738_5 has been rejected due to: - regressions/differences/improvements - CPU problems - differences in images |
|
Branch CR26738_6 has been created by msv. SHA-1: 74619505292e23be7d7c4d79e93872b90bc47a15 Detailed log of new commits: Author: msv Date: Wed Oct 5 16:41:05 2016 +0300 - Accept improvements in boolean/gdml_private/ZI7 and ZJ7. - Improve IsExistingPaveBlock to make more stable catching of coincidence of common block with section curve (against regression "bugs modalg_4 bug697_2" on Linux). Author: emv Date: Thu Sep 3 10:31:31 2015 +0300 0026738: Make Boolean operations safely treating arguments when running with fuzzy option When fuzzy option is in force prevent increasing tolerance of input shapes. Instead pass increased by fuzzy value the tolerances of sub-shapes everywhere where it is needed by intersection algorithms. The following changes in API have been made: - The methods SetFuzzyValue and FuzzyValue have been moved from the classes BOPAlgo_ArgumentAnalyzer, BOPAlgo_Builder, and BOPAlgo_PaveFiller to the base class BOPAlgo_Algo. - In BOPTools_AlgoTools, a new argument "theFuzzyValue" has been added in the methods ComputeVV and AreFacesSameDomain. - In IntTools_Context, a new argument "theFuzzyValue" has been added in the methods ComputeVE and ComputeVF. - The methods SetFuzzyValue and FuzzyValue have been added in the classes IntTools_EdgeEdge, IntTools_FaceFace. - In the class IntTools_EdgeFace, the methods SetTolE, SetTolF, TolE, TolF have been removed, and the methods SetFuzzyValue, FuzzyValue have been added. - The new argument "theTol" has been added in the method IntTools_WLineTool::DecompositionOfWLine. Some improvements in algorithms have been made during fighting with regressions: - Correct initialization of pave blocks for degenerated edges. - In BOPAlgo_PaveFiller::MakeBlocks(), filter out paves on intersection curve that were put on the curve accidentally due to wide range of E-F intersection vertex. - In the method IntTools_Tools::ComputeTolerance the margin added to the computed tolerance has been increased up to 0.001%. - The method BOPAlgo_PaveFiller::PutPaveOnCurve has been corrected in order to use the original vertex tolerance instead of the value increased during putting it on other curves. - The new method BOPDS_PaveBlock::RemoveExtPave has been added. - The vertex tolerance computation in BOPTools_AlgoTools::CorrectCurveOnSurface has been improved, taking into account intersection segments between p-curves (to avoid regression on "bugs modalg_6 bug22794"). Test case for the bug has been added. The following test case have been updated as improvements: boolean gdml_private ZH2 ZI7 ZJ7 boolean volumemaker C4 The test case bugs/modalg_4/pro19653 has been corrected to make it stable. See comment inside the script for details. The test case bugs/modalg_6/bug25880 has been corrected to suppress wrong bfuse commands. The test bugs/modalg_6/bug26954_3 has been corrected to compare the result with more precise reference value. |
|
Branch CR26738_6 has been updated forcibly by msv. SHA-1: bdf993cbaa0c524e30c9645966db0076b034a14a |
|
Dear Eugeny, please review the last changes. |
|
Differences in images boolean gdml_private ZJ7 boolean gdml_private ZH2 boolean gdml_private ZI7 are improvements. boolean volumemaker A8 bugs modalg_1 bug10232 These test cases are unstable and change their behavior from fix to fix. It should be fixed in scope of another bug. |
|
Branch CR26738_6 has been updated forcibly by msv. SHA-1: 55d22c01113013accf1f3d146368965a0d5c0854 |
|
Branch CR26738_7 has been created by msv. SHA-1: 7b37fd0775772e89c66e5507280610a1251fbcad Detailed log of new commits: Author: emv Date: Thu Sep 3 10:31:31 2015 +0300 0026738: Make Boolean operations safely treating arguments when running with fuzzy option When fuzzy option is in force prevent increasing tolerance of input shapes. Instead pass increased by fuzzy value the tolerances of sub-shapes everywhere where it is needed by intersection algorithms. The following changes in API have been made: - The methods SetFuzzyValue and FuzzyValue have been moved from the classes BOPAlgo_ArgumentAnalyzer, BOPAlgo_Builder, and BOPAlgo_PaveFiller to the base class BOPAlgo_Algo. - The public method BOPDS_DS::VerticesOnIn has been renamed to SubShapesOnIn, and the new output parameter theCommonPB has been added. - In BOPTools_AlgoTools, a new argument "theFuzzyValue" has been added in the methods ComputeVV and AreFacesSameDomain. - In IntTools_Context, a new argument "theFuzzyValue" has been added in the methods ComputeVE and ComputeVF. - The methods SetFuzzyValue and FuzzyValue have been added in the classes IntTools_EdgeEdge, IntTools_FaceFace. - In the class IntTools_EdgeFace, the methods SetTolE, SetTolF, TolE, TolF have been removed, and the methods SetFuzzyValue, FuzzyValue have been added. - The new argument "theTol" has been added in the method IntTools_WLineTool::DecompositionOfWLine. Some improvements in algorithms have been made during fighting with regressions: - Correct initialization of pave blocks for degenerated edges. - In BOPAlgo_PaveFiller::MakeBlocks(), filter out paves on intersection curve that were put on the curve accidentally due to wide range of E-F intersection vertex. - In the method IntTools_Tools::ComputeTolerance the margin added to the computed tolerance has been increased up to 0.001%. - The method BOPAlgo_PaveFiller::PutPaveOnCurve has been corrected in order to use the original vertex tolerance instead of the value increased during putting it on other curves. - The new method BOPDS_PaveBlock::RemoveExtPave has been added. - The vertex tolerance computation in BOPTools_AlgoTools::CorrectCurveOnSurface has been improved, taking into account intersection segments between p-curves (to avoid regression on "bugs modalg_6 bug22794"). - Improve IsExistingPaveBlock to make more stable catching of coincidence of common block with section curve (against regression "bugs modalg_4 bug697_2" on Linux). Test case for the bug has been added. The following test cases have been updated as improvements: boolean gdml_private ZH2 ZI7 ZJ7 boolean volumemaker C4 The test case bugs/modalg_4/pro19653 has been corrected to make it stable. See comment inside the script for details. The test case bugs/modalg_6/bug25880 has been corrected to suppress wrong bfuse commands. The test bugs/modalg_6/bug26954_3 has been corrected to compare the result with more precise reference value. The "faulty" TODO in boolean/volumemaker/A8 has been made actual for Linux as well. |
|
Reviewed. |
|
Branch CR26738_7 has been updated forcibly by apv. SHA-1: 813b49bf938f8030ef7d86291d205d03059674af |
|
Branch CR26738_7 has been rebased on the current master |
|
Dear BugMaster, Branch CR26738_7 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested. SHA-1: 813b49bf938f8030ef7d86291d205d03059674af Number of compiler warnings: occt component: Linux: 0 (0 on master) Windows: 0 (0 on master) MasOS: 0 (0 on master) products component: Linux: 63 Windows: 0 MacOS: 1137 Regressions/Differences: http://occt-tests/CR26738_7-master-OCCT/Debian70-64/summary.html http://occt-tests/CR26738_7-master-OCCT/Windows-64-VC10/summary.html bugs modalg_5 bug25319_1, bug25319_2 Testing cases: bugs modalg_6 bug26738 - OK http://occt-tests/CR26738_7-master-OCCT/Debian70-64/bugs/modalg_6/bug26738.html http://occt-tests/CR26738_7-master-OCCT/Windows-64-VC10/bugs/modalg_6/bug26738.html Testing on Linux: Total MEMORY difference: 90922433 / 90714368 [+0.23%] Total CPU difference: 19412.469999999914 / 19289.569999999887 [+0.64%] Testing on Windows: Total MEMORY difference: 57268610 / 57321116 [-0.09%] Total CPU difference: 18012.51506409871 / 18220.18359529866 [-1.14%] There are differences in images found by testdiff: http://occt-tests/CR26738_7-master-OCCT/Debian70-64/diff-Debian70-64.html http://occt-tests/CR26738_7-master-OCCT/Windows-64-VC10/diff-Windows-64-VC10-image.html boolean gdml_private ZJ7 (approved) boolean gdml_private ZH2 (approved) boolean gdml_private ZI7 (approved) boolean volumemaker A8 (approved) bugs modalg_1 bug10232 (approved) |
|
Dear Mikhail, Branch CR26738_7 has been rejected due to: - regressions/differences/improvements |
|
Branch CR26738_8 has been created by msv. SHA-1: c4951260ec0e100062f8d61fd7ee8b0eac6d261a Detailed log of new commits: Author: emv Date: Thu Sep 3 10:31:31 2015 +0300 0026738: Make Boolean operations safely treating arguments when running with fuzzy option When fuzzy option is in force prevent increasing tolerance of input shapes. Instead pass increased by fuzzy value the tolerances of sub-shapes everywhere where it is needed by intersection algorithms. The following changes in API have been made: - The methods SetFuzzyValue and FuzzyValue have been moved from the classes BOPAlgo_ArgumentAnalyzer, BOPAlgo_Builder, and BOPAlgo_PaveFiller to the base class BOPAlgo_Algo. - The public method BOPDS_DS::VerticesOnIn has been renamed to SubShapesOnIn, and the new output parameter theCommonPB has been added. - In BOPTools_AlgoTools, a new argument "theFuzzyValue" has been added in the methods ComputeVV and AreFacesSameDomain. - In IntTools_Context, a new argument "theFuzzyValue" has been added in the methods ComputeVE and ComputeVF. - The methods SetFuzzyValue and FuzzyValue have been added in the classes IntTools_EdgeEdge, IntTools_FaceFace. - In the class IntTools_EdgeFace, the methods SetTolE, SetTolF, TolE, TolF have been removed, and the methods SetFuzzyValue, FuzzyValue have been added. - The new argument "theTol" has been added in the method IntTools_WLineTool::DecompositionOfWLine. Some improvements in algorithms have been made during fighting with regressions: - Correct initialization of pave blocks for degenerated edges. - In BOPAlgo_PaveFiller::MakeBlocks(), filter out paves on intersection curve that were put on the curve accidentally due to wide range of E-F intersection vertex. - In the method IntTools_Tools::ComputeTolerance the margin added to the computed tolerance has been increased up to 0.001%. - The method BOPAlgo_PaveFiller::PutPaveOnCurve has been corrected in order to use the original vertex tolerance instead of the value increased during putting it on other curves. - The new method BOPDS_PaveBlock::RemoveExtPave has been added. - The vertex tolerance computation in BOPTools_AlgoTools::CorrectCurveOnSurface has been improved, taking into account intersection segments between p-curves (to avoid regression on "bugs modalg_6 bug22794"). - Improve IsExistingPaveBlock to make more stable catching of coincidence of common block with section curve (against regression "bugs modalg_4 bug697_2" on Linux). Test case for the bug has been added. The following test cases have been updated as improvements: boolean gdml_private ZH2 ZI7 ZJ7 boolean volumemaker C4 The test case bugs/modalg_4/pro19653 has been corrected to make it stable. See comment inside the script for details. The test case bugs/modalg_6/bug25880 has been corrected to suppress wrong bfuse commands. The test bugs/modalg_6/bug26954_3 has been corrected to compare the result with more precise reference value. The "faulty" TODO in boolean/volumemaker/A8 has been made actual for Linux as well. |
|
Branch CR26738_8 has been updated forcibly by msv. SHA-1: 0ffe5b5936c1d152088bf8c2db136198aa1fa091 |
|
The failed cases "bugs modalg_5 bug25319_1, bug25319_2" have the same nature of failure as in the tested branch CR27431_5. Therefore I have re-based the fix on top of that branch. Please test the branch CR26738_8 together with CR27431_prod. |
|
Branch CR26738_8 has been updated forcibly by apv. SHA-1: 3e612566efffa73bba08008c693290c8f01bc385 |
|
Branch CR26738_8 has been rebased on the IR-2016-11-02 |
|
Dear BugMaster, Branch CR26738_8 from occt git-repository (and IR-2016-11-02 from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested. SHA-1: 3e612566efffa73bba08008c693290c8f01bc385 Number of compiler warnings: occt component: Linux: 0 (0 on master) Windows: 0 (0 on master) MasOS: 0 (0 on master) products component: Linux: 63 Windows: 0 MacOS: 1129 Regressions/Differences: Not detected Testing cases: bugs modalg_6 bug26738 - OK http://occt-tests/CR26738_8-IR-2016-11-02-OCCT/Debian70-64/bugs/modalg_6/bug26738.html http://occt-tests/CR26738_8-IR-2016-11-02-OCCT/Windows-64-VC10/bugs/modalg_6/bug26738.html Testing on Linux: Total MEMORY difference: 91267436 / 91199950 [+0.07%] Total CPU difference: 19497.47000000005 / 19491.160000000036 [+0.03%] Testing on Windows: Total MEMORY difference: 57412590 / 57451773 [-0.07%] Total CPU difference: 17894.95271049863 / 17672.82288659874 [+1.26%] |
|
Dear Mikhail, During compilation IR which includes 26738_8 compile errors appeared on Debian60-64 and CentOS64-64: ... /dn54/builds/IR-2016-11-07_IR-2016-11-07/CentOS64-64-opt/OCCT/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx: In member function 'void BOPAlgo_PaveFiller::FilterPavesOnCurves(const BOPDS_VectorOfCurve&, Standard_Real)': /dn54/builds/IR-2016-11-07_IR-2016-11-07/CentOS64-64-opt/OCCT/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx:1539: error: template argument for 'template<class TheItemType> class NCollection_List' uses local type 'BOPAlgo_PaveFiller::FilterPavesOnCurves(const BOPDS_VectorOfCurve&, Standard_Real)::PaveBlockDist' /dn54/builds/IR-2016-11-07_IR-2016-11-07/CentOS64-64-opt/OCCT/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx:1539: error: trying to instantiate 'template<class TheItemType> class NCollection_List' /dn54/builds/IR-2016-11-07_IR-2016-11-07/CentOS64-64-opt/OCCT/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx:1539: error: template argument 2 is invalid /dn54/builds/IR-2016-11-07_IR-2016-11-07/CentOS64-64-opt/OCCT/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx:1539: error: invalid type in declaration before ';' token ... |
|
Branch CR26738_9 has been created by msv. SHA-1: be17d7e52bf334e79037134bbd6c8a97bf225d8e Detailed log of new commits: Author: msv Date: Tue Nov 8 14:41:37 2016 +0300 //Eliminate compilation error on Linux. |
|
Fixed. Please try again. |
|
Use CR26738_9. |
|
Branch CR26738 has been deleted by kgv. SHA-1: 28fc754ae50e1f3e66f7aa519aa9388b15643008 |
|
Branch CR26738_2 has been deleted by kgv. SHA-1: 2995e74729848863b030322ead7e9a711b600cf5 |
|
Branch CR26738_3 has been deleted by kgv. SHA-1: ed6a71641d58350328c3cb6e97000261ec995ecb |
|
Branch CR26738_4 has been deleted by kgv. SHA-1: 85a7502e8b47dc638e2f81bdc9f2c9f2dc2921b8 |
|
Branch CR26738_5 has been deleted by kgv. SHA-1: fe5b266efce62184d8f1d75af1509e571419d4f2 |
|
Branch CR26738_6 has been deleted by kgv. SHA-1: 55d22c01113013accf1f3d146368965a0d5c0854 |
|
Branch CR26738_7 has been deleted by kgv. SHA-1: 813b49bf938f8030ef7d86291d205d03059674af |
|
Branch CR26738_8 has been deleted by kgv. SHA-1: 3e612566efffa73bba08008c693290c8f01bc385 |
|
Branch CR26738_9 has been deleted by kgv. SHA-1: be17d7e52bf334e79037134bbd6c8a97bf225d8e |
occt: master 0d0481c7 2016-11-08 12:20:42
Committer: apn Details Diff |
0026738: Make Boolean operations safely treating arguments when running with fuzzy option When fuzzy option is in force prevent increasing tolerance of input shapes. Instead pass increased by fuzzy value the tolerances of sub-shapes everywhere where it is needed by intersection algorithms. The following changes in API have been made: - The methods SetFuzzyValue and FuzzyValue have been moved from the classes BOPAlgo_ArgumentAnalyzer, BOPAlgo_Builder, and BOPAlgo_PaveFiller to the base class BOPAlgo_Algo. - The public method BOPDS_DS::VerticesOnIn has been renamed to SubShapesOnIn, and the new output parameter theCommonPB has been added. - In BOPTools_AlgoTools, a new argument "theFuzzyValue" has been added in the methods ComputeVV and AreFacesSameDomain. - In IntTools_Context, a new argument "theFuzzyValue" has been added in the methods ComputeVE and ComputeVF. - The methods SetFuzzyValue and FuzzyValue have been added in the classes IntTools_EdgeEdge, IntTools_FaceFace. - In the class IntTools_EdgeFace, the methods SetTolE, SetTolF, TolE, TolF have been removed, and the methods SetFuzzyValue, FuzzyValue have been added. - The new argument "theTol" has been added in the method IntTools_WLineTool::DecompositionOfWLine. Some improvements in algorithms have been made during fighting with regressions: - Correct initialization of pave blocks for degenerated edges. - In BOPAlgo_PaveFiller::MakeBlocks(), filter out paves on intersection curve that were put on the curve accidentally due to wide range of E-F intersection vertex. - In the method IntTools_Tools::ComputeTolerance the margin added to the computed tolerance has been increased up to 0.001%. - The method BOPAlgo_PaveFiller::PutPaveOnCurve has been corrected in order to use the original vertex tolerance instead of the value increased during putting it on other curves. - The new method BOPDS_PaveBlock::RemoveExtPave has been added. - The vertex tolerance computation in BOPTools_AlgoTools::CorrectCurveOnSurface has been improved, taking into account intersection segments between p-curves (to avoid regression on "bugs modalg_6 bug22794"). - Improve IsExistingPaveBlock to make more stable catching of coincidence of common block with section curve (against regression "bugs modalg_4 bug697_2" on Linux). Test case for the bug has been added. The following test cases have been updated as improvements: boolean gdml_private ZH2 ZI7 ZJ7 boolean volumemaker C4 The test case bugs/modalg_4/pro19653 has been corrected to make it stable. See comment inside the script for details. The test case bugs/modalg_6/bug25880 has been corrected to suppress wrong bfuse commands. The test bugs/modalg_6/bug26954_3 has been corrected to compare the result with more precise reference value. The "faulty" TODO in boolean/volumemaker/A8 has been made actual for Linux as well. //Eliminate compilation error on Linux. |
Affected Issues 0026738 |
|
mod - src/BOPAlgo/BOPAlgo_Algo.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_Algo.hxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.hxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.lxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_BOP.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_Builder.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_Builder.hxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_Builder_2.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_CheckerSI.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_PaveFiller.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_PaveFiller.hxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx | Diff File | ||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_9.cxx | Diff File | ||
mod - src/BOPDS/BOPDS_DS.cxx | Diff File | ||
mod - src/BOPDS/BOPDS_DS.hxx | Diff File | ||
mod - src/BOPDS/BOPDS_DS.lxx | Diff File | ||
mod - src/BOPDS/BOPDS_PaveBlock.cxx | Diff File | ||
mod - src/BOPDS/BOPDS_PaveBlock.hxx | Diff File | ||
mod - src/BOPTools/BOPTools_AlgoTools.cxx | Diff File | ||
mod - src/BOPTools/BOPTools_AlgoTools.hxx | Diff File | ||
mod - src/BOPTools/BOPTools_AlgoTools_1.cxx | Diff File | ||
mod - src/IntTools/IntTools_BeanFaceIntersector.cxx | Diff File | ||
mod - src/IntTools/IntTools_Context.cxx | Diff File | ||
mod - src/IntTools/IntTools_Context.hxx | Diff File | ||
mod - src/IntTools/IntTools_EdgeEdge.cxx | Diff File | ||
mod - src/IntTools/IntTools_EdgeEdge.hxx | Diff File | ||
mod - src/IntTools/IntTools_EdgeEdge.lxx | Diff File | ||
mod - src/IntTools/IntTools_EdgeFace.cxx | Diff File | ||
mod - src/IntTools/IntTools_EdgeFace.hxx | Diff File | ||
mod - src/IntTools/IntTools_FaceFace.cxx | Diff File | ||
mod - src/IntTools/IntTools_FaceFace.hxx | Diff File | ||
mod - src/IntTools/IntTools_Tools.cxx | Diff File | ||
mod - src/IntTools/IntTools_WLineTool.cxx | Diff File | ||
mod - src/IntTools/IntTools_WLineTool.hxx | Diff File | ||
mod - tests/boolean/gdml_private/ZH2 | Diff File | ||
mod - tests/boolean/gdml_private/ZI7 | Diff File | ||
mod - tests/boolean/gdml_private/ZJ7 | Diff File | ||
mod - tests/boolean/volumemaker/A8 | Diff File | ||
mod - tests/boolean/volumemaker/C4 | Diff File | ||
mod - tests/bugs/modalg_4/pro19653 | Diff File | ||
mod - tests/bugs/modalg_6/bug25880 | Diff File | ||
add - tests/bugs/modalg_6/bug26738 | Diff File | ||
mod - tests/bugs/modalg_6/bug26954_3 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-10-01 12:44 |
|
New Issue | |
2015-10-01 12:44 |
|
Assigned To | => msv |
2015-10-23 09:26 |
|
Relationship added | related to 0026796 |
2015-12-29 11:30 |
|
Status | new => assigned |
2015-12-30 14:44 | git | Note Added: 0049684 | |
2015-12-31 13:04 |
|
Summary | Make Boolean operations non-destructive when running with fuzzy option => Make Boolean operations guarding arguments when running with fuzzy option |
2016-01-14 21:34 | git | Note Added: 0049875 | |
2016-01-19 18:27 |
|
Relationship added | parent of 0027090 |
2016-01-25 15:49 | git | Note Added: 0050101 | |
2016-02-16 17:54 |
|
Relationship added | child of 0027166 |
2016-04-25 12:04 | git | Note Added: 0053543 | |
2016-04-25 15:30 | git | Note Added: 0053555 | |
2016-06-28 09:55 |
|
Summary | Make Boolean operations guarding arguments when running with fuzzy option => Make Boolean operations safely treating arguments when running with fuzzy option |
2016-06-28 09:59 |
|
Relationship added | related to 0027049 |
2016-07-22 16:08 | git | Note Added: 0056185 | |
2016-09-22 13:10 | git | Note Added: 0058020 | |
2016-09-22 13:11 |
|
Note Added: 0058021 | |
2016-09-22 13:11 |
|
Assigned To | msv => emv |
2016-09-22 13:11 |
|
Status | assigned => resolved |
2016-09-22 13:11 |
|
Steps to Reproduce Updated | |
2016-09-23 12:22 |
|
Note Added: 0058063 | |
2016-09-23 12:22 |
|
Assigned To | emv => msv |
2016-09-23 12:22 |
|
Status | resolved => assigned |
2016-09-27 11:49 | git | Note Added: 0058190 | |
2016-09-27 11:50 |
|
Note Added: 0058191 | |
2016-09-27 11:50 |
|
Assigned To | msv => emv |
2016-09-27 11:50 |
|
Status | assigned => resolved |
2016-09-27 12:22 | git | Note Added: 0058192 | |
2016-09-27 12:23 |
|
Note Added: 0058193 | |
2016-09-27 12:23 |
|
Assigned To | emv => bugmaster |
2016-09-27 12:23 |
|
Status | resolved => reviewed |
2016-09-27 12:27 |
|
Assigned To | bugmaster => apv |
2016-09-28 10:44 |
|
Test case number | => bugs modalg_6 bug26738 |
2016-09-28 12:26 |
|
Note Added: 0058240 | |
2016-09-28 12:26 |
|
Assigned To | apv => msv |
2016-09-28 12:26 |
|
Status | reviewed => assigned |
2016-09-28 12:29 |
|
Note Added: 0058241 | |
2016-10-05 17:34 | git | Note Added: 0058443 | |
2016-10-27 12:01 | git | Note Added: 0059239 | |
2016-10-27 12:02 |
|
Note Added: 0059240 | |
2016-10-27 12:02 |
|
Assigned To | msv => emv |
2016-10-27 12:02 |
|
Status | assigned => resolved |
2016-10-27 12:08 |
|
Note Added: 0059241 | |
2016-10-27 12:28 | git | Note Added: 0059242 | |
2016-10-27 12:33 | git | Note Added: 0059243 | |
2016-10-27 12:37 |
|
Note Added: 0059244 | |
2016-10-27 12:37 |
|
Assigned To | emv => bugmaster |
2016-10-27 12:37 |
|
Priority | normal => high |
2016-10-27 12:37 |
|
Status | resolved => reviewed |
2016-10-27 13:56 |
|
Assigned To | bugmaster => apv |
2016-10-28 17:48 | git | Note Added: 0059370 | |
2016-10-28 17:49 |
|
Note Added: 0059371 | |
2016-10-31 16:24 |
|
Note Added: 0059639 | |
2016-10-31 16:24 |
|
Assigned To | apv => msv |
2016-10-31 16:24 |
|
Status | reviewed => assigned |
2016-10-31 16:25 |
|
Note Edited: 0059639 | |
2016-10-31 16:27 |
|
Note Added: 0059640 | |
2016-11-01 19:01 | git | Note Added: 0059722 | |
2016-11-01 19:07 | git | Note Added: 0059723 | |
2016-11-01 19:10 |
|
Note Added: 0059724 | |
2016-11-01 19:10 |
|
Status | assigned => resolved |
2016-11-01 19:10 |
|
Assigned To | msv => bugmaster |
2016-11-01 19:10 |
|
Status | resolved => reviewed |
2016-11-02 14:54 |
|
Assigned To | bugmaster => apv |
2016-11-02 17:17 | git | Note Added: 0059796 | |
2016-11-02 17:17 |
|
Note Added: 0059797 | |
2016-11-03 16:01 |
|
Note Added: 0059858 | |
2016-11-03 16:01 |
|
Assigned To | apv => bugmaster |
2016-11-03 16:01 |
|
Status | reviewed => tested |
2016-11-08 12:33 | apn | Note Added: 0059990 | |
2016-11-08 12:33 | apn | Assigned To | bugmaster => msv |
2016-11-08 12:33 | apn | Status | tested => assigned |
2016-11-08 14:41 | git | Note Added: 0060018 | |
2016-11-08 14:42 |
|
Note Added: 0060019 | |
2016-11-08 14:42 |
|
Assigned To | msv => apn |
2016-11-08 14:42 |
|
Status | assigned => resolved |
2016-11-08 14:42 |
|
Note Added: 0060020 | |
2016-11-08 14:43 |
|
Status | resolved => reviewed |
2016-11-08 16:15 | apn | Assigned To | apn => bugmaster |
2016-11-08 16:15 | apn | Status | reviewed => tested |
2016-11-09 17:43 | apn | Changeset attached | => occt master 0d0481c7 |
2016-11-09 17:43 | apn | Assigned To | bugmaster => apn |
2016-11-09 17:43 | apn | Status | tested => verified |
2016-11-09 17:43 | apn | Resolution | open => fixed |
2016-12-07 11:25 | git | Note Added: 0061179 | |
2016-12-07 11:25 | git | Note Added: 0061180 | |
2016-12-07 11:25 | git | Note Added: 0061181 | |
2016-12-07 11:25 | git | Note Added: 0061182 | |
2016-12-07 11:25 | git | Note Added: 0061183 | |
2016-12-07 11:25 | git | Note Added: 0061184 | |
2016-12-07 11:25 | git | Note Added: 0061185 | |
2016-12-07 11:25 | git | Note Added: 0061186 | |
2016-12-07 11:30 | git | Note Added: 0061236 | |
2016-12-09 16:30 |
|
Status | verified => closed |
2016-12-09 16:39 |
|
Fixed in Version | => 7.1.0 |