Class TBGRACustomFillInfo

Unit

Declaration

type TBGRACustomFillInfo = class(TObject)

Description

Abstract class defining any shape that can be filled

Hierarchy

Overview

Methods

Public function CreateIntersectionArray: ArrayOfTIntersectionInfo; virtual; abstract;
Public function CreateIntersectionInfo: TIntersectionInfo; virtual; abstract;
Public function GetBounds: TRect; virtual; abstract;
Public function GetSliceIndex: integer; virtual; abstract;
Public function IsPointInside(x,y: single; windingMode: boolean): boolean; virtual; abstract;
Public function SegmentsCurved: boolean; virtual; abstract;
Public procedure ComputeAndSort(cury: single; var inter: ArrayOfTIntersectionInfo; out nbInter: integer; windingMode: boolean); virtual; abstract;
Public procedure FreeIntersectionArray(var inter: ArrayOfTIntersectionInfo); virtual; abstract;

Description

Methods

Public function CreateIntersectionArray: ArrayOfTIntersectionInfo; virtual; abstract;

Create an array that will contain computed intersections. To augment that array, use CreateIntersectionInfo for new items

Public function CreateIntersectionInfo: TIntersectionInfo; virtual; abstract;

Create a structure to define one single intersection

Public function GetBounds: TRect; virtual; abstract;

Returns integer bounds for the shape

Public function GetSliceIndex: integer; virtual; abstract;

Returns the index of the current slice (horizontal stripe)

Public function IsPointInside(x,y: single; windingMode: boolean): boolean; virtual; abstract;

Check if the point is inside the shape

Public function SegmentsCurved: boolean; virtual; abstract;

Returns true if one segment number can represent a curve and thus cannot be considered exactly straight

Public procedure ComputeAndSort(cury: single; var inter: ArrayOfTIntersectionInfo; out nbInter: integer; windingMode: boolean); virtual; abstract;

Fill an array inter with actual intersections with the shape at the y coordinate cury. nbInter receives the number of computed intersections. windingMode specifies if the winding method must be used to determine what is inside of the shape

Public procedure FreeIntersectionArray(var inter: ArrayOfTIntersectionInfo); virtual; abstract;

Free an array of intersections