MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0028795Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2017-05-29 10:212017-09-29 16:25
Reporternbv 
Assigned Toapv 
PrioritynormalSeverityminor 
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target Version[OCCT] 7.2.0Fixed in Version[OCCT] 7.2.0 
Summary0028795: Boolean operations corrupt the p-curve of the source planar face if "non-destructive" option is switched off
DescriptionUsual (on the current state of OCCT), edges do not have any p-curve on planar faces. However, Boolean operations story it. But the new p-curve loses the UV-bounds of the source face.
Steps To Reproduce# test boolean bcut_simple G8

box mb -0.5 -0.5 -0.5 1 1 1
explode mb F
prism pryz mb_1 1 0 0 SemiInf
box ab 0 -1 -1 2 2 2

explode ab f
explode pryz f

don ab_2 pryz_1

xbounds pryz_1
# 0, 1, -2e+100, 0

v2d
pcu pryz_1
# see CorruptPCurveBeforeBoolean.PNG attached picture


# Make a simple Boolean operation, e.g. "bsection"
bsection rs ab_2 pryz_1

xbounds pryz_1
# 0, 1, -2e+100, 2e+100

2dclear
pcu pryz_1
# see CorruptPCurveAfterBoolean.PNG attached picture
TagsNo tags attached.
Test case numberbugs modalg_6 bug28795
Attached Filespng file icon CorruptPCurveBeforeBoolean.PNG (15,312 bytes) 2017-05-29 10:21
png file icon CorruptPCurveAfterBoolean.PNG (20,868 bytes) 2017-05-29 10:21

- Relationships

-  Notes
(0066700)
nbv (developer)
2017-05-29 10:31

Steps To Reproduce has been updated.
(0066703)
git (administrator)
2017-05-29 11:06

Branch CR28795 has been created by nbv.

SHA-1: f71d5c99932e0a9cefa3610b4c371e7d7f4dfadc


Detailed log of new commits:

Author: nbv
Date: Mon May 29 10:42:30 2017 +0300

    0028795: Boolean operations corrupt the p-curve of the source planar face if "non-destructive" option is switched off
    
    In the fix, obtained CurveOnSurface of the edge is trimmed in the range of its curve representation if true boundaries of the curve are not equal to correspond boundaries of the range.

Author: nbv
Date: Fri May 26 15:03:48 2017 +0300

    Merge branch 'master' of git.dev.opencascade.org:occt

Author: kgv
Date: Thu May 11 18:10:53 2017 +0300

    0028726: Quantity_NameOfColor should be replaced by Quantity_Color in function input argument
    
    AIS_InteractiveObject, virtual methods ::SetColor(), ::Color()
    returning/accepting Quantity_NameOfColor have been removed.
    Virtual method ::SetMaterial() accepting Graphic3d_NameOfMaterial has been also removed.
    
    V3d_View, V3d_Viewer, V3d_AmbientLight, V3d_DirectionalLight,
    V3d_Light, V3d_PositionalLight, V3d_SpotLight, Aspect_Window,
    methods accepting Quantity_NameOfColor have been removed (duplicates)
    or color argument(s) replaced with Quantity_Color.

Author: vro
Date: Mon May 22 15:41:14 2017 +0300

    0027667: OCAF binary persistence hangs on reading truncated CBF file
    
    A check on "end of file" is added to the reader.

