View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0031074 | Open CASCADE | OCCT:Data Exchange | public | 2019-10-17 10:02 | 2020-12-02 17:12 |
Reporter | kgv | Assigned To | bugmaster | ||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Product Version | 7.4.0 | ||||
Target Version | 7.5.0 | Fixed in Version | 7.5.0 | ||
Summary | 0031074: Data Exchange - RWMesh_CafReader::addShapeIntoDoc() incorrectly assigns sub-shapes within recursion | ||||
Description | RWMesh_CafReader::addShapeIntoDoc() (and JTCAFControl_Reader::addShapeIntoDoc()) incorrectly implements recursion while assigning attributes to sub-shapes:Standard_Boolean RWMesh_CafReader::addShapeIntoDoc (const TopoDS_Shape& theShape, const TDF_Label& theLabel, const TCollection_AsciiString& theParentName) ... // add shape as sub-shape aNewLabel = aShapeTool->AddSubShape (theLabel, theShape); if (!aNewLabel.IsNull()) { Handle(XCAFDoc_ShapeMapTool) aShapeMapTool = XCAFDoc_ShapeMapTool::Set (aNewLabel); aShapeMapTool->SetShape (theShape); } ... // store sub-shapes (iterator is set to ignore Location) TCollection_AsciiString aDummyName; for (TopoDS_Iterator aSubShapeIter (theShape, Standard_True, Standard_False); aSubShapeIter.More(); aSubShapeIter.Next()) { addShapeIntoDoc (aSubShapeIter.Value(), aNewRefLabel, aDummyName); } so that when sub-shape also has sub-shapes, the method tries adding them as sub-shape to parent shape. Based on description from XCAF team, this is incorrect - sub-shapes should be added as plain list of Component, not recursively on labels of sub-shapes; so that addShapeIntoDoc() should be called with Component label and not Sub-shape parent shape label. In addition, it is desired NOT adding dedicated sub-shape labels in case, when it has no special attribute (color, name, metadata) to avoid redundant information in XCAF document. Note that existing RWMesh_CafReader implementations RWGltf_CafReader and RWObj_CafReader fill the document with hierarchy of Compounds with Faces - so that the issue with sub-shapes and lost attributes should not practically happen. But this might become an issue in future - hence, should be fixed. JTCAFControl_Reader contains code duplication of RWMesh_CafReader, so it might be worth sub-classing and revising JTCAFControl_Reader in scope of this or another issue. | ||||
Tags | No tags attached. | ||||
Test case number | |||||
Date Modified | Username | Field | Change |
---|---|---|---|
2019-10-17 10:02 | kgv | New Issue | |
2019-10-17 10:02 | kgv | Assigned To | => gka |
2019-10-17 10:03 | kgv | Relationship added | child of 0030692 |
2020-09-11 17:49 |
|
Target Version | 7.5.0 => 7.6.0 |
2020-09-11 19:45 | kgv | Note Added: 0094514 | |
2020-09-11 19:45 | kgv | Assigned To | gka => bugmaster |
2020-09-11 19:45 | kgv | Status | new => feedback |
2020-09-11 19:45 | kgv | Target Version | 7.6.0 => 7.5.0 |
2020-09-14 10:43 | bugmaster | Status | feedback => verified |
2020-09-14 10:43 | bugmaster | Resolution | open => fixed |
2020-12-02 16:40 |
|
Fixed in Version | => 7.5.0 |
2020-12-02 17:12 |
|
Status | verified => closed |