Open CASCADE Technology 7.8.0
Public Member Functions | Protected Member Functions
GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox Class Reference

#include <GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx>

Public Member Functions

 GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox (const GeomInt_TheMultiLineOfWLApprox &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 Householder-QR 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).
 
 GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox (const GeomInt_TheMultiLineOfWLApprox &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.
 
 GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox (const GeomInt_TheMultiLineOfWLApprox &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 Householder-QR 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).
 
 GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox (const GeomInt_TheMultiLineOfWLApprox &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.
 
void Perform (const math_Vector &Parameters)
 Is used after having initialized the fields. The case "CurvaturePoint" is not treated in this method.
 
void Perform (const math_Vector &Parameters, const Standard_Real l1, const Standard_Real l2)
 Is used after having initialized the fields.
 
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.
 
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.
 
Standard_Boolean IsDone () const
 returns True if all has been correctly done.
 
AppParCurves_MultiCurve BezierValue ()
 returns the result of the approximation, i.e. all the Curves. An exception is raised if NotDone.
 
const AppParCurves_MultiBSpCurveBSplineValue ()
 returns the result of the approximation, i.e. all the Curves. An exception is raised if NotDone.
 
const math_MatrixFunctionMatrix () const
 returns the function matrix used to approximate the set.
 
const math_MatrixDerivativeFunctionMatrix () const
 returns the derivative function matrix used to approximate the set.
 
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.
 
const math_MatrixDistance ()
 returns the distances between the points of the multiline and the approximation curves.
 
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.
 
Standard_Real FirstLambda () const
 returns the value (P2 - P1)/ V1 if the first point was a tangency point.
 
Standard_Real LastLambda () const
 returns the value (PN - PN-1)/ VN if the last point was a tangency point.
 
const math_MatrixPoints () const
 returns the matrix of points value.
 
const math_MatrixPoles () const
 returns the matrix of resulting control points value.
 
const math_IntegerVectorKIndex () 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.
 

Protected Member Functions

void Init (const GeomInt_TheMultiLineOfWLApprox &SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint)
 is used by the constructors above.
 
Standard_Integer NbBColumns (const GeomInt_TheMultiLineOfWLApprox &SSP) const
 returns the number of second member columns. Is used internally to initialize the fields.
 
Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const
 returns the first point being fitted.
 
Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const
 returns the last point being fitted.
 
void Affect (const GeomInt_TheMultiLineOfWLApprox &SSP, const Standard_Integer Index, AppParCurves_Constraint &Cons, math_Vector &Vt, math_Vector &Vc)
 Affects the fields in the case of a constraint point.
 
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
 
void MakeTAA (math_Vector &TheA)
 computes internal matrixes for the resolution
 
void MakeTAA (math_Vector &TheA, math_Matrix &TheB)
 computes internal matrixes for the resolution
 

Constructor & Destructor Documentation

◆ GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox() [1/4]

GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox ( const GeomInt_TheMultiLineOfWLApprox 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 Householder-QR 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).

◆ GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox() [2/4]

GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox ( const GeomInt_TheMultiLineOfWLApprox 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.

◆ GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox() [3/4]

GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox ( const GeomInt_TheMultiLineOfWLApprox 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 Householder-QR 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).

◆ GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox() [4/4]

GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox ( const GeomInt_TheMultiLineOfWLApprox 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.

Member Function Documentation

◆ Affect()

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::Affect ( const GeomInt_TheMultiLineOfWLApprox SSP,
const Standard_Integer  Index,
AppParCurves_Constraint Cons,
math_Vector Vt,
math_Vector Vc 
)
protected

Affects the fields in the case of a constraint point.

◆ BezierValue()

AppParCurves_MultiCurve GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::BezierValue ( )

returns the result of the approximation, i.e. all the Curves. An exception is raised if NotDone.

◆ BSplineValue()

const AppParCurves_MultiBSpCurve & GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::BSplineValue ( )

returns the result of the approximation, i.e. all the Curves. An exception is raised if NotDone.

◆ ComputeFunction()

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::ComputeFunction ( const math_Vector Parameters)
protected

◆ DerivativeFunctionMatrix()

const math_Matrix & GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::DerivativeFunctionMatrix ( ) const

returns the derivative function matrix used to approximate the set.

◆ Distance()

const math_Matrix & GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::Distance ( )

returns the distances between the points of the multiline and the approximation curves.

◆ Error()

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::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.

◆ ErrorGradient()

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::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.

◆ FirstLambda()

Standard_Real GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::FirstLambda ( ) const

returns the value (P2 - P1)/ V1 if the first point was a tangency point.

◆ FunctionMatrix()

const math_Matrix & GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::FunctionMatrix ( ) const

returns the function matrix used to approximate the set.

◆ Init()

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::Init ( const GeomInt_TheMultiLineOfWLApprox SSP,
const Standard_Integer  FirstPoint,
const Standard_Integer  LastPoint 
)
protected

is used by the constructors above.

◆ IsDone()

Standard_Boolean GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::IsDone ( ) const

returns True if all has been correctly done.

◆ KIndex()

const math_IntegerVector & GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::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.

◆ LastLambda()

Standard_Real GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::LastLambda ( ) const

returns the value (PN - PN-1)/ VN if the last point was a tangency point.

◆ MakeTAA() [1/3]

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::MakeTAA ( math_Vector TheA)
protected

computes internal matrixes for the resolution

◆ MakeTAA() [2/3]

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::MakeTAA ( math_Vector TheA,
math_Matrix TheB 
)
protected

computes internal matrixes for the resolution

◆ MakeTAA() [3/3]

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::MakeTAA ( math_Vector TheA,
math_Vector TheB 
)
protected

computes internal matrixes for the resolution

◆ NbBColumns()

Standard_Integer GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::NbBColumns ( const GeomInt_TheMultiLineOfWLApprox SSP) const
protected

returns the number of second member columns. Is used internally to initialize the fields.

◆ Perform() [1/4]

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::Perform ( const math_Vector Parameters)

Is used after having initialized the fields. The case "CurvaturePoint" is not treated in this method.

◆ Perform() [2/4]

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::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.

◆ Perform() [3/4]

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::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.

◆ Perform() [4/4]

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::Perform ( const math_Vector Parameters,
const Standard_Real  l1,
const Standard_Real  l2 
)

Is used after having initialized the fields.

◆ Points()

const math_Matrix & GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::Points ( ) const

returns the matrix of points value.

◆ Poles()

const math_Matrix & GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::Poles ( ) const

returns the matrix of resulting control points value.

◆ SearchIndex()

void GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::SearchIndex ( math_IntegerVector Index)
protected

◆ TheFirstPoint()

Standard_Integer GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::TheFirstPoint ( const AppParCurves_Constraint  FirstCons,
const Standard_Integer  FirstPoint 
) const
protected

returns the first point being fitted.

◆ TheLastPoint()

Standard_Integer GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox::TheLastPoint ( const AppParCurves_Constraint  LastCons,
const Standard_Integer  LastPoint 
) const
protected

returns the last point being fitted.


The documentation for this class was generated from the following file: