File indexing completed on 2025-01-18 10:03:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _GeomFill_CorrectedFrenet_HeaderFile
0018 #define _GeomFill_CorrectedFrenet_HeaderFile
0019
0020 #include <Standard.hxx>
0021
0022 #include <TColStd_HArray1OfReal.hxx>
0023 #include <TColgp_HArray1OfVec.hxx>
0024 #include <GeomFill_TrihedronLaw.hxx>
0025 #include <Standard_Real.hxx>
0026 #include <TColStd_SequenceOfReal.hxx>
0027 #include <TColgp_SequenceOfVec.hxx>
0028 #include <Standard_Integer.hxx>
0029 #include <GeomAbs_Shape.hxx>
0030 #include <TColStd_Array1OfReal.hxx>
0031 #include <GeomFill_Trihedron.hxx>
0032 class GeomFill_Frenet;
0033 class Law_Function;
0034
0035 class GeomFill_CorrectedFrenet;
0036 DEFINE_STANDARD_HANDLE(GeomFill_CorrectedFrenet, GeomFill_TrihedronLaw)
0037
0038
0039
0040 class GeomFill_CorrectedFrenet : public GeomFill_TrihedronLaw
0041 {
0042
0043 public:
0044
0045
0046 Standard_EXPORT GeomFill_CorrectedFrenet();
0047
0048 Standard_EXPORT GeomFill_CorrectedFrenet(const Standard_Boolean ForEvaluation);
0049
0050 Standard_EXPORT virtual Handle(GeomFill_TrihedronLaw) Copy() const Standard_OVERRIDE;
0051
0052
0053
0054 Standard_EXPORT virtual Standard_Boolean SetCurve (const Handle(Adaptor3d_Curve)& C) Standard_OVERRIDE;
0055
0056 Standard_EXPORT virtual void SetInterval (const Standard_Real First, const Standard_Real Last) Standard_OVERRIDE;
0057
0058
0059 Standard_EXPORT virtual Standard_Boolean D0 (const Standard_Real Param, gp_Vec& Tangent, gp_Vec& Normal, gp_Vec& BiNormal) Standard_OVERRIDE;
0060
0061
0062
0063
0064 Standard_EXPORT virtual Standard_Boolean D1 (const Standard_Real Param, gp_Vec& Tangent, gp_Vec& DTangent, gp_Vec& Normal, gp_Vec& DNormal, gp_Vec& BiNormal, gp_Vec& DBiNormal) Standard_OVERRIDE;
0065
0066
0067
0068
0069 Standard_EXPORT virtual Standard_Boolean D2 (const Standard_Real Param, gp_Vec& Tangent, gp_Vec& DTangent, gp_Vec& D2Tangent, gp_Vec& Normal, gp_Vec& DNormal, gp_Vec& D2Normal, gp_Vec& BiNormal, gp_Vec& DBiNormal, gp_Vec& D2BiNormal) Standard_OVERRIDE;
0070
0071
0072
0073
0074 Standard_EXPORT virtual Standard_Integer NbIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE;
0075
0076
0077
0078
0079
0080
0081 Standard_EXPORT virtual void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE;
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091 Standard_EXPORT GeomFill_Trihedron EvaluateBestMode();
0092
0093
0094
0095 Standard_EXPORT virtual void GetAverageLaw (gp_Vec& ATangent, gp_Vec& ANormal, gp_Vec& ABiNormal) Standard_OVERRIDE;
0096
0097
0098 Standard_EXPORT virtual Standard_Boolean IsConstant() const Standard_OVERRIDE;
0099
0100
0101 Standard_EXPORT virtual Standard_Boolean IsOnlyBy3dCurve() const Standard_OVERRIDE;
0102
0103
0104
0105
0106 DEFINE_STANDARD_RTTIEXT(GeomFill_CorrectedFrenet,GeomFill_TrihedronLaw)
0107
0108 protected:
0109
0110
0111
0112
0113 private:
0114
0115
0116 Standard_EXPORT void Init();
0117
0118
0119
0120 Standard_EXPORT Standard_Boolean InitInterval (const Standard_Real First, const Standard_Real Last, const Standard_Real Step, Standard_Real& startAng, gp_Vec& prevTangent, gp_Vec& prevNormal, gp_Vec& aT, gp_Vec& aN, Handle(Law_Function)& FuncInt, TColStd_SequenceOfReal& SeqPoles, TColStd_SequenceOfReal& SeqAngle, TColgp_SequenceOfVec& SeqTangent, TColgp_SequenceOfVec& SeqNormal) const;
0121
0122
0123 Standard_EXPORT Standard_Real CalcAngleAT (const gp_Vec& Tangent, const gp_Vec& Normal, const gp_Vec& prevTangent, const gp_Vec& prevNormal) const;
0124
0125
0126 Standard_EXPORT Standard_Real GetAngleAT (const Standard_Real P) const;
0127
0128 Handle(GeomFill_Frenet) frenet;
0129 Handle(Law_Function) EvolAroundT;
0130 Handle(Law_Function) TLaw;
0131 gp_Vec AT;
0132 gp_Vec AN;
0133 Standard_Boolean isFrenet;
0134 Standard_Boolean myForEvaluation;
0135 Handle(TColStd_HArray1OfReal) HArrPoles;
0136 Handle(TColStd_HArray1OfReal) HArrAngle;
0137 Handle(TColgp_HArray1OfVec) HArrTangent;
0138 Handle(TColgp_HArray1OfVec) HArrNormal;
0139
0140
0141 };
0142
0143
0144
0145
0146
0147
0148
0149 #endif