]> OCCT Git - occt.git/commitdiff
0033703: Data Exchange, Step Export - Transfer edge speed improvement IR-2024-09-06
authordpasukhi <dpasukhi@opencascade.com>
Fri, 6 Sep 2024 20:22:00 +0000 (20:22 +0000)
committerdpasukhi <dpasukhi@opencascade.com>
Fri, 6 Sep 2024 20:22:00 +0000 (20:22 +0000)
Move optional code close to use case to avoid extra calculation

src/TopoDSToStep/TopoDSToStep_MakeStepEdge.cxx

index dcf86c2ddb73699e26e44f4aa37c87402b461f06..b5696cc101ae6626e4778b99b35961ab0eee337d 100644 (file)
@@ -134,9 +134,6 @@ void TopoDSToStep_MakeStepEdge::Init(const TopoDS_Edge& aEdge,
     if ( count < 2 ) isSeam = Standard_False;
   }
 
-  BRepAdaptor_Curve   CA = BRepAdaptor_Curve(aEdge);
-  BRepAdaptor_Surface SA = BRepAdaptor_Surface(aTool.CurrentFace());
-
   if (aEdge.Orientation() == TopAbs_INTERNAL  ||
       aEdge.Orientation() == TopAbs_EXTERNAL ) {
     Handle(TransferBRep_ShapeMapper) errShape =
@@ -184,7 +181,7 @@ void TopoDSToStep_MakeStepEdge::Init(const TopoDS_Edge& aEdge,
   // ---------------------------------------
   // Translate 3D representation of the Edge
   // ---------------------------------------
-  
+  BRepAdaptor_Curve CA = BRepAdaptor_Curve(aEdge);
   Handle(StepGeom_Curve) Gpms;
   Handle(Geom_Curve) C = CA.Curve().Curve();
  
@@ -262,6 +259,8 @@ void TopoDSToStep_MakeStepEdge::Init(const TopoDS_Edge& aEdge,
 #ifdef OCCT_DEBUG
     std::cout << "Warning: TopoDSToStep_MakeStepEdge: edge without 3d curve; creating..." << std::endl;
 #endif
+    BRepAdaptor_Surface SA = BRepAdaptor_Surface(aTool.CurrentFace());
+
     if ((SA.GetType() == GeomAbs_Plane) &&
        (CA.GetType() == GeomAbs_Line)) {
       U1 = CA.FirstParameter();