Open CASCADE Technology  7.7.0
Public Member Functions
AppDef_BSplineCompute Class Reference

#include <AppDef_BSplineCompute.hxx>

Public Member Functions

 AppDef_BSplineCompute (const AppDef_MultiLine &Line, const Standard_Integer degreemin=4, const Standard_Integer degreemax=8, const Standard_Real Tolerance3d=1.0e-3, const Standard_Real Tolerance2d=1.0e-6, const Standard_Integer NbIterations=5, const Standard_Boolean cutting=Standard_True, const Approx_ParametrizationType parametrization=Approx_ChordLength, const Standard_Boolean Squares=Standard_False)
 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. If <Squares> is True, the computation will be done with no iteration at all. More...
 
 AppDef_BSplineCompute (const AppDef_MultiLine &Line, const math_Vector &Parameters, const Standard_Integer degreemin=4, const Standard_Integer degreemax=8, const Standard_Real Tolerance3d=1.0e-03, const Standard_Real Tolerance2d=1.0e-06, const Standard_Integer NbIterations=5, const Standard_Boolean cutting=Standard_True, const Standard_Boolean Squares=Standard_False)
 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. If <Squares> is True, the computation will be done with no iteration at all. More...
 
 AppDef_BSplineCompute (const math_Vector &Parameters, const Standard_Integer degreemin=4, const Standard_Integer degreemax=8, const Standard_Real Tolerance3d=1.0e-03, const Standard_Real Tolerance2d=1.0e-06, const Standard_Integer NbIterations=5, const Standard_Boolean cutting=Standard_True, const Standard_Boolean Squares=Standard_False)
 Initializes the fields of the algorithm. More...
 
 AppDef_BSplineCompute (const Standard_Integer degreemin=4, const Standard_Integer degreemax=8, const Standard_Real Tolerance3d=1.0e-03, const Standard_Real Tolerance2d=1.0e-06, const Standard_Integer NbIterations=5, const Standard_Boolean cutting=Standard_True, const Approx_ParametrizationType parametrization=Approx_ChordLength, const Standard_Boolean Squares=Standard_False)
 Initializes the fields of the algorithm. More...
 
void Interpol (const AppDef_MultiLine &Line)
 Constructs an interpolation of the MultiLine <Line> The result will be a C2 curve of degree 3. More...
 
void Init (const Standard_Integer degreemin=4, const Standard_Integer degreemax=8, const Standard_Real Tolerance3d=1.0e-03, const Standard_Real Tolerance2d=1.0e-06, const Standard_Integer NbIterations=5, const Standard_Boolean cutting=Standard_True, const Approx_ParametrizationType parametrization=Approx_ChordLength, const Standard_Boolean Squares=Standard_False)
 Initializes the fields of the algorithm. More...
 
void Perform (const AppDef_MultiLine &Line)
 runs the algorithm after having initialized the fields. More...
 
void SetParameters (const math_Vector &ThePar)
 The approximation will begin with the set of parameters <ThePar>. More...
 
void SetKnots (const TColStd_Array1OfReal &Knots)
 The approximation will be done with the set of knots <Knots>. The multiplicities will be set with the degree and the desired continuity. More...
 
void SetKnotsAndMultiplicities (const TColStd_Array1OfReal &Knots, const TColStd_Array1OfInteger &Mults)
 The approximation will be done with the set of knots <Knots> and the multiplicities <Mults>. More...
 
void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax)
 changes the degrees of the approximation. More...
 
void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d)
 Changes the tolerances of the approximation. More...
 
void SetContinuity (const Standard_Integer C)
 sets the continuity of the spline. if C = 2, the spline will be C2. More...
 
void SetConstraints (const AppParCurves_Constraint firstC, const AppParCurves_Constraint lastC)
 changes the first and the last constraint points. More...
 
void SetPeriodic (const Standard_Boolean thePeriodic)
 Sets periodic flag. If thePeriodic = Standard_True, algorithm tries to build periodic multicurve using corresponding C1 boundary condition for first and last multipoints. Multiline must be closed. More...
 
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. More...
 
Standard_Boolean IsToleranceReached () const
 returns False if the status NoPointsAdded has been sent. More...
 
void Error (Standard_Real &tol3d, Standard_Real &tol2d) const
 returns the tolerances 2d and 3d of the MultiBSpCurve. More...
 
const AppParCurves_MultiBSpCurveValue () const
 returns the result of the approximation. More...
 
AppParCurves_MultiBSpCurveChangeValue ()
 returns the result of the approximation. More...
 
const TColStd_Array1OfRealParameters () const
 returns the new parameters of the approximation corresponding to the points of the MultiBSpCurve. More...
 

Constructor & Destructor Documentation

◆ AppDef_BSplineCompute() [1/4]

AppDef_BSplineCompute::AppDef_BSplineCompute ( const AppDef_MultiLine Line,
const Standard_Integer  degreemin = 4,
const Standard_Integer  degreemax = 8,
const Standard_Real  Tolerance3d = 1.0e-3,
const Standard_Real  Tolerance2d = 1.0e-6,
const Standard_Integer  NbIterations = 5,
const Standard_Boolean  cutting = Standard_True,
const Approx_ParametrizationType  parametrization = Approx_ChordLength,
const Standard_Boolean  Squares = Standard_False 
)

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. If <Squares> is True, the computation will be done with no iteration at all.

The multiplicities of the internal knots is set by default.

◆ AppDef_BSplineCompute() [2/4]

AppDef_BSplineCompute::AppDef_BSplineCompute ( const AppDef_MultiLine Line,
const math_Vector Parameters,
const Standard_Integer  degreemin = 4,
const Standard_Integer  degreemax = 8,
const Standard_Real  Tolerance3d = 1.0e-03,
const Standard_Real  Tolerance2d = 1.0e-06,
const Standard_Integer  NbIterations = 5,
const Standard_Boolean  cutting = Standard_True,
const Standard_Boolean  Squares = Standard_False 
)

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. If <Squares> is True, the computation will be done with no iteration at all.

◆ AppDef_BSplineCompute() [3/4]

AppDef_BSplineCompute::AppDef_BSplineCompute ( const math_Vector Parameters,
const Standard_Integer  degreemin = 4,
const Standard_Integer  degreemax = 8,
const Standard_Real  Tolerance3d = 1.0e-03,
const Standard_Real  Tolerance2d = 1.0e-06,
const Standard_Integer  NbIterations = 5,
const Standard_Boolean  cutting = Standard_True,
const Standard_Boolean  Squares = Standard_False 
)

Initializes the fields of the algorithm.

◆ AppDef_BSplineCompute() [4/4]

AppDef_BSplineCompute::AppDef_BSplineCompute ( const Standard_Integer  degreemin = 4,
const Standard_Integer  degreemax = 8,
const Standard_Real  Tolerance3d = 1.0e-03,
const Standard_Real  Tolerance2d = 1.0e-06,
const Standard_Integer  NbIterations = 5,
const Standard_Boolean  cutting = Standard_True,
const Approx_ParametrizationType  parametrization = Approx_ChordLength,
const Standard_Boolean  Squares = Standard_False 
)

Initializes the fields of the algorithm.

Member Function Documentation

◆ ChangeValue()

AppParCurves_MultiBSpCurve& AppDef_BSplineCompute::ChangeValue ( )

returns the result of the approximation.

◆ Error()

void AppDef_BSplineCompute::Error ( Standard_Real tol3d,
Standard_Real tol2d 
) const

returns the tolerances 2d and 3d of the MultiBSpCurve.

◆ Init()

void AppDef_BSplineCompute::Init ( const Standard_Integer  degreemin = 4,
const Standard_Integer  degreemax = 8,
const Standard_Real  Tolerance3d = 1.0e-03,
const Standard_Real  Tolerance2d = 1.0e-06,
const Standard_Integer  NbIterations = 5,
const Standard_Boolean  cutting = Standard_True,
const Approx_ParametrizationType  parametrization = Approx_ChordLength,
const Standard_Boolean  Squares = Standard_False 
)

Initializes the fields of the algorithm.

◆ Interpol()

void AppDef_BSplineCompute::Interpol ( const AppDef_MultiLine Line)

Constructs an interpolation of the MultiLine <Line> The result will be a C2 curve of degree 3.

◆ IsAllApproximated()

Standard_Boolean AppDef_BSplineCompute::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 AppDef_BSplineCompute::IsToleranceReached ( ) const

returns False if the status NoPointsAdded has been sent.

◆ Parameters()

const TColStd_Array1OfReal& AppDef_BSplineCompute::Parameters ( ) const

returns the new parameters of the approximation corresponding to the points of the MultiBSpCurve.

◆ Perform()

void AppDef_BSplineCompute::Perform ( const AppDef_MultiLine Line)

runs the algorithm after having initialized the fields.

◆ SetConstraints()

void AppDef_BSplineCompute::SetConstraints ( const AppParCurves_Constraint  firstC,
const AppParCurves_Constraint  lastC 
)

changes the first and the last constraint points.

◆ SetContinuity()

void AppDef_BSplineCompute::SetContinuity ( const Standard_Integer  C)

sets the continuity of the spline. if C = 2, the spline will be C2.

◆ SetDegrees()

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

changes the degrees of the approximation.

◆ SetKnots()

void AppDef_BSplineCompute::SetKnots ( const TColStd_Array1OfReal Knots)

The approximation will be done with the set of knots <Knots>. The multiplicities will be set with the degree and the desired continuity.

◆ SetKnotsAndMultiplicities()

void AppDef_BSplineCompute::SetKnotsAndMultiplicities ( const TColStd_Array1OfReal Knots,
const TColStd_Array1OfInteger Mults 
)

The approximation will be done with the set of knots <Knots> and the multiplicities <Mults>.

◆ SetParameters()

void AppDef_BSplineCompute::SetParameters ( const math_Vector ThePar)

The approximation will begin with the set of parameters <ThePar>.

◆ SetPeriodic()

void AppDef_BSplineCompute::SetPeriodic ( const Standard_Boolean  thePeriodic)

Sets periodic flag. If thePeriodic = Standard_True, algorithm tries to build periodic multicurve using corresponding C1 boundary condition for first and last multipoints. Multiline must be closed.

◆ SetTolerances()

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

Changes the tolerances of the approximation.

◆ Value()

const AppParCurves_MultiBSpCurve& AppDef_BSplineCompute::Value ( ) const

returns the result of the approximation.


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