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 |