MantisBT - Community
View Issue Details
0030876Community[OCCT] OCCT:Data Exchangepublic2019-08-07 15:512019-09-07 16:27
drazmyslovich 
bugmaster 
normalminor 
verifiedfixed 
WindowsVC++ 201564 bit
[OCCT] 7.4.0 
[OCCT] 7.4.0 
0030876: Data Exchange - StepToTopoDS edge translation should be resistant to malformed parameter values
The algorithm, which checks pcurves doesn't consider a situation if edge lower bound is bigger as curve upper parameter.
Unfortunately, I have no example for this issue
No tags attached.
Issue History
2019-08-07 15:51drazmyslovichNew Issue
2019-08-07 15:51drazmyslovichAssigned To => gka
2019-08-07 15:52gitNote Added: 0086070
2019-08-07 15:53drazmyslovichNote Added: 0086071
2019-08-07 15:53drazmyslovichStatusnew => resolved
2019-08-07 15:53drazmyslovichSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=21607#r21607
2019-09-04 18:32kgvSummaryStepToTopoDS edge translation should be resistant to malformed parameter values => Data Exchange - StepToTopoDS edge translation should be resistant to malformed parameter values
2019-09-05 14:06gitNote Added: 0086793
2019-09-05 14:54gkaNote Added: 0086796
2019-09-06 13:33gkaNote Added: 0086871
2019-09-06 13:34gkaNote Added: 0086872
2019-09-06 13:34gkaAssigned Togka => bugmaster
2019-09-06 13:34gkaStatusresolved => reviewed
2019-09-06 18:32bugmasterNote Added: 0086910
2019-09-06 18:32bugmasterStatusreviewed => assigned
2019-09-06 18:35bugmasterAssigned Tobugmaster => gka
2019-09-06 18:35bugmasterStatusassigned => resolved
2019-09-06 18:35bugmasterAssigned Togka => bugmaster
2019-09-06 18:35bugmasterStatusresolved => reviewed
2019-09-06 18:35bugmasterStatusreviewed => tested
2019-09-07 11:38bugmasterChangeset attached => occt master a90dd15e
2019-09-07 11:38bugmasterStatustested => verified
2019-09-07 11:38bugmasterResolutionopen => fixed
2019-09-07 16:26gitNote Added: 0086929
2019-09-07 16:27gitNote Added: 0086950

Notes
(0086070)
git   
2019-08-07 15:52   
Branch CR30876 has been created by drazmyslovich.

SHA-1: cccfbb3a2b008f143c9ab5eb1179db0cd5a1d294


Detailed log of new commits:

Author: drazmyslovich
Date: Wed Aug 7 14:49:59 2019 +0200

    0030876: StepToTopoDS edge translation should be resistant to malformed parameter values
(0086071)
drazmyslovich   
2019-08-07 15:53   
The changes are submitted, please, review
(0086793)
git   
2019-09-05 14:06   
Branch CR30876_1 has been created by gka.

SHA-1: 7603d5a22f02e74535f2d4f6028e7a26a009278b


Detailed log of new commits:

Author: gka
Date: Thu Sep 5 14:03:05 2019 +0300

    0030876: Data Exchange - StepToTopoDS edge translation should be resistant to malformed parameter values
    
    Corrected misprint in the method CheckPCurves of the class StepToTopoDS_TranslateEdgeLoop for case when higher bound of the range of pcurve on the edge greater then last parameter of the pcurve.
    Added check on the not periodic flag for pcurve when range pcurve on the edge is adjusted to parameters pcurve.

Author: drazmyslovich
Date: Wed Aug 7 14:49:59 2019 +0200

    0030876: StepToTopoDS edge translation should be resistant to malformed parameter values
(0086796)
gka   
2019-09-05 14:54   
Dear Dmitry.

Plaese note that modifications in the your commit leads to set null range for pcurve on the edge:
   if (w2 > cl) {
     if (w1 > cl)
     {
       w1 = cl;
     }
      B.Range(myEdge, aFace, w1, cl);
      w2 = cl;
     }
Case when range of pcurve on the edge lies out of the first and last parameters of pcurve is processed in the method XSAlgo_AlgoContainer::CheckPCurve.

Therefore your fix was corrected by following way:

  if (w2 > cl) {
      B.Range(myEdge, aFace, w1, cl);
      w2 = cl;
  }
In such case when edge lower bound is bigger as curve upper parameter the next condition can work or range of pcurve will be corrected in the method XSAlgo_AlgoContainer::CheckPCurve
(0086871)
gka   
2019-09-06 13:33   
Results of tests can be found by path:
http://vm-jenkins-test-12.nnov.opencascade.com:8080/view/CR30876_1-master-gka/view/COMPARE/ [^]
(0086872)
gka   
2019-09-06 13:34   
Branch CR30876_1 was reviewed
(0086910)
bugmaster   
2019-09-06 18:32   
Combination -
OCCT branch : CR30876_1
master SHA - 7603d5a22f02e74535f2d4f6028e7a26a009278b
5f5b1aed1c6e139bbd34314eca77ae7abcd8895c
Products branch : master SHA - 34e9bf11c6b525830b5dee35839707da81e7d1ab
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: 16176.559999999989 / 16167.270000000033 [+0.06%]
Products
Total CPU difference: 10501.580000000033 / 10484.930000000048 [+0.16%]
Windows-64-VC14:
OCCT
Total CPU difference: 18211.09375 / 18256.515625 [-0.25%]
Products
Total CPU difference: 12039.1875 / 12168.265625 [-1.06%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention
(0086929)
git   
2019-09-07 16:26   
Branch CR30876_1 has been deleted by inv.

SHA-1: 7603d5a22f02e74535f2d4f6028e7a26a009278b
(0086950)
git   
2019-09-07 16:27   
Branch CR30876 has been deleted by inv.

SHA-1: cccfbb3a2b008f143c9ab5eb1179db0cd5a1d294