MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0031144Open CASCADE[OCCT] OCCT:Shape Healingpublic2019-11-09 08:202019-11-16 18:11
Reporterabv 
Assigned Tobugmaster 
PrioritynormalSeverityblock 
StatusverifiedResolutionfixed 
PlatformOSOS Version
Product Version[OCCT] 7.4.0 
Target Version[OCCT] 7.5.0*Fixed in Version 
Summary0031144: Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid obtained from IFC
DescriptionBRepMesh hangs on one of solids created during reading from IFC with OCC reader.
This blocks any possibility to see the model in CAD Assistant or other OCCT-based viewer.

This is regression appeared in OCCT 7.4.0.

The solid is valid according to checkshape but has large tolerance (90 mm, on object of ~ 300 mm size) and visible gaps in edges + misplaced vertex, see attached image.

The IFC files comes from Duraark archives (http://duraark.eu/data-repository/ [^]), archive "A-House Scan September 2014" (https://tib.eu/data/duraark/BuildingData/03_IFC_E57/LTU_A-House_2014-09-25_ifc.zip [^]), file LTU_A-House_redesign.ifc, solid 4081 (no information on original entity).
Steps To Reproducepload ALL
restore LTU_A-House_redesign_so4081.brep a
incmesh a 1.
TagsNo tags attached.
Test case numberbugs/mesh/bug31144
Attached Files? file icon LTU_A-House_redesign_so4081.brep (17,661 bytes) 2019-11-09 08:20
png file icon LTU_A-House_redesign_so4081.png (8,809 bytes) 2019-11-09 08:21

- Relationships

-  Notes
(0088883)
oan (developer)
2019-11-10 19:04

It is strange that checkshape reports nothing, whereas bopargcheck notifies a lot of failures:

bopargcheck a #F
Made faulty shape: s1si_1
Made faulty shape: s1si_2
Made faulty shape: s1si_3
Made faulty shape: s1si_4
Made faulty shape: s1si_5
Made faulty shape: s1si_6
Made faulty shape: s1si_7
Made faulty shape: s1si_8
Made faulty shape: s1si_9
Made faulty shape: s1si_10
Made faulty shape: s1si_11
Made faulty shape: s1si_12
Made faulty shape: s1si_13
Made faulty shape: s1si_14
Made faulty shape: s1si_15
Made faulty shape: s1si_16
Made faulty shape: s1si_17
Made faulty shape: s1si_18
Made faulty shape: s1si_19
Made faulty shape: s1si_20
Made faulty shape: s1si_21
Made faulty shape: s1si_22
Made faulty shape: s1si_23
Made faulty shape: s1si_24
Made faulty shape: s1si_25
Made faulty shape: s1si_26
Made faulty shape: s1si_27
Made faulty shape: s1si_28
Made faulty shape: s1si_29
Made faulty shape: s1si_30
Made faulty shape: s1si_31
Made faulty shape: s1si_32
Made faulty shape: s1se_1
Made faulty shape: s1se_2
Made faulty shape: s1se_3
Made faulty shape: s1se_4
Faulties for FIRST shape found : 36
---------------------------------
Shapes are not suppotrted by BOP: NO
Self-Intersections : YES Cases(32) Total shapes(64)
Check for SI has been aborted : NO
Too small edges : YES Cases(4) Total shapes(4)
Bad faces : NO
Too close vertices : DISABLED
Too close edges : DISABLED
Shapes with Continuity C0 : NO
Invalid Curve on Surface : NO

Faulties for SECOND shape found : 0

However, issue should be checked in context of BRepMesh anyway.
(0088884)
oan (developer)
2019-11-10 21:07

Dear Andrey,

preliminary analysis has shown that issue with hang on attached model is caused by

ShapeAnalysis::OuterWire (theFace);

called from BRepMesh_ShapeVisitor::Visit (const TopoDS_Face& theFace).

This means that issue by its nature is not a problem of BRepMesh, but Shape Healing regression.

Please move the ticket to Shape Healing category and assign to proper person for further processing.
(0088885)
oan (developer)
2019-11-10 22:17

In details, ShapeAnalysis::OuterWire causes infinite loop if first sub-shape is not a wire due to lack of proper iterator move after this particular check.
(0088886)
oan (developer)
2019-11-10 22:26

Potentially, this issue will cause hang up of any algorithm using ShapeAnalysis::OuterWire, so it should be checked by an expert in order to provide an appropriate fix.
(0088921)
git (administrator)
2019-11-12 19:13

Branch CR31144 has been created by abv.

SHA-1: 40125556fe489fcb0a862a7f6ccc43dd2a72f81b


Detailed log of new commits:

Author: abv
Date: Tue Nov 12 19:10:14 2019 +0300

    0031144: Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid obtained from IFC
    
    Implementation of ShapeAnalysis::OuterWire() is revised to avoid infinite cycle if face contains internal vertex.
(0088925)
git (administrator)
2019-11-12 23:17

Branch CR31144 has been updated by abv.

SHA-1: e6764f9969f1760dca248568767e6765cd1bb888


Detailed log of new commits:

Author: abv
Date: Tue Nov 12 23:15:55 2019 +0300

    Added test bugs mesh bug31144

(0088926)
abv (manager)
2019-11-12 23:17

Fix is pushed to CR3144 and tested, see Jenkins job CR3144-abv; please review
(0088982)
gka (developer)
2019-11-15 10:07

Branch CR31144 was reviewed
(0089022)
git (administrator)
2019-11-16 18:11

Branch CR31144 has been deleted by inv.

SHA-1: e6764f9969f1760dca248568767e6765cd1bb888

- Related Changesets
occt: master 31a5a359
Timestamp: 2019-11-12 16:10:14
Author: abv
Committer: bugmaster
Details ] Diff ]
0031144: Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid obtained from IFC

