Class TFillShapeInfo
Unit
Declaration
type TFillShapeInfo = class(TBGRACustomFillInfo)
Description
Abstract class to provide fill information for any shape
Hierarchy
- TObject
- TBGRACustomFillInfo
- TFillShapeInfo
Overview
Fields
![]() |
FPointInsideInter: ArrayOfTIntersectionInfo; |
Methods
![]() |
destructor Destroy; override; |
![]() |
function CreateIntersectionArray: ArrayOfTIntersectionInfo; override; |
![]() |
function CreateIntersectionInfo: TIntersectionInfo; override; |
![]() |
function GetBounds: TRect; override; |
![]() |
function GetSliceIndex: integer; override; |
![]() |
function IsPointInside(x,y: single; windingMode: boolean): boolean; override; |
![]() |
function SegmentsCurved: boolean; override; |
![]() |
function NbMaxIntersection: integer; virtual; |
![]() |
procedure ComputeAndSort(cury: single; var inter: ArrayOfTIntersectionInfo; out nbInter: integer; windingMode: boolean); override; |
![]() |
procedure FreeIntersectionArray(var inter: ArrayOfTIntersectionInfo); override; |
![]() |
procedure ComputeIntersection(cury: single; var inter: ArrayOfTIntersectionInfo; var nbInter: integer); virtual; |
![]() |
procedure ConvertFromNonZeroWinding(var inter: ArrayOfTIntersectionInfo; var nbInter: integer); virtual; |
![]() |
procedure InternalQuickSortIntersection(inter0: pointer; idxL, idxH: Integer); virtual; |
![]() |
procedure SortIntersection(var inter: ArrayOfTIntersectionInfo; nbInter: integer); virtual; |
Description
Fields
![]() |
FPointInsideInter: ArrayOfTIntersectionInfo; |
|
This item has no description. | |
Methods
![]() |
destructor Destroy; override; |
|
This item has no description. | |
![]() |
function CreateIntersectionArray: ArrayOfTIntersectionInfo; override; |
|
create an array that will contain computed intersections. you may augment, in this case, use CreateIntersectionInfo for new items | |
![]() |
function CreateIntersectionInfo: TIntersectionInfo; override; |
|
This item has no description. Showing description inherited from TBGRACustomFillInfo.CreateIntersectionInfo. Create a structure to define one single intersection | |
![]() |
function GetBounds: TRect; override; |
|
returns integer bounds | |
![]() |
function GetSliceIndex: integer; override; |
|
can be called after ComputeAndSort or ComputeIntersection to determine the current horizontal slice so that it can be checked if the intermediates scanlines can be skipped | |
![]() |
function IsPointInside(x,y: single; windingMode: boolean): boolean; override; |
|
check if the point is inside the filling zone | |
![]() |
function SegmentsCurved: boolean; override; |
|
returns true if the same segment number can be curved | |
![]() |
function NbMaxIntersection: integer; virtual; |
|
returns maximum of intersection per line | |
![]() |
procedure ComputeAndSort(cury: single; var inter: ArrayOfTIntersectionInfo; out nbInter: integer; windingMode: boolean); override; |
|
fill a previously created array of intersections with actual intersections at the current y coordinate. nbInter gets the number of computed intersections | |
![]() |
procedure FreeIntersectionArray(var inter: ArrayOfTIntersectionInfo); override; |
|
creates a single info | |
![]() |
procedure ComputeIntersection(cury: single; var inter: ArrayOfTIntersectionInfo; var nbInter: integer); virtual; |
|
compute intersections. the array must be big enough | |
![]() |
procedure ConvertFromNonZeroWinding(var inter: ArrayOfTIntersectionInfo; var nbInter: integer); virtual; |
|
apply non-zero winding rule. it can change the number of intersections | |
![]() |
procedure InternalQuickSortIntersection(inter0: pointer; idxL, idxH: Integer); virtual; |
|
This item has no description. | |
![]() |
procedure SortIntersection(var inter: ArrayOfTIntersectionInfo; nbInter: integer); virtual; |
|
sort from left to right | |

