File indexing completed on 2026-09-14 09:14:30
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _GeomFill_NSections_HeaderFile
0018 #define _GeomFill_NSections_HeaderFile
0019
0020 #include <Standard.hxx>
0021
0022 #include <Standard_Real.hxx>
0023 #include <Geom_Curve.hxx>
0024 #include <NCollection_Sequence.hxx>
0025 #include <gp_Trsf.hxx>
0026 #include <GeomFill_SectionLaw.hxx>
0027 #include <gp_Pnt.hxx>
0028 #include <NCollection_Array1.hxx>
0029 #include <gp_Vec.hxx>
0030 #include <Standard_Integer.hxx>
0031 #include <GeomAbs_Shape.hxx>
0032 class Geom_BSplineSurface;
0033 class gp_Pnt;
0034 class Geom_Curve;
0035
0036
0037 class GeomFill_NSections : public GeomFill_SectionLaw
0038 {
0039
0040 public:
0041
0042 Standard_EXPORT GeomFill_NSections(const NCollection_Sequence<occ::handle<Geom_Curve>>& NC);
0043
0044
0045 Standard_EXPORT GeomFill_NSections(const NCollection_Sequence<occ::handle<Geom_Curve>>& NC,
0046 const NCollection_Sequence<double>& NP);
0047
0048
0049
0050 Standard_EXPORT GeomFill_NSections(const NCollection_Sequence<occ::handle<Geom_Curve>>& NC,
0051 const NCollection_Sequence<double>& NP,
0052 const double UF,
0053 const double UL);
0054
0055
0056
0057
0058 Standard_EXPORT GeomFill_NSections(const NCollection_Sequence<occ::handle<Geom_Curve>>& NC,
0059 const NCollection_Sequence<double>& NP,
0060 const double UF,
0061 const double UL,
0062 const double VF,
0063 const double VL);
0064
0065
0066
0067
0068
0069
0070 Standard_EXPORT GeomFill_NSections(const NCollection_Sequence<occ::handle<Geom_Curve>>& NC,
0071 const NCollection_Sequence<gp_Trsf>& Trsfs,
0072 const NCollection_Sequence<double>& NP,
0073 const double UF,
0074 const double UL,
0075 const double VF,
0076 const double VL,
0077 const occ::handle<Geom_BSplineSurface>& Surf);
0078
0079
0080 Standard_EXPORT bool D0(const double Param,
0081 NCollection_Array1<gp_Pnt>& Poles,
0082 NCollection_Array1<double>& Weigths) override;
0083
0084
0085
0086
0087 Standard_EXPORT bool D1(const double Param,
0088 NCollection_Array1<gp_Pnt>& Poles,
0089 NCollection_Array1<gp_Vec>& DPoles,
0090 NCollection_Array1<double>& Weigths,
0091 NCollection_Array1<double>& DWeigths) override;
0092
0093
0094
0095
0096 Standard_EXPORT bool D2(const double Param,
0097 NCollection_Array1<gp_Pnt>& Poles,
0098 NCollection_Array1<gp_Vec>& DPoles,
0099 NCollection_Array1<gp_Vec>& D2Poles,
0100 NCollection_Array1<double>& Weigths,
0101 NCollection_Array1<double>& DWeigths,
0102 NCollection_Array1<double>& D2Weigths) override;
0103
0104
0105 Standard_EXPORT void SetSurface(const occ::handle<Geom_BSplineSurface>& RefSurf);
0106
0107
0108 Standard_EXPORT void ComputeSurface();
0109
0110
0111
0112
0113 Standard_EXPORT occ::handle<Geom_BSplineSurface> BSplineSurface() const override;
0114
0115
0116 Standard_EXPORT void SectionShape(int& NbPoles, int& NbKnots, int& Degree) const override;
0117
0118
0119 Standard_EXPORT void Knots(NCollection_Array1<double>& TKnots) const override;
0120
0121
0122 Standard_EXPORT void Mults(NCollection_Array1<int>& TMults) const override;
0123
0124
0125 Standard_EXPORT bool IsRational() const override;
0126
0127
0128 Standard_EXPORT bool IsUPeriodic() const override;
0129
0130
0131 Standard_EXPORT bool IsVPeriodic() const override;
0132
0133
0134
0135
0136 Standard_EXPORT int NbIntervals(const GeomAbs_Shape S) const override;
0137
0138
0139
0140
0141
0142
0143 Standard_EXPORT void Intervals(NCollection_Array1<double>& T,
0144 const GeomAbs_Shape S) const override;
0145
0146
0147
0148
0149
0150 Standard_EXPORT void SetInterval(const double First, const double Last) override;
0151
0152
0153
0154 Standard_EXPORT void GetInterval(double& First, double& Last) const override;
0155
0156
0157
0158
0159 Standard_EXPORT void GetDomain(double& First, double& Last) const override;
0160
0161
0162
0163
0164
0165
0166 Standard_EXPORT void GetTolerance(const double BoundTol,
0167 const double SurfTol,
0168 const double AngleTol,
0169 NCollection_Array1<double>& Tol3d) const override;
0170
0171
0172
0173
0174
0175
0176 Standard_EXPORT gp_Pnt BarycentreOfSurf() const override;
0177
0178
0179
0180
0181 Standard_EXPORT double MaximalSection() const override;
0182
0183
0184
0185
0186
0187
0188 Standard_EXPORT void GetMinimalWeight(NCollection_Array1<double>& Weigths) const override;
0189
0190
0191 Standard_EXPORT bool IsConstant(double& Error) const override;
0192
0193
0194 Standard_EXPORT occ::handle<Geom_Curve> ConstantSection() const override;
0195
0196
0197
0198
0199 Standard_EXPORT bool IsConicalLaw(double& Error) const override;
0200
0201
0202
0203 Standard_EXPORT occ::handle<Geom_Curve> CirclSection(const double Param) const override;
0204
0205 DEFINE_STANDARD_RTTIEXT(GeomFill_NSections, GeomFill_SectionLaw)
0206
0207 private:
0208 double UFirst;
0209 double ULast;
0210 double VFirst;
0211 double VLast;
0212 NCollection_Sequence<occ::handle<Geom_Curve>> mySections;
0213 NCollection_Sequence<gp_Trsf> myTrsfs;
0214 NCollection_Sequence<double> myParams;
0215 occ::handle<Geom_BSplineSurface> mySurface;
0216 occ::handle<Geom_BSplineSurface> myRefSurf;
0217 };
0218
0219 #endif