Open CASCADE Technology
7.7.0

#include <AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute.hxx>
Public Member Functions  
AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute (const AppDef_MultiLine &SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector &Parameters, const Standard_Integer NbPol)  
given a MultiLine, this algorithm computes the least square resolution using the HouseholderQR method. If the first and/or the last point is a constraint point, the value of the tangency or curvature is computed in the resolution. NbPol is the number of control points wanted for the approximating curves. The system to solve is the following: A X = B. Where A is the Bernstein matrix computed with the parameters, B the points coordinates and X the poles solutions. The matrix A is the same for each coordinate x, y and z and is also the same for each MultiLine point because they are approximated in parallel(so with the same parameter, only the vector B changes). More...  
AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute (const AppDef_MultiLine &SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol)  
Initializes the fields of the object. More...  
AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute (const AppDef_MultiLine &SSP, const TColStd_Array1OfReal &Knots, const TColStd_Array1OfInteger &Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector &Parameters, const Standard_Integer NbPol)  
given a MultiLine, this algorithm computes the least square resolution using the HouseholderQR method. If the first and/or the last point is a constraint point, the value of the tangency or curvature is computed in the resolution. Deg is the degree wanted for the approximating curves. The system to solve is the following: A X = B. Where A is the BSpline functions matrix computed with <parameters>, B the points coordinates and X the poles solutions. The matrix A is the same for each coordinate x, y and z and is also the same for each MultiLine point because they are approximated in parallel(so with the same parameter, only the vector B changes). More...  
AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute (const AppDef_MultiLine &SSP, const TColStd_Array1OfReal &Knots, const TColStd_Array1OfInteger &Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol)  
Initializes the fields of the object. More...  
void  Perform (const math_Vector &Parameters) 
Is used after having initialized the fields. The case "CurvaturePoint" is not treated in this method. More...  
void  Perform (const math_Vector &Parameters, const Standard_Real l1, const Standard_Real l2) 
Is used after having initialized the fields. More...  
void  Perform (const math_Vector &Parameters, const math_Vector &V1t, const math_Vector &V2t, const Standard_Real l1, const Standard_Real l2) 
Is used after having initialized the fields. <V1t> is the tangent vector at the first point. <V2t> is the tangent vector at the last point. More...  
void  Perform (const math_Vector &Parameters, const math_Vector &V1t, const math_Vector &V2t, const math_Vector &V1c, const math_Vector &V2c, const Standard_Real l1, const Standard_Real l2) 
Is used after having initialized the fields. <V1t> is the tangent vector at the first point. <V2t> is the tangent vector at the last point. <V1c> is the tangent vector at the first point. <V2c> is the tangent vector at the last point. More...  
Standard_Boolean  IsDone () const 
returns True if all has been correctly done. More...  
AppParCurves_MultiCurve  BezierValue () 
returns the result of the approximation, i.e. all the Curves. An exception is raised if NotDone. More...  
const AppParCurves_MultiBSpCurve &  BSplineValue () 
returns the result of the approximation, i.e. all the Curves. An exception is raised if NotDone. More...  
const math_Matrix &  FunctionMatrix () const 
returns the function matrix used to approximate the set. More...  
const math_Matrix &  DerivativeFunctionMatrix () const 
returns the derivative function matrix used to approximate the set. More...  
void  ErrorGradient (math_Vector &Grad, Standard_Real &F, Standard_Real &MaxE3d, Standard_Real &MaxE2d) 
returns the maximum errors between the MultiLine and the approximation curves. F is the sum of the square distances. Grad is the derivative vector of the function F. More...  
const math_Matrix &  Distance () 
returns the distances between the points of the multiline and the approximation curves. More...  
void  Error (Standard_Real &F, Standard_Real &MaxE3d, Standard_Real &MaxE2d) 
returns the maximum errors between the MultiLine and the approximation curves. F is the sum of the square distances. More...  
Standard_Real  FirstLambda () const 
returns the value (P2  P1)/ V1 if the first point was a tangency point. More...  
Standard_Real  LastLambda () const 
returns the value (PN  PN1)/ VN if the last point was a tangency point. More...  
const math_Matrix &  Points () const 
returns the matrix of points value. More...  
const math_Matrix &  Poles () const 
returns the matrix of resulting control points value. More...  
const math_IntegerVector &  KIndex () const 
Returns the indexes of the first non null values of A and DA. The values are non null from Index(ieme point) +1 to Index(ieme point) + degree +1. More...  
Protected Member Functions  
void  Init (const AppDef_MultiLine &SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint) 
is used by the constructors above. More...  
Standard_Integer  NbBColumns (const AppDef_MultiLine &SSP) const 
returns the number of second member columns. Is used internally to initialize the fields. More...  
Standard_Integer  TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const 
returns the first point being fitted. More...  
Standard_Integer  TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const 
returns the last point being fitted. More...  
void  Affect (const AppDef_MultiLine &SSP, const Standard_Integer Index, AppParCurves_Constraint &Cons, math_Vector &Vt, math_Vector &Vc) 
Affects the fields in the case of a constraint point. More...  
void  ComputeFunction (const math_Vector &Parameters) 
void  SearchIndex (math_IntegerVector &Index) 
void  MakeTAA (math_Vector &TheA, math_Vector &TheB) 
computes internal matrixes for the resolution More...  
void  MakeTAA (math_Vector &TheA) 
computes internal matrixes for the resolution More...  
void  MakeTAA (math_Vector &TheA, math_Matrix &TheB) 
computes internal matrixes for the resolution More...  
AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute  (  const AppDef_MultiLine &  SSP, 
const Standard_Integer  FirstPoint,  
const Standard_Integer  LastPoint,  
const AppParCurves_Constraint  FirstCons,  
const AppParCurves_Constraint  LastCons,  
const math_Vector &  Parameters,  
const Standard_Integer  NbPol  
) 
given a MultiLine, this algorithm computes the least square resolution using the HouseholderQR method. If the first and/or the last point is a constraint point, the value of the tangency or curvature is computed in the resolution. NbPol is the number of control points wanted for the approximating curves. The system to solve is the following: A X = B. Where A is the Bernstein matrix computed with the parameters, B the points coordinates and X the poles solutions. The matrix A is the same for each coordinate x, y and z and is also the same for each MultiLine point because they are approximated in parallel(so with the same parameter, only the vector B changes).
AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute  (  const AppDef_MultiLine &  SSP, 
const Standard_Integer  FirstPoint,  
const Standard_Integer  LastPoint,  
const AppParCurves_Constraint  FirstCons,  
const AppParCurves_Constraint  LastCons,  
const Standard_Integer  NbPol  
) 
Initializes the fields of the object.
AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute  (  const AppDef_MultiLine &  SSP, 
const TColStd_Array1OfReal &  Knots,  
const TColStd_Array1OfInteger &  Mults,  
const Standard_Integer  FirstPoint,  
const Standard_Integer  LastPoint,  
const AppParCurves_Constraint  FirstCons,  
const AppParCurves_Constraint  LastCons,  
const math_Vector &  Parameters,  
const Standard_Integer  NbPol  
) 
given a MultiLine, this algorithm computes the least square resolution using the HouseholderQR method. If the first and/or the last point is a constraint point, the value of the tangency or curvature is computed in the resolution. Deg is the degree wanted for the approximating curves. The system to solve is the following: A X = B. Where A is the BSpline functions matrix computed with <parameters>, B the points coordinates and X the poles solutions. The matrix A is the same for each coordinate x, y and z and is also the same for each MultiLine point because they are approximated in parallel(so with the same parameter, only the vector B changes).
AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute  (  const AppDef_MultiLine &  SSP, 
const TColStd_Array1OfReal &  Knots,  
const TColStd_Array1OfInteger &  Mults,  
const Standard_Integer  FirstPoint,  
const Standard_Integer  LastPoint,  
const AppParCurves_Constraint  FirstCons,  
const AppParCurves_Constraint  LastCons,  
const Standard_Integer  NbPol  
) 
Initializes the fields of the object.

