File indexing completed on 2025-01-18 10:04:12
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Law_Composite_HeaderFile
0018 #define _Law_Composite_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022
0023 #include <Law_Laws.hxx>
0024 #include <Law_Function.hxx>
0025 #include <GeomAbs_Shape.hxx>
0026 #include <Standard_Integer.hxx>
0027 #include <TColStd_Array1OfReal.hxx>
0028
0029
0030 class Law_Composite;
0031 DEFINE_STANDARD_HANDLE(Law_Composite, Law_Function)
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042 class Law_Composite : public Law_Function
0043 {
0044
0045 public:
0046
0047
0048
0049 Standard_EXPORT Law_Composite();
0050
0051
0052 Standard_EXPORT Law_Composite(const Standard_Real First, const Standard_Real Last, const Standard_Real Tol);
0053
0054 Standard_EXPORT GeomAbs_Shape Continuity() const Standard_OVERRIDE;
0055
0056
0057
0058 Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE;
0059
0060
0061
0062
0063 Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE;
0064
0065
0066 Standard_EXPORT Standard_Real Value (const Standard_Real X) Standard_OVERRIDE;
0067
0068
0069 Standard_EXPORT void D1 (const Standard_Real X, Standard_Real& F, Standard_Real& D) Standard_OVERRIDE;
0070
0071
0072
0073 Standard_EXPORT void D2 (const Standard_Real X, Standard_Real& F, Standard_Real& D, Standard_Real& D2) Standard_OVERRIDE;
0074
0075
0076
0077
0078
0079
0080
0081 Standard_EXPORT Handle(Law_Function) Trim (const Standard_Real PFirst, const Standard_Real PLast, const Standard_Real Tol) const Standard_OVERRIDE;
0082
0083
0084 Standard_EXPORT void Bounds (Standard_Real& PFirst, Standard_Real& PLast) Standard_OVERRIDE;
0085
0086
0087
0088 Standard_EXPORT Handle(Law_Function)& ChangeElementaryLaw (const Standard_Real W);
0089
0090 Standard_EXPORT Law_Laws& ChangeLaws();
0091
0092 Standard_EXPORT Standard_Boolean IsPeriodic() const;
0093
0094 Standard_EXPORT void SetPeriodic();
0095
0096 DEFINE_STANDARD_RTTIEXT(Law_Composite,Law_Function)
0097
0098 private:
0099
0100
0101 Standard_EXPORT void Prepare (Standard_Real& W);
0102
0103 Standard_Real first;
0104 Standard_Real last;
0105 Handle(Law_Function) curfunc;
0106 Law_Laws funclist;
0107 Standard_Boolean periodic;
0108 Standard_Real TFirst;
0109 Standard_Real TLast;
0110 Standard_Real PTol;
0111
0112 };
0113
0114 #endif