Archived issue #0025992
Method Geom2dAPI_InterCurveCurve::Segment(...) requires detail revision
Description
There are two questions:
1. Is IsOpposite() method used correctly? It seems that "one place" processes it as curves with same orientation, but "other place" processes it as curves with opposite orientation.
2. Case when U1 and U2 parameters are equal is possible. After "Curve1 = new Geom2d_TrimmedCurve(myCurve1, U1, U2)" we will be able to get an exception.
Problem has been detected while fixing bug #0025991
1. Is IsOpposite() method used correctly? It seems that "one place" processes it as curves with same orientation, but "other place" processes it as curves with opposite orientation.
2. Case when U1 and U2 parameters are equal is possible. After "Curve1 = new Geom2d_TrimmedCurve(myCurve1, U1, U2)" we will be able to get an exception.
Problem has been detected while fixing bug #0025991
Steps to reproduce
Not required
Public activity
14 archived notes
Participants are labeled by their role within this record.
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Wed Apr 1 11:15:08 2015 +0300
0025992: Method Geom2dAPI_InterCurveCurve::Segment(...) requires detail revision
1. Comment for IsOpposite() method has been amended.
2. Method Geom2dAPI_InterCurveCurve::Segment() has been rewritten in accordance with the Bug description requirements (described problem has been confirmed).
[revision removed]
Detailed log of new commits:
Author: Author
Date: Wed Apr 1 11:15:08 2015 +0300
0025992: Method Geom2dAPI_InterCurveCurve::Segment(...) requires detail revision
1. Comment for IsOpposite() method has been amended.
2. Method Geom2dAPI_InterCurveCurve::Segment() has been rewritten in accordance with the Bug description requirements (described problem has been confirmed).
Dear Mikhail!
Please review CR25992 branch.
There are two places in OCCT-code, where IsOpposite() is used:
1. Standard_Boolean IntCurve_IntPolyPolyGen::findIntersect(...), line # 1048;
2. void IntImpParGen_Intersector::Perform(...), line # 567.
There IsOpposite is set to TRUE if curves have DIFFERENT orientation. Therefore, it might be good idea to change wrong comment for IsOpposite method.
Please review CR25992 branch.
There are two places in OCCT-code, where IsOpposite() is used:
1. Standard_Boolean IntCurve_IntPolyPolyGen::findIntersect(...), line # 1048;
2. void IntImpParGen_Intersector::Perform(...), line # 567.
There IsOpposite is set to TRUE if curves have DIFFERENT orientation. Therefore, it might be good idea to change wrong comment for IsOpposite method.
Branch [archived branch] has been updated forcibly by Author.
[revision removed]
[revision removed]
Reviewed.
Dear Commenter 1,
Branch CR25992 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 18 (18 on master)
Windows: 0 (0 on master)
products component :
Linux: 4 (4 on master)
Windows: 0 (0 on master)
Regressions/Differences:
http://occt-tests/CR25992-master-occt-64/Debian60-64/summary.html
....
http://occt-tests/CR25992-master-products-64/Debian60-64/parasolid/doc_3/D2.html
parasolid doc_3 D2: FAILED
Testing cases:
Not needed
Testing on Linux:
occt component :
Total MEMORY difference: 85453772 / 86758660 [-1.50%]
Total CPU difference: 51544.59999999999 / 53014.41000000025 [-2.77%]
products component :
Total MEMORY difference: 23167235 / 23077069 [+0.39%]
Total CPU difference: 14865.029999999979 / 15581.089999999984 [-4.60%]
Testing on Windows:
occt component :
products component :
There are no differences in images found by testdiff.
Branch CR25992 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 18 (18 on master)
Windows: 0 (0 on master)
products component :
Linux: 4 (4 on master)
Windows: 0 (0 on master)
Regressions/Differences:
http://occt-tests/CR25992-master-occt-64/Debian60-64/summary.html
....
http://occt-tests/CR25992-master-products-64/Debian60-64/parasolid/doc_3/D2.html
parasolid doc_3 D2: FAILED
Testing cases:
Not needed
Testing on Linux:
occt component :
Total MEMORY difference: 85453772 / 86758660 [-1.50%]
Total CPU difference: 51544.59999999999 / 53014.41000000025 [-2.77%]
products component :
Total MEMORY difference: 23167235 / 23077069 [+0.39%]
Total CPU difference: 14865.029999999979 / 15581.089999999984 [-4.60%]
Testing on Windows:
occt component :
products component :
There are no differences in images found by testdiff.
Branch [archived branch] has been updated by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Fri Apr 3 10:41:21 2015 +0300
The reason of the exception has been eliminated
[revision removed]
Detailed log of new commits:
Author: Author
Date: Fri Apr 3 10:41:21 2015 +0300
The reason of the exception has been eliminated
Dear Mikhail!
Please review CR25992 branch.
Please review CR25992 branch.
Branch [archived branch] has been updated forcibly by Author.
[revision removed]
[revision removed]
Reviewed.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Dear Commenter 1,
Branch CR25992 was rebased on IR-2015-04-06 of occt git-repository.
Branch CR25992 was rebased on IR-2015-04-06 of occt git-repository.
Dear Commenter 1,
Branch CR25992 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 18 (18 on master)
Windows: 0 (0 on master)
products component :
Linux: 4 (4 on master)
Windows: 0 (0 on master)
Regressions/Differences:
No regressions/differences
Testing cases:
Not needed
Testing on Linux:
occt component :
Total MEMORY difference: 93079383 / 93946480 [-0.92%]
Total CPU difference: 55148.23999999925 / 52005.719999999616 [+6.04%]
products component :
Total MEMORY difference: 23560859 / 23598467 [-0.16%]
Total CPU difference: 16983.799999999952 / 15592.839999999998 [+8.92%]
Testing on Windows:
occt component :
Total MEMORY difference: 57060600 / 57074762 [-0.02%]
Total CPU difference: 16167.662838198974 / 16635.463036899022 [-2.81%]
products component :
Total MEMORY difference: 15324411 / 15311228 [+0.09%]
Total CPU difference: 5838.25942449996 / 6012.5749418999785 [-2.90%]
There are no differences in images found by testdiff.
Branch CR25992 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 18 (18 on master)
Windows: 0 (0 on master)
products component :
Linux: 4 (4 on master)
Windows: 0 (0 on master)
Regressions/Differences:
No regressions/differences
Testing cases:
Not needed
Testing on Linux:
occt component :
Total MEMORY difference: 93079383 / 93946480 [-0.92%]
Total CPU difference: 55148.23999999925 / 52005.719999999616 [+6.04%]
products component :
Total MEMORY difference: 23560859 / 23598467 [-0.16%]
Total CPU difference: 16983.799999999952 / 15592.839999999998 [+8.92%]
Testing on Windows:
occt component :
Total MEMORY difference: 57060600 / 57074762 [-0.02%]
Total CPU difference: 16167.662838198974 / 16635.463036899022 [-2.81%]
products component :
Total MEMORY difference: 15324411 / 15311228 [+0.09%]
Total CPU difference: 5838.25942449996 / 6012.5749418999785 [-2.90%]
There are no differences in images found by testdiff.
Dear Commenter 1,
Branch CR25992 is TESTED.
Branch CR25992 is TESTED.
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Related records