X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGeomAPI%2FGeomAPI_Curve.h;h=3922217f1deb3c0ac52eccabdd75048c6eb35b3b;hb=ea593bc59e7e9461f6c4e2afd3f24d621edb1011;hp=2d942dd7cf5da18decc27817e35ab4dc41a00d9e;hpb=87b6a30a3afb8fb32e7e43ade8d9c947d9eb1684;p=modules%2Fshaper.git diff --git a/src/GeomAPI/GeomAPI_Curve.h b/src/GeomAPI/GeomAPI_Curve.h index 2d942dd7c..3922217f1 100644 --- a/src/GeomAPI/GeomAPI_Curve.h +++ b/src/GeomAPI/GeomAPI_Curve.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-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 @@ -12,10 +12,9 @@ // // 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 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef GeomAPI_Curve_H_ @@ -46,6 +45,10 @@ class GeomAPI_Curve : public GeomAPI_Interface GEOMAPI_EXPORT bool isNull() const; + /// Returns \c true if curves are equal + GEOMAPI_EXPORT + bool isEqual(const std::shared_ptr& theOther) const; + /// Returns whether the curve is linear GEOMAPI_EXPORT virtual bool isLine() const; @@ -54,22 +57,52 @@ class GeomAPI_Curve : public GeomAPI_Interface GEOMAPI_EXPORT virtual bool isCircle() const; + /// Returns whether the curve is elliptic + GEOMAPI_EXPORT + virtual bool isEllipse() const; + /// Returns start parameter of the curve GEOMAPI_EXPORT - double startParam() const { return myStart; } + double startParam(); /// Returns end parameter of the curve GEOMAPI_EXPORT - double endParam() const { return myEnd; } + double endParam(); + + /// Returns \c true if the curve is trimmed + GEOMAPI_EXPORT + virtual bool isTrimmed() const; + + /// Returns basis for the trimmed curve + GEOMAPI_EXPORT + virtual std::shared_ptr basisCurve() const; /// Returns point on the curve by parameter /// \param theParam parameter on the curve GEOMAPI_EXPORT std::shared_ptr getPoint(double theParam); + /// Project point on curve + GEOMAPI_EXPORT const std::shared_ptr project( + const std::shared_ptr& thePoint) const; + +public: + /// \brief Compare addresses of curves + class Comparator + { + public: + /// Return \c true if the address of the first curve is less than the address of the second + GEOMAPI_EXPORT + bool operator ()(const std::shared_ptr& theCurve1, + const std::shared_ptr& theCurve2) const; + }; + private: double myStart; double myEnd; }; +//! Pointer on the object +typedef std::shared_ptr GeomCurvePtr; + #endif