View Issue Details

IDProjectCategoryView StatusLast Update
0030876CommunityOCCT:Data Exchangepublic2019-09-07 16:27
Reporterdrazmyslovich Assigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2015 
Product Version7.4.0 
Target Version7.4.0Fixed in Version7.4.0 
Summary0030876: Data Exchange - StepToTopoDS edge translation should be resistant to malformed parameter values
DescriptionThe algorithm, which checks pcurves doesn't consider a situation if edge lower bound is bigger as curve upper parameter.
Steps To ReproduceUnfortunately, I have no example for this issue
TagsNo tags attached.
Test case number

Activities

git

2019-08-07 15:52

administrator   ~0086070

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

drazmyslovich

2019-08-07 15:53

developer   ~0086071

The changes are submitted, please, review

git

2019-09-05 14:06

administrator   ~0086793

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

gka

2019-09-05 14:54

developer   ~0086796

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

gka

2019-09-06 13:33

developer   ~0086871

Results of tests can be found by path:
http://vm-jenkins-test-12.nnov.opencascade.com:8080/view/CR30876_1-master-gka/view/COMPARE/

gka

2019-09-06 13:34

developer   ~0086872

Branch CR30876_1 was reviewed

bugmaster

2019-09-06 18:32

administrator   ~0086910

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

git

2019-09-07 16:26

administrator   ~0086929

Branch CR30876_1 has been deleted by inv.

SHA-1: 7603d5a22f02e74535f2d4f6028e7a26a009278b

git

2019-09-07 16:27

administrator   ~0086950

Branch CR30876 has been deleted by inv.

SHA-1: cccfbb3a2b008f143c9ab5eb1179db0cd5a1d294

Related Changesets

occt: master a90dd15e

2019-08-07 12:49:59

drazmyslovich


Committer: bugmaster Details Diff
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.
Affected Issues
0030876
mod - src/StepToTopoDS/StepToTopoDS_TranslateEdgeLoop.cxx Diff File

Issue History

Date Modified Username Field Change
2019-08-07 15:51 drazmyslovich New Issue
2019-08-07 15:51 drazmyslovich Assigned To => gka
2019-08-07 15:52 git Note Added: 0086070
2019-08-07 15:53 drazmyslovich Note Added: 0086071
2019-08-07 15:53 drazmyslovich Status new => resolved
2019-08-07 15:53 drazmyslovich Steps to Reproduce Updated
2019-09-04 18:32 kgv Summary StepToTopoDS 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:06 git Note Added: 0086793
2019-09-05 14:54 gka Note Added: 0086796
2019-09-06 13:33 gka Note Added: 0086871
2019-09-06 13:34 gka Note Added: 0086872
2019-09-06 13:34 gka Assigned To gka => bugmaster
2019-09-06 13:34 gka Status resolved => reviewed
2019-09-06 18:32 bugmaster Note Added: 0086910
2019-09-06 18:32 bugmaster Status reviewed => assigned
2019-09-06 18:35 bugmaster Assigned To bugmaster => gka
2019-09-06 18:35 bugmaster Status assigned => resolved
2019-09-06 18:35 bugmaster Assigned To gka => bugmaster
2019-09-06 18:35 bugmaster Status resolved => reviewed
2019-09-06 18:35 bugmaster Status reviewed => tested
2019-09-07 11:38 bugmaster Changeset attached => occt master a90dd15e
2019-09-07 11:38 bugmaster Status tested => verified
2019-09-07 11:38 bugmaster Resolution open => fixed
2019-09-07 16:26 git Note Added: 0086929
2019-09-07 16:27 git Note Added: 0086950