From 784bf6d4b9f1d551eeb92fef7a2e6f7c2cbdf269 Mon Sep 17 00:00:00 2001 From: ikochetkova Date: Tue, 22 Apr 2025 18:01:06 +0100 Subject: [PATCH] Data Exchange, IGES Export - Missing Model Curves in transfer cache #483 Check if the curve was already created and use it. Works for shared edges cases. --- src/BRepToIGESBRep/BRepToIGESBRep_Entity.cxx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/BRepToIGESBRep/BRepToIGESBRep_Entity.cxx b/src/BRepToIGESBRep/BRepToIGESBRep_Entity.cxx index 586f67291f..266abaf2fb 100644 --- a/src/BRepToIGESBRep/BRepToIGESBRep_Entity.cxx +++ b/src/BRepToIGESBRep/BRepToIGESBRep_Entity.cxx @@ -317,6 +317,13 @@ Handle(IGESData_IGESEntity) BRepToIGESBRep_Entity::TransferShape( Handle(IGESData_IGESEntity) BRepToIGESBRep_Entity::TransferEdge(const TopoDS_Edge& myedge) { + Standard_Integer anInd = IndexEdge(myedge); + if (anInd != 0) + { + Handle(IGESData_IGESEntity) ICurve3d = Handle(IGESData_IGESEntity)::DownCast(myCurves(anInd)); + if (!ICurve3d.IsNull()) + return ICurve3d; + } BRepToIGES_BRWire BR(*this); BR.SetModel(GetModel()); TopTools_DataMapOfShapeShape anEmptyMap;