DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0024657

2dintersect returns different number of intersect points

Open CASCADEOCCT:Modeling Algorithmsclosed30 public notes

Search issues

Description

2dintersect depends on 2d curve arg sequence:

there is the case when:
"2dintersect curve1 curve2" returns one intersect point
but
"2dintersect curve2 curve1" returns TWO intersect points

Steps to reproduce

restore Attachment 1 (BREP) a
explode a e
pcu p4 a_4 a
pcu p5 a_5 a
2dintersect p4 p5 -tol 10e-7
2dintersect p5 p4 -tol 10e-7


Public activity

30 archived notes

Participants are labeled by their role within this record.

01Commenter 1
dear ifv, please review CR24657 branch
02Commenter 2
Ok
03Commenter 3
Dear Commenter 1,

Branch CR24657 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
[revision removed]

Number of compiler warnings:

occt component :
Linux: 29 (29 on master)
Windows: 0 (0 on master)

products component :
Linux: 12 (12 on master)
Windows: 2 (2 on master)

Regressions/Differences:
http://occt-tests/CR24657-master-occt/Debian60-64/summary.html
http://occt-tests/CR24657-master-occt/Windows-32-VC9/summary.html
Improvements:
de iges_1(001) F9
de iges_2(002) G7
de step_2(005) D1
heal split_angle_advanced(012) Z3
heal split_closed_faces(011) G5
Failed:
de iges_1(001) G6, K3, L8, P8, R8
de iges_2(002) B8, C2, F4
de step_2(005) M4
de step_3(006) C4, D9, E6, F2
heal split_angle_advanced(012) ZA5, ZA6


http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24657/job/mnt-CR24657-master_products_tests_linux_start/label=Debian60-64,tests_group=parasolid,tests_subgroup=003/4/HTML_Report/?
http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24657/job/mnt-CR24657-master_products_tests_windows_start/label=windows_test,tests_group=parasolid,tests_subgroup=003/2/HTML_Report/?
parasolid doc_3(003) E3

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24657/job/mnt-CR24657-master_products_tests_linux_start/label=Debian60-64,tests_group=sat,tests_subgroup=001/4/HTML_Report/?

sat doc_1(001) ZV5

Testing cases:
http://occt-tests/CR24657-master-occt/Debian60-64/bugs/modalg_5/bug24657.html
http://occt-tests/CR24657-master-occt/Windows-32-VC9/bugs/modalg_5/bug24657.html
bugs modalg_5(010) bug24657: OK

Testing on Linux:
Total MEMORY difference: 379407000 / 378983764
Total CPU difference: 49329.440000000024 / 43578.700000000004

Testing on Windows:
Total MEMORY difference: 426789228 / 426390392
Total CPU difference: 26989.875 / 33726.015625

There are following differences in images found by testdiff.
http://occt-tests/CR24657-master-occt/Debian60-64/diff-Debian60-64.html
http://occt-tests/CR24657-master-occt/Windows-32-VC9/diff-Windows-32-VC9.html
IMAGE bugs iges bug22504: bug22504_Driver1_Viewer1_View1.png differs
04Commenter 4
de step_3 C4
  max tol is the same as before but average tol has increased. it isn't regression
  
de iges_2 C2
  max tol is smaller. it is IMPROVEMENT
  
de step_2 M4
  max tol is smaller. it is IMPROVEMENT

heal split_angle_advanced ZA6
 the num of errors has decreased. it is IMPROVEMENT

heal split_angle_advanced ZA5
 the num of errors has decreased. it is IMPROVEMENT

all other aren't regressions (have different secondary params)

checkshape questions in the process: de step_3 D9, de iges_2 F4

05Commenter 5
de iges_2 F4

this test contains a new additional faulty. the new one (wire self-intersection) appeared after loopback test due to poly intersection algorithm seeks with both criteria: exact intersection (in parametric space) and “node” intersection. The last criterion has been turned on (findIntersect method, last param is TRUE) due to the being processed polygons aren’t complemented by new points (ComputeWithBox isn’t used already).
So I deem the faulty isn’t regression
06Commenter 6
de step_3 D9

isn't regression (see 24743 issue)
07Commenter 7
and other
de iges_1(001) G6, K3, L8, P8, R8
de iges_2(002) B8
de step_3(006) C4, E6, F2

aren't regressions
08Commenter 8
##copied from #24549 , [archived tracker link removed]

mkv:

Dear Commenter 1,

Branch CR24549_with24657 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
[revision removed]

Number of compiler warnings:

occt component :
Linux: 30 (30 on master)
Windows: 0 (0 on master)

products component :
Linux: 12 (12 on master)
Windows: 2 (2 on master)

Regressions/Differences:
http://occt-tests/CR24549-24657-master-occt/Debian60-64/summary.html [^]
http://occt-tests/CR24549-24657-master-occt/Windows-32-VC9/summary.html [^]
Improvements:
bugs heal bug210
de iges_2 E3
de step_1 N3
de step_2 G1
Failed:
de iges_1(001) B4, L5, Q3, R5
de iges_2(002) A9, B1, C4, G1, G8, I7
de iges_3(003) A2
de step_1(004) A3, G9, V3
de step_2(005) D7, D8, F1, K1, O8, Y5
de step_3(006) A5, A9, B5, C6, D8, D9, E6
de step_4(007) I2
de step_5(008) A1, A3
xcaf brep_to_stp_add_CL(009) I6

