File indexing completed on 2026-05-29 08:15:27
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef AppCont_LeastSquare_HeaderFile
0018 #define AppCont_LeastSquare_HeaderFile
0019
0020 #include <AppCont_Function.hxx>
0021 #include <AppParCurves_MultiCurve.hxx>
0022 #include <math_Matrix.hxx>
0023 #include <NCollection_Array1.hxx>
0024 #include <AppParCurves_Constraint.hxx>
0025 #include <math_Vector.hxx>
0026
0027 struct PeriodicityInfo
0028 {
0029 Standard_Boolean isPeriodic;
0030 Standard_Real myPeriod;
0031 };
0032
0033 class AppCont_LeastSquare
0034 {
0035 public:
0036 Standard_EXPORT AppCont_LeastSquare(const AppCont_Function& SSP,
0037 const Standard_Real U0,
0038 const Standard_Real U1,
0039 const AppParCurves_Constraint FirstCons,
0040 const AppParCurves_Constraint LastCons,
0041 const Standard_Integer Deg,
0042 const Standard_Integer NbPoints);
0043
0044 Standard_EXPORT const AppParCurves_MultiCurve& Value();
0045
0046 Standard_EXPORT void Error(Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d) const;
0047
0048 Standard_EXPORT Standard_Boolean IsDone() const;
0049
0050 private:
0051
0052 void FixSingleBorderPoint(const AppCont_Function& theSSP,
0053 const Standard_Real theU,
0054 const Standard_Real theU0,
0055 const Standard_Real theU1,
0056 NCollection_Array1<gp_Pnt2d>& theFix2d,
0057 NCollection_Array1<gp_Pnt>& theFix);
0058
0059 AppParCurves_MultiCurve mySCU;
0060 math_Matrix myPoints;
0061 math_Matrix myPoles;
0062 math_Vector myParam;
0063 math_Matrix myVB;
0064 NCollection_Array1<PeriodicityInfo> myPerInfo;
0065 Standard_Boolean myDone;
0066 Standard_Integer myDegre;
0067 Standard_Integer myNbdiscret, myNbP, myNbP2d;
0068 };
0069
0070 #endif