Author: nbv
Date: Thu Dec 15 17:22:00 2016 +0300

    0028222: Intersection of two cylinders fails
    
    1. The reason of exception has been eliminated.
    
    2. Algorithm in IntPatch_WLineTool::JoinWLines(...) method has been modified in order to forbid join curves in the point where more than two intersection lines meet. More over, joining is forbidden if local curvature in the connection point is too big (see function CheckArgumentsToJoin(...) in the file IntPatch_WLineTool.cxx).
    
    3. Interface of IntPatch_WLineTool::JoinWLines(...) method has been modified in order to reduce number of arguments.
    
    4. Small corrections in IsSeamOrBound(...) static function has been made. Namely, check has been added if two boundaries are in the same period region but are too far each to other (see IntPatch_WLineTool.cxx, IsSeamOrBound(...) function, line # 532).
    
    5. "Reversed" flag has been made local. Now, it is pure local characteristic: the algorithm decides itself, shall we reverse the argument order. This correction makes the algorithm more commutative (see issue 0025404). However, IntPatch_WLineTool::JoinWLines(...) method can return non-commutative result.
    
    6. Algorithm of searching small intersection curves has been improved.
    
    7. New methods have been added in Bnd_Range class.
    
    Some test cases have been adjusted according to their new behavior.
    
    1. tests\bugs\modalg_6\bug26310_3
       tests\bugs\modalg_6\bug26310_4
       tests\bugs\moddata_2\bug235
       tests\perf\modalg\bug26310_1
       tests\bugs\modalg_5\bug24915
    
    Logic of these cases has been changed. Mover over, additional check has been added in "bug26310_1" test case. Therefore, its performance will be slower than on the current MASTER.
    
    2. tests\bugs\modalg_5\bug25292*
    
    Scripts have been rewritten in order to make it more readable. Logic of these cases has not been changed.

Author: kgv
Date: Tue May 23 19:05:41 2017 +0300

    0028778: Coding Rules - clean up confusing code from Select3D

Author: szy
Date: Tue May 23 15:14:51 2017 +0300

    0028446: Could not retrieve just kept document with Integer attribute

Author: szy
Date: Thu May 11 17:37:44 2017 +0300

    27970: Improvement of standard attributes usability - containers.
(0066704)
git (administrator)
2017-05-29 11:10

Branch CR28795_1 has been created by nbv.

SHA-1: 66030af7156fee2b1aa409f35dab0a75ff9398b5


Detailed log of new commits:

Author: nbv
Date: Mon May 29 10:42:30 2017 +0300

    0028795: Boolean operations corrupt the p-curve of the source planar face if "non-destructive" option is switched off
    
    In the fix, obtained CurveOnSurface of the edge is trimmed in the range of its curve representation if true boundaries of the curve are not equal to correspond boundaries of the range.
(0066705)
nbv (developer)
2017-05-29 11:11

Dear Mikhail,

Please review CR28795_1 branch.
(0066813)
git (administrator)
2017-05-29 16:39

Branch CR28795_1 has been updated forcibly by nbv.

SHA-1: b08684473b54770343b0820cebb816ddce7aa20e
(0066814)
nbv (developer)
2017-05-29 16:40

Insignificant correction in the test case has been made.
(0066843)
emv (developer)
2017-05-30 07:59

Reviewed.
(0066909)
apv (tester)
2017-05-31 11:25

Dear BugMaster,

Branch CR28795_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: b08684473b54770343b0820cebb816ddce7aa20e

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: 1197

Regressions/Differences:
Not detected

Testing cases:
bugs modalg_6 bug28795 - OK
http://occt-tests/CR28795_1-master-OCCT/Debian70-64/bugs/modalg_6/bug28795.html [^]
http://occt-tests/CR28795_1-master-OCCT/Windows-64-VC10/bugs/modalg_6/bug28795.html [^]

Testing on Linux:
Total MEMORY difference: 92638998 / 91843251 [+0.87%]
Total CPU difference: 18566.23000000023 / 19347.320000000098 [-4.04%]

Testing on Windows:
Total MEMORY difference: 58521963 / 58497831 [+0.04%]
Total CPU difference: 17247.7981620987 / 17520.28510879866 [-1.56%]

There are differences in images found by testdiff:
http://occt-tests/CR28795_1-master-OCCT/Debian70-64/diff-Debian70-64-image.html [^]
http://occt-tests/CR28795_1-master-OCCT/Windows-64-VC10/diff-Windows-64-VC10-image.html [^]
boolean bfuse_complex N2
boolean bfuse_complex G4
boolean bcut_complex A1
boolean bcut_complex M5
boolean bcut_complex H3
boolean bcut_complex M6
boolean bcut_complex N9
feat featlf B8
feat featprism K1
feat featprism O6
feat featprism S2
bugs modalg_4 bug748
(0066910)
apv (tester)
2017-05-31 11:27

Dear Nikolay,

Branch CR28795_1 has been rejected due to:
- differences in images
(0066920)
nbv (developer)
2017-05-31 12:31

New behavior (pictures) of the test cases can be applied because quality of the shapes was non changed. Simply, we have obtained another set of isolines.

However, I would like to offer additional investigation of behavior of the DBRep_IsoBuilder algorithm with new result (especially "bugs modalg_4 bug748") in frame of the issue 0028385.
(0066921)
nbv (developer)
2017-05-31 12:32
edited on: 2017-05-31 12:32

Dear Mikhail,

Please confirm the conclusion 0028795:0066920.

(0066925)
msv (developer)
2017-05-31 14:38

I do not agree. It is a regression. Please fix.
(0066940)
git (administrator)
2017-05-31 17:31

Branch CR28795_2 has been created by nbv.

SHA-1: d32c3a5a04387eda540825c1201e55edb18d9ed0


Detailed log of new commits:

Author: nbv
Date: Mon May 29 10:42:30 2017 +0300

    0028795: Boolean operations corrupt the p-curve of the source planar face if "non-destructive" option is switched off
    
    Now, the range of BRep_CurveRepresentation of the edge is updated if at least one of its boundary is not infinite (earlier, it was updated if all two boundaries are not infinite only).
(0066941)
nbv (developer)
2017-05-31 17:33

Dear Mikhail,

Please review CR28795_2 branch.
(0066942)
msv (developer)
2017-05-31 18:01

- please make the fix more effective:
 1) remove lines 127-133
 2) after 153, always get range of COS
 3) check if 'f' is not infinite then use it for first
 4) the same for 'l'
 5) set new range of COS.

