X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGeomAPI%2FGeomAPI_Ellipse.h;h=9f1be781af3dea9784c609ebe2acef484e164b5e;hb=ea593bc59e7e9461f6c4e2afd3f24d621edb1011;hp=d201d127ac22b2204e879b97be66ccab31035b4a;hpb=a299eecbf62594492e777394588e4cf2e6ba11c3;p=modules%2Fshaper.git diff --git a/src/GeomAPI/GeomAPI_Ellipse.h b/src/GeomAPI/GeomAPI_Ellipse.h index d201d127a..9f1be781a 100644 --- a/src/GeomAPI/GeomAPI_Ellipse.h +++ b/src/GeomAPI/GeomAPI_Ellipse.h @@ -1,4 +1,21 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D +// Copyright (C) 2017-2019 CEA/DEN, EDF R&D +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // File: GeomAPI_Ellipse.h // Created: 25 April 2017 @@ -10,8 +27,10 @@ #include #include -class GeomAPI_Pnt; class GeomAPI_Ax2; +class GeomAPI_Curve; +class GeomAPI_Dir; +class GeomAPI_Pnt; /**\class GeomAPI_Ellipse @@ -35,6 +54,8 @@ public: GEOMAPI_EXPORT GeomAPI_Ellipse(const std::shared_ptr& theAx2, double theMajorRadius, double theMinorRadius); + GEOMAPI_EXPORT GeomAPI_Ellipse(std::shared_ptr theCurve); + /// Returns center of the ellipse GEOMAPI_EXPORT std::shared_ptr center() const; @@ -44,12 +65,31 @@ public: /// Returns second focus of the ellipse GEOMAPI_EXPORT std::shared_ptr secondFocus() const; + /// Return orthogonal direction to the ellipse's plane + GEOMAPI_EXPORT std::shared_ptr normal() const; + /// Returns minor radius of the ellipse GEOMAPI_EXPORT double minorRadius() const; /// Returns major radius of the ellipse GEOMAPI_EXPORT double majorRadius() const; + /// Project point on ellipse + GEOMAPI_EXPORT const std::shared_ptr project( + const std::shared_ptr& thePoint) const; + + /** \brief Computes the parameter of a given point on an ellipse. The point must be + * located either on the circle itself or relatively to the latter + * at a distance less than the tolerance value. Return FALSE if the point + * is beyond the tolerance limit or if computation fails. + * Max Tolerance value is currently limited to 1.e-4 + * \param[in] thePoint point of origin. + * \param[in] theTolerance tolerance of computation. + * \param[out] theParameter resulting parameter. + */ + GEOMAPI_EXPORT const bool parameter(const std::shared_ptr thePoint, + const double theTolerance, + double& theParameter) const; }; //! Pointer on the object