File indexing completed on 2026-09-08 09:15:30
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _AppDef_ParLeastSquareOfMyGradientOfCompute_HeaderFile
0018 #define _AppDef_ParLeastSquareOfMyGradientOfCompute_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <AppParCurves_Constraint.hxx>
0025 #include <AppParCurves_MultiBSpCurve.hxx>
0026 #include <TColStd_HArray1OfReal.hxx>
0027 #include <TColStd_HArray1OfInteger.hxx>
0028 #include <math_Matrix.hxx>
0029 #include <math_Vector.hxx>
0030 #include <math_IntegerVector.hxx>
0031 #include <Standard_Real.hxx>
0032 #include <Standard_Integer.hxx>
0033 #include <TColStd_Array1OfReal.hxx>
0034 #include <TColStd_Array1OfInteger.hxx>
0035 class StdFail_NotDone;
0036 class Standard_OutOfRange;
0037 class Standard_DimensionError;
0038 class Standard_NoSuchObject;
0039 class AppDef_MultiLine;
0040 class AppDef_MyLineTool;
0041 class AppParCurves_MultiCurve;
0042 class AppParCurves_MultiBSpCurve;
0043 class math_Matrix;
0044
0045 class AppDef_ParLeastSquareOfMyGradientOfCompute
0046 {
0047 public:
0048 DEFINE_STANDARD_ALLOC
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066 Standard_EXPORT AppDef_ParLeastSquareOfMyGradientOfCompute(
0067 const AppDef_MultiLine& SSP,
0068 const Standard_Integer FirstPoint,
0069 const Standard_Integer LastPoint,
0070 const AppParCurves_Constraint FirstCons,
0071 const AppParCurves_Constraint LastCons,
0072 const math_Vector& Parameters,
0073 const Standard_Integer NbPol);
0074
0075
0076 Standard_EXPORT AppDef_ParLeastSquareOfMyGradientOfCompute(
0077 const AppDef_MultiLine& SSP,
0078 const Standard_Integer FirstPoint,
0079 const Standard_Integer LastPoint,
0080 const AppParCurves_Constraint FirstCons,
0081 const AppParCurves_Constraint LastCons,
0082 const Standard_Integer NbPol);
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099 Standard_EXPORT AppDef_ParLeastSquareOfMyGradientOfCompute(
0100 const AppDef_MultiLine& SSP,
0101 const TColStd_Array1OfReal& Knots,
0102 const TColStd_Array1OfInteger& Mults,
0103 const Standard_Integer FirstPoint,
0104 const Standard_Integer LastPoint,
0105 const AppParCurves_Constraint FirstCons,
0106 const AppParCurves_Constraint LastCons,
0107 const math_Vector& Parameters,
0108 const Standard_Integer NbPol);
0109
0110
0111 Standard_EXPORT AppDef_ParLeastSquareOfMyGradientOfCompute(
0112 const AppDef_MultiLine& SSP,
0113 const TColStd_Array1OfReal& Knots,
0114 const TColStd_Array1OfInteger& Mults,
0115 const Standard_Integer FirstPoint,
0116 const Standard_Integer LastPoint,
0117 const AppParCurves_Constraint FirstCons,
0118 const AppParCurves_Constraint LastCons,
0119 const Standard_Integer NbPol);
0120
0121
0122
0123 Standard_EXPORT void Perform(const math_Vector& Parameters);
0124
0125
0126 Standard_EXPORT void Perform(const math_Vector& Parameters,
0127 const Standard_Real l1,
0128 const Standard_Real l2);
0129
0130
0131
0132
0133 Standard_EXPORT void Perform(const math_Vector& Parameters,
0134 const math_Vector& V1t,
0135 const math_Vector& V2t,
0136 const Standard_Real l1,
0137 const Standard_Real l2);
0138
0139
0140
0141
0142
0143
0144 Standard_EXPORT void Perform(const math_Vector& Parameters,
0145 const math_Vector& V1t,
0146 const math_Vector& V2t,
0147 const math_Vector& V1c,
0148 const math_Vector& V2c,
0149 const Standard_Real l1,
0150 const Standard_Real l2);
0151
0152
0153 Standard_EXPORT Standard_Boolean IsDone() const;
0154
0155
0156
0157
0158 Standard_EXPORT AppParCurves_MultiCurve BezierValue();
0159
0160
0161
0162
0163 Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue();
0164
0165
0166
0167 Standard_EXPORT const math_Matrix& FunctionMatrix() const;
0168
0169
0170
0171 Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const;
0172
0173
0174
0175
0176
0177 Standard_EXPORT void ErrorGradient(math_Vector& Grad,
0178 Standard_Real& F,
0179 Standard_Real& MaxE3d,
0180 Standard_Real& MaxE2d);
0181
0182
0183
0184 Standard_EXPORT const math_Matrix& Distance();
0185
0186
0187
0188
0189 Standard_EXPORT void Error(Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
0190
0191
0192
0193 Standard_EXPORT Standard_Real FirstLambda() const;
0194
0195
0196
0197 Standard_EXPORT Standard_Real LastLambda() const;
0198
0199
0200 Standard_EXPORT const math_Matrix& Points() const;
0201
0202
0203 Standard_EXPORT const math_Matrix& Poles() const;
0204
0205
0206
0207
0208
0209 Standard_EXPORT const math_IntegerVector& KIndex() const;
0210
0211 protected:
0212
0213 Standard_EXPORT void Init(const AppDef_MultiLine& SSP,
0214 const Standard_Integer FirstPoint,
0215 const Standard_Integer LastPoint);
0216
0217
0218
0219 Standard_EXPORT Standard_Integer NbBColumns(const AppDef_MultiLine& SSP) const;
0220
0221
0222 Standard_EXPORT Standard_Integer TheFirstPoint(const AppParCurves_Constraint FirstCons,
0223 const Standard_Integer FirstPoint) const;
0224
0225
0226 Standard_EXPORT Standard_Integer TheLastPoint(const AppParCurves_Constraint LastCons,
0227 const Standard_Integer LastPoint) const;
0228
0229
0230 Standard_EXPORT void Affect(const AppDef_MultiLine& SSP,
0231 const Standard_Integer Index,
0232 AppParCurves_Constraint& Cons,
0233 math_Vector& Vt,
0234 math_Vector& Vc);
0235
0236 Standard_EXPORT void ComputeFunction(const math_Vector& Parameters);
0237
0238 Standard_EXPORT void SearchIndex(math_IntegerVector& Index);
0239
0240
0241 Standard_EXPORT void MakeTAA(math_Vector& TheA, math_Vector& TheB);
0242
0243
0244 Standard_EXPORT void MakeTAA(math_Vector& TheA);
0245
0246
0247 Standard_EXPORT void MakeTAA(math_Vector& TheA, math_Matrix& TheB);
0248
0249 private:
0250 AppParCurves_Constraint FirstConstraint;
0251 AppParCurves_Constraint LastConstraint;
0252 AppParCurves_MultiBSpCurve SCU;
0253 Handle(TColStd_HArray1OfReal) myknots;
0254 Handle(TColStd_HArray1OfInteger) mymults;
0255 math_Matrix mypoles;
0256 math_Matrix A;
0257 math_Matrix DA;
0258 math_Matrix B2;
0259 math_Matrix mypoints;
0260 math_Vector Vflatknots;
0261 math_Vector Vec1t;
0262 math_Vector Vec1c;
0263 math_Vector Vec2t;
0264 math_Vector Vec2c;
0265 math_Matrix theError;
0266 math_IntegerVector myindex;
0267 Standard_Real lambda1;
0268 Standard_Real lambda2;
0269 Standard_Integer FirstP;
0270 Standard_Integer LastP;
0271 Standard_Integer Nlignes;
0272 Standard_Integer Ninc;
0273 Standard_Integer NA;
0274 Standard_Integer myfirstp;
0275 Standard_Integer mylastp;
0276 Standard_Integer resinit;
0277 Standard_Integer resfin;
0278 Standard_Integer nbP2d;
0279 Standard_Integer nbP;
0280 Standard_Integer nbpoles;
0281 Standard_Integer deg;
0282 Standard_Boolean done;
0283 Standard_Boolean iscalculated;
0284 Standard_Boolean isready;
0285 };
0286
0287 #endif