X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGeomAPI%2FGeomAPI_Circ.cpp;h=807390364369856c4603231a1c8cb01d0d3690c3;hb=9e10a25021a539ae9bb44e85e244a8e3fa8119ed;hp=811ef698b29cbd17d3ea1aafe52440da07a4670c;hpb=a0366082107c7651476fa984d9f238556ba34d05;p=modules%2Fshaper.git diff --git a/src/GeomAPI/GeomAPI_Circ.cpp b/src/GeomAPI/GeomAPI_Circ.cpp index 811ef698b..807390364 100644 --- a/src/GeomAPI/GeomAPI_Circ.cpp +++ b/src/GeomAPI/GeomAPI_Circ.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: GeomAPI_Circ2cpp // Created: 24 Jun 2014 // Author: Artem ZHIDKOV @@ -16,26 +18,23 @@ #define MY_CIRC static_cast(myImpl) -static gp_Circ* newCirc(const gp_Pnt& theCenter, - const gp_Dir& theDir, - const double theRadius) +static gp_Circ* newCirc(const gp_Pnt& theCenter, const gp_Dir& theDir, const double theRadius) { return new gp_Circ(gp_Ax2(theCenter, theDir), theRadius); } -GeomAPI_Circ::GeomAPI_Circ(const boost::shared_ptr& theCenter, - const boost::shared_ptr& theDir, - double theRadius) - : GeomAPI_Interface(newCirc(theCenter->impl(), - theDir->impl(), theRadius)) +GeomAPI_Circ::GeomAPI_Circ(const std::shared_ptr& theCenter, + const std::shared_ptr& theDir, double theRadius) + : GeomAPI_Interface(newCirc(theCenter->impl(), theDir->impl(), theRadius)) { } -const boost::shared_ptr GeomAPI_Circ::project(const boost::shared_ptr& thePoint) const +const std::shared_ptr GeomAPI_Circ::project( + const std::shared_ptr& thePoint) const { - boost::shared_ptr aResult; + std::shared_ptr aResult; if (!MY_CIRC) - return aResult; + return aResult; Handle(Geom_Circle) aCircle = new Geom_Circle(*MY_CIRC); @@ -43,21 +42,28 @@ const boost::shared_ptr GeomAPI_Circ::project(const boost::shared_p GeomAPI_ProjectPointOnCurve aProj(aPoint, aCircle); Standard_Integer aNbPoint = aProj.NbPoints(); - if (aNbPoint > 0) - { + if (aNbPoint > 0) { double aMinDistance = 0, aDistance; - for (Standard_Integer j = 1; j <= aNbPoint; j++) - { + for (Standard_Integer j = 1; j <= aNbPoint; j++) { gp_Pnt aNewPoint = aProj.Point(j); aDistance = aNewPoint.Distance(aPoint); - if (!aMinDistance || aDistance < aMinDistance) - { + if (!aMinDistance || aDistance < aMinDistance) { aMinDistance = aDistance; - aResult = boost::shared_ptr( - new GeomAPI_Pnt(aNewPoint.X(), aNewPoint.Y(), aNewPoint.Z())); + aResult = std::shared_ptr( + new GeomAPI_Pnt(aNewPoint.X(), aNewPoint.Y(), aNewPoint.Z())); } } } return aResult; } +const std::shared_ptr GeomAPI_Circ::center() const +{ + const gp_Pnt& aCenter = MY_CIRC->Location(); + return std::shared_ptr(new GeomAPI_Pnt(aCenter.X(), aCenter.Y(), aCenter.Z())); +} + +double GeomAPI_Circ::radius() const +{ + return MY_CIRC->Radius(); +}