X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMImpl%2FGEOMImpl_ProjectionDriver.cxx;h=5195bb8c874facbf666c3d8e624c6f4a1bbef145;hb=2736f682fe0d63fbaf9dff49c46b4fa6c23d72ce;hp=db0fae3496395fbd10559987dc381c6985eeeb17;hpb=29dfaa447450872cc5f5fbb57419e83aa9fd2cff;p=modules%2Fgeom.git diff --git a/src/GEOMImpl/GEOMImpl_ProjectionDriver.cxx b/src/GEOMImpl/GEOMImpl_ProjectionDriver.cxx index db0fae349..5195bb8c8 100644 --- a/src/GEOMImpl/GEOMImpl_ProjectionDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ProjectionDriver.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -93,7 +93,7 @@ GEOMImpl_ProjectionDriver::GEOMImpl_ProjectionDriver() //function : Execute //purpose : //======================================================================= -Standard_Integer GEOMImpl_ProjectionDriver::Execute(TFunction_Logbook& log) const +Standard_Integer GEOMImpl_ProjectionDriver::Execute(Handle(TFunction_Logbook)& log) const { if (Label().IsNull()) return 0; Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction(Label()); @@ -160,7 +160,7 @@ Standard_Integer GEOMImpl_ProjectionDriver::Execute(TFunction_Logbook& log) cons Standard_ConstructionError::Raise("No solution found"); } - Quantity_Parameter U, V; + Standard_Real U, V; proj.LowerDistanceParameters(U, V); gp_Pnt2d aProjPnt (U, V); @@ -170,7 +170,7 @@ Standard_Integer GEOMImpl_ProjectionDriver::Execute(TFunction_Logbook& log) cons bool isSol = false; double minDist = RealLast(); for (int i = 1; i <= nbPoints; i++) { - Quantity_Parameter Ui, Vi; + Standard_Real Ui, Vi; proj.Parameters(i, Ui, Vi); aProjPnt = gp_Pnt2d(Ui, Vi); aClsf.Perform(aFace, aProjPnt, tol); @@ -220,9 +220,8 @@ Standard_Integer GEOMImpl_ProjectionDriver::Execute(TFunction_Logbook& log) cons try { OrtProj.Build(); - } catch (Standard_Failure) { - Handle(Standard_Failure) aFail = Standard_Failure::Caught(); - TCollection_AsciiString aMsg (aFail->GetMessageString()); + } catch (Standard_Failure& aFail) { + TCollection_AsciiString aMsg (aFail.GetMessageString()); if (!aMsg.Length()) aMsg = "Projection aborted : possibly the source shape intersects the cylinder's axis"; Standard_ConstructionError::Raise(aMsg.ToCString()); @@ -247,7 +246,7 @@ Standard_Integer GEOMImpl_ProjectionDriver::Execute(TFunction_Logbook& log) cons if (aShape.IsNull()) return 0; aFunction->SetValue(aShape); - log.SetTouched(Label()); + log->SetTouched(Label()); } else if (aType == PROJECTION_ON_WIRE) { // Perform projection of point on a wire or an edge. GEOMImpl_IProjection aProj (aFunction); @@ -709,7 +708,7 @@ TopoDS_Shape GEOMImpl_ProjectionDriver::projectOnCylinder } // Transform the curve to cylinder's parametric space. - GEOMUtils::Handle(HTrsfCurve2d) aTrsfCurve = + Handle(GEOMUtils::HTrsfCurve2d) aTrsfCurve = new GEOMUtils::HTrsfCurve2d(aCurve, aPar[0], aPar[1], aTrsf2d); Approx_Curve2d aConv (aTrsfCurve, aPar[0], aPar[1], aUResol, aVResol, GeomAbs_C1, @@ -799,5 +798,4 @@ TopoDS_Shape GEOMImpl_ProjectionDriver::projectOnCylinder return aResult; } -IMPLEMENT_STANDARD_HANDLE (GEOMImpl_ProjectionDriver,GEOM_BaseDriver); IMPLEMENT_STANDARD_RTTIEXT (GEOMImpl_ProjectionDriver,GEOM_BaseDriver);