File indexing completed on 2026-09-28 09:19:18
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Approx_SweepFunction_HeaderFile
0018 #define _Approx_SweepFunction_HeaderFile
0019
0020 #include <Standard.hxx>
0021
0022 #include <GeomAbs_Shape.hxx>
0023 #include <Standard_Integer.hxx>
0024 #include <Standard_Real.hxx>
0025 #include <Standard_Transient.hxx>
0026 #include <NCollection_Array1.hxx>
0027 #include <gp_Pnt.hxx>
0028 #include <gp_Pnt2d.hxx>
0029 #include <gp_Vec.hxx>
0030 #include <gp_Vec2d.hxx>
0031 class gp_Pnt;
0032
0033
0034
0035 class Approx_SweepFunction : public Standard_Transient
0036 {
0037
0038 public:
0039
0040 Standard_EXPORT virtual bool D0(const double Param,
0041 const double First,
0042 const double Last,
0043 NCollection_Array1<gp_Pnt>& Poles,
0044 NCollection_Array1<gp_Pnt2d>& Poles2d,
0045 NCollection_Array1<double>& Weigths) = 0;
0046
0047
0048
0049
0050 Standard_EXPORT virtual bool D1(const double Param,
0051 const double First,
0052 const double Last,
0053 NCollection_Array1<gp_Pnt>& Poles,
0054 NCollection_Array1<gp_Vec>& DPoles,
0055 NCollection_Array1<gp_Pnt2d>& Poles2d,
0056 NCollection_Array1<gp_Vec2d>& DPoles2d,
0057 NCollection_Array1<double>& Weigths,
0058 NCollection_Array1<double>& DWeigths);
0059
0060
0061
0062
0063 Standard_EXPORT virtual bool D2(const double Param,
0064 const double First,
0065 const double Last,
0066 NCollection_Array1<gp_Pnt>& Poles,
0067 NCollection_Array1<gp_Vec>& DPoles,
0068 NCollection_Array1<gp_Vec>& D2Poles,
0069 NCollection_Array1<gp_Pnt2d>& Poles2d,
0070 NCollection_Array1<gp_Vec2d>& DPoles2d,
0071 NCollection_Array1<gp_Vec2d>& D2Poles2d,
0072 NCollection_Array1<double>& Weigths,
0073 NCollection_Array1<double>& DWeigths,
0074 NCollection_Array1<double>& D2Weigths);
0075
0076
0077 Standard_EXPORT virtual int Nb2dCurves() const = 0;
0078
0079
0080 Standard_EXPORT virtual void SectionShape(int& NbPoles, int& NbKnots, int& Degree) const = 0;
0081
0082
0083 Standard_EXPORT virtual void Knots(NCollection_Array1<double>& TKnots) const = 0;
0084
0085
0086 Standard_EXPORT virtual void Mults(NCollection_Array1<int>& TMults) const = 0;
0087
0088
0089 Standard_EXPORT virtual bool IsRational() const = 0;
0090
0091
0092
0093
0094 Standard_EXPORT virtual int NbIntervals(const GeomAbs_Shape S) const = 0;
0095
0096
0097
0098
0099
0100
0101 Standard_EXPORT virtual void Intervals(NCollection_Array1<double>& T,
0102 const GeomAbs_Shape S) const = 0;
0103
0104
0105
0106
0107
0108 Standard_EXPORT virtual void SetInterval(const double First, const double Last) = 0;
0109
0110
0111
0112
0113 Standard_EXPORT virtual void Resolution(const int Index,
0114 const double Tol,
0115 double& TolU,
0116 double& TolV) const;
0117
0118
0119
0120
0121
0122
0123 Standard_EXPORT virtual void GetTolerance(const double BoundTol,
0124 const double SurfTol,
0125 const double AngleTol,
0126 NCollection_Array1<double>& Tol3d) const = 0;
0127
0128
0129 Standard_EXPORT virtual void SetTolerance(const double Tol3d, const double Tol2d) = 0;
0130
0131
0132
0133
0134
0135 Standard_EXPORT virtual gp_Pnt BarycentreOfSurf() const;
0136
0137
0138
0139
0140 Standard_EXPORT virtual double MaximalSection() const;
0141
0142
0143
0144
0145 Standard_EXPORT virtual void GetMinimalWeight(NCollection_Array1<double>& Weigths) const;
0146
0147 DEFINE_STANDARD_RTTIEXT(Approx_SweepFunction, Standard_Transient)
0148 };
0149
0150 #endif