Defines 3D B-Spline curve. More...
Public Member Functions | |
| BSplineCurve (global::System.IntPtr cPtr, bool cMemoryOwn) | |
| BSplineCurve (cadex.Collections.PointList thePoles, cadex.Collections.DoubleList theKnots, cadex.Collections.IntList theMultiplicities, int theDegree, bool theIsPeriodic) | |
| Constructor. | |
| BSplineCurve (cadex.Collections.PointList thePoles, cadex.Collections.DoubleList theKnots, cadex.Collections.IntList theMultiplicities, int theDegree) | |
| BSplineCurve (cadex.Collections.PointList thePoles, cadex.Collections.DoubleList thePoleWeights, cadex.Collections.DoubleList theKnots, cadex.Collections.IntList theMultiplicities, int theDegree, bool theIsPeriodic) | |
| Constructor. | |
| BSplineCurve (cadex.Collections.PointList thePoles, cadex.Collections.DoubleList thePoleWeights, cadex.Collections.DoubleList theKnots, cadex.Collections.IntList theMultiplicities, int theDegree) | |
| int | Degree () |
| Returns degree. | |
| int | NumberOfKnots () |
| Returns number of unique knots. | |
| int | NumberOfPoles () |
| Returns number of poles. | |
| double | Knot (int theIndex) |
| Returns a knot value. | |
| cadex.Collections.DoubleList | Knots () |
| Populates a vector of knots. | |
| int | Multiplicity (int theIndex) |
| Returns a knot multiplicity. | |
| cadex.Collections.IntList | Multiplicities () |
| Populates a vector of knot multiplicities. | |
| cadex.Geom.Point | Pole (int theIndex) |
| Returns a pole value. | |
| cadex.Collections.PointList | Poles () |
| Populates a vector of poles. | |
| double | Weight (int theIndex) |
| Returns a weight value. | |
| cadex.Collections.DoubleList | Weights () |
| Populates a vector of weights. | |
| bool | IsRational () |
| Returns true if the B-Spline curve is rational (i.e. has weights). | |
Public Member Functions inherited from cadex.Geom.Curve | |
| Curve (global::System.IntPtr cPtr, bool cMemoryOwn) | |
| cadex.Geom.CurveType | Type () |
| cadex.Geom.Continuity | Continuity () |
| Returns a continuity type of the curve. | |
| cadex.Geom.Point | Value (double theParameter) |
| Evaluates a point on the curve. | |
| cadex.Geom.Direction | Normal (double theParameter) |
| Returns the normal direction theNormal of parameter theParam. | |
| double | Curvature (double theParameter) |
| Returns the curvature value of parameter theParam. | |
| bool | IsPeriodic () |
| Returns true if the curve is periodic. | |
| double | UMin () |
| Returns a minimum parameter of a definition domain. | |
| double | UMax () |
| Returns a maximum parameter of a definition domain. | |
| void | Domain (out double theUMin, out double theUMax) |
| Returns a definition domain. | |
| bool | IsTrimmed () |
| Returns whether curve is trimmed or not. | |
| void | SetTrim (double theFirst, double theLast) |
| Trims curve with [theFirst, theLast] section. | |
| void | Transform (cadex.Geom.Transformation theTransformation) |
| Applies transformation matrix to this object. | |
| cadex.Geom.Curve | Transformed (cadex.Geom.Transformation theTransformation) |
| Returns a copy this object after applying transformation. | |
| void | D0 (double theParameter, cadex.Geom.Point theValue) |
| Returns the point theValue of parameter theParam. | |
| void | D1 (double theParameter, cadex.Geom.Point theValue, cadex.Geom.Vector theD1) |
| void | D2 (double theParameter, cadex.Geom.Point theValue, cadex.Geom.Vector theD1, cadex.Geom.Vector theD2) |
| Returns the point theValue of parameter theParam, the first theD1 and second theD2 derivatives. | |
| bool | DN (double theParameter, uint theDerivativeOrder, cadex.Geom.Point theValue, cadex.Collections.VectorList theD) |
| void | Mirror (cadex.Geom.Point thePoint) |
| void | Mirror (cadex.Geom.Axis1d theAxis) |
| void | Mirror (cadex.Geom.Axis3d theAxis) |
| cadex.Geom.Curve | Mirrored (cadex.Geom.Point theRef) |
| cadex.Geom.Curve | Mirrored (cadex.Geom.Axis1d theAxis) |
| cadex.Geom.Curve | Mirrored (cadex.Geom.Axis3d theAxis) |
| void | Rotate (cadex.Geom.Axis1d theAxis, double theAngle) |
| cadex.Geom.Curve | Rotated (cadex.Geom.Axis1d theAxis, double theAngle) |
| void | Translate (cadex.Geom.Vector theVector) |
| cadex.Geom.Curve | Translated (cadex.Geom.Vector theVector) |
| void | Scale (cadex.Geom.Point thePoint, double theScale) |
| cadex.Geom.Curve | Scaled (cadex.Geom.Point thePoint, double theScale) |
Public Member Functions inherited from cadex.Geom.Geometry | |
| Geometry (global::System.IntPtr cPtr, bool cMemoryOwn) | |
Public Member Functions inherited from cadex.BaseObject | |
| BaseObject (global::System.IntPtr cPtr, bool cMemoryOwn) | |
| void | Dispose () |
| bool | IsNull () |
| ulong | Id () |
| Return unique identifier of public object. | |
| bool | IsEqual (cadex.BaseObject theObj) |
| override int | GetHashCode () |
| override bool | Equals (System.Object o) |
Static Public Member Functions | |
| static new bool | CompareType (cadex.BaseObject theObject) |
| static cadex.Geom.BSplineCurve | Cast (cadex.Geom.Curve theBase) |
Static Public Member Functions inherited from cadex.Geom.Curve | |
| static new bool | CompareType (cadex.BaseObject theObject) |
| static cadex.Geom.Curve | Cast (cadex.Geom.Geometry theBase) |
Static Public Member Functions inherited from cadex.Geom.Geometry | |
| static bool | CompareType (cadex.BaseObject theObject) |
| static cadex.Geom.Geometry | Cast (cadex.BaseObject theBase) |
Protected Member Functions | |
| override void | Dispose (bool disposing) |
Protected Member Functions inherited from cadex.Geom.Curve | |
| override void | Dispose (bool disposing) |
Protected Member Functions inherited from cadex.Geom.Geometry | |
| override void | Dispose (bool disposing) |
Defines 3D B-Spline curve.
B-Spline curve is defined by degree, control points (poles), their weights, unique knots and their multiplicities. The following image depicts an example of a B-Spline curve:
For introduction to and mathematical definition of NURBS please refer to external resources, for instance:
A rational B-Spline contains an explicit vector of weights, whereas polynomial does not.
The number of poles must equal the number of weights. The number of poles is defined via the following formulas:
B-Splines of degree up to 25 are supported.
|
inline |
Constructor.
Creates a polynomial B-Spline curve.
Parameters:
theNumberOfPoles must meet the requirements described above.
|
inline |
Constructor.
Creates a rational B-Spline curve.
Parameters:
theNumberOfPoles must meet the requirements described above.
Poles are to be provided after division by their weights.
|
inline |
Returns degree.
Returns the value specified in the constructor.
|
inlineprotectedvirtual |
Reimplemented from cadex.BaseObject.
|
inline |
Returns true if the B-Spline curve is rational (i.e. has weights).
|
inline |
|
inline |
Populates a vector of knots.
theKnots must point to a buffer in memory with at least NumberOfKnots() preallocated values.
Returns NumberOfKnots().
|
inline |
Populates a vector of knot multiplicities.
theMultiplicities must point to a buffer in memory with at least NumberOfKnots() preallocated values.
Returns NumberOfKnots().
|
inline |
|
inline |
Returns number of unique knots.
Returns the value specified in the constructor.
|
inline |
Returns number of poles.
Returns the value specified in the constructor.
|
inline |
|
inline |
Populates a vector of poles.
thePoles must point to a buffer in memory with at least NumberOfPoles() preallocated values.
Returns NumberOfPoles().
|
inline |
Returns a weight value.
theIndex must be in the range [1, NumberOfPoles()].
For polynomial B-Spline behavior is undefined.
|
inline |
Populates a vector of weights.
theWeights must point to a buffer in memory with at least NumberOfPoles() preallocated values.
Returns NumberOfPoles().
For polynomial B-Spline does nothing and returns 0.