MKI_CUBIC_BEZIER (Basic Classes) Renamed in Version 2024.2

www.CAD6.com

C++ Syntax

class MKI_CUBIC_BEZIER

{

  public:

 

  MKI_POINTDATA m_cData0,

                m_cData1,

                m_cData2,

                m_cData3;

  double m_dT1,

         m_dT2;

 

  MKI_CUBIC_BEZIER( void ){};

 

  MKI_CUBIC_BEZIER( const MKI_CUBIC_BEZIER* f_pThis );

 

  MKI_CUBIC_BEZIER( const MKI_QUADRATIC_BEZIER& f_rData ); New in Version 2024.2

 

  MKI_CUBIC_BEZIER(

 const double f_dX1, const double f_dY1,

 const double f_dX2, const double f_dY2,

 const double f_dX3, const double f_dY3,

 const double f_dX4, const double f_dY4 );

 

  MKI_CUBIC_BEZIER(

 const MKI_POINT& f_rPoint1,

 const MKI_POINT& f_rPoint2,

 const MKI_POINT& f_rPoint3,

 const MKI_POINT& f_rPoint4 );

 

  MKI_CUBIC_BEZIER(

 const MKI_POINTDATA& f_rPoint1,

 const MKI_POINTDATA& f_rPoint2,

 const MKI_POINTDATA& f_rPoint3,

 const MKI_POINTDATA& f_rPoint4 );

 

  void

  Init( void );

 

  void

  GetDerivative( MKI_QUADRATIC_BEZIER& f_rResult ) const; New in Version 2024.2

 

  void

  GetExtremities( MKI_RECT& f_rResult ) const; New in Version 2024.2

 

  void

  SplitCenter(

 MKI_CUBIC_BEZIER& f_rResult1,

 MKI_CUBIC_BEZIER& f_rResult2 ) const;

 

  void

  SplitOnce(

 const double f_dT,

 MKI_CUBIC_BEZIER& f_rResult1,

 MKI_CUBIC_BEZIER& f_rResult2 ) const;

 

  void

  SplitTwice(

 const double f_dT1,

 const double f_dT2,

 MKI_CUBIC_BEZIER& f_rResult1,

 MKI_CUBIC_BEZIER& f_rResult2,

 MKI_CUBIC_BEZIER& f_rResult3 ) const;

 

  void

  GetPoint(

 const double f_dT,

 MKI_POINT_REF f_rResult ) const;

 

  void

  GetRect( MKI_RECT_REF f_rResult ) const;

 

  void

  GetRectX( MKI_RECT_REF f_rResult ) const;

 

  void

  GetRectY( MKI_RECT_REF f_rResult ) const;

 

  double

  GetT( MKI_CONST_POINT_REF f_rPoint ) const;

 

  double

  SquareTo( MKI_CONST_POINT_REF f_rPoint ) const;

 

  double

  LengthTo( MKI_CONST_POINT_REF f_rPoint ) const;

 

  void

  FlatConstantDeltaT(

 const size_t f_unLineNum,

 MKI_POINT_PTR f_pResults ) const;

 

  size_t

  FlatConstantLength(

 double f_dLength,

 const size_t f_unLineMax,

 MKI_POINT_PTR f_pResults ) const;

 

  double

  Length( const size_t f_unLineNum ) const;

 

  double

  Multiply( const MKI_MATRIX& f_rMatrix ); New in Version 2024.2

 

  double

  SetMultiply(

 const MKI_MATRIX& f_rMatrix,

 const MKI_CUBIC_BEZIER& f_rBezier ); New in Version 2024.2

};

 

This class contains the description of a cubic Bézier curve and some associated methods.

 

Element Description

m_cData0 Changed in Version 2021.1

[MKI_POINTDATA] Start-point of the cubic Bézier curve.

m_cData1 Changed in Version 2021.1

[MKI_POINTDATA] First pivot point of the cubic Bézier curve.

m_cData2 Changed in Version 2021.1

[MKI_POINTDATA] Second pivot point of the cubic Bézier curve.

m_cData3 Changed in Version 2021.1

[MKI_POINTDATA] End-point of the cubic Bézier curve.

m_dT1

m_dT2

[double] Relative positions of the start-point and end-point of the Bézier curve relative to another Bézier curve. Unless this Bézier curve was created by splitting another curve, these values should be set to (0.0, 1.0).

 

MKD Syntax

m_cData0.m_cPoint.x,m_cData0.m_cPoint.y,

m_cData1.m_cPoint.x,m_cData1.m_cPoint.y,

m_cData2.m_cPoint.x,m_cData2.m_cPoint.y,

m_cData3.m_cPoint.x,m_cData3.m_cPoint.y

 

The data type MKI_CUBIC_BEZIER is used to store a cubic Bézier curve.

 

CAD6interface 2025.0 - Copyright 2025 Malz++Kassner® GmbH