SHAPER  9.12.0
GeomAPI_BSpline2d.h
1 // Copyright (C) 2019-2023 CEA, EDF
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 
20 #ifndef GeomAPI_BSpline2d_H_
21 #define GeomAPI_BSpline2d_H_
22 
23 #include <GeomAPI_Interface.h>
24 
25 #include <list>
26 #include <memory>
27 
28 class GeomAPI_Pnt2d;
29 class GeomAPI_XY;
30 
36 {
37 public:
39  GEOMAPI_EXPORT GeomAPI_BSpline2d(const std::list<std::shared_ptr<GeomAPI_Pnt2d> >& thePoles,
40  const std::list<double>& theWeights,
41  const bool thePeriodic = false);
42 
44  GEOMAPI_EXPORT GeomAPI_BSpline2d(const int theDegree,
45  const std::list<std::shared_ptr<GeomAPI_Pnt2d> >& thePoles,
46  const std::list<double>& theWeights,
47  const std::list<double>& theKnots = std::list<double>(),
48  const std::list<int>& theMults = std::list<int>(),
49  const bool thePeriodic = false);
50 
52  GEOMAPI_EXPORT bool isNull() const;
53 
55  GEOMAPI_EXPORT int degree() const;
56 
58  GEOMAPI_EXPORT std::list<double> knots() const;
59 
61  GEOMAPI_EXPORT std::list<int> mults() const;
62 
71  GEOMAPI_EXPORT const bool parameter(const std::shared_ptr<GeomAPI_Pnt2d> thePoint,
72  const double theTolerance,
73  double& theParameter) const;
74 
76  GEOMAPI_EXPORT void D0(const double theU, std::shared_ptr<GeomAPI_Pnt2d>& thePoint);
77 
79  GEOMAPI_EXPORT void D1(const double theU, std::shared_ptr<GeomAPI_Pnt2d>& thePoint,
80  std::shared_ptr<GeomAPI_XY>& theDerivative);
81 };
82 
83 #endif
B-spline curve in 2D.
Definition: GeomAPI_BSpline2d.h:36
GEOMAPI_EXPORT int degree() const
Returns degree of the curve.
Definition: GeomAPI_BSpline2d.cpp:168
GEOMAPI_EXPORT std::list< double > knots() const
Knots of the curve.
Definition: GeomAPI_BSpline2d.cpp:173
GEOMAPI_EXPORT const bool parameter(const std::shared_ptr< GeomAPI_Pnt2d > thePoint, const double theTolerance, double &theParameter) const
Computes the parameter of a given point on a circle.
Definition: GeomAPI_BSpline2d.cpp:185
GEOMAPI_EXPORT void D1(const double theU, std::shared_ptr< GeomAPI_Pnt2d > &thePoint, std::shared_ptr< GeomAPI_XY > &theDerivative)
Calculate point and first derivative for B-spline curve accrding to the given parameter.
Definition: GeomAPI_BSpline2d.cpp:216
GEOMAPI_EXPORT bool isNull() const
Returns true if curve is not initialized.
Definition: GeomAPI_BSpline2d.cpp:163
GEOMAPI_EXPORT void D0(const double theU, std::shared_ptr< GeomAPI_Pnt2d > &thePoint)
Calculate point on B-spline curve accrding to the given parameter.
Definition: GeomAPI_BSpline2d.cpp:209
GEOMAPI_EXPORT std::list< int > mults() const
Multiplicities of the knots.
Definition: GeomAPI_BSpline2d.cpp:179
GEOMAPI_EXPORT GeomAPI_BSpline2d(const std::list< std::shared_ptr< GeomAPI_Pnt2d > > &thePoles, const std::list< double > &theWeights, const bool thePeriodic=false)
Creation of B-spline curve defined by list of poles and weights.
Definition: GeomAPI_BSpline2d.cpp:141
General base class for all interfaces in this package.
Definition: GeomAPI_Interface.h:38
2D point defined by two coordinates
Definition: GeomAPI_Pnt2d.h:36
2 coordinates: they may represent vector or point or something else
Definition: GeomAPI_XY.h:32