Hide menu
Loading...
Searching...
No Matches

Defines a Bezier surface. More...

Inheritance diagram for cadex.Geom.BezierSurface:
cadex.Geom.Surface cadex.Geom.Geometry cadex.BaseObject

Public Member Functions

 BezierSurface (global::System.IntPtr cPtr, bool cMemoryOwn)
 
 BezierSurface (cadex.Collections.PointList thePoles, int theNumberOfUPoles, int theNumberOfVPoles)
 Creates a polynomial Bezier surface.
 
 BezierSurface (cadex.Collections.PointList thePoles, cadex.Collections.DoubleList thePoleWeights, int theNumberOfUPoles, int theNumberOfVPoles)
 
int UDegree ()
 Returns the value equal to NumberOfUPoles() - 1.
 
int VDegree ()
 Returns the value equal to NumberOfVPoles() - 1.
 
int NumberOfUPoles ()
 Returns the value specified in the constructor.
 
int NumberOfVPoles ()
 Returns the value specified in the constructor.
 
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 ()
 thePoles must point to a buffer in memory with at least NumberOfUPoles() * NumberOfVPoles() preallocated values.
 
- 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)
 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)
 
- 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)
 

Detailed Description

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:

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.

Examples
exploring/brep_geometry/Program.cs, and exploring/brep_geometry/main.cxx.

Constructor & Destructor Documentation

◆ BezierSurface()

cadex.Geom.BezierSurface.BezierSurface ( cadex.Collections.PointList thePoles,
int theNumberOfUPoles,
int theNumberOfVPoles )
inline

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. Constructor.

Member Function Documentation

◆ Dispose()

override void cadex.Geom.BezierSurface.Dispose ( bool disposing)
inlineprotectedvirtual

Reimplemented from cadex.BaseObject.

◆ NumberOfUPoles()

int cadex.Geom.BezierSurface.NumberOfUPoles ( )
inline

Returns the value specified in the constructor.

Returns number of U-poles.

Examples
exploring/brep_geometry/Program.cs, and exploring/brep_geometry/main.cxx.

◆ NumberOfVPoles()

int cadex.Geom.BezierSurface.NumberOfVPoles ( )
inline

Returns the value specified in the constructor.

Returns number of V-poles.

Examples
exploring/brep_geometry/Program.cs, and exploring/brep_geometry/main.cxx.

◆ Pole()

cadex.Geom.Point cadex.Geom.BezierSurface.Pole ( int theUIndex,
int theVIndex )
inline

theUIndex must be in the range [1, NumberOfUPoles()], theVIndex in the range [1, NumberOfVPoles()].

See also
Weight(). Returns a pole value.
Examples
exploring/brep_geometry/Program.cs, and exploring/brep_geometry/main.cxx.

◆ Poles()

cadex.Collections.PointList cadex.Geom.BezierSurface.Poles ( )
inline

thePoles must point to a buffer in memory with at least NumberOfUPoles() * NumberOfVPoles() preallocated values.

Returns NumberOfUPoles() * NumberOfVPoles().

See also
Weights(). Populates a 2D table of poles.

◆ UDegree()

int cadex.Geom.BezierSurface.UDegree ( )
inline

Returns the value equal to NumberOfUPoles() - 1.

Returns degree.

Examples
exploring/brep_geometry/Program.cs, and exploring/brep_geometry/main.cxx.

◆ VDegree()

int cadex.Geom.BezierSurface.VDegree ( )
inline

Returns the value equal to NumberOfVPoles() - 1.

Returns degree.

Examples
exploring/brep_geometry/Program.cs, and exploring/brep_geometry/main.cxx.

◆ Weight()

double cadex.Geom.BezierSurface.Weight ( int theUIndex,
int theVIndex )
inline

theUIndex must be in the range [1, NumberOfUPoles()], theVIndex in the range [1, NumberOfVPoles()].

For polynomial Bezier surface behavior is undefined.

See also
Pole(). Returns a weight value.
Examples
exploring/brep_geometry/Program.cs, and exploring/brep_geometry/main.cxx.

◆ Weights()

cadex.Collections.DoubleList cadex.Geom.BezierSurface.Weights ( )
inline

thePoles must point to a buffer in memory with at least NumberOfUPoles() * NumberOfVPoles() preallocated values.

Returns NumberOfUPoles() * NumberOfVPoles().

See also
Weights(). Populates a 2D table of weights.