Object TEasyBezierCurve
Unit
Declaration
type TEasyBezierCurve = object(TObject)
Description
Object representing an easy-to-use Bezier curve.
Curve is configured with approximate points, with configurable curve modes and transformation functions
Hierarchy
- TObject
- TEasyBezierCurve
Overview
Fields
![]() |
FClosed: boolean; |
![]() |
FCurves: array of record
isCurvedToNext,isCurvedToPrevious: boolean;
Center,ControlPoint,NextCenter: TPointF;
end; |
![]() |
FInvalidated: boolean; |
![]() |
FMinimumDotProduct: single; |
![]() |
FPoints: array of record
Coord: TPointF;
CurveMode: TEasyBezierCurveMode;
end; |
Methods
![]() |
function ComputeLength: single; |
![]() |
function ToPoints: ArrayOfTPointF; |
![]() |
function MaybeCurve(start1, end1, start2, end2: integer): boolean; |
![]() |
function PointTransformNone(APoint: PPointF; AData: Pointer): TPointF; |
![]() |
function PointTransformOffset(APoint: PPointF; AData: Pointer): TPointF; |
![]() |
procedure Clear; |
![]() |
procedure CopyToPath(ADest: IBGRAPath; AOffset: TPointF; AReverse: boolean = false); overload; |
![]() |
procedure CopyToPath(ADest: IBGRAPath; ATransformFunc: TEasyBezierPointTransformFunc; ATransformData: Pointer; AReverse: boolean = false); overload; |
![]() |
procedure CopyToPath(ADest: IBGRAPath); overload; |
![]() |
procedure Init; |
![]() |
procedure SetPoints(APoints: array of TPointF; ACurveMode: array of TEasyBezierCurveMode); overload; |
![]() |
procedure SetPoints(APoints: array of TPointF; ACurveMode: TEasyBezierCurveMode); overload; |
![]() |
procedure SetPoints(APoints: array of TPointF; ACurveMode: array of TEasyBezierCurveMode; AStart, ACount: integer); overload; |
![]() |
procedure SetPoints(APoints: array of TPointF; ACurveMode: TEasyBezierCurveMode; AStart, ACount: integer); overload; |
![]() |
procedure ComputeQuadraticCurves; |
Properties
![]() |
property Closed: boolean read FClosed write SetClosed; |
![]() |
property CurveMode[AIndex: integer]: TEasyBezierCurveMode read GetCurveMode write SetCurveMode; |
![]() |
property CurveStartPoint: TPointF read GetCurveStartPoint; |
![]() |
property MinimumDotProduct: single read FMinimumDotProduct write SetMinimumDotProduct; |
![]() |
property Point[AIndex: integer]: TPointF read GetPoint write SetPoint; |
![]() |
property PointCount: integer read GetPointCount; |
Description
Fields
![]() |
FClosed: boolean; |
|
Is the curve is closed | |
![]() |
FCurves: array of record
isCurvedToNext,isCurvedToPrevious: boolean;
Center,ControlPoint,NextCenter: TPointF;
end; |
|
Computed Bézier control points | |
![]() |
FInvalidated: boolean; |
|
Whether the curve need to be recomputed | |
![]() |
FMinimumDotProduct: single; |
|
Minimum dot product to form a curve instead of an angle | |
![]() |
FPoints: array of record
Coord: TPointF;
CurveMode: TEasyBezierCurveMode;
end; |
|
Definition of the curve by the user | |
Methods
![]() |
function ComputeLength: single; |
|
Computes the total length of the Bezier curve | |
![]() |
function ToPoints: ArrayOfTPointF; |
|
Converts the Bezier curve into an array of points | |
![]() |
function PointTransformNone(APoint: PPointF; AData: Pointer): TPointF; |
|
Fonction to apply no transformation | |
![]() |
function PointTransformOffset(APoint: PPointF; AData: Pointer): TPointF; |
|
Fonction to apply an offset | |
![]() |
procedure Clear; |
|
Clears all points and resets the curve | |
![]() |
procedure CopyToPath(ADest: IBGRAPath; AOffset: TPointF; AReverse: boolean = false); overload; |
|
Copies the Bezier curve to a path object with an offset and optional reversal | |
![]() |
procedure CopyToPath(ADest: IBGRAPath; ATransformFunc: TEasyBezierPointTransformFunc; ATransformData: Pointer; AReverse: boolean = false); overload; |
|
Copies the Bezier curve to a path object with a custom transformation | |
![]() |
procedure CopyToPath(ADest: IBGRAPath); overload; |
|
Copies the Bezier curve to a path object | |
![]() |
procedure Init; |
|
Initializes the Bezier curve object | |
![]() |
procedure SetPoints(APoints: array of TPointF; ACurveMode: array of TEasyBezierCurveMode); overload; |
|
Sets the points and individual curve modes for each point | |
![]() |
procedure SetPoints(APoints: array of TPointF; ACurveMode: TEasyBezierCurveMode); overload; |
|
Sets the points and curve mode for the entire curve | |
![]() |
procedure SetPoints(APoints: array of TPointF; ACurveMode: array of TEasyBezierCurveMode; AStart, ACount: integer); overload; |
|
Sets a subset of points and individual curve modes for each of these points | |
![]() |
procedure SetPoints(APoints: array of TPointF; ACurveMode: TEasyBezierCurveMode; AStart, ACount: integer); overload; |
|
Sets a subset of points and a single curve mode for these points | |
![]() |
procedure ComputeQuadraticCurves; |
|
Computes the control points for the classical quadratic curve | |
Properties
![]() |
property Closed: boolean read FClosed write SetClosed; |
|
Gets or sets whether to close the curve | |
![]() |
property CurveMode[AIndex: integer]: TEasyBezierCurveMode read GetCurveMode write SetCurveMode; |
|
Mode to use for each point | |
![]() |
property CurveStartPoint: TPointF read GetCurveStartPoint; |
|
Coordinates of the starting point | |
![]() |
property MinimumDotProduct: single read FMinimumDotProduct write SetMinimumDotProduct; |
|
Minimum dot product to form a curve rather than an angle when using cmAuto mode | |
![]() |
property Point[AIndex: integer]: TPointF read GetPoint write SetPoint; |
|
Coordinates of the points | |
![]() |
property PointCount: integer read GetPointCount; |
|
Number of points | |