protected 
Affects the fields in the case of a constraint point.
AppParCurves_MultiCurve AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::BezierValue  (  ) 
returns the result of the approximation, i.e. all the Curves. An exception is raised if NotDone.
const AppParCurves_MultiBSpCurve& AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::BSplineValue  (  ) 
returns the result of the approximation, i.e. all the Curves. An exception is raised if NotDone.

protected 
const math_Matrix& AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::DerivativeFunctionMatrix  (  )  const 
returns the derivative function matrix used to approximate the set.
const math_Matrix& AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::Distance  (  ) 
returns the distances between the points of the multiline and the approximation curves.
void AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::Error  (  Standard_Real &  F, 
Standard_Real &  MaxE3d,  
Standard_Real &  MaxE2d  
) 
returns the maximum errors between the MultiLine and the approximation curves. F is the sum of the square distances.
void AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::ErrorGradient  (  math_Vector &  Grad, 
Standard_Real &  F,  
Standard_Real &  MaxE3d,  
Standard_Real &  MaxE2d  
) 
returns the maximum errors between the MultiLine and the approximation curves. F is the sum of the square distances. Grad is the derivative vector of the function F.
Standard_Real AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::FirstLambda  (  )  const 
returns the value (P2  P1)/ V1 if the first point was a tangency point.
const math_Matrix& AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::FunctionMatrix  (  )  const 
returns the function matrix used to approximate the set.

protected 
is used by the constructors above.
Standard_Boolean AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::IsDone  (  )  const 
returns True if all has been correctly done.
const math_IntegerVector& AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::KIndex  (  )  const 
Returns the indexes of the first non null values of A and DA. The values are non null from Index(ieme point) +1 to Index(ieme point) + degree +1.
Standard_Real AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::LastLambda  (  )  const 
returns the value (PN  PN1)/ VN if the last point was a tangency point.

protected 
computes internal matrixes for the resolution

protected 
computes internal matrixes for the resolution

protected 
computes internal matrixes for the resolution

protected 
returns the number of second member columns. Is used internally to initialize the fields.
void AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::Perform  (  const math_Vector &  Parameters  ) 
Is used after having initialized the fields. The case "CurvaturePoint" is not treated in this method.
void AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::Perform  (  const math_Vector &  Parameters, 
const math_Vector &  V1t,  
const math_Vector &  V2t,  
const math_Vector &  V1c,  
const math_Vector &  V2c,  
const Standard_Real  l1,  
const Standard_Real  l2  
) 
Is used after having initialized the fields. <V1t> is the tangent vector at the first point. <V2t> is the tangent vector at the last point. <V1c> is the tangent vector at the first point. <V2c> is the tangent vector at the last point.
void AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::Perform  (  const math_Vector &  Parameters, 
const math_Vector &  V1t,  
const math_Vector &  V2t,  
const Standard_Real  l1,  
const Standard_Real  l2  
) 
Is used after having initialized the fields. <V1t> is the tangent vector at the first point. <V2t> is the tangent vector at the last point.
void AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::Perform  (  const math_Vector &  Parameters, 
const Standard_Real  l1,  
const Standard_Real  l2  
) 
Is used after having initialized the fields.
const math_Matrix& AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::Points  (  )  const 
returns the matrix of points value.
const math_Matrix& AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute::Poles  (  )  const 
returns the matrix of resulting control points value.

protected 

protected 
returns the first point being fitted.

protected 
returns the last point being fitted.