Archived issue #0028385
Improve drawing isolines (DBRep_IsoBuilder algorithm)
Description
There are several problems while drawing iso-lines in shapes. For example:
1. If the shape contains a gap between edges (covered by some vertex) isoline gone through this gap is become infinite.
2. If the isoline is (particularly) coincident with some edge its behavior is unpredictable (it can be not drown). See "Attachment 2 (PNG)" attached picture. This picture has been obtained from the face in "Attachment 1 (BREP)" attached file with Iso-line U=PI/2.
1. If the shape contains a gap between edges (covered by some vertex) isoline gone through this gap is become infinite.
2. If the isoline is (particularly) coincident with some edge its behavior is unpredictable (it can be not drown). See "Attachment 2 (PNG)" attached picture. This picture has been obtained from the face in "Attachment 1 (BREP)" attached file with Iso-line U=PI/2.
Steps to reproduce
# case 1:
restore Attachment 5 (BREP) a
isos a 0
don a
view 1 +Y+Z 728 450 400 400
fit
md;md
isos a 2
restore Attachment 5 (BREP) a
isos a 0
don a
view 1 +Y+Z 728 450 400 400
fit
md;md
isos a 2
Public activity
24 archived notes
Participants are labeled by their role within this record.
I have attached example for the case 1. The shape is Attachment 5 (BREP). Two snapshots show the sticking out isolines.
Dear Marina, please look at this bug.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: emv
Date: Mon Nov 27 15:52:55 2017 +0300
0028385: Improve drawing isolines (DBRep_IsoBuilder algorithm)
When computing the iso-lines for the face, additionally to the p-curves of the edges on the face, add to the Hatching algorithm the 2D segments connecting the p-curves of the neighboring edges.
These segments will close the 2D gaps, which are closed in 3D by the tolerance of vertices shared between edges, and eventually will allow trimming correctly the iso-lines passing through such gaps.
Test cases for the issue.
[revision removed]
Detailed log of new commits:
Author: emv
Date: Mon Nov 27 15:52:55 2017 +0300
0028385: Improve drawing isolines (DBRep_IsoBuilder algorithm)
When computing the iso-lines for the face, additionally to the p-curves of the edges on the face, add to the Hatching algorithm the 2D segments connecting the p-curves of the neighboring edges.
These segments will close the 2D gaps, which are closed in 3D by the tolerance of vertices shared between edges, and eventually will allow trimming correctly the iso-lines passing through such gaps.
Test cases for the issue.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: emv
Date: Wed Nov 29 12:55:15 2017 +0300
# Fix for the regressions:
# bugs xde bug27170_5
# sewing tol_1 R2
[revision removed]
Detailed log of new commits:
Author: emv
Date: Wed Nov 29 12:55:15 2017 +0300
# Fix for the regressions:
# bugs xde bug27170_5
# sewing tol_1 R2
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Currently there are few differences in the images in the test results (http://jenkins-test-10.nnov.opencascade.com/view/CR28385-master-emv/view/COMPARE/) which are blocking the integration of the fix:
de iges_1 J9
de step_1 ZW2, ZB5, ZB3
heal fix_shape A2
bugs step bug3397
These differences should be resolved after solving the problem with intersection of the touching 2d curves (see issue #0029368).
de iges_1 J9
de step_1 ZW2, ZB5, ZB3
heal fix_shape A2
bugs step bug3397
These differences should be resolved after solving the problem with intersection of the touching 2d curves (see issue #0029368).
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been rebased on current master.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
After rebasing on new master the following test cases are faiiled on Windows only platform:
bugs moddata_2 bug313 bug326 bug438_1
de iges_2 D3
bugs moddata_2 bug313 bug326 bug438_1
de iges_2 D3
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: emv
Date: Wed Jan 17 09:03:59 2018 +0300
Isolating the addition of the segments connecting the neighboring PCurves into a separate method - FillGaps().
Avoid exploration of the empty wires.
[revision removed]
Detailed log of new commits:
Author: emv
Date: Wed Jan 17 09:03:59 2018 +0300
Isolating the addition of the segments connecting the neighboring PCurves into a separate method - FillGaps().
Avoid exploration of the empty wires.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Dear Mikhail, could you please review the git branch CR28385?
Jenkins job - http://jenkins-test-10.nnov.opencascade.com:8080/view/CR28385-master-emv/view/COMPARE/.
Please note, that the branch is based on the CR29368. The results are also compared to the results of this branch testings.
Please also note, that the images in the following cases are correct:
de iges_2 F9 - correct behavior (additional 2d segments are interfering due to p-curves configuration);
chamfer dist_angle_sequence B5 - correct behavior (the edges in the wire are messed-up (see issue #0029431))
de step_2 S1 - correct behavior (all isolines are located inside tolerance sphere's of vertices)
draft angle G8 - improvement
sewing tol_100 I6 - correct behavior
parasolid doc_3 D8 - correct behavior
heal surface_to_bspline A5 - correct behavior
sewing tol_100 D3 - correct behavior
Jenkins job - http://jenkins-test-10.nnov.opencascade.com:8080/view/CR28385-master-emv/view/COMPARE/.
Please note, that the branch is based on the CR29368. The results are also compared to the results of this branch testings.
Please also note, that the images in the following cases are correct:
de iges_2 F9 - correct behavior (additional 2d segments are interfering due to p-curves configuration);
chamfer dist_angle_sequence B5 - correct behavior (the edges in the wire are messed-up (see issue #0029431))
de step_2 S1 - correct behavior (all isolines are located inside tolerance sphere's of vertices)
draft angle G8 - improvement
sewing tol_100 I6 - correct behavior
parasolid doc_3 D8 - correct behavior
heal surface_to_bspline A5 - correct behavior
sewing tol_100 D3 - correct behavior
Reviewed.
Branch [archived branch] has been updated forcibly by Commenter 1.
[revision removed]
[revision removed]
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: emv
Date: Mon Jan 22 07:33:05 2018 +0300
# Correction according to remarks.
[revision removed]
Detailed log of new commits:
Author: emv
Date: Mon Jan 22 07:33:05 2018 +0300
# Correction according to remarks.
Combination -
OCCT branch : [archived branch] SHA - [revision removed]
Products branch : [archived branch] SHA - [revision removed]
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
Test cases:
bugs modalg_7 bug28385_1 - bug28385_10 - OK
CPU differences:
Debian70-64:
OCCT
Total CPU difference: 18598.389999999657 / 18449.779999999675 [+0.81%]
Products
Total CPU difference: 7523.200000000007 / 7488.480000000009 [+0.46%]
Windows-64-VC10:
OCCT
Total CPU difference: 18137.90866789855 / 17999.364179798602 [+0.77%]
Products
Total CPU difference: 8052.709219599978 / 8032.819092099977 [+0.25%]
Image differences :
Differences in images in OCCT and PRODUCTS were confirmed.
Memory differences :
No differences that require special attention
OCCT branch : [archived branch] SHA - [revision removed]
Products branch : [archived branch] SHA - [revision removed]
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
Test cases:
bugs modalg_7 bug28385_1 - bug28385_10 - OK
CPU differences:
Debian70-64:
OCCT
Total CPU difference: 18598.389999999657 / 18449.779999999675 [+0.81%]
Products
Total CPU difference: 7523.200000000007 / 7488.480000000009 [+0.46%]
Windows-64-VC10:
OCCT
Total CPU difference: 18137.90866789855 / 17999.364179798602 [+0.77%]
Products
Total CPU difference: 8052.709219599978 / 8032.819092099977 [+0.25%]
Image differences :
Differences in images in OCCT and PRODUCTS were confirmed.
Memory differences :
No differences that require special attention
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Related records