- make the same treatment in all other overloads of UpdateCurves() where rangeFound flag is used.
(0066951)
git (administrator)
2017-06-01 10:12

Branch CR28795_3 has been created by nbv.

SHA-1: 4326ec5a6c64587ff03a4563917350cb6822d287


Detailed log of new commits:

Author: nbv
Date: Mon May 29 10:42:30 2017 +0300

    0028795: Boolean operations corrupt the p-curve of the source planar face if "non-destructive" option is switched off
    
    Now, the range of BRep_CurveRepresentation of the edge is updated if at least one of its boundary is not infinite (earlier, it was updated if all two boundaries are not infinite only).
(0066952)
nbv (developer)
2017-06-01 10:14

Dear Mikhail,

Please review CR28795_3 branch.
(0066953)
git (administrator)
2017-06-01 10:23

Branch CR28795_4 has been created by nbv.

SHA-1: 8f5f59a9194d461771f27a89c6a38439ec4b4759


Detailed log of new commits:

Author: nbv
Date: Mon May 29 10:42:30 2017 +0300

    0028795: Boolean operations corrupt the p-curve of the source planar face if "non-destructive" option is switched off
    
    Now, the range of BRep_CurveRepresentation of the edge is updated if at least one of its boundary is not infinite (earlier, it was updated if all two boundaries are not infinite only).
(0066954)
msv (developer)
2017-06-01 10:25

Reviewed.
(0066956)
nbv (developer)
2017-06-01 10:36

Please test the branch CR28795_4.
(0067006)
git (administrator)
2017-06-02 11:48

Branch CR28795_4 has been updated forcibly by apv.

SHA-1: b7a71e36aa7701e80cd03049cc0978590b91df00
(0067007)
apv (tester)
2017-06-02 11:49

Branch CR28795_4 has been rebased on the current master.
(0067056)
apv (tester)
2017-06-05 10:31

Dear BugMaster,

Branch CR28795_4 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: b7a71e36aa7701e80cd03049cc0978590b91df00

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: 1216

Regressions/Differences:
Not detected

Testing cases:
bugs modalg_6 bug28795 - OK
http://occt-tests/CR28795_4-master-OCCT/Debian70-64/bugs/modalg_6/bug28795.html [^]
http://occt-tests/CR28795_4-master-OCCT/Windows-64-VC10/bugs/modalg_6/bug28795.html [^]

Testing on Linux:
Total MEMORY difference: 92428482 / 91787027 [+0.70%]
Total CPU difference: 18736.660000000218 / 18756.150000000256 [-0.10%]

Testing on Windows:
Total MEMORY difference: 58849565 / 58849087 [+0.00%]
Total CPU difference: 17467.603571098753 / 17514.591072298645 [-0.27%]
(0067057)
apv (tester)
2017-06-05 10:32

Dear BugMaster,

Please integrate branch CR28795_4 into the occt git-repository master.
(0067346)
git (administrator)
2017-06-13 17:34

Branch CR28795 has been deleted by kgv.

SHA-1: f71d5c99932e0a9cefa3610b4c371e7d7f4dfadc
(0067347)
git (administrator)
2017-06-13 17:34

Branch CR28795_1 has been deleted by kgv.

SHA-1: b08684473b54770343b0820cebb816ddce7aa20e
(0067348)
git (administrator)
2017-06-13 17:34

Branch CR28795_2 has been deleted by kgv.

SHA-1: d32c3a5a04387eda540825c1201e55edb18d9ed0
(0067349)
git (administrator)
2017-06-13 17:34

Branch CR28795_3 has been deleted by kgv.

SHA-1: 4326ec5a6c64587ff03a4563917350cb6822d287
(0067350)
git (administrator)
2017-06-13 17:34

Branch CR28795_4 has been deleted by kgv.

