Defines a Bezier surface. More...
Public Member Functions | |
| BezierSurface (global::System.IntPtr cPtr, bool cMemoryOwn) | |
| BezierSurface (cadex.Collections.PointList thePoles, int theNumberOfUPoles, int theNumberOfVPoles) | |
| Constructor. | |
| BezierSurface (cadex.Collections.PointList thePoles, cadex.Collections.DoubleList thePoleWeights, int theNumberOfUPoles, int theNumberOfVPoles) | |
| int | UDegree () |
| Returns degree. | |
| int | VDegree () |
| Returns degree. | |
| int | NumberOfUPoles () |
| Returns number of U-poles. | |
| int | NumberOfVPoles () |
| Returns number of V-poles. | |
| cadex.Geom.Point | Pole (int theUIndex, int theVIndex) |
| Returns a pole value. | |
| cadex.Collections.PointList | Poles () |
| Populates a 2D table of poles. | |
| double | Weight (int theUIndex, int theVIndex) |
| Returns a weight value. | |
| cadex.Collections.DoubleList | Weights () |
| Populates a 2D table of weights. | |
Public Member Functions inherited from cadex.Geom.Surface | |
| Surface (global::System.IntPtr cPtr, bool cMemoryOwn) | |
| cadex.Geom.SurfaceType | Type () |
| Returns a surface type. | |
| cadex.Geom.Continuity | Continuity () |
| Returns a continuity type of the surface. | |
| cadex.Geom.Point | Value (double theParameterU, double theParameterV) |
| Evaluates a point on the surface. | |
| cadex.Geom.Direction | Normal (double theParameterU, double theParameterV) |
| bool | IsUPeriodic () |
| Returns true if the surface is periodic in U direction. | |
| bool | IsVPeriodic () |
| Returns true if the surface is periodic in V direction. | |
| double | UMin () |
| Returns a minimum parameter of a definition domain in U direction. | |
| double | UMax () |
| Returns a maximum parameter of a definition domain in U direction. | |
| double | VMin () |
| Returns a minimum parameter of a definition domain in V direction. | |
| double | VMax () |
| Returns a maximum parameter of a definition domain in V direction. | |
| void | Domain (out double theUMin, out double theUMax, out double theVMin, out double theVMax) |
| Returns a definition domain. | |
| bool | IsTrimmed () |
| Returns whether surface is trimmed or not. | |
| void | SetTrim (double theUFirst, double theULast, double theVFirst, double theVLast) |
| Trims surface with [theUFirst, theULast] x [theVFirst, theVLast] section. | |
| void | Transform (cadex.Geom.Transformation theTransformation) |
| Applies transformation matrix to this object. | |
| cadex.Geom.Surface | Transformed (cadex.Geom.Transformation theTransformation) |
| Returns a copy this object after applying transformation. | |
| void | D0 (double theParameterU, double theParameterV, cadex.Geom.Point theValue) |
| void | D1 (double theParameterU, double theParameterV, cadex.Geom.Point theValue, cadex.Geom.Vector theD1U, cadex.Geom.Vector theD1V) |
| void | D2 (double theParameterU, double theParameterV, cadex.Geom.Point theValue, cadex.Geom.Vector theD1U, cadex.Geom.Vector theD1V, cadex.Geom.Vector theD2U, cadex.Geom.Vector theD2V, cadex.Geom.Vector theD2UV) |
| bool | DN (double theParameterU, double theParameterV, uint theDerivativeOrder, cadex.Geom.Point theValue, cadex.Collections.VectorList theD) |
| void | Curvature (double theParameterU, double theParameterV, cadex.Geom.Direction thePrincipalMaxDirection, cadex.Geom.Direction thePrincipalMinDirection) |
| void | Curvature (double theParameterU, double theParameterV, cadex.Geom.Direction thePrincipalMaxDirection, cadex.Geom.Direction thePrincipalMinDirection, out double theMaxCurvature, out double theMinCurvature) |
| void | Mirror (cadex.Geom.Point thePoint) |
| void | Mirror (cadex.Geom.Axis1d theAxis) |
| void | Mirror (cadex.Geom.Axis3d theAxis) |
| cadex.Geom.Surface | Mirrored (cadex.Geom.Point theRef) |
| cadex.Geom.Surface | Mirrored (cadex.Geom.Axis1d theAxis) |
| cadex.Geom.Surface | Mirrored (cadex.Geom.Axis3d theAxis) |
| void | Rotate (cadex.Geom.Axis1d theAxis, double theAngle) |
| cadex.Geom.Surface | Rotated (cadex.Geom.Axis1d theAxis, double theAngle) |
| void | Translate (cadex.Geom.Vector theVector) |
| cadex.Geom.Surface | Translated (cadex.Geom.Vector theVector) |
| void | Scale (cadex.Geom.Point thePoint, double theScale) |
| cadex.Geom.Surface | 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.BezierSurface | Cast (cadex.Geom.Surface theBase) |
Static Public Member Functions inherited from cadex.Geom.Surface | |
| static new bool | CompareType (cadex.BaseObject theObject) |
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.Surface | |
| override void | Dispose (bool disposing) |
Defines a Bezier surface.
Bezier surface is defined by control points (poles) and their weights. The following image depicts an example of a Bezier surface:
For introduction to and mathematical definition of Bezier surface please refer to external resources, for instance:
A rational Bezier surface contains an explicit vector of weights, whereas polynomial does not.
The surface degree equals number of poles minus one. Degree up to 25 is supported.
The Bezier surface is always considered non-periodic.
|
inline |
Constructor.
Creates a polynomial Bezier surface.
thePoles contains a 2D table of poles, with size equal to theNumberOfUPoles * theNumberOfVPoles. theNumberOfUPoles and theNumberOfVPoles must be >=2 each.
|
inlineprotectedvirtual |
Reimplemented from cadex.BaseObject.
|
inline |
Returns number of U-poles.
Returns the value specified in the constructor.
|
inline |
Returns number of V-poles.
Returns the value specified in the constructor.
|
inline |
Returns a pole value.
theUIndex must be in the range [1, NumberOfUPoles()], theVIndex in the range [1, NumberOfVPoles()].
|
inline |
Populates a 2D table of poles.
thePoles must point to a buffer in memory with at least NumberOfUPoles() * NumberOfVPoles() preallocated values.
Returns NumberOfUPoles() * NumberOfVPoles().
|
inline |
Returns degree.
Returns the value equal to NumberOfUPoles() - 1.
|
inline |
Returns degree.
Returns the value equal to NumberOfVPoles() - 1.
|
inline |
Returns a weight value.
theUIndex must be in the range [1, NumberOfUPoles()], theVIndex in the range [1, NumberOfVPoles()].
For polynomial Bezier surface behavior is undefined.
|
inline |
Populates a 2D table of weights.
thePoles must point to a buffer in memory with at least NumberOfUPoles() * NumberOfVPoles() preallocated values.
Returns NumberOfUPoles() * NumberOfVPoles().