File indexing completed on 2026-09-14 09:14:31
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _GeomFill_UniformSection_HeaderFile
0018 #define _GeomFill_UniformSection_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022
0023 #include <GeomFill_SectionLaw.hxx>
0024 #include <gp_Pnt.hxx>
0025 #include <NCollection_Array1.hxx>
0026 #include <gp_Vec.hxx>
0027 #include <Standard_Integer.hxx>
0028 #include <GeomAbs_Shape.hxx>
0029 class Geom_Curve;
0030 class Geom_BSplineCurve;
0031 class Geom_BSplineSurface;
0032 class gp_Pnt;
0033
0034
0035 class GeomFill_UniformSection : public GeomFill_SectionLaw
0036 {
0037
0038 public:
0039
0040
0041 Standard_EXPORT GeomFill_UniformSection(const occ::handle<Geom_Curve>& C,
0042 const double FirstParameter = 0.0,
0043 const double LastParameter = 1.0);
0044
0045
0046 Standard_EXPORT bool D0(const double Param,
0047 NCollection_Array1<gp_Pnt>& Poles,
0048 NCollection_Array1<double>& Weigths) override;
0049
0050
0051
0052
0053 Standard_EXPORT bool D1(const double Param,
0054 NCollection_Array1<gp_Pnt>& Poles,
0055 NCollection_Array1<gp_Vec>& DPoles,
0056 NCollection_Array1<double>& Weigths,
0057 NCollection_Array1<double>& DWeigths) override;
0058
0059
0060
0061
0062 Standard_EXPORT bool D2(const double Param,
0063 NCollection_Array1<gp_Pnt>& Poles,
0064 NCollection_Array1<gp_Vec>& DPoles,
0065 NCollection_Array1<gp_Vec>& D2Poles,
0066 NCollection_Array1<double>& Weigths,
0067 NCollection_Array1<double>& DWeigths,
0068 NCollection_Array1<double>& D2Weigths) override;
0069
0070
0071
0072
0073 Standard_EXPORT occ::handle<Geom_BSplineSurface> BSplineSurface() const override;
0074
0075
0076 Standard_EXPORT void SectionShape(int& NbPoles, int& NbKnots, int& Degree) const override;
0077
0078
0079 Standard_EXPORT void Knots(NCollection_Array1<double>& TKnots) const override;
0080
0081
0082 Standard_EXPORT void Mults(NCollection_Array1<int>& TMults) const override;
0083
0084
0085 Standard_EXPORT bool IsRational() const override;
0086
0087
0088 Standard_EXPORT bool IsUPeriodic() const override;
0089
0090
0091 Standard_EXPORT bool IsVPeriodic() const override;
0092
0093
0094
0095
0096 Standard_EXPORT int NbIntervals(const GeomAbs_Shape S) const override;
0097
0098
0099
0100
0101
0102
0103 Standard_EXPORT void Intervals(NCollection_Array1<double>& T,
0104 const GeomAbs_Shape S) const override;
0105
0106
0107
0108
0109
0110 Standard_EXPORT void SetInterval(const double First, const double Last) override;
0111
0112
0113
0114 Standard_EXPORT void GetInterval(double& First, double& Last) const override;
0115
0116
0117
0118
0119 Standard_EXPORT void GetDomain(double& First, double& Last) const override;
0120
0121
0122
0123
0124
0125
0126 Standard_EXPORT void GetTolerance(const double BoundTol,
0127 const double SurfTol,
0128 const double AngleTol,
0129 NCollection_Array1<double>& Tol3d) const override;
0130
0131
0132
0133
0134
0135
0136 Standard_EXPORT gp_Pnt BarycentreOfSurf() const override;
0137
0138
0139
0140
0141 Standard_EXPORT double MaximalSection() const override;
0142
0143
0144
0145
0146
0147
0148 Standard_EXPORT void GetMinimalWeight(NCollection_Array1<double>& Weigths) const override;
0149
0150
0151 Standard_EXPORT bool IsConstant(double& Error) const override;
0152
0153
0154 Standard_EXPORT occ::handle<Geom_Curve> ConstantSection() const override;
0155
0156 DEFINE_STANDARD_RTTIEXT(GeomFill_UniformSection, GeomFill_SectionLaw)
0157
0158 private:
0159 double First;
0160 double Last;
0161 occ::handle<Geom_Curve> mySection;
0162 occ::handle<Geom_BSplineCurve> myCurve;
0163 };
0164
0165 #endif