DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0026979

Modeling Algorithms - Parabola curve intersection with variety of surfaces produces incorrect results

CommunityOCCT:Modeling Algorithmsclosed15 public notes

Search issues

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.

Steps to reproduce

Test lowalgos intcs bug26979

Public activity

15 archived notes

Participants are labeled by their role within this record.

01Commenter 2
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.
02Commenter 2
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

03Commenter 2
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

04Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
05Commenter 5
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
06Commenter 6
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
07Commenter 3
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".

08Commenter 8
Kirill,
there are no original scripts from customer, he provided only C++ code and problem description.
09Commenter 2
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

10Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
11Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
12Commenter 12
Branch CR26979 semms to be valid
Branches for Integration:
OCCT - CR26979

Products - Not
13Commenter 1
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
14Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
15Commenter 15
Review