Archived issue #0026979
Modeling Algorithms - Parabola curve intersection with variety of surfaces produces incorrect results
Description
When I use GeomAPI_IntCS to try to compute the intersection of a trimmed parabola with a surface, I often get incorrect results. In all cases that I have encountered, the problem is that intersections that should be detected are not being detected.
The results appear to be correct for several specific types of surfaces, namely Geom_ConicalSurface, Geom_CylindricalSurface, Geom_Plane, Geom_SphericalSurface, and Geom_RectangularTrimmedSurface based on these. However, the results are not correct for Geom_BezierSurface, Geom_BSplineSurface, Geom_ToroidalSurrface, Geom_SurfaceOfLinearExtrusion, and Geom_SurfaceofRevolution -- or at least for certain instances of these and a certain parabola.
I do not include explicit tests of ConicalSurface and Geom_Plane here, but in my own testing of those, they seem to work correctly.
The behavior is similar in several versions prior to 6.9.1, but I tested it in 6.9.1 to be sure that the problem still exists.
The results appear to be correct for several specific types of surfaces, namely Geom_ConicalSurface, Geom_CylindricalSurface, Geom_Plane, Geom_SphericalSurface, and Geom_RectangularTrimmedSurface based on these. However, the results are not correct for Geom_BezierSurface, Geom_BSplineSurface, Geom_ToroidalSurrface, Geom_SurfaceOfLinearExtrusion, and Geom_SurfaceofRevolution -- or at least for certain instances of these and a certain parabola.
I do not include explicit tests of ConicalSurface and Geom_Plane here, but in my own testing of those, they seem to work correctly.
The behavior is similar in several versions prior to 6.9.1, but I tested it in 6.9.1 to be sure that the problem still exists.
Steps to reproduce
Test lowalgos intcs bug26979
Public activity
15 archived notes
Participants are labeled by their role within this record.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: knosulko
Date: Thu Jul 29 11:00:09 2021 +0300
0026979: Parabola curve intersection with variety of surfaces produces incorrect results.
Method Intf_Tool::ParabBox now properly estimates the number of segments for a 3D parabola.
[revision removed]
Detailed log of new commits:
Author: knosulko
Date: Thu Jul 29 11:00:09 2021 +0300
0026979: Parabola curve intersection with variety of surfaces produces incorrect results.
Method Intf_Tool::ParabBox now properly estimates the number of segments for a 3D parabola.
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: knosulko
Date: Tue Aug 3 17:55:17 2021 +0300
#fix duplicates
[revision removed]
Detailed log of new commits:
Author: knosulko
Date: Tue Aug 3 17:55:17 2021 +0300
#fix duplicates
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: knosulko
Date: Thu Aug 12 11:57:49 2021 +0300
add test bug26979
[revision removed]
Detailed log of new commits:
Author: knosulko
Date: Thu Aug 12 11:57:49 2021 +0300
add test bug26979
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch CR26979 is ready for review.
Test results: http://jenkins-test-occt.nnov.opencascade.com/view/CR26979-master-KNOSULKO/view/COMPARE/
Branches for Integration:
OCCT - CR26979
Products - Not
Test results: http://jenkins-test-occt.nnov.opencascade.com/view/CR26979-master-KNOSULKO/view/COMPARE/
Branches for Integration:
OCCT - CR26979
Products - Not
1. Steps to Reproduce: it is not necessary to put test script, it is enough only test name.
2. Intf_Tool.cxx:
remove tabulations from lines 1160-1164, 1191 - 1192 and format code.
3. test script:
replace line 2 by description from bug tracker:
puts "0026979: Modeling Algorithms - Parabola curve intersection with variety of surfaces produces incorrect results"
remove lines 5-7 with comments
BugNumber: CR26979 is branch name, bug number is 0026979 or OCC26979
2. Intf_Tool.cxx:
remove tabulations from lines 1160-1164, 1191 - 1192 and format code.
3. test script:
replace line 2 by description from bug tracker:
puts "0026979: Modeling Algorithms - Parabola curve intersection with variety of surfaces produces incorrect results"
remove lines 5-7 with comments
BugNumber: CR26979 is branch name, bug number is 0026979 or OCC26979
Igor,
> 1. Steps to Reproduce: it is not necessary to put test script,
> it is enough only test name.
It is preferred (at least for me ;)) to keep an original self-sufficient script within "Steps To Reproduce".
So that one may copy-paste original script into Draw to verify bug on different versions of OCCT with minimal efforts.
New test cases added by a patch will be filled in by Commenter 1 within a dedicated field "Test case number".
> 1. Steps to Reproduce: it is not necessary to put test script,
> it is enough only test name.
It is preferred (at least for me ;)) to keep an original self-sufficient script within "Steps To Reproduce".
So that one may copy-paste original script into Draw to verify bug on different versions of OCCT with minimal efforts.
New test cases added by a patch will be filled in by Commenter 1 within a dedicated field "Test case number".
Kirill,
there are no original scripts from customer, he provided only C++ code and problem description.
there are no original scripts from customer, he provided only C++ code and problem description.
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: knosulko
Date: Fri Aug 13 13:33:29 2021 +0300
#fix remarks
[revision removed]
Detailed log of new commits:
Author: knosulko
Date: Fri Aug 13 13:33:29 2021 +0300
#fix remarks
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 CR26979 semms to be valid
Branches for Integration:
OCCT - CR26979
Products - Not
Branches for Integration:
OCCT - CR26979
Products - Not
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: 17368.20000000041 / 17370.70000000038 [-0.01%]
Products
Total CPU difference: 11492.330000000085 / 11466.840000000084 [+0.22%]
Windows-64-VC14:
OCCT
Total CPU difference: 19143.8125 / 19180.875 [-0.19%]
Products
Total CPU difference: 12803.65625 / 12837.4375 [-0.26%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
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: 17368.20000000041 / 17370.70000000038 [-0.01%]
Products
Total CPU difference: 11492.330000000085 / 11466.840000000084 [+0.22%]
Windows-64-VC14:
OCCT
Total CPU difference: 19143.8125 / 19180.875 [-0.19%]
Products
Total CPU difference: 12803.65625 / 12837.4375 [-0.26%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Review