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 #ifndef _Blend_RstRstFunction_HeaderFile
0017 #define _Blend_RstRstFunction_HeaderFile
0018
0019 #include <Standard.hxx>
0020 #include <Standard_DefineAlloc.hxx>
0021
0022 #include <Blend_AppFunction.hxx>
0023 #include <math_Vector.hxx>
0024 #include <Blend_DecrochStatus.hxx>
0025 #include <TColStd_Array1OfReal.hxx>
0026 #include <GeomAbs_Shape.hxx>
0027 #include <TColStd_Array1OfInteger.hxx>
0028 #include <TColgp_Array1OfPnt.hxx>
0029 #include <TColgp_Array1OfPnt2d.hxx>
0030 #include <TColgp_Array1OfVec.hxx>
0031 #include <TColgp_Array1OfVec2d.hxx>
0032 class math_Matrix;
0033 class gp_Pnt;
0034 class gp_Pnt2d;
0035 class gp_Vec;
0036 class gp_Vec2d;
0037 class Blend_Point;
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047 class Blend_RstRstFunction : public Blend_AppFunction
0048 {
0049 public:
0050
0051 DEFINE_STANDARD_ALLOC
0052
0053
0054
0055 Standard_EXPORT virtual Standard_Integer NbVariables() const = 0;
0056
0057
0058 Standard_EXPORT virtual Standard_Integer NbEquations() const = 0;
0059
0060
0061
0062
0063
0064 Standard_EXPORT virtual Standard_Boolean Value (const math_Vector& X, math_Vector& F) = 0;
0065
0066
0067
0068
0069
0070 Standard_EXPORT virtual Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D) = 0;
0071
0072
0073
0074
0075
0076 Standard_EXPORT virtual Standard_Boolean Values (const math_Vector& X, math_Vector& F, 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, const Standard_Real Tol) const = 0;
0093
0094
0095
0096
0097
0098 Standard_EXPORT virtual void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const = 0;
0099
0100
0101
0102
0103
0104 Standard_EXPORT virtual Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol) = 0;
0105
0106
0107
0108 Standard_EXPORT Standard_Real GetMinimalDistance() const;
0109
0110
0111 Standard_EXPORT const gp_Pnt& Pnt1() const;
0112
0113
0114 Standard_EXPORT const gp_Pnt& Pnt2() const;
0115
0116
0117 Standard_EXPORT virtual const gp_Pnt& PointOnRst1() const = 0;
0118
0119
0120 Standard_EXPORT virtual const gp_Pnt& PointOnRst2() const = 0;
0121
0122
0123 Standard_EXPORT virtual const gp_Pnt2d& Pnt2dOnRst1() const = 0;
0124
0125
0126
0127 Standard_EXPORT virtual const gp_Pnt2d& Pnt2dOnRst2() const = 0;
0128
0129
0130 Standard_EXPORT virtual Standard_Real ParameterOnRst1() const = 0;
0131
0132
0133 Standard_EXPORT virtual Standard_Real ParameterOnRst2() const = 0;
0134
0135
0136
0137 Standard_EXPORT virtual Standard_Boolean IsTangencyPoint() const = 0;
0138
0139
0140 Standard_EXPORT virtual const gp_Vec& TangentOnRst1() const = 0;
0141
0142
0143
0144 Standard_EXPORT virtual const gp_Vec2d& Tangent2dOnRst1() const = 0;
0145
0146
0147 Standard_EXPORT virtual const gp_Vec& TangentOnRst2() const = 0;
0148
0149
0150
0151 Standard_EXPORT virtual const gp_Vec2d& Tangent2dOnRst2() const = 0;
0152
0153
0154
0155
0156
0157 Standard_EXPORT virtual Blend_DecrochStatus Decroch (const math_Vector& Sol, gp_Vec& NRst1, gp_Vec& TgRst1, gp_Vec& NRst2, gp_Vec& TgRst2) const = 0;
0158
0159
0160 Standard_EXPORT virtual Standard_Boolean IsRational() const = 0;
0161
0162
0163 Standard_EXPORT virtual Standard_Real GetSectionSize() const = 0;
0164
0165
0166
0167 Standard_EXPORT virtual void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const = 0;
0168
0169
0170
0171 Standard_EXPORT virtual Standard_Integer NbIntervals (const GeomAbs_Shape S) const = 0;
0172
0173
0174
0175
0176
0177
0178 Standard_EXPORT virtual void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const = 0;
0179
0180 Standard_EXPORT virtual void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) = 0;
0181
0182
0183
0184
0185
0186
0187 Standard_EXPORT virtual void GetTolerance (const Standard_Real BoundTol, const Standard_Real SurfTol, const Standard_Real AngleTol, math_Vector& Tol3d, math_Vector& Tol1D) const = 0;
0188
0189 Standard_EXPORT virtual void Knots (TColStd_Array1OfReal& TKnots) = 0;
0190
0191 Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) = 0;
0192
0193 Standard_EXPORT virtual void Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths) = 0;
0194
0195
0196
0197
0198 Standard_EXPORT virtual Standard_Boolean Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths) = 0;
0199
0200
0201
0202
0203 Standard_EXPORT virtual Standard_Boolean Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfVec& D2Poles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColgp_Array1OfVec2d& D2Poles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths, TColStd_Array1OfReal& D2Weigths) = 0;
0204
0205
0206
0207
0208 protected:
0209
0210
0211
0212
0213
0214 private:
0215
0216
0217
0218
0219
0220 };
0221
0222
0223
0224
0225
0226
0227
0228 #endif