File indexing completed on 2026-09-12 09:17:17
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _GeomFill_CurveAndTrihedron_HeaderFile
0018 #define _GeomFill_CurveAndTrihedron_HeaderFile
0019
0020 #include <Standard.hxx>
0021
0022 #include <gp_Mat.hxx>
0023 #include <GeomFill_LocationLaw.hxx>
0024 #include <Standard_Real.hxx>
0025 #include <gp_Pnt2d.hxx>
0026 #include <NCollection_Array1.hxx>
0027 #include <gp_Vec2d.hxx>
0028 #include <Standard_Integer.hxx>
0029 #include <GeomAbs_Shape.hxx>
0030 class GeomFill_TrihedronLaw;
0031
0032
0033
0034
0035
0036
0037
0038
0039 class GeomFill_CurveAndTrihedron : public GeomFill_LocationLaw
0040 {
0041
0042 public:
0043 Standard_EXPORT GeomFill_CurveAndTrihedron(const occ::handle<GeomFill_TrihedronLaw>& Trihedron);
0044
0045
0046
0047 Standard_EXPORT bool SetCurve(const occ::handle<Adaptor3d_Curve>& C) override;
0048
0049 Standard_EXPORT const occ::handle<Adaptor3d_Curve>& GetCurve() const override;
0050
0051
0052
0053 Standard_EXPORT void SetTrsf(const gp_Mat& Transfo) override;
0054
0055 Standard_EXPORT occ::handle<GeomFill_LocationLaw> Copy() const override;
0056
0057
0058 Standard_EXPORT bool D0(const double Param, gp_Mat& M, gp_Vec& V) override;
0059
0060
0061 Standard_EXPORT bool D0(const double Param,
0062 gp_Mat& M,
0063 gp_Vec& V,
0064 NCollection_Array1<gp_Pnt2d>& Poles2d) override;
0065
0066
0067
0068
0069 Standard_EXPORT bool D1(const double Param,
0070 gp_Mat& M,
0071 gp_Vec& V,
0072 gp_Mat& DM,
0073 gp_Vec& DV,
0074 NCollection_Array1<gp_Pnt2d>& Poles2d,
0075 NCollection_Array1<gp_Vec2d>& DPoles2d) override;
0076
0077
0078
0079
0080 Standard_EXPORT bool D2(const double Param,
0081 gp_Mat& M,
0082 gp_Vec& V,
0083 gp_Mat& DM,
0084 gp_Vec& DV,
0085 gp_Mat& D2M,
0086 gp_Vec& D2V,
0087 NCollection_Array1<gp_Pnt2d>& Poles2d,
0088 NCollection_Array1<gp_Vec2d>& DPoles2d,
0089 NCollection_Array1<gp_Vec2d>& D2Poles2d) override;
0090
0091
0092
0093 Standard_EXPORT int NbIntervals(const GeomAbs_Shape S) const override;
0094
0095
0096
0097
0098
0099
0100 Standard_EXPORT void Intervals(NCollection_Array1<double>& T,
0101 const GeomAbs_Shape S) const override;
0102
0103
0104
0105
0106
0107 Standard_EXPORT void SetInterval(const double First, const double Last) override;
0108
0109
0110
0111 Standard_EXPORT void GetInterval(double& First, double& Last) const override;
0112
0113
0114
0115
0116 Standard_EXPORT void GetDomain(double& First, double& Last) const override;
0117
0118
0119
0120 Standard_EXPORT double GetMaximalNorm() override;
0121
0122
0123
0124 Standard_EXPORT void GetAverageLaw(gp_Mat& AM, gp_Vec& AV) override;
0125
0126
0127
0128 Standard_EXPORT bool IsTranslation(double& Error) const override;
0129
0130
0131
0132 Standard_EXPORT bool IsRotation(double& Error) const override;
0133
0134 Standard_EXPORT void Rotation(gp_Pnt& Center) const override;
0135
0136 DEFINE_STANDARD_RTTIEXT(GeomFill_CurveAndTrihedron, GeomFill_LocationLaw)
0137
0138 private:
0139 bool WithTrans;
0140 occ::handle<GeomFill_TrihedronLaw> myLaw;
0141 occ::handle<Adaptor3d_Curve> myCurve;
0142 occ::handle<Adaptor3d_Curve> myTrimmed;
0143 gp_Pnt Point;
0144 gp_Vec V1;
0145 gp_Vec V2;
0146 gp_Vec V3;
0147 gp_Mat Trans;
0148 };
0149
0150 #endif