CAD Exchanger SDK
cadex::ModelData_BezierCurve2d Class Reference

Defines 2D Bezier curve. More...

Inheritance diagram for cadex::ModelData_BezierCurve2d:
cadex::ModelData_Curve2d

Public Member Functions

 ModelData_BezierCurve2d ()
 Constructor. More...
 
 ModelData_BezierCurve2d (const ModelData_Point2d thePoles[], int theNumberOfPoles)
 Constructor. More...
 
 ModelData_BezierCurve2d (const ModelData_Point2d thePoles[], const double thePoleWeights[], int theNumberOfPoles)
 Constructor. More...
 
 ModelData_BezierCurve2d (const Handle_C &)
 Constructor.
 
int Degree () const
 Returns degree. More...
 
int NumberOfPoles () const
 Returns number of poles. More...
 
ModelData_Point2d Pole (const int theIndex) const
 Returns a pole value. More...
 
int Poles (ModelData_Point2d thePoles[]) const
 Populates a vector of poles. More...
 
double Weight (const int theIndex) const
 Returns a weight value. More...
 
int Weights (double theWeights[]) const
 Populates a vector of weights. More...
 
 operator const Handle_C & () const
 Cast operator.
 
- Public Member Functions inherited from cadex::ModelData_Curve2d
 ModelData_Curve2d ()
 Constructor.
 
 ModelData_Curve2d (const ModelData_Curve2d &theOther)
 Constructor.
 
 ModelData_Curve2d (ModelData_Curve2d &&theOther)
 Constructor.
 
 ~ModelData_Curve2d ()
 Destructor.
 
ModelData_Curve2doperator= (const ModelData_Curve2d &theOther)
 Assignment operator.
 
ModelData_Curve2doperator= (ModelData_Curve2d &&theOther)
 Move assignment operator.
 
 operator const Handle_C & () const
 Cast operator.
 
ModelData_CurveType Type () const
 Returns a curve type.
 
bool IsNull () const
 Returns true if the object has not been initialized yet.
 
 operator bool () const
 Returns if the object has been initialized. More...
 
bool IsPeriodic () const
 Returns true if the curve is periodic.
 
double UMin () const
 Returns a minimum parameter of a definition domain. More...
 
double UMax () const
 Returns a maximum parameter of a definition domain. More...
 
void Domain (double &theUMin, double &theUMax) const
 Returns a definition domain. More...
 
ModelData_Point2d Value (double theParameter) const
 Evaluates a point on the curve. More...
 
ModelData_Curve2d Reversed () const
 Returns a curve with reversed orientation. More...
 
void Transform (const ModelData_Transformation2d &theTransformation)
 Applies transformation matrix to this object. More...
 
ModelData_Curve2d Transformed (const ModelData_Transformation2d &theTransformation) const
 Returns a copy this object after applying transformation. More...
 
ModelData_Continuity Continuity () const
 Returns a continuity type of the curve.
 
void D0 (double theParameter, ModelData_Point2d &theValue) const
 Returns the point theValue of parameter theParam. More...
 
void D1 (double theParameter, ModelData_Point2d &theValue, ModelData_Vector2d &theD1) const
 Returns the point theValue of parameter theParam and the first derivative theD1. More...
 
void D2 (double theParameter, ModelData_Point2d &theValue, ModelData_Vector2d &theD1, ModelData_Vector2d &theD2) const
 Returns the point theValue of parameter theParam and second derivatives theD1 and theD2. More...
 
bool DN (double theParameter, size_t theDerivativeOrder, ModelData_Point2d &theValue, ModelData_Vector2d theD[]) const
 
double Curvature (double theParameter) const
 Returns the curvature value of parameter theParam.
 
void Normal (double theParameter, ModelData_Direction2d &theNormal) const
 Returns the normal direction theNormal of parameter theParam.
 

Additional Inherited Members

- Protected Member Functions inherited from cadex::ModelData_Curve2d
 ModelData_Curve2d (const Handle_C &, ModelData_CurveType)
 Constructor.
 
internal::ModelData_Curve2dImpl & Impl ()
 Returns internal implementation object.
 

Detailed Description

Defines 2D Bezier curve.

For detailed description refer to 3D counterpart ModelData_BezierCurve.

Constructor & Destructor Documentation

◆ ModelData_BezierCurve2d() [1/3]

cadex::ModelData_BezierCurve2d::ModelData_BezierCurve2d ( )
inline

Constructor.

Empty constructor.

◆ ModelData_BezierCurve2d() [2/3]

cadex::ModelData_BezierCurve2d::ModelData_BezierCurve2d ( const ModelData_Point2d  thePoles[],
int  theNumberOfPoles 
)

Constructor.

Creates a polynomial Bezier curve.

theNumberOfPoles defines the length of thePoles and must belong to [2, 26]. Created curve has a degree equal to theNumberOfPoles - 1.

◆ ModelData_BezierCurve2d() [3/3]

cadex::ModelData_BezierCurve2d::ModelData_BezierCurve2d ( const ModelData_Point2d  thePoles[],
const double  thePoleWeights[],
int  theNumberOfPoles 
)

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.

Member Function Documentation

◆ Degree()

int cadex::ModelData_BezierCurve2d::Degree ( ) const

Returns degree.

Returns the value equal to NumberOfPoles() - 1.

◆ NumberOfPoles()

int cadex::ModelData_BezierCurve2d::NumberOfPoles ( ) const

Returns number of poles.

Returns the value specified in the constructor.

◆ Pole()

ModelData_Point2d cadex::ModelData_BezierCurve2d::Pole ( const int  theIndex) const

Returns a pole value.

theIndex must be in the range [1, NumberOfPoles()].

See also
Weight().

◆ Poles()

int cadex::ModelData_BezierCurve2d::Poles ( ModelData_Point2d  thePoles[]) const

Populates a vector of poles.

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

Returns NumberOfPoles().

See also
Weights().

◆ Weight()

double cadex::ModelData_BezierCurve2d::Weight ( const int  theIndex) const

Returns a weight value.

theIndex must be in the range [1, NumberOfPoles()].

For polynomial Bezier behavior is undefined.

See also
Pole().

◆ Weights()

int cadex::ModelData_BezierCurve2d::Weights ( double  theWeights[]) const

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.

See also
Poles().