DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0025992

Method Geom2dAPI_InterCurveCurve::Segment(...) requires detail revision

Open CASCADEOCCT:Modeling Algorithmsclosed14 public notes

Search issues

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

Steps to reproduce

Not required

Public activity

14 archived notes

Participants are labeled by their role within this record.

01Commenter 2
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).
02Commenter 2
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.
03Commenter 2
Branch [archived branch] has been updated forcibly by Author.

[revision removed]
04Commenter 4
Reviewed.
05Commenter 5
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.
06Commenter 2
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

07Commenter 7
Dear Mikhail!

Please review CR25992 branch.
08Commenter 2
Branch [archived branch] has been updated forcibly by Author.

[revision removed]
09Commenter 9
Reviewed.
10Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
11Commenter 11
Dear Commenter 1,
Branch CR25992 was rebased on IR-2015-04-06 of occt git-repository.
12Commenter 12
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.

13Commenter 13
Dear Commenter 1,
Branch CR25992 is TESTED.
14Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]

Related records