|
|
| BSplineSurface (global::System.IntPtr cPtr, bool cMemoryOwn) |
| |
|
| BSplineSurface (cadex.Collections.PointList thePoles, int theNumberOfUPoles, int theNumberOfVPoles, cadex.Collections.DoubleList theUKnots, cadex.Collections.DoubleList theVKnots, cadex.Collections.IntList theUMults, cadex.Collections.IntList theVMults, int theUDegree, int theVDegree, bool theIsUPeriodic, bool theIsVPeriodic) |
| |
|
| BSplineSurface (cadex.Collections.PointList thePoles, int theNumberOfUPoles, int theNumberOfVPoles, cadex.Collections.DoubleList theUKnots, cadex.Collections.DoubleList theVKnots, cadex.Collections.IntList theUMults, cadex.Collections.IntList theVMults, int theUDegree, int theVDegree, bool theIsUPeriodic) |
| |
|
| BSplineSurface (cadex.Collections.PointList thePoles, int theNumberOfUPoles, int theNumberOfVPoles, cadex.Collections.DoubleList theUKnots, cadex.Collections.DoubleList theVKnots, cadex.Collections.IntList theUMults, cadex.Collections.IntList theVMults, int theUDegree, int theVDegree) |
| |
|
| BSplineSurface (cadex.Collections.PointList thePoles, cadex.Collections.DoubleList theWeights, int theNumberOfUPoles, int theNumberOfVPoles, cadex.Collections.DoubleList theUKnots, cadex.Collections.DoubleList theVKnots, cadex.Collections.IntList theUMults, cadex.Collections.IntList theVMults, int theUDegree, int theVDegree, bool theIsUPeriodic, bool theIsVPeriodic) |
| |
|
| BSplineSurface (cadex.Collections.PointList thePoles, cadex.Collections.DoubleList theWeights, int theNumberOfUPoles, int theNumberOfVPoles, cadex.Collections.DoubleList theUKnots, cadex.Collections.DoubleList theVKnots, cadex.Collections.IntList theUMults, cadex.Collections.IntList theVMults, int theUDegree, int theVDegree, bool theIsUPeriodic) |
| |
|
| BSplineSurface (cadex.Collections.PointList thePoles, cadex.Collections.DoubleList theWeights, int theNumberOfUPoles, int theNumberOfVPoles, cadex.Collections.DoubleList theUKnots, cadex.Collections.DoubleList theVKnots, cadex.Collections.IntList theUMults, cadex.Collections.IntList theVMults, int theUDegree, int theVDegree) |
| |
| int | UDegree () |
| | Returns U-degree.
|
| |
| int | VDegree () |
| | Returns V-degree.
|
| |
| int | NumberOfUPoles () |
| | Returns number of U-poles.
|
| |
| int | NumberOfVPoles () |
| | Returns number of V-poles.
|
| |
| int | NumberOfUKnots () |
| | Returns number of unique U-knots.
|
| |
| int | NumberOfVKnots () |
| | Returns number of unique V-knots.
|
| |
| cadex.Geom.Point | Pole (int theUIndex, int theVIndex) |
| | theUIndex must be in the range [1, NumberOfUPoles()], theVIndex in the range [1, NumberOfVPoles()].
|
| |
| cadex.Collections.PointList | Poles () |
| | thePoles must point to a buffer in memory with at least NumberOfUPoles() * NumberOfVPoles() preallocated values.
|
| |
| double | Weight (int theUIndex, int theVIndex) |
| | theUIndex must be in the range [1, NumberOfUPoles()], theVIndex in the range [1, NumberOfVPoles()].
|
| |
| cadex.Collections.DoubleList | Weights () |
| | theWeights must point to a buffer in memory with at least NumberOfUPoles() * NumberOfVPoles() preallocated values.
|
| |
| double | UKnot (int theUIndex) |
| | theIndex must be in the range [1, NumberOfUKnots()].
|
| |
| double | VKnot (int theVIndex) |
| | theIndex must be in the range [1, NumberOfVKnots()].
|
| |
| cadex.Collections.DoubleList | UKnots () |
| | theUKnots must point to a buffer in memory with at least NumberOfUKnots() preallocated values.
|
| |
| cadex.Collections.DoubleList | VKnots () |
| | theVKnots must point to a buffer in memory with at least NumberOfVKnots() preallocated values.
|
| |
| int | UMultiplicity (int theUIndex) |
| | theIndex must be in the range [1, NumberOfUKnots()].
|
| |
| int | VMultiplicity (int theVIndex) |
| | theIndex must be in the range [1, NumberOfVKnots()].
|
| |
| cadex.Collections.IntList | UMultiplicities () |
| | theUMults must point to a buffer in memory with at least NumberOfUKnots() preallocated values.
|
| |
| cadex.Collections.IntList | VMultiplicities () |
| | theVMults must point to a buffer in memory with at least NumberOfVKnots() preallocated values.
|
| |
| bool | IsURational () |
| | Returns true if the B-Spline curve is rational in U direction.
|
| |
| bool | IsVRational () |
| | Returns true if the B-Spline curve is rational in V direction.
|
| |
|
| 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) |
| | theParameterU must be within [UMin(), UMax()] if the surface is not U-periodic.
|
| |
|
cadex.Geom.Direction | Normal (double theParameterU, double theParameterV) |
| |
| bool | IsUPeriodic () |
| | Examples include sphere, torus or a surface of revolution.
|
| |
| bool | IsVPeriodic () |
| | Examples include torus or a V-periodic B-Spline.
|
| |
| 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) |
| | Results depends on the actual surface type.
|
| |
| cadex.Geom.Surface | Transformed (cadex.Geom.Transformation theTransformation) |
| | The contents of this object is not modified.
|
| |
|
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) |
| | Returns true if calculation was passed succsesfully, the returned vectors gives the value of the derivative for the order of derivation theDerivativeOrder.
|
| |
|
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) |
| |
|
| Geometry (global::System.IntPtr cPtr, bool cMemoryOwn) |
| |
|
| 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) |
| |
Defines a B-Spline surface.
B-Spline surface is defined by degree, control points (poles), their weights, unique knots and their multiplicities. The following image depicts an example of a B-Spline surface:
B-Spline surface
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 in each direction (U or V) is defined via the following formulas:
- for non-periodic B-Spline: number_of_poles = sum_of_knot_multiplicities - degree - 1;
- for periodic B-Spline: number_of_poles = sum_of_knot_multiplicities - start_multiplicity.
B-Splines of degree up to 25 are supported.
- Examples
- exploring/brep_geometry/Program.cs, and exploring/brep_geometry/main.cxx.