Defines 3D Bezier curve. More...
Public Member Functions | |
| BezierCurve (global::System.IntPtr cPtr, bool cMemoryOwn) | |
| BezierCurve (cadex.Collections.PointList thePoles) | |
| Constructor. | |
| BezierCurve (cadex.Collections.PointList thePoles, cadex.Collections.DoubleList thePoleWeights) | |
| Constructor. | |
| int | Degree () |
| Returns degree. | |
| int | NumberOfPoles () |
| Returns number of poles. | |
| cadex.Geom.Point | Pole (int theIndex) |
| Returns a pole value. | |
| cadex.Collections.PointList | Poles () |
| Populates a vector of weights. | |
| double | Weight (int theIndex) |
| Returns a weight value. | |
| cadex.Collections.DoubleList | Weights () |
| Populates a vector of 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.BezierCurve | 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 Bezier curve.
Bezier curve is defined by control points (poles) and their weights. The following image depicts an example of a Bezier curve:
For introduction to and mathematical definition of Bezier curve please refer to external resources, for instance:
A rational Bezier curve contains an explicit vector of weights, whereas polynomial does not.
The curve degree equals number of poles minus one. Degree up to 25 is supported.
The Bezier curve is always considered non-periodic.
|
inline |
Constructor.
Creates a polynomial Bezier curve.
thePoles and must belong to [2, 26]. Created curve has a degree equal to theNumberOfPoles - 1.
|
inline |
Constructor.
Creates a rational Bezier curve.
theNumberOfPoles defines the length of thePoles and thePoleWeights and must belong to [2, 26]. Created curve has a degree equal to theNumberOfPoles - 1.
Poles are to be provided after division by their weights.
|
inline |
Returns degree.
Returns the value equal to NumberOfPoles() - 1.
|
inlineprotectedvirtual |
Reimplemented from cadex.BaseObject.
|
inline |
Returns number of poles.
Returns the value specified in the constructor.
|
inline |
|
inline |
Populates a vector of weights.
theWeights must point to a buffer in memory with at least NumberOfPoles() preallocated values.
Returns NumberOfPoles().
For polynomial Bezier does nothing and returns 0.
|
inline |
Returns a weight value.
theIndex must be in the range [1, NumberOfPoles()].
For polynomial Bezier 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 Bezier does nothing and returns 0.