Open CASCADE Technology  7.7.0.dev
Public Member Functions

Law_BSplineKnotSplitting Class Reference

For a B-spline curve the discontinuities are localised at the knot values and between two knots values the B-spline is infinitely continuously differentiable. At a knot of range index the continuity is equal to : Degree - Mult (Index) where Degree is the degree of the basis B-spline functions and Mult the multiplicity of the knot of range Index. If for your computation you need to have B-spline curves with a minima of continuity it can be interesting to know between which knot values, a B-spline curve arc, has a continuity of given order. This algorithm computes the indexes of the knots where you should split the curve, to obtain arcs with a constant continuity given at the construction time. The splitting values are in the range [FirstUKnotValue, LastUKnotValue] (See class B-spline curve from package Geom). If you just want to compute the local derivatives on the curve you don't need to create the B-spline curve arcs, you can use the functions LocalD1, LocalD2, LocalD3, LocalDN of the class BSplineCurve. More...

#include <Law_BSplineKnotSplitting.hxx>

Public Member Functions

 Law_BSplineKnotSplitting (const Handle< Law_BSpline > &BasisLaw, const Standard_Integer ContinuityRange)
 Locates the knot values which correspond to the segmentation of the curve into arcs with a continuity equal to ContinuityRange. More...
 
Standard_Integer NbSplits () const
 Returns the number of knots corresponding to the splitting. More...
 
void Splitting (TColStd_Array1OfInteger &SplitValues) const
 Returns the indexes of the BSpline curve knots corresponding to the splitting. More...
 
Standard_Integer SplitValue (const Standard_Integer Index) const
 Returns the index of the knot corresponding to the splitting of range Index. More...
 

Detailed Description

For a B-spline curve the discontinuities are localised at the knot values and between two knots values the B-spline is infinitely continuously differentiable. At a knot of range index the continuity is equal to : Degree - Mult (Index) where Degree is the degree of the basis B-spline functions and Mult the multiplicity of the knot of range Index. If for your computation you need to have B-spline curves with a minima of continuity it can be interesting to know between which knot values, a B-spline curve arc, has a continuity of given order. This algorithm computes the indexes of the knots where you should split the curve, to obtain arcs with a constant continuity given at the construction time. The splitting values are in the range [FirstUKnotValue, LastUKnotValue] (See class B-spline curve from package Geom). If you just want to compute the local derivatives on the curve you don't need to create the B-spline curve arcs, you can use the functions LocalD1, LocalD2, LocalD3, LocalDN of the class BSplineCurve.

Constructor & Destructor Documentation

◆ Law_BSplineKnotSplitting()

Law_BSplineKnotSplitting::Law_BSplineKnotSplitting ( const Handle< Law_BSpline > &  BasisLaw,
const Standard_Integer  ContinuityRange 
)

Locates the knot values which correspond to the segmentation of the curve into arcs with a continuity equal to ContinuityRange.

Raised if ContinuityRange is not greater or equal zero.

Member Function Documentation

◆ NbSplits()

Standard_Integer Law_BSplineKnotSplitting::NbSplits ( ) const

Returns the number of knots corresponding to the splitting.

◆ Splitting()

void Law_BSplineKnotSplitting::Splitting ( TColStd_Array1OfInteger SplitValues) const

Returns the indexes of the BSpline curve knots corresponding to the splitting.

Raised if the length of SplitValues is not equal to NbSPlit.

◆ SplitValue()

Standard_Integer Law_BSplineKnotSplitting::SplitValue ( const Standard_Integer  Index) const

Returns the index of the knot corresponding to the splitting of range Index.

Raised if Index < 1 or Index > NbSplits


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