Open CASCADE Technology
6.5.4
|
defines IGESBSplineCurve, Type <126> Form <0-5>
in package IGESGeom
A parametric equation obtained by dividing two summations
involving weights (which are real numbers), the control
points, and B-Spline basis functions
#include <IGESGeom_BSplineCurve.hxx>
Public Member Functions | |
IGESGeom_BSplineCurve () | |
void | Init (const Standard_Integer anIndex, const Standard_Integer aDegree, const Standard_Boolean aPlanar, const Standard_Boolean aClosed, const Standard_Boolean aPolynom, const Standard_Boolean aPeriodic, const Handle< TColStd_HArray1OfReal > &allKnots, const Handle< TColStd_HArray1OfReal > &allWeights, const Handle< TColgp_HArray1OfXYZ > &allPoles, const Standard_Real aUmin, const Standard_Real aUmax, const gp_XYZ &aNorm) |
This method is used to set the fields of the class BSplineCurve. Beware about indexation of arrays | |
void | SetFormNumber (const Standard_Integer form) |
Changes FormNumber (indicates the Shape of the Curve) Error if not in range [0-5] | |
Standard_Integer | UpperIndex () const |
returns the upper index of the sum (see Knots,Poles) | |
Standard_Integer | Degree () const |
returns the degree of basis functions | |
Standard_Boolean | IsPlanar () const |
returns True if the curve is Planar, False if non-planar | |
Standard_Boolean | IsClosed () const |
returns True if the curve is closed, False if open | |
Standard_Boolean | IsPolynomial (const Standard_Boolean flag=Standard_False) const |
returns True if the curve is polynomial, False if rational <flag> False (D) : computed from the list of weights (all must be equal) <flag> True : as recorded | |
Standard_Boolean | IsPeriodic () const |
returns True if the curve is periodic, False otherwise | |
Standard_Integer | NbKnots () const |
returns the number of knots (i.e. Degree + UpperIndex + 2) | |
Standard_Real | Knot (const Standard_Integer anIndex) const |
returns the knot referred to by anIndex, inside the range [-Degree,UpperIndex+1] raises exception if anIndex < -Degree() or anIndex > (NbKnots() - Degree()) Note : Knots are numbered from -Degree (not from 1) | |
Standard_Integer | NbPoles () const |
returns number of poles (i.e. UpperIndex + 1) | |
Standard_Real | Weight (const Standard_Integer anIndex) const |
returns the weight referred to by anIndex, in [0,UpperIndex] raises exception if anIndex < 0 or anIndex > UpperIndex() | |
gp_Pnt | Pole (const Standard_Integer anIndex) const |
returns the pole referred to by anIndex, in [0,UpperIndex] raises exception if anIndex < 0 or anIndex > UpperIndex() | |
gp_Pnt | TransformedPole (const Standard_Integer anIndex) const |
returns the anIndex'th pole after applying Transf. Matrix raises exception if an Index < 0 or an Index > UpperIndex() | |
Standard_Real | UMin () const |
returns starting parameter value | |
Standard_Real | UMax () const |
returns ending parameter value | |
gp_XYZ | Normal () const |
if the curve is nonplanar then (0, 0, 0) is returned |
void IGESGeom_BSplineCurve::Init | ( | const Standard_Integer | anIndex, |
const Standard_Integer | aDegree, | ||
const Standard_Boolean | aPlanar, | ||
const Standard_Boolean | aClosed, | ||
const Standard_Boolean | aPolynom, | ||
const Standard_Boolean | aPeriodic, | ||
const Handle< TColStd_HArray1OfReal > & | allKnots, | ||
const Handle< TColStd_HArray1OfReal > & | allWeights, | ||
const Handle< TColgp_HArray1OfXYZ > & | allPoles, | ||
const Standard_Real | aUmin, | ||
const Standard_Real | aUmax, | ||
const gp_XYZ & | aNorm | ||
) |
- anIndex : Upper index of the sum <br> - aDegree : Degree of basis functions <br> - aPlanar : 0 = nonplanar curve, 1 = planar curve <br> - aClosed : 0 = open curve, 1 = closed curve <br> - aPolynom : 0 = rational, 1 = polynomial <br> - aPeriodic : 0 = nonperiodic, 1 = periodic <br> - allKnots : Knot sequence values [-Degree,Index+1] <br> - allWeights : Array of weights [0,Index] <br> - allPoles : X, Y, Z coordinates of all control points <br> [0,Index] <br> - aUmin, aUmax : Starting and ending parameter values <br> - aNorm : Unit normal (if the curve is planar) <br>
raises exception if allWeights & allPoles are not of same size.
Standard_Boolean IGESGeom_BSplineCurve::IsPolynomial | ( | const Standard_Boolean | flag = Standard_False | ) | const |
Standard_Real IGESGeom_BSplineCurve::Knot | ( | const Standard_Integer | anIndex | ) | const |
gp_XYZ IGESGeom_BSplineCurve::Normal | ( | ) | const |
gp_Pnt IGESGeom_BSplineCurve::Pole | ( | const Standard_Integer | anIndex | ) | const |
gp_Pnt IGESGeom_BSplineCurve::TransformedPole | ( | const Standard_Integer | anIndex | ) | const |
Standard_Real IGESGeom_BSplineCurve::UMax | ( | ) | const |
Standard_Real IGESGeom_BSplineCurve::UMin | ( | ) | const |
Standard_Real IGESGeom_BSplineCurve::Weight | ( | const Standard_Integer | anIndex | ) | const |