Testing cases:
http://occt-tests/CR24549-24657-master-occt/Debian60-64/bugs/heal/bug24549.html [^]
http://occt-tests/CR24549-24657-master-occt/Windows-32-VC9/bugs/heal/bug24549.html [^]
bugs heal(017) bug24549: OK

Testing on Linux:
Total MEMORY difference: 384014256 / 380174460
Total CPU difference: 44659.88000000026 / 46659.64

Testing on Windows:
Total MEMORY difference: 421755968 / 418700688
Total CPU difference: 31584.203125 / 30899.28125

There are following differences in images found by testdiff.
http://occt-tests/CR24549-24657-master-occt/Debian60-64/diff-Debian60-64.html [^]
http://occt-tests/CR24549-24657-master-occt/Windows-32-VC9/diff-Windows-32-VC9.html [^]
IMAGE bugs iges bug22504: bug22504_Driver1_Viewer1_View1.png differs

09Commenter 9
there is the problem in CR24549_with24657 results. the pin on image in "bugs iges bug22504" is shifted.

but the pin on the image of current CR24657 (rebased at IR-2014-03-20) branch isn't shifted.
10Commenter 10
dear mkv, please test CR24657 branch
11Commenter 11
Dear Commenter 1,

Branch CR24657 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
[revision removed]

Number of compiler warnings:

occt component :
Linux: 29 (29 on master)
Windows: 0 (0 on master)

products component :
Linux: 12 (12 on master)
Windows: 2 (2 on master)

Regressions/Differences:
http://occt-tests/CR24657-master-occt/Debian60-64/de/step_3/D3.html
Improvements:
de step_3(006) D3 - corrected and pushed to branch CR24657

Testing cases:
http://occt-tests/CR24657-master-occt/Debian60-64/bugs/modalg_5/bug24657.html
http://occt-tests/CR24657-master-occt/Windows-32-VC9/bugs/modalg_5/bug24657.html
bugs modalg_5(010) bug24657: OK

Testing on Linux:
Total MEMORY difference: 390844552 / 390850480
Total CPU difference: 47064.130000000005 / 51146.809999999656

Testing on Windows:
Total MEMORY difference: 435054348 / 433684232
Total CPU difference: 33036.875 / 35632.53125

There are following differences in images found by testdiff.
http://occt-tests/CR24657-master-occt/Debian60-64/diff-Debian60-64.html
http://occt-tests/CR24657-master-occt/Windows-32-VC9/diff-Windows-32-VC9.html
IMAGE bugs iges bug22504: bug22504_Driver1_Viewer1_View1.png differs
12Commenter 12
i have executed "bugs iges bug22504" test case on "windows 32 vc10" (current CR24657 branch) and it isn't different from master.

and also the made fixes in this issue shouldn't do any influence at the executed test.

dear Commenter 1, please integrate
13Commenter 1
Problem bugs iges bug22504 is reproduced on IR-2014-03-27
14Commenter 14
Ok. I'll start to investigate this problem more deeper
15Commenter 2
The problem looks fixed. Dear Commenter 2, please, investigate.
16Commenter 16
The issue currently cannot be reproduced on master.
17Commenter 3
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: Andrei LATYSHEV
Date: Thu Mar 24 17:36:11 2022 +0300

    0024657: 2dintersect returns different number of intersect points in curve intersecting the polygon points is never replaced by line
    
    Test for 2d intersection is added
18Commenter 3
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
19Commenter 19
Please review branch CR24657_1
Test results are attached:
http://jenkins-test-occt/view/CR24657_1-master-ALATYSHE/view/ALL/
20Commenter 20
Andrey, I propose to perform the most clear check that the order of intersected curves does not matter. I mean that the results of intersections should be the same, and I propose to implement this check in the test as well.

Also, please, use v2d2 command instead of av2d to display 2D view.
21Commenter 3
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
22Commenter 22
1. Does the following statement correct?
# Check if the number of intersections is more than 2


2. Wrong usage of regexp:
# Verify the coordinates of the intersection points
set xint1 [regexp -all {1.10000000} ${inter1}]
set xint2 [regexp -all {1.10000000} ${inter2}]
set yint1 [regexp -all {59.4123777} ${inter1}]
set yint2 [regexp -all {59.4123777} ${inter2}]


You search the exact string instead of parsing values by regular expression and then checking the values are equal. What if 2dintersect returns the values you searching, but on the wrong places?

Please, look at other tests parsing the result of certain operation by regexp.
23Commenter 3
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
24Commenter 24
Andrey, unfortunately, your test case failed on both Windows and Linux platforms.

And I also have a couple of remarks:

1. I suppose, we could check here parameters on each curve together with checking the point coordinates. Then it will be complete test case.

2. There is a Tab sign in line 33. Please, substitute it by spaces.
25Commenter 3
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
26Commenter 3
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
27Commenter 27
Branches to be integrated:
OCCT: CR24657_1
Products: NOT
28Commenter 28
Combination -
OCCT branch : [archived branch]
master SHA - [revision removed]
[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

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 18452.87000000039 / 18490.94000000032 [-0.21%]
Products
Total CPU difference: 11761.310000000152 / 11719.920000000124 [+0.35%]
Windows-64-VC14:
OCCT
Total CPU difference: 20539.828125 / 20552.71875 [-0.06%]
Products
Total CPU difference: 13248.21875 / 13242.609375 [+0.04%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention
29Commenter 3
Branch [archived branch] has been deleted by Participant.

[revision removed]
30Commenter 3
Branch [archived branch] has been deleted by Participant.

[revision removed]