diff --git a/src/RWMesh/RWMesh_CafReader.cxx b/src/RWMesh/RWMesh_CafReader.cxx index d1086ff15b..aa2f2f9128 100644 --- a/src/RWMesh/RWMesh_CafReader.cxx +++ b/src/RWMesh/RWMesh_CafReader.cxx @@ -383,6 +383,16 @@ Standard_Boolean RWMesh_CafReader::addShapeIntoDoc (CafDocumentTools& theTools, return Standard_False; } + if (toMakeAssembly) + { + TDF_Label aRefLabel; + theTools.ShapeTool->GetReferredShape(aNewLabel, aRefLabel); + if (!aRefLabel.IsNull()) + { + theTools.OriginalShapeMap.Bind(theShape, aRefLabel); + } + } + // if new label is a reference get referred shape TDF_Label aNewRefLabel = aNewLabel; theTools.ShapeTool->GetReferredShape (aNewLabel, aNewRefLabel); diff --git a/src/RWMesh/RWMesh_CafReader.hxx b/src/RWMesh/RWMesh_CafReader.hxx index 5e93d60b3e..f1bc35edcb 100644 --- a/src/RWMesh/RWMesh_CafReader.hxx +++ b/src/RWMesh/RWMesh_CafReader.hxx @@ -57,6 +57,7 @@ public: Handle(XCAFDoc_ColorTool) ColorTool; Handle(XCAFDoc_VisMaterialTool) VisMaterialTool; NCollection_DataMap ComponentMap; + NCollection_DataMap OriginalShapeMap; }; public: