+ /// Returns whether the curve is elliptic
+ GEOMAPI_EXPORT
+ virtual bool isEllipse() const;
+
+ /// Returns start parameter of the curve
+ GEOMAPI_EXPORT
+ double startParam();
+
+ /// Returns end parameter of the curve
+ GEOMAPI_EXPORT
+ 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<GeomAPI_Curve> basisCurve() const;
+
+ /// Returns point on the curve by parameter
+ /// \param theParam parameter on the curve
+ GEOMAPI_EXPORT
+ std::shared_ptr<GeomAPI_Pnt> getPoint(double theParam);
+
+ /// Project point on curve
+ GEOMAPI_EXPORT const std::shared_ptr<GeomAPI_Pnt> project(
+ const std::shared_ptr<GeomAPI_Pnt>& 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<GeomAPI_Curve>& theCurve1,
+ const std::shared_ptr<GeomAPI_Curve>& theCurve2) const;
+ };
+
+private:
+ double myStart;
+ double myEnd;