Open CASCADE Technology 7.8.2.dev
Approx_FitAndDivide Class Reference

#include <Approx_FitAndDivide.hxx>

Public Member Functions

 Approx_FitAndDivide (const AppCont_Function &Line, const Standard_Integer degreemin=3, const Standard_Integer degreemax=8, const Standard_Real Tolerance3d=1.0e-5, const Standard_Real Tolerance2d=1.0e-5, const Standard_Boolean cutting=Standard_False, const AppParCurves_Constraint FirstC=AppParCurves_TangencyPoint, const AppParCurves_Constraint LastC=AppParCurves_TangencyPoint)
 The MultiLine <Line> will be approximated until tolerances will be reached. The approximation will be done from degreemin to degreemax with a cutting if the corresponding boolean is True.
 
 Approx_FitAndDivide (const Standard_Integer degreemin=3, const Standard_Integer degreemax=8, const Standard_Real Tolerance3d=1.0e-05, const Standard_Real Tolerance2d=1.0e-05, const Standard_Boolean cutting=Standard_False, const AppParCurves_Constraint FirstC=AppParCurves_TangencyPoint, const AppParCurves_Constraint LastC=AppParCurves_TangencyPoint)
 Initializes the fields of the algorithm.
 
void Perform (const AppCont_Function &Line)
 runs the algorithm after having initialized the fields.
 
void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax)
 changes the degrees of the approximation.
 
void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d)
 Changes the tolerances of the approximation.
 
void SetConstraints (const AppParCurves_Constraint FirstC, const AppParCurves_Constraint LastC)
 Changes the constraints of the approximation.
 
void SetMaxSegments (const Standard_Integer theMaxSegments)
 Changes the max number of segments, which is allowed for cutting.
 
void SetInvOrder (const Standard_Boolean theInvOrder)
 Set inverse order of degree selection: if theInvOrdr = true, current degree is chosen by inverse order - from maxdegree to mindegree. By default inverse order is used.
 
void SetHangChecking (const Standard_Boolean theHangChecking)
 Set value of hang checking flag if this flag = true, possible hang of algorithm is checked and algorithm is forced to stop. By default hang checking is used.
 
Standard_Boolean IsAllApproximated () const
 returns False if at a moment of the approximation, the status NoApproximation has been sent by the user when more points were needed.
 
Standard_Boolean IsToleranceReached () const
 returns False if the status NoPointsAdded has been sent.
 
void Error (const Standard_Integer Index, Standard_Real &tol3d, Standard_Real &tol2d) const
 returns the tolerances 2d and 3d of the <Index> MultiCurve.
 
Standard_Integer NbMultiCurves () const
 Returns the number of MultiCurve doing the approximation of the MultiLine.
 
AppParCurves_MultiCurve Value (const Standard_Integer Index=1) const
 returns the approximation MultiCurve of range <Index>.
 
void Parameters (const Standard_Integer Index, Standard_Real &firstp, Standard_Real &lastp) const
 

Constructor & Destructor Documentation

◆ Approx_FitAndDivide() [1/2]

Approx_FitAndDivide::Approx_FitAndDivide ( const AppCont_Function & Line,
const Standard_Integer degreemin = 3,
const Standard_Integer degreemax = 8,
const Standard_Real Tolerance3d = 1.0e-5,
const Standard_Real Tolerance2d = 1.0e-5,
const Standard_Boolean cutting = Standard_False,
const AppParCurves_Constraint FirstC = AppParCurves_TangencyPoint,
const AppParCurves_Constraint LastC = AppParCurves_TangencyPoint )

The MultiLine <Line> will be approximated until tolerances will be reached. The approximation will be done from degreemin to degreemax with a cutting if the corresponding boolean is True.

◆ Approx_FitAndDivide() [2/2]

Approx_FitAndDivide::Approx_FitAndDivide ( const Standard_Integer degreemin = 3,
const Standard_Integer degreemax = 8,
const Standard_Real Tolerance3d = 1.0e-05,
const Standard_Real Tolerance2d = 1.0e-05,
const Standard_Boolean cutting = Standard_False,
const AppParCurves_Constraint FirstC = AppParCurves_TangencyPoint,
const AppParCurves_Constraint LastC = AppParCurves_TangencyPoint )

Initializes the fields of the algorithm.

Member Function Documentation

◆ Error()

void Approx_FitAndDivide::Error ( const Standard_Integer Index,
Standard_Real & tol3d,
Standard_Real & tol2d ) const

returns the tolerances 2d and 3d of the <Index> MultiCurve.

◆ IsAllApproximated()

Standard_Boolean Approx_FitAndDivide::IsAllApproximated ( ) const

returns False if at a moment of the approximation, the status NoApproximation has been sent by the user when more points were needed.

◆ IsToleranceReached()

Standard_Boolean Approx_FitAndDivide::IsToleranceReached ( ) const

returns False if the status NoPointsAdded has been sent.

◆ NbMultiCurves()

Standard_Integer Approx_FitAndDivide::NbMultiCurves ( ) const

Returns the number of MultiCurve doing the approximation of the MultiLine.

◆ Parameters()

void Approx_FitAndDivide::Parameters ( const Standard_Integer Index,
Standard_Real & firstp,
Standard_Real & lastp ) const

◆ Perform()

void Approx_FitAndDivide::Perform ( const AppCont_Function & Line)

runs the algorithm after having initialized the fields.

◆ SetConstraints()

void Approx_FitAndDivide::SetConstraints ( const AppParCurves_Constraint FirstC,
const AppParCurves_Constraint LastC )

Changes the constraints of the approximation.

◆ SetDegrees()

void Approx_FitAndDivide::SetDegrees ( const Standard_Integer degreemin,
const Standard_Integer degreemax )

changes the degrees of the approximation.

◆ SetHangChecking()

void Approx_FitAndDivide::SetHangChecking ( const Standard_Boolean theHangChecking)

Set value of hang checking flag if this flag = true, possible hang of algorithm is checked and algorithm is forced to stop. By default hang checking is used.

◆ SetInvOrder()

void Approx_FitAndDivide::SetInvOrder ( const Standard_Boolean theInvOrder)

Set inverse order of degree selection: if theInvOrdr = true, current degree is chosen by inverse order - from maxdegree to mindegree. By default inverse order is used.

◆ SetMaxSegments()

void Approx_FitAndDivide::SetMaxSegments ( const Standard_Integer theMaxSegments)

Changes the max number of segments, which is allowed for cutting.

◆ SetTolerances()

void Approx_FitAndDivide::SetTolerances ( const Standard_Real Tolerance3d,
const Standard_Real Tolerance2d )

Changes the tolerances of the approximation.

◆ Value()

AppParCurves_MultiCurve Approx_FitAndDivide::Value ( const Standard_Integer Index = 1) const

returns the approximation MultiCurve of range <Index>.


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