File indexing completed on 2025-01-18 10:03:01
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Blend_AppFunction_HeaderFile
0018 #define _Blend_AppFunction_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <math_FunctionSetWithDerivatives.hxx>
0025 #include <Standard_Boolean.hxx>
0026 #include <math_Vector.hxx>
0027 #include <TColStd_Array1OfReal.hxx>
0028 #include <GeomAbs_Shape.hxx>
0029 #include <TColStd_Array1OfInteger.hxx>
0030 #include <TColgp_Array1OfPnt.hxx>
0031 #include <TColgp_Array1OfVec.hxx>
0032 #include <TColgp_Array1OfPnt2d.hxx>
0033 #include <TColgp_Array1OfVec2d.hxx>
0034 class math_Matrix;
0035 class gp_Pnt;
0036 class Blend_Point;
0037
0038
0039
0040
0041
0042
0043
0044
0045 class Blend_AppFunction : public math_FunctionSetWithDerivatives
0046 {
0047 public:
0048
0049 DEFINE_STANDARD_ALLOC
0050
0051
0052
0053 Standard_EXPORT virtual Standard_Integer NbVariables() const = 0;
0054
0055
0056 Standard_EXPORT virtual Standard_Integer NbEquations() const = 0;
0057
0058
0059
0060
0061
0062 Standard_EXPORT virtual Standard_Boolean Value (const math_Vector& X, math_Vector& F) = 0;
0063
0064
0065
0066
0067
0068 Standard_EXPORT virtual Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D) = 0;
0069
0070
0071
0072
0073
0074 Standard_EXPORT virtual Standard_Boolean Values (const math_Vector& X,
0075 math_Vector& F,
0076 math_Matrix& D) = 0;
0077
0078
0079
0080
0081 Standard_EXPORT virtual void Set (const Standard_Real Param) = 0;
0082
0083
0084
0085
0086
0087 Standard_EXPORT virtual void Set (const Standard_Real First, const Standard_Real Last) = 0;
0088
0089
0090
0091
0092 Standard_EXPORT virtual void GetTolerance (math_Vector& Tolerance,
0093 const Standard_Real Tol) const = 0;
0094
0095
0096
0097
0098
0099 Standard_EXPORT virtual void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const = 0;
0100
0101
0102
0103
0104
0105 Standard_EXPORT virtual Standard_Boolean IsSolution (const math_Vector& Sol,
0106 const Standard_Real Tol) = 0;
0107
0108
0109
0110 Standard_EXPORT virtual Standard_Real GetMinimalDistance() const = 0;
0111
0112
0113 Standard_EXPORT virtual const gp_Pnt& Pnt1() const = 0;
0114
0115
0116 Standard_EXPORT virtual const gp_Pnt& Pnt2() const = 0;
0117
0118
0119 Standard_EXPORT virtual Standard_Boolean IsRational() const = 0;
0120
0121
0122 Standard_EXPORT virtual Standard_Real GetSectionSize() const = 0;
0123
0124
0125
0126 Standard_EXPORT virtual void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const = 0;
0127
0128
0129
0130 Standard_EXPORT virtual Standard_Integer NbIntervals (const GeomAbs_Shape S) const = 0;
0131
0132
0133
0134
0135
0136
0137
0138
0139 Standard_EXPORT virtual void Intervals (TColStd_Array1OfReal& T,
0140 const GeomAbs_Shape S) const = 0;
0141
0142 Standard_EXPORT virtual void GetShape (Standard_Integer& NbPoles,
0143 Standard_Integer& NbKnots,
0144 Standard_Integer& Degree,
0145 Standard_Integer& NbPoles2d) = 0;
0146
0147
0148
0149
0150
0151
0152 Standard_EXPORT virtual void GetTolerance (const Standard_Real BoundTol,
0153 const Standard_Real SurfTol,
0154 const Standard_Real AngleTol,
0155 math_Vector& Tol3d,
0156 math_Vector& Tol1D) const = 0;
0157
0158 Standard_EXPORT virtual void Knots (TColStd_Array1OfReal& TKnots) = 0;
0159
0160 Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) = 0;
0161
0162
0163
0164
0165 Standard_EXPORT virtual Standard_Boolean Section (const Blend_Point& P,
0166 TColgp_Array1OfPnt& Poles,
0167 TColgp_Array1OfVec& DPoles,
0168 TColgp_Array1OfPnt2d& Poles2d,
0169 TColgp_Array1OfVec2d& DPoles2d,
0170 TColStd_Array1OfReal& Weigths,
0171 TColStd_Array1OfReal& DWeigths) = 0;
0172
0173 Standard_EXPORT virtual void Section (const Blend_Point& P,
0174 TColgp_Array1OfPnt& Poles,
0175 TColgp_Array1OfPnt2d& Poles2d,
0176 TColStd_Array1OfReal& Weigths) = 0;
0177
0178
0179
0180
0181 Standard_EXPORT virtual Standard_Boolean Section (const Blend_Point& P,
0182 TColgp_Array1OfPnt& Poles,
0183 TColgp_Array1OfVec& DPoles,
0184 TColgp_Array1OfVec& D2Poles,
0185 TColgp_Array1OfPnt2d& Poles2d,
0186 TColgp_Array1OfVec2d& DPoles2d,
0187 TColgp_Array1OfVec2d& D2Poles2d,
0188 TColStd_Array1OfReal& Weigths,
0189 TColStd_Array1OfReal& DWeigths,
0190 TColStd_Array1OfReal& D2Weigths) = 0;
0191
0192 Standard_EXPORT virtual void Resolution (const Standard_Integer IC2d,
0193 const Standard_Real Tol,
0194 Standard_Real& TolU,
0195 Standard_Real& TolV) const = 0;
0196
0197
0198
0199 Standard_EXPORT Standard_Real Parameter (const Blend_Point& P) const;
0200
0201
0202
0203
0204 protected:
0205
0206
0207
0208
0209
0210 private:
0211
0212
0213
0214
0215
0216 };
0217
0218
0219
0220
0221
0222
0223
0224 #endif