SHA-1: b7a71e36aa7701e80cd03049cc0978590b91df00

- Related Changesets
occt: master b7a71e36
Timestamp: 2017-05-29 07:42:30
Author: nbv
Committer: apv
Details ] Diff ]
0028795: Boolean operations corrupt the p-curve of the source planar face if "non-destructive" option is switched off

Now, the range of BRep_CurveRepresentation of the edge is updated if at least one of its boundary is not infinite (earlier, it was updated if all two boundaries are not infinite only).
mod - src/BRep/BRep_Builder.cxx Diff ] File ]
add - tests/bugs/modalg_6/bug28795 Diff ] File ]

- Issue History
Date Modified Username Field Change
2017-05-29 10:21 nbv New Issue
2017-05-29 10:21 nbv Assigned To => msv
2017-05-29 10:21 nbv File Added: CorruptPCurveBeforeBoolean.PNG
2017-05-29 10:21 nbv File Added: CorruptPCurveAfterBoolean.PNG
2017-05-29 10:31 nbv Note Added: 0066700
2017-05-29 10:31 nbv Steps to Reproduce Updated View Revisions
2017-05-29 11:06 git Note Added: 0066703
2017-05-29 11:10 git Note Added: 0066704
2017-05-29 11:10 nbv Assigned To msv => nbv
2017-05-29 11:10 nbv Status new => assigned
2017-05-29 11:11 nbv Note Added: 0066705
2017-05-29 11:11 nbv Assigned To nbv => msv
2017-05-29 11:11 nbv Status assigned => resolved
2017-05-29 16:26 msv Assigned To msv => emv
2017-05-29 16:39 git Note Added: 0066813
2017-05-29 16:40 nbv Note Added: 0066814
2017-05-30 07:59 emv Note Added: 0066843
2017-05-30 07:59 emv Assigned To emv => bugmaster
2017-05-30 07:59 emv Status resolved => reviewed
2017-05-30 12:25 apv Assigned To bugmaster => apv
2017-05-30 16:29 apv Test case number => bugs modalg_6 bug28795
2017-05-31 11:25 apv Note Added: 0066909
2017-05-31 11:25 apv Assigned To apv => nbv
2017-05-31 11:25 apv Status reviewed => assigned
2017-05-31 11:27 apv Note Added: 0066910
2017-05-31 12:31 nbv Note Added: 0066920
2017-05-31 12:32 nbv Note Added: 0066921
2017-05-31 12:32 nbv Assigned To nbv => msv
2017-05-31 12:32 nbv Status assigned => resolved
2017-05-31 12:32 nbv Note Edited: 0066921 View Revisions
2017-05-31 14:38 msv Note Added: 0066925
2017-05-31 17:31 git Note Added: 0066940
2017-05-31 17:33 nbv Note Added: 0066941
2017-05-31 18:01 msv Note Added: 0066942
2017-05-31 18:01 msv Assigned To msv => nbv
2017-05-31 18:01 msv Status resolved => assigned
2017-06-01 10:12 git Note Added: 0066951
2017-06-01 10:14 nbv Note Added: 0066952
2017-06-01 10:14 nbv Assigned To nbv => msv
2017-06-01 10:14 nbv Status assigned => resolved
2017-06-01 10:23 git Note Added: 0066953
2017-06-01 10:25 msv Note Added: 0066954
2017-06-01 10:25 msv Assigned To msv => bugmaster
2017-06-01 10:25 msv Status resolved => reviewed
2017-06-01 10:36 nbv Note Added: 0066956
2017-06-01 12:12 apv Assigned To bugmaster => apv
2017-06-02 11:48 git Note Added: 0067006
2017-06-02 11:49 apv Note Added: 0067007
2017-06-05 10:31 apv Note Added: 0067056
2017-06-05 10:31 apv Assigned To apv => bugmaster
2017-06-05 10:31 apv Status reviewed => tested
2017-06-05 10:32 apv Note Added: 0067057
2017-06-09 14:06 apv Changeset attached => occt master b7a71e36
2017-06-09 14:06 apv Assigned To bugmaster => apv
2017-06-09 14:06 apv Status tested => verified
2017-06-09 14:06 apv Resolution open => fixed
2017-06-13 17:34 git Note Added: 0067346
2017-06-13 17:34 git Note Added: 0067347
2017-06-13 17:34 git Note Added: 0067348
2017-06-13 17:34 git Note Added: 0067349
2017-06-13 17:34 git Note Added: 0067350
2017-09-29 16:18 user533 Fixed in Version => 7.2.0
2017-09-29 16:25 user533 Status verified => closed


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker