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 |