Class TBGRACustomPenStroker
Unit
Declaration
type TBGRACustomPenStroker = class(TObject)
Description
Generic class representing a pen stroker, used for drawing and styling lines with various attributes
Hierarchy
- TObject
- TBGRACustomPenStroker
Overview
Methods
function ComputePolygon(const APoints: array of TPointF; AWidth: single): ArrayOfTPointF; virtual; abstract; |
|
function ComputePolyline(const APoints: array of TPointF; AWidth: single; APenColor: TBGRAPixel; AClosedCap: boolean = true): ArrayOfTPointF; overload; virtual; abstract; |
|
function ComputePolyline(const APoints: array of TPointF; AWidth: single; AClosedCap: boolean = true): ArrayOfTPointF; overload; virtual; abstract; |
|
function ComputePolylineAutoCycle(const APoints: array of TPointF; AWidth: single): ArrayOfTPointF; virtual; abstract; |
|
function GetArrow: TBGRACustomArrow; virtual; abstract; |
|
function GetArrowOwned: boolean; virtual; abstract; |
|
function GetCustomPenStyle: TBGRAPenStyle; virtual; abstract; |
|
function GetJoinStyle: TPenJoinStyle; virtual; abstract; |
|
function GetLineCap: TPenEndCap; virtual; abstract; |
|
function GetMiterLimit: single; virtual; abstract; |
|
function GetPenStyle: TPenStyle; virtual; abstract; |
|
function GetStrokeMatrix: TAffineMatrix; virtual; abstract; |
|
procedure SetArrow(AValue: TBGRACustomArrow); virtual; abstract; |
|
procedure SetArrowOwned(AValue: boolean); virtual; abstract; |
|
procedure SetCustomPenStyle(AValue: TBGRAPenStyle); virtual; abstract; |
|
procedure SetJoinStyle(AValue: TPenJoinStyle); virtual; abstract; |
|
procedure SetLineCap(AValue: TPenEndCap); virtual; abstract; |
|
procedure SetMiterLimit(AValue: single); virtual; abstract; |
|
procedure SetPenStyle(AValue: TPenStyle); virtual; abstract; |
|
procedure SetStrokeMatrix(const AValue: TAffineMatrix); virtual; abstract; |
Properties
property Arrow: TBGRACustomArrow read GetArrow write SetArrow; |
|
property ArrowOwned: boolean read GetArrowOwned write SetArrowOwned; |
|
property CustomPenStyle: TBGRAPenStyle read GetCustomPenStyle write SetCustomPenStyle; |
|
property JoinStyle: TPenJoinStyle read GetJoinStyle write SetJoinStyle; |
|
property LineCap: TPenEndCap read GetLineCap write SetLineCap; |
|
property MiterLimit: single read GetMiterLimit write SetMiterLimit; |
|
property StrokeMatrix: TAffineMatrix read GetStrokeMatrix write SetStrokeMatrix; |
|
property Style: TPenStyle read GetPenStyle write SetPenStyle; |
Description
Methods
function ComputePolygon(const APoints: array of TPointF; AWidth: single): ArrayOfTPointF; virtual; abstract; |
|
Computes a polygon with the given points and width |
function ComputePolyline(const APoints: array of TPointF; AWidth: single; APenColor: TBGRAPixel; AClosedCap: boolean = true): ArrayOfTPointF; overload; virtual; abstract; |
|
Computes a polyline with the given points, width, and pen color, optionally closing the cap |
function ComputePolyline(const APoints: array of TPointF; AWidth: single; AClosedCap: boolean = true): ArrayOfTPointF; overload; virtual; abstract; |
|
Computes a polyline with the given points and width, optionally closing the cap |
function ComputePolylineAutoCycle(const APoints: array of TPointF; AWidth: single): ArrayOfTPointF; virtual; abstract; |
|
Computes a polyline with automatic cycling of points and given width |
function GetArrow: TBGRACustomArrow; virtual; abstract; |
|
function GetArrowOwned: boolean; virtual; abstract; |
|
Determines if the arrow is owned (managed) by the pen stroker |
function GetCustomPenStyle: TBGRAPenStyle; virtual; abstract; |
|
Gets the custom pen style |
function GetJoinStyle: TPenJoinStyle; virtual; abstract; |
|
Retrieves the style of line joins (e.g., bevel, miter) |
function GetLineCap: TPenEndCap; virtual; abstract; |
|
Retrieves the line cap style (e.g., butt, round) |
function GetMiterLimit: single; virtual; abstract; |
|
Gets the miter limit for line joins |
function GetPenStyle: TPenStyle; virtual; abstract; |
|
Retrieves the standard pen style |
function GetStrokeMatrix: TAffineMatrix; virtual; abstract; |
|
Gets the stroke transformation matrix (applied only to stroke and not to path points) |
procedure SetArrow(AValue: TBGRACustomArrow); virtual; abstract; |
|
procedure SetArrowOwned(AValue: boolean); virtual; abstract; |
|
Sets whether the arrow is owned by the pen stroker |
procedure SetCustomPenStyle(AValue: TBGRAPenStyle); virtual; abstract; |
|
Sets the custom pen style |
procedure SetJoinStyle(AValue: TPenJoinStyle); virtual; abstract; |
|
Sets the style of line joins |
procedure SetLineCap(AValue: TPenEndCap); virtual; abstract; |
|
Sets the line cap style |
procedure SetMiterLimit(AValue: single); virtual; abstract; |
|
Sets the miter limit for line joins |
procedure SetPenStyle(AValue: TPenStyle); virtual; abstract; |
|
Sets the standard pen style |
procedure SetStrokeMatrix(const AValue: TAffineMatrix); virtual; abstract; |
|
Sets the stroke transformation matrix (applied only to stroke and not to path points) |
Properties
property Arrow: TBGRACustomArrow read GetArrow write SetArrow; |
|
|
property ArrowOwned: boolean read GetArrowOwned write SetArrowOwned; |
|
Is the arrow is owned by the pen stroker |
property CustomPenStyle: TBGRAPenStyle read GetCustomPenStyle write SetCustomPenStyle; |
|
Custom pen style (with given dash and gap lengths) |
property JoinStyle: TPenJoinStyle read GetJoinStyle write SetJoinStyle; |
|
Join style of lines |
property LineCap: TPenEndCap read GetLineCap write SetLineCap; |
|
Line cap style |
property MiterLimit: single read GetMiterLimit write SetMiterLimit; |
|
Miter limit for line joins |
property StrokeMatrix: TAffineMatrix read GetStrokeMatrix write SetStrokeMatrix; |
|
Stroke transformation matrix.
This matrix is applied only to stroke and not to path points. Example of skew transform:
uses BGRABitmapTypes, BGRATransform; procedure TForm1.BGRAVirtualScreen1Redraw(Sender: TObject; Bitmap: TBGRABitmap); var i: Integer; begin for i := 0 to 5 do begin Bitmap.Pen.StrokeMatrix := AffineMatrixSkewXDeg(-10*i); Bitmap.Pen.LineCap := pecSquare; Bitmap.DrawLineAntialias(40,40+i*80,Bitmap.Width div 2-40,40+i*80, BGRABlack,30); Bitmap.Pen.LineCap := pecRound; Bitmap.DrawLineAntialias(Bitmap.Width div 2+40,40+i*80,Bitmap.Width-40,40+i*80, BGRABlack,30); end; end; |
property Style: TPenStyle read GetPenStyle write SetPenStyle; |
|
Standard pen |