Defines 3D Bezier curve. More...
Public Member Functions | |
| BezierCurve (global::System.IntPtr cPtr, bool cMemoryOwn) | |
| BezierCurve (cadex.Collections.PointList thePoles) | |
| Creates a polynomial Bezier curve. | |
| BezierCurve (cadex.Collections.PointList thePoles, cadex.Collections.DoubleList thePoleWeights) | |
| Creates a rational Bezier curve. | |
| int | Degree () |
| Returns degree. | |
| int | NumberOfPoles () |
| Returns number of poles. | |
| cadex.Geom.Point | Pole (int theIndex) |
| theIndex must be in the range [1, NumberOfPoles()]. | |
| cadex.Collections.PointList | Poles () |
| theWeights must point to a buffer in memory with at least NumberOfPoles() preallocated values. | |
| double | Weight (int theIndex) |
| theIndex must be in the range [1, NumberOfPoles()]. | |
| cadex.Collections.DoubleList | Weights () |
| theWeights must point to a buffer in memory with at least NumberOfPoles() preallocated values. | |
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) |
| Results depends on the actual curve type. | |
| cadex.Geom.Curve | Transformed (cadex.Geom.Transformation theTransformation) |
| The contents of this object is not modified. | |
| void | D0 (double theParameter, cadex.Geom.Point theValue) |
| Throws exception only for the OffsetCurve if it is not possible to compute the current point. | |
| void | D1 (double theParameter, cadex.Geom.Point theValue, cadex.Geom.Vector theD1) |
| Returns the point theValue of parameter theParam and the first derivative 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) |
| Returns true if calculation completed successfully. | |
| 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 |
Creates a polynomial Bezier curve.
thePoles and must belong to [2, 26]. Created curve has a degree equal to theNumberOfPoles - 1. Constructor.
|
inline |
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. Constructor.
|
inline |
Returns degree.
|
inlineprotectedvirtual |
Reimplemented from cadex.BaseObject.
|
inline |
Returns number of poles.
|
inline |
theIndex must be in the range [1, NumberOfPoles()].
|
inline |
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 |
theIndex must be in the range [1, NumberOfPoles()].
For polynomial Bezier behavior is undefined.
|
inline |
theWeights must point to a buffer in memory with at least NumberOfPoles() preallocated values.
Returns NumberOfPoles().
For polynomial Bezier does nothing and returns 0.