File indexing completed on 2026-09-20 09:17:38
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _GeomFill_LocationDraft_HeaderFile
0018 #define _GeomFill_LocationDraft_HeaderFile
0019
0020 #include <Adaptor3d_Surface.hxx>
0021 #include <gp_Mat.hxx>
0022 #include <gp_Dir.hxx>
0023 #include <Standard_Real.hxx>
0024 #include <Standard_Integer.hxx>
0025 #include <gp_Pnt2d.hxx>
0026 #include <NCollection_Array1.hxx>
0027 #include <NCollection_HArray1.hxx>
0028 #include <Standard_Boolean.hxx>
0029 #include <GeomFill_LocationLaw.hxx>
0030 #include <gp_Vec2d.hxx>
0031 #include <GeomAbs_Shape.hxx>
0032
0033 class GeomFill_DraftTrihedron;
0034
0035 class GeomFill_LocationDraft : public GeomFill_LocationLaw
0036 {
0037
0038 public:
0039 Standard_EXPORT GeomFill_LocationDraft(const gp_Dir& Direction, const double Angle);
0040
0041 Standard_EXPORT void SetStopSurf(const occ::handle<Adaptor3d_Surface>& Surf);
0042
0043 Standard_EXPORT void SetAngle(const double Angle);
0044
0045
0046
0047
0048 Standard_EXPORT bool SetCurve(const occ::handle<Adaptor3d_Curve>& C) override;
0049
0050 Standard_EXPORT const occ::handle<Adaptor3d_Curve>& GetCurve() const override;
0051
0052 Standard_EXPORT void SetTrsf(const gp_Mat& Transfo) override;
0053
0054 Standard_EXPORT occ::handle<GeomFill_LocationLaw> Copy() const override;
0055
0056
0057 Standard_EXPORT bool D0(const double Param, gp_Mat& M, gp_Vec& V) override;
0058
0059
0060 Standard_EXPORT bool D0(const double Param,
0061 gp_Mat& M,
0062 gp_Vec& V,
0063 NCollection_Array1<gp_Pnt2d>& Poles2d) override;
0064
0065
0066
0067
0068 Standard_EXPORT bool D1(const double Param,
0069 gp_Mat& M,
0070 gp_Vec& V,
0071 gp_Mat& DM,
0072 gp_Vec& DV,
0073 NCollection_Array1<gp_Pnt2d>& Poles2d,
0074 NCollection_Array1<gp_Vec2d>& DPoles2d) override;
0075
0076
0077
0078
0079 Standard_EXPORT bool D2(const double Param,
0080 gp_Mat& M,
0081 gp_Vec& V,
0082 gp_Mat& DM,
0083 gp_Vec& DV,
0084 gp_Mat& D2M,
0085 gp_Vec& D2V,
0086 NCollection_Array1<gp_Pnt2d>& Poles2d,
0087 NCollection_Array1<gp_Vec2d>& DPoles2d,
0088 NCollection_Array1<gp_Vec2d>& D2Poles2d) override;
0089
0090
0091
0092
0093
0094 Standard_EXPORT bool HasFirstRestriction() const override;
0095
0096
0097
0098
0099
0100 Standard_EXPORT bool HasLastRestriction() const override;
0101
0102
0103
0104 Standard_EXPORT int TraceNumber() const override;
0105
0106
0107
0108 Standard_EXPORT int NbIntervals(const GeomAbs_Shape S) const override;
0109
0110
0111
0112
0113
0114
0115 Standard_EXPORT void Intervals(NCollection_Array1<double>& T,
0116 const GeomAbs_Shape S) const override;
0117
0118
0119
0120
0121
0122 Standard_EXPORT void SetInterval(const double First, const double Last) override;
0123
0124
0125
0126 Standard_EXPORT void GetInterval(double& First, double& Last) const override;
0127
0128
0129
0130
0131 Standard_EXPORT void GetDomain(double& First, double& Last) const override;
0132
0133
0134
0135
0136
0137 Standard_EXPORT void Resolution(const int Index,
0138 const double Tol,
0139 double& TolU,
0140 double& TolV) const override;
0141
0142
0143
0144 Standard_EXPORT double GetMaximalNorm() override;
0145
0146
0147
0148 Standard_EXPORT void GetAverageLaw(gp_Mat& AM, gp_Vec& AV) override;
0149
0150
0151
0152 Standard_EXPORT bool IsTranslation(double& Error) const override;
0153
0154
0155
0156 Standard_EXPORT bool IsRotation(double& Error) const override;
0157
0158 Standard_EXPORT void Rotation(gp_Pnt& Center) const override;
0159
0160
0161 Standard_EXPORT bool IsIntersec() const;
0162
0163 Standard_EXPORT gp_Dir Direction() const;
0164
0165 DEFINE_STANDARD_RTTIEXT(GeomFill_LocationDraft, GeomFill_LocationLaw)
0166
0167 protected:
0168 occ::handle<NCollection_HArray1<gp_Pnt2d>> myPoles2d;
0169
0170 private:
0171 Standard_EXPORT void Prepare();
0172
0173 gp_Mat Trans;
0174 occ::handle<GeomFill_DraftTrihedron> myLaw;
0175 occ::handle<Adaptor3d_Surface> mySurf;
0176 occ::handle<Adaptor3d_Curve> myCurve;
0177 occ::handle<Adaptor3d_Curve> myTrimmed;
0178 gp_Dir myDir;
0179 double myAngle;
0180 int myNbPts;
0181 bool Intersec;
0182 bool WithTrans;
0183 };
0184
0185 #endif