File indexing completed on 2026-10-31 09:36:30
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Law_BSpFunc_HeaderFile
0018 #define _Law_BSpFunc_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022
0023 #include <Law_Function.hxx>
0024 #include <GeomAbs_Shape.hxx>
0025 #include <Standard_Integer.hxx>
0026 #include <NCollection_Array1.hxx>
0027 class Law_BSpline;
0028
0029
0030
0031
0032
0033 class Law_BSpFunc : public Law_Function
0034 {
0035
0036 public:
0037 Standard_EXPORT Law_BSpFunc();
0038
0039 Standard_EXPORT Law_BSpFunc(const occ::handle<Law_BSpline>& C,
0040 const double First,
0041 const double Last);
0042
0043 Standard_EXPORT GeomAbs_Shape Continuity() const override;
0044
0045
0046
0047 Standard_EXPORT int NbIntervals(const GeomAbs_Shape S) const override;
0048
0049
0050
0051
0052 Standard_EXPORT void Intervals(NCollection_Array1<double>& T,
0053 const GeomAbs_Shape S) const override;
0054
0055 Standard_EXPORT double Value(const double X) override;
0056
0057 Standard_EXPORT void D1(const double X, double& F, double& D) override;
0058
0059 Standard_EXPORT void D2(const double X, double& F, double& D, double& D2) override;
0060
0061
0062
0063
0064
0065
0066
0067 Standard_EXPORT occ::handle<Law_Function> Trim(const double PFirst,
0068 const double PLast,
0069 const double Tol) const override;
0070
0071 Standard_EXPORT void Bounds(double& PFirst, double& PLast) override;
0072
0073 Standard_EXPORT occ::handle<Law_BSpline> Curve() const;
0074
0075 Standard_EXPORT void SetCurve(const occ::handle<Law_BSpline>& C);
0076
0077 DEFINE_STANDARD_RTTIEXT(Law_BSpFunc, Law_Function)
0078
0079 private:
0080 occ::handle<Law_BSpline> curv;
0081 double first;
0082 double last;
0083 };
0084
0085 #endif