SHAPER 9.16.0
GeomAPI_BSpline2d.h
1// Copyright (C) 2019-2026 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
28class GeomAPI_Pnt2d;
29class GeomAPI_XY;
30
36{
37public:
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 according 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 according 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