File indexing completed on 2026-09-28 09:20:23
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef _HelixGeom_HelixCurve_HeaderFile
0015 #define _HelixGeom_HelixCurve_HeaderFile
0016
0017 #include <Adaptor3d_Curve.hxx>
0018 #include <Geom_Curve.hxx>
0019 #include <GeomAbs_Shape.hxx>
0020
0021 class gp_Pnt;
0022 class gp_Vec;
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038 class HelixGeom_HelixCurve : public Adaptor3d_Curve
0039 {
0040 DEFINE_STANDARD_RTTIEXT(HelixGeom_HelixCurve, Adaptor3d_Curve)
0041 public:
0042
0043 Standard_EXPORT HelixGeom_HelixCurve();
0044
0045
0046 Standard_EXPORT void Load();
0047
0048
0049 Standard_EXPORT void Load(const double aT1,
0050 const double aT2,
0051 const double aPitch,
0052 const double aRStart,
0053 const double aTaperAngle,
0054 const bool aIsCW);
0055
0056
0057 Standard_EXPORT double FirstParameter() const override;
0058
0059
0060 Standard_EXPORT double LastParameter() const override;
0061
0062
0063 Standard_EXPORT GeomAbs_Shape Continuity() const override;
0064
0065
0066 Standard_EXPORT int NbIntervals(const GeomAbs_Shape S) const override;
0067
0068
0069 Standard_EXPORT void Intervals(NCollection_Array1<double>& T,
0070 const GeomAbs_Shape S) const override;
0071
0072
0073 Standard_EXPORT double Resolution(const double R3d) const override;
0074
0075
0076 Standard_EXPORT bool IsClosed() const override;
0077
0078
0079 Standard_EXPORT bool IsPeriodic() const override;
0080
0081
0082 Standard_EXPORT double Period() const override;
0083
0084
0085 [[nodiscard]] Standard_EXPORT gp_Pnt EvalD0(const double theU) const final;
0086
0087
0088 [[nodiscard]] Standard_EXPORT Geom_Curve::ResD1 EvalD1(const double theU) const final;
0089
0090
0091 [[nodiscard]] Standard_EXPORT Geom_Curve::ResD2 EvalD2(const double theU) const final;
0092
0093
0094 [[nodiscard]] Standard_EXPORT gp_Vec EvalDN(const double theU, const int theN) const final;
0095
0096 protected:
0097 double myFirst;
0098 double myLast;
0099 double myPitch;
0100 double myRStart;
0101 double myTaperAngle;
0102 bool myIsClockWise;
0103 double myC1;
0104 double myTgBeta;
0105 double myTolAngle;
0106 };
0107
0108 #endif