View Issue Details

IDProjectCategoryView StatusLast Update
0028385Open CASCADEOCCT:Modeling Algorithmspublic2018-06-29 21:19
ReporternbvAssigned Toapn  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
Product Version7.1.0 
Target Version7.3.0Fixed in Version7.3.0 
Summary0028385: Improve drawing isolines (DBRep_IsoBuilder algorithm)
DescriptionThere 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 "lost isoline.PNG" attached picture. This picture has been obtained from the face in "bug28385_face.brep" attached file with Iso-line U=PI/2.
Steps To Reproduce# case 1:
restore stick-out-isos.brep a
isos a 0
don a
view 1 +Y+Z 728 450 400 400
fit
md;md
isos a 2
TagsNo tags attached.
Test case numberbugs modalg_7 bug28385_1 - bug28385_10

Attached Files

  • lost isoline.PNG (18,847 bytes)
  • bug28385_face.brep (1,759 bytes)
  • stick-out-isos.brep (52,543 bytes)
  • shell_stick-out-iso.PNG (5,994 bytes)
  • stick-out-iso.PNG (4,336 bytes)

Relationships

parent of 0029368 closedapn Incorrect intersection state of the intersection point of two 2d curves 

Activities

nbv

2017-01-24 16:44

developer  

lost isoline.PNG (18,847 bytes)

nbv

2017-01-24 16:56

developer   ~0062963

Example to the item 2 has been detected in frame of the fix for issue 0027252 (see messages 0027252:0062944 and 0027252:0062961). This fix did not touch DBRep_IsoBuilder algorithm.

nbv

2017-01-24 17:00

developer  

bug28385_face.brep (1,759 bytes)

msv

2017-03-01 18:45

developer  

stick-out-isos.brep (52,543 bytes)

msv

2017-03-01 18:46

developer  

shell_stick-out-iso.PNG (5,994 bytes)

msv

2017-03-01 18:46

developer  

stick-out-iso.PNG (4,336 bytes)

msv

2017-03-01 18:48

developer   ~0064063

I have attached example for the case 1. The shape is stick-out-isos.brep. Two snapshots show the sticking out isolines.

msv

2017-04-04 18:45

developer   ~0064908

Dear Marina, please look at this bug.

git

2017-11-27 16:08

administrator   ~0072503

Branch CR28385 has been created by emv.

SHA-1: 1d268b408381b48a21bec26a07601a90e87c2dde


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.

git

2017-11-28 10:41

administrator   ~0072521

Branch CR28385 has been updated forcibly by emv.

SHA-1: 9d0bf29fd7671f1532871da390ffb06c232d869d

git

2017-11-30 11:12

administrator   ~0072612

Branch CR28385 has been updated by emv.

SHA-1: 9fc706d85e45d3158cfd4e3b4bfaa4d90ecb456a


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

git

2017-11-30 14:31

administrator   ~0072622

Branch CR28385 has been updated forcibly by emv.

SHA-1: 2b98b53c8bc60d6f1ea014cead3ab0c105699e2c

git

2017-12-01 10:40

administrator   ~0072632

Branch CR28385 has been updated forcibly by emv.

SHA-1: dc737f6778fe77ac4557e8c79fe81a2f5427043a

git

2017-12-01 13:34

administrator   ~0072647

Branch CR28385 has been updated forcibly by emv.

SHA-1: 8f9bba0dc2bfaf2e46979e338b3facacbc975246

git

2017-12-04 15:40

administrator   ~0072689

Branch CR28385 has been updated forcibly by emv.

SHA-1: dfc64cf7bc8d99a14005e64a0513370b10204614

emv

2017-12-05 09:24

developer   ~0072707

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).

git

2017-12-11 18:02

administrator   ~0072915

Branch CR28385 has been updated forcibly by msv.

SHA-1: 86eeeba76113ce5f28bb48bd8106b459f099098a

msv

2017-12-11 18:03

developer   ~0072917

Branch CR28385 has been rebased on current master.

git

2018-01-09 10:53

administrator   ~0073265

Branch CR28385 has been updated forcibly by msv.

SHA-1: e251a4dc2d9c00346d9186ecf875e9870fe9f0c3

msv

2018-01-09 17:13

developer   ~0073273

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

git

2018-01-16 16:10

administrator   ~0073441

Branch CR28385 has been updated forcibly by emv.

SHA-1: 7150ef50a9b62b512e6b9bb04258869815151139

git

2018-01-18 16:45

administrator   ~0073495

Branch CR28385 has been updated by emv.

SHA-1: 4bd173c025556c9bfc7345396f265899b1d774c1


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.

git

2018-01-19 10:21

administrator   ~0073506

Branch CR28385 has been updated forcibly by emv.

SHA-1: 4af6a1751b81d0675f0404bf3dee8abe139cbc9e

emv

2018-01-19 14:05

developer   ~0073521

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

msv

2018-01-19 17:56

developer   ~0073541

Reviewed.

git

2018-01-21 14:30

administrator   ~0073548

Branch CR28385 has been updated forcibly by apn.

SHA-1: 2a83863cbc3fed4b2440f9d5b79eebe6187cafb0

git

2018-01-22 07:33

administrator   ~0073549

Branch CR28385 has been updated by emv.

SHA-1: afcdc4c23af2246a9afdbbeb063c631a33aab6a6


Detailed log of new commits:

Author: emv
Date: Mon Jan 22 07:33:05 2018 +0300

    # Correction according to remarks.

apn

2018-01-22 11:09

administrator   ~0073552

Combination -
OCCT branch : CR28385 SHA - afcdc4c23af2246a9afdbbeb063c631a33aab6a6
Products branch : master SHA - d89a467c378e57aa29e553b9f117db99086ddb1b
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

git

2018-02-05 11:39

administrator   ~0073755

Branch CR28385 has been deleted by kgv.

SHA-1: afcdc4c23af2246a9afdbbeb063c631a33aab6a6

Related Changesets

occt: master b6cf8ffa

2017-11-27 12:52:55

emv


Committer: apn Details Diff
0028385: Improve drawing isolines (DBRep_IsoBuilder algorithm)

1. When computing the iso-lines for the face (*DBRep_IsoBuilder*) prepare the Hatching algorithm with the following elements:
a. Trimmed p-curves of edges. The trimming parameters are computed by intersection with p-curves of the neighboring edges. The trimming will be performed only if the intersection point is covered by the tolerance of common vertex.
b. 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. This will allow trimming correctly the iso-lines passing through such gaps.

2. Implementation of the additional Init() method for WireExplorer algorithm taking UV bounds of the face to avoid their repeated computation when work working with a face having multiple wires.

3. Test cases for the issue.
Affected Issues
0028385
mod - src/BRepTools/BRepTools_WireExplorer.cxx Diff File
mod - src/BRepTools/BRepTools_WireExplorer.hxx Diff File
mod - src/DBRep/DBRep_IsoBuilder.cxx Diff File
mod - src/DBRep/DBRep_IsoBuilder.hxx Diff File
rm - src/DBRep/DBRep_IsoBuilder.lxx Diff File
mod - src/DBRep/FILES Diff File
mod - src/math/math_FunctionRoots.cxx Diff File
add - tests/bugs/modalg_7/bug28385_1 Diff File
add - tests/bugs/modalg_7/bug28385_10 Diff File
add - tests/bugs/modalg_7/bug28385_2 Diff File
add - tests/bugs/modalg_7/bug28385_3 Diff File
add - tests/bugs/modalg_7/bug28385_4 Diff File
add - tests/bugs/modalg_7/bug28385_5 Diff File
add - tests/bugs/modalg_7/bug28385_6 Diff File
add - tests/bugs/modalg_7/bug28385_7 Diff File
add - tests/bugs/modalg_7/bug28385_8 Diff File
add - tests/bugs/modalg_7/bug28385_9 Diff File

Issue History

Date Modified Username Field Change
2017-01-24 16:44 nbv New Issue
2017-01-24 16:44 nbv Assigned To => msv
2017-01-24 16:44 nbv File Added: lost isoline.PNG
2017-01-24 16:56 nbv Note Added: 0062963
2017-01-24 16:59 nbv Description Updated
2017-01-24 17:00 nbv File Added: bug28385_face.brep
2017-01-24 17:50 msv Product Version => 7.1.0
2017-03-01 18:45 msv File Added: stick-out-isos.brep
2017-03-01 18:46 msv File Added: shell_stick-out-iso.PNG
2017-03-01 18:46 msv File Added: stick-out-iso.PNG
2017-03-01 18:48 msv Note Added: 0064063
2017-03-01 18:49 msv Steps to Reproduce Updated
2017-04-04 18:44 msv Assigned To msv => mpa
2017-04-04 18:44 msv Status new => assigned
2017-04-04 18:45 msv Note Added: 0064908
2017-07-24 09:22 msv Target Version 7.2.0 => 7.3.0
2017-11-24 11:12 emv Assigned To mpa => emv
2017-11-27 16:08 git Note Added: 0072503
2017-11-28 10:41 git Note Added: 0072521
2017-11-30 11:12 git Note Added: 0072612
2017-11-30 14:31 git Note Added: 0072622
2017-12-01 10:40 git Note Added: 0072632
2017-12-01 13:34 git Note Added: 0072647
2017-12-04 15:40 git Note Added: 0072689
2017-12-05 08:43 emv Relationship added parent of 0029368
2017-12-05 09:24 emv Note Added: 0072707
2017-12-11 18:02 git Note Added: 0072915
2017-12-11 18:03 msv Note Added: 0072917
2018-01-09 10:53 git Note Added: 0073265
2018-01-09 17:13 msv Note Added: 0073273
2018-01-16 16:10 git Note Added: 0073441
2018-01-18 16:45 git Note Added: 0073495
2018-01-19 10:21 git Note Added: 0073506
2018-01-19 14:05 emv Note Added: 0073521
2018-01-19 14:05 emv Assigned To emv => msv
2018-01-19 14:05 emv Status assigned => resolved
2018-01-19 17:56 msv Note Added: 0073541
2018-01-19 17:56 msv Assigned To msv => bugmaster
2018-01-19 17:56 msv Status resolved => reviewed
2018-01-21 14:30 git Note Added: 0073548
2018-01-21 14:38 apn Test case number => bugs modalg_7 bug28385_1 - bug28385_10
2018-01-22 07:33 git Note Added: 0073549
2018-01-22 11:09 apn Note Added: 0073552
2018-01-22 11:09 apn Status reviewed => tested
2018-01-28 12:18 apn Changeset attached => occt master b6cf8ffa
2018-01-28 12:18 apn Assigned To bugmaster => apn
2018-01-28 12:18 apn Status tested => verified
2018-01-28 12:18 apn Resolution open => fixed
2018-02-05 11:39 git Note Added: 0073755
2018-06-29 21:15 aiv Fixed in Version => 7.3.0
2018-06-29 21:19 aiv Status verified => closed