View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0029356 | Community | OCCT:Modeling Algorithms | public | 2017-11-30 08:36 | 2018-06-29 21:21 |
Reporter | kgv | Assigned To | bugmaster | ||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Platform | Windows | OS | VC++ 2010 | ||
Product Version | 7.0.0 | ||||
Target Version | 7.3.0 | Fixed in Version | 7.3.0 | ||
Summary | 0029356: Modeling Algorithms - GCPnts_TangentialDeflection hangs on specific curve | ||||
Description | GCPnts_TangentialDeflection hangs while computing Wireframe presentation for attached shape imported from IGES: https://www.opencascade.com/content/surface-display-crash There is no issue making a Shaded presentation. The bug appeared in OCCT 7.0.0 (problem is not reproducible on OCCT 6.9.1). | ||||
Steps To Reproduce | pload VISUALIZATION XDE cpulimit 100 testreadiges problemmodel.igs a #checkshape a a vclear vinit View1 vdisplay -dispMode 0 a vfit meminfo Result: KO, viewer hangs. | ||||
Tags | No tags attached. | ||||
Test case number | v3d face G1, v3d face G2, v3d face G3, v3d face G4 | ||||
|
I looked at the stack under debugger and found out that the problem is in generation of iso-lines using Hatch_Hatcher algorithm. See the file StdPrs_Isolines.cxx line 509:Standard_Real anIsoParam = aHatcher.Coordinate (anI); The parameter returned by hatcher for this case is equal to 968675.43832409300. The surface U range is [1437351.814,1437358.332]. So, the parameter of computed iso-line is far out of range. Dump of such iso-line looks very ugly: *********** Dump of i ************* BSplineCurve Degree 5, 6 Poles, 2 Knots Poles : 1 : 1.1505003582441e+018, -8.83973126067367e+018, -7.07625357548475e+018 2 : 1.34293124256749e+018, -6.34107467375981e+018, -6.1920120716081e+018 3 : -1.9246641904371e+018, -7.30241823771635e+018, -5.2885669053654e+018 4 : -1.54002657325621e+018, -7.49484846321211e+018, -4.51969838728099e+018 5 : -2.69320055903921e+018, -7.11061392318922e+018, -3.96229371150243e+018 6 : -1.34744884480842e+018, -4.61190301472812e+018, -2.86667369629048e+018 Knots : 1 : 0 6 2 : 13.06506657 6 |
|
The simple workaround is to skip drawing iso-line if it is out of surface domain. But more correct way is to debug hatcher algorithm. |
|
Dear Mikhail, does it makes sense adding this (or maybe corrected) workaround to StdPrs_Isolines? > Hereunder are the lines added to the StdPrs_Isolines.cxx file > in the function addOnSurface line 512 (ver. 7.2.0): > if (anIsoParam < theSurface->FirstUParameter() > || anIsoParam > theSurface->LastUParameter()) > continue; |
|
Yes, it makes sense. But you need to use *UParameter or *VParameter according to isIsoU flag. Also, it may be necessary to skip this filter for a surface periodic in this direction. |
|
BTW, hatcher may be not the cause of the problem, because incorrect parameters can be passed to it from upper level algo. |
|
Dear Natalia, please investigate why such incorrect parameters are passed to the hatcher. |
|
Branch CR29356 has been created by nds. SHA-1: c13fdd74562c8099f482d30218f09e7d3492c9af Detailed log of new commits: Author: nds Date: Mon Jan 29 11:27:45 2018 +0300 0029356: Modeling Algorithms - GCPnts_TangentialDeflection hangs on specific curve Additional check in StdPrs_Isolines for a case when minimum and maximum values of UV Face parameters are out of UVLimit. In such case, the class does not collect these parameter values. Author: nds Date: Mon Jan 29 11:19:36 2018 +0300 0029356: Modeling Algorithms - GCPnts_TangentialDeflection hangs on specific curve Additional check in StdPrs_Isolines for a case when minimum and maximum values of UV Face parameters are out of UVLimit. In such case, the class does not collect these parameter values. |
|
Branch CR29356 has been updated by nds. SHA-1: 3c5e069df0d9d3794247b7464dc287cc8a6ab82a Detailed log of new commits: Author: nds Date: Mon Jan 29 12:33:27 2018 +0300 0029356: Modeling Algorithms - GCPnts_TangentialDeflection hangs on specific curve Additional check in StdPrs_Isolines for a case when minimum and maximum values of UV Face parameters are out of UVLimit. In such case, the class does not collect these parameter values. |
|
Dear msv, could you please put the attached file in test data base repository. Thank you in advance |
|
Done. |
|
Branch CR29356 has been updated by nds. SHA-1: e5fcecef98a02686b1af3e89f68df00748b690f7 Detailed log of new commits: Author: nds Date: Wed Jan 31 13:09:28 2018 +0300 0029356: Modeling Algorithms - GCPnts_TangentialDeflection hangs on specific curve #script input file is renamed to bug29356.igs |
|
Branch CR29356_1 has been created by nds. SHA-1: ede4b01ea880530ea2af096ab75003746db4ead5 Detailed log of new commits: Author: nds Date: Mon Jan 29 11:19:36 2018 +0300 0029356: Modeling Algorithms - GCPnts_TangentialDeflection hangs on specific curve While UV Iso parameters are obtained in StdPrs_Isolines, UV limits should be applied only if face bounds has infinite values. In the issue case, the UV values are greater than UVLimits and not infinite. This fix makes possible to have correct Iso lines in presentation without modification of UV limits beforehead. |
|
bug29356.igs (24,108 bytes) |
|
Dear msv, could you please review the issue. Build on jenkins is: http://jenkins-test-10.nnov.opencascade.com/view/CR29356-master-NDS/ Thank you in advance. |
|
Please consider verbal remarks. |
|
Branch CR29356_1 has been updated by nds. SHA-1: 1aba1c08c0d54d82ada83488ecfea040da316217 Detailed log of new commits: Author: nds Date: Mon Mar 5 10:29:13 2018 +0300 # correcting condition to process each limit independently # providing additional v3d test cases for visos command and setMaxParamValue parameter of vaspects command. |
|
Branch CR29356_2 has been created by nds. SHA-1: 0460b2cdb1712968635c4c6b4938bbea1a4a0798 Detailed log of new commits: Author: nds Date: Mon Jan 29 11:19:36 2018 +0300 0029356: Modeling Algorithms - GCPnts_TangentialDeflection hangs on specific curve While UV Iso parameters are obtained in StdPrs_Isolines, UV limits should be applied only if face bounds has infinite values. In the issue case, the UV values are greater than UVLimits and not infinite. This fix makes possible to have correct Iso lines in presentation without modification of UV limits beforehead. |
|
Please, review modifications http://jenkins-test-10.nnov.opencascade.com:8080/view/CR29356_2-master-NDS |
|
The code looks ugly:+ if (Precision::IsInfinite (aUmin)) + aUmin = Max (aUmin, -theUVLimit); It should be changed so: + if (Precision::IsInfinite (aUmin)) + aUmin = -theUVLimit; The test bugs/modalg_7/bug29356_1 seems to repeat the new script v3d/face/G2. Please remove duplicate. |
|
Branch CR29356_2 has been updated by nds. SHA-1: 1fc79a99562eb7ef7032d9bad2e1f79809ca2e41 Detailed log of new commits: Author: nds Date: Wed Mar 7 10:11:32 2018 +0300 # correcting by the issue remarks: simplify code conditions, remove duplicated test case |
|
Branch CR29356_3 has been created by nds. SHA-1: 3f56107bfe9e0c23a6c1e37ebf144b64da3776c4 Detailed log of new commits: Author: nds Date: Mon Jan 29 11:19:36 2018 +0300 0029356: Modeling Algorithms - GCPnts_TangentialDeflection hangs on specific curve While UV Iso parameters are obtained in StdPrs_Isolines, UV limits should be applied only if face bounds has infinite values. In the issue case, the UV values are greater than UVLimits and not infinite. This fix makes possible to have correct Iso lines in presentation without modification of UV limits beforehead. |
|
Branch CR29356_3 has been updated by nds. SHA-1: e612867e5579b35ffd493eec49779c3b9ce5020a Detailed log of new commits: Author: nds Date: Wed Mar 7 14:38:05 2018 +0300 # correcting test case to dump result without automatic fit view |
|
Branch CR29356_3 has been updated by nds. SHA-1: ed5ec94e00aa605a9d350f9b9f3d524cdfdaf026 Detailed log of new commits: Author: nds Date: Wed Mar 7 15:02:23 2018 +0300 # correcting test case to dump result without automatic fit view |
|
Please, review modifications http://jenkins-test-10.nnov.opencascade.com/view/CR29356_3-master-NDS/ |
|
Reviewed. |
|
Combination - OCCT branch : CR29356_3 SHA - 3f56107bfe9e0c23a6c1e37ebf144b64da3776c4 Products branch : master SHA - 4fd289ec73d35d02f23f3990c73b3acac9a60574 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: Debian70-64: OCCT Total CPU difference: 18309.269999999546 / 18338.37999999957 [-0.16%] Products Total CPU difference: 7488.200000000005 / 7461.340000000009 [+0.36%] Windows-64-VC10: OCCT Total CPU difference: 17709.264720198506 / 17653.338361698563 [+0.32%] Products Total CPU difference: 8014.644975599993 / 7990.761222500007 [+0.30%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR29356 has been deleted by kgv. SHA-1: e5fcecef98a02686b1af3e89f68df00748b690f7 |
|
Branch CR29356_1 has been deleted by kgv. SHA-1: 1aba1c08c0d54d82ada83488ecfea040da316217 |
|
Branch CR29356_2 has been deleted by kgv. SHA-1: 1fc79a99562eb7ef7032d9bad2e1f79809ca2e41 |
|
Branch CR29356_3 has been deleted by kgv. SHA-1: ed5ec94e00aa605a9d350f9b9f3d524cdfdaf026 |
occt: master d4efee2b 2018-01-29 08:19:36 Committer: bugmaster Details Diff |
0029356: Modeling Algorithms - GCPnts_TangentialDeflection hangs on specific curve While UV Iso parameters are obtained in StdPrs_Isolines, UV limits should be applied only if face bounds has infinite values. In the issue case, the UV values are greater than UVLimits and not infinite. This fix makes possible to have correct Iso lines in presentation without modification of UV limits beforehead. |
Affected Issues 0029356 |
|
mod - src/StdPrs/StdPrs_Isolines.cxx | Diff File | ||
add - tests/v3d/face/G1 | Diff File | ||
add - tests/v3d/face/G2 | Diff File | ||
add - tests/v3d/face/G3 | Diff File | ||
add - tests/v3d/face/G4 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-11-30 08:36 | kgv | New Issue | |
2017-11-30 08:36 | kgv | Assigned To | => msv |
2017-11-30 08:36 | kgv | File Added: ProblemModel.igs | |
2017-11-30 08:37 | kgv | Product Version | 7.2.0 => 7.0.0 |
2017-11-30 08:37 | kgv | Description Updated | |
2017-11-30 10:49 |
|
Note Added: 0072607 | |
2017-11-30 10:56 |
|
Note Added: 0072609 | |
2017-12-26 21:53 | kgv | Note Added: 0073159 | |
2017-12-27 09:30 |
|
Note Added: 0073161 | |
2017-12-27 09:32 |
|
Note Added: 0073162 | |
2017-12-27 10:02 |
|
Note Added: 0073163 | |
2017-12-27 10:02 |
|
Assigned To | msv => nds |
2017-12-27 10:02 |
|
Status | new => assigned |
2018-01-29 11:27 | git | Note Added: 0073641 | |
2018-01-29 12:33 | git | Note Added: 0073644 | |
2018-01-29 12:34 | nds | File Deleted: ProblemModel.igs | |
2018-01-29 12:34 | nds | File Added: OCC29356.igs | |
2018-01-29 12:36 | nds | Note Added: 0073646 | |
2018-01-29 12:58 |
|
Note Added: 0073648 | |
2018-01-31 13:07 | nds | File Deleted: OCC29356.igs | |
2018-01-31 13:09 | git | Note Added: 0073694 | |
2018-01-31 13:24 | git | Note Added: 0073695 | |
2018-01-31 13:25 | nds | File Added: bug29356.igs | |
2018-01-31 13:26 | nds | Note Added: 0073697 | |
2018-01-31 13:26 | nds | Assigned To | nds => msv |
2018-01-31 13:26 | nds | Status | assigned => resolved |
2018-01-31 17:25 |
|
Note Added: 0073705 | |
2018-01-31 17:25 |
|
Assigned To | msv => nds |
2018-01-31 17:25 |
|
Status | resolved => assigned |
2018-03-05 10:29 | git | Note Added: 0074244 | |
2018-03-05 10:39 | git | Note Added: 0074245 | |
2018-03-05 15:41 | nds | Note Added: 0074254 | |
2018-03-05 15:41 | nds | Assigned To | nds => msv |
2018-03-05 15:41 | nds | Status | assigned => resolved |
2018-03-05 15:41 | nds | Target Version | 7.4.0 => 7.3.0 |
2018-03-07 09:50 |
|
Note Added: 0074337 | |
2018-03-07 09:50 |
|
Assigned To | msv => nds |
2018-03-07 09:50 |
|
Status | resolved => assigned |
2018-03-07 10:11 | git | Note Added: 0074339 | |
2018-03-07 10:16 | git | Note Added: 0074340 | |
2018-03-07 14:38 | git | Note Added: 0074350 | |
2018-03-07 15:02 | git | Note Added: 0074351 | |
2018-03-07 15:14 | nds | Note Added: 0074352 | |
2018-03-07 15:14 | nds | Assigned To | nds => msv |
2018-03-07 15:14 | nds | Status | assigned => resolved |
2018-03-07 15:47 |
|
Note Added: 0074356 | |
2018-03-07 15:47 |
|
Assigned To | msv => bugmaster |
2018-03-07 15:47 |
|
Status | resolved => reviewed |
2018-03-07 16:21 | bugmaster | Test case number | => v3d face G1, v3d face G2, v3d face G3, v3d face G4 |
2018-03-07 16:24 | bugmaster | Note Added: 0074358 | |
2018-03-07 16:24 | bugmaster | Status | reviewed => tested |
2018-03-18 13:21 | bugmaster | Changeset attached | => occt master d4efee2b |
2018-03-18 13:21 | bugmaster | Status | tested => verified |
2018-03-18 13:21 | bugmaster | Resolution | open => fixed |
2018-03-19 10:05 | git | Note Added: 0074601 | |
2018-03-19 10:05 | git | Note Added: 0074602 | |
2018-03-19 10:05 | git | Note Added: 0074603 | |
2018-03-19 10:05 | git | Note Added: 0074604 | |
2018-06-29 21:16 |
|
Fixed in Version | => 7.3.0 |
2018-06-29 21:21 |
|
Status | verified => closed |