From: msv Date: Tue, 24 Jan 2017 09:29:02 +0000 (+0300) Subject: 0028325: Unnecessary copying of surface X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=d2c3d328efbd79697827514c36c064c07ed8cbe8;p=occt-copy.git 0028325: Unnecessary copying of surface Giving up creation of new adaptor of the surface without real need. Using the available adaptor instead. --- diff --git a/src/ProjLib/ProjLib_ComputeApproxOnPolarSurface.cxx b/src/ProjLib/ProjLib_ComputeApproxOnPolarSurface.cxx index 4b410a518d..cfc883989e 100644 --- a/src/ProjLib/ProjLib_ComputeApproxOnPolarSurface.cxx +++ b/src/ProjLib/ProjLib_ComputeApproxOnPolarSurface.cxx @@ -345,29 +345,13 @@ static gp_Pnt2d Function_Value(const Standard_Real theU, if((Usup - U0) > uLittle) uSupLi = U0 + uLittle; else uSupLi = Usup; if((Vsup - V0) > vLittle) vSupLi = V0 + vLittle; else vSupLi = Vsup; - GeomAdaptor_Surface SurfLittle; - if (Type == GeomAbs_BSplineSurface) - { - Handle(Geom_Surface) GBSS(theData.mySurf->Surface().BSpline()); - SurfLittle.Load(GBSS, uInfLi, uSupLi, vInfLi, vSupLi); - } - else if (Type == GeomAbs_BezierSurface) - { - Handle(Geom_Surface) GS(theData.mySurf->Surface().Bezier()); - SurfLittle.Load(GS, uInfLi, uSupLi, vInfLi, vSupLi); - } - else if (Type == GeomAbs_OffsetSurface) - { - Handle(Geom_Surface) GS = GeomAdaptor::MakeSurface(theData.mySurf->Surface()); - SurfLittle.Load(GS, uInfLi, uSupLi, vInfLi, vSupLi); - } - else + if (Type != GeomAbs_BSplineSurface && Type != GeomAbs_BezierSurface && Type != GeomAbs_OffsetSurface) { Standard_NoSuchObject::Raise(""); } // Try to run simple search with initial point (U0, V0). - Extrema_GenLocateExtPS locext(SurfLittle, theData.myTolU, theData.myTolV); + Extrema_GenLocateExtPS locext(theData.mySurf->Surface(), theData.myTolU, theData.myTolV); locext.Perform(p, U0, V0); if (locext.IsDone()) { @@ -382,7 +366,7 @@ static gp_Pnt2d Function_Value(const Standard_Real theU, } // Perform whole param space search. - Extrema_ExtPS ext(p, SurfLittle, theData.myTolU, theData.myTolV); + Extrema_ExtPS ext(p, theData.mySurf->Surface(), theData.myTolU, theData.myTolV); if (ext.IsDone() && ext.NbExt() >= 1) { Dist2Min = ext.SquareDistance(1);