Implementation of ShapeAnalysis::OuterWire() is revised to avoid infinite cycle if face contains internal vertex.
mod - src/ShapeAnalysis/ShapeAnalysis.cxx Diff ] File ]
add - tests/bugs/mesh/bug31144 Diff ] File ]

- Issue History
Date Modified Username Field Change
2019-11-09 08:20 abv New Issue
2019-11-09 08:20 abv Assigned To => oan
2019-11-09 08:20 abv File Added: LTU_A-House_redesign_so4081.brep
2019-11-09 08:21 abv File Added: LTU_A-House_redesign_so4081.png
2019-11-10 19:04 oan Note Added: 0088883
2019-11-10 21:07 oan Note Added: 0088884
2019-11-10 21:07 oan Assigned To oan => abv
2019-11-10 21:07 oan Status new => assigned
2019-11-10 22:17 oan Note Added: 0088885
2019-11-10 22:26 oan Note Added: 0088886
2019-11-11 12:39 oan Status assigned => feedback
2019-11-12 15:06 oan Category OCCT:Mesh => OCCT:Shape Healing
2019-11-12 15:06 oan Summary Mesh - [regression] BRepMesh hangs on solid obtained from IFC => Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid obtained from IFC
2019-11-12 19:13 git Note Added: 0088921
2019-11-12 19:27 abv Status feedback => assigned
2019-11-12 23:17 git Note Added: 0088925
2019-11-12 23:17 abv Note Added: 0088926
2019-11-12 23:17 abv Assigned To abv => gka
2019-11-12 23:17 abv Status assigned => resolved
2019-11-12 23:17 abv Steps to Reproduce Updated View Revisions
2019-11-13 08:36 abv Description Updated View Revisions
2019-11-15 10:07 gka Note Added: 0088982
2019-11-15 10:07 gka Assigned To gka => bugmaster
2019-11-15 10:07 gka Status resolved => reviewed
2019-11-15 16:39 bugmaster Test case number => bugs/mesh/bug31144
2019-11-16 17:57 bugmaster Changeset attached => occt master 31a5a359
2019-11-16 17:57 bugmaster Status reviewed => verified
2019-11-16 17:57 bugmaster Resolution open => fixed
2019-11-16 18:11 git Note Added: 0089022


Copyright © 2000 - 2019 MantisBT Team
Powered by Mantis Bugtracker