Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0031074Open CASCADE[OCCT] OCCT:Data Exchangepublic2019-10-17 10:022020-12-02 17:12
Assigned Tobugmaster 
PlatformOSOS Version
Product Version[OCCT] 7.4.0 
Target Version[OCCT] 7.5.0Fixed in Version[OCCT] 7.5.0 
Summary0031074: Data Exchange - RWMesh_CafReader::addShapeIntoDoc() incorrectly assigns sub-shapes within recursion
DescriptionRWMesh_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(); 
    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.
TagsNo tags attached.
Test case number
Attached Files

- Relationships
child of 0030692closedbugmaster Open CASCADE Data Exchange - introduce base framework RWMesh for importing mesh data formats into XDE document 

-  Notes
kgv (developer)
2020-09-11 19:45

Dear bugmaster,

the issue has been fixed in scope of #0030945.
Please switch this bug to VERIFIED state.

- Issue History
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 related to 0031069
2019-10-17 10:03 kgv Relationship added child of 0030692
2019-10-17 10:03 kgv Relationship added related to 0029890
2020-09-11 17:49 gka Target Version 7.5.0 => 7.6.0*
2020-09-11 19:43 kgv Relationship added related to 0030945
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 emo Fixed in Version => 7.5.0
2020-12-02 17:12 emo Status verified => closed

Copyright © 2000 - 2021 MantisBT Team
Powered by Mantis Bugtracker