Open CASCADE Technology
7.7.0
|
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... | |
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.
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