Open CASCADE Technology
6.9.1

For a Bspline curve the discontinuities are localised at the knot values and between two knots values the Bspline 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 Bspline functions and Mult the multiplicity of the knot of range Index. If for your computation you need to have Bspline curves with a minima of continuity it can be interesting to know between which knot values, a Bspline 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 Bspline curve from package Geom). If you just want to compute the local derivatives on the curve you don't need to create the Bspline 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...  
For a Bspline curve the discontinuities are localised at the knot values and between two knots values the Bspline 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 Bspline functions and Mult the multiplicity of the knot of range Index. If for your computation you need to have Bspline curves with a minima of continuity it can be interesting to know between which knot values, a Bspline 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 Bspline curve from package Geom). If you just want to compute the local derivatives on the curve you don't need to create the Bspline curve arcs, you can use the functions LocalD1, LocalD2, LocalD3, LocalDN of the class BSplineCurve.
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.
Standard_Integer Law_BSplineKnotSplitting::NbSplits  (  )  const 
Returns the number of knots corresponding to the 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.
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