Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#include <BITSTD.H>

Class CPolygonFiller

class CPolygonFiller : public CBase;

Description

Derivation

Members

Defined in CPolygonFiller:

Inherited from CBase:


Construction and destruction


CPolygonFiller()

IMPORT_C CPolygonFiller();

Description

Constructor which initializes all member data to zero, EFalse or null for TInt, TBool pointers respectively.


~CPolygonFiller()

IMPORT_C ~CPolygonFiller();

Description

Destructor calls reset on the polygon.

[Top]


Member functions


Construct(const CArrayFix< TPoint > *,CGraphicsContext::TFillRule,TUsage)

IMPORT_C void Construct(const CArrayFix< TPoint > *aPointArray, CGraphicsContext::TFillRule aFillRule, TUsage aUsage=EGetAllPixelRunsSequentially);

Description

An overloaded version of Construct which allows the list of points to be passed in as a point array. Exactly the same behaviour and structure as above. This should not fail. This method does not require the number of nodes to be given as a parameter.

Parameters

const CArrayFix< TPoint > *aPointArray

CGraphicsContext::TFillRule aFillRule

How filling should be achieved, as described by a CGraphicsContext::TFillRule object.

CPolygonFiller::TUsage aUsage

How the polygon should be used.


Construct(const TPoint *,TInt,CGraphicsContext::TFillRule,TUsage)

IMPORT_C void Construct(const TPoint *aPointList, TInt aNumPoints, CGraphicsContext::TFillRule aFillRule, TUsage aUsage=EGetAllPixelRunsSequentially);

Description

Takes a list of points to be the points for the new polygon and sets the number of points in the shape. After this has been done it transfers the task to Construct(aFillRule,aUsage) . This should not fail.

Parameters

const TPoint *aPointList

A list of points for the polygon.

TInt aNumPoints

The number of points in the list.

CGraphicsContext::TFillRule aFillRule

How filling should be achieved, as described by a CGraphicsContext::TFillRule object.

CPolygonFiller::TUsage aUsage

How the polygon should be used, see TUsage enumeration.


Reset()

IMPORT_C void Reset();

Description

Frees any data held in the polygons lists of all edges, vertexs and scan lines and sets these values to NULL. It also has the feature of setting iUseFastAlgorithm = EFalse.


GetNextPixelRun(TBool &,TInt &,TInt &,TInt &)

IMPORT_C void GetNextPixelRun(TBool &aExists, TInt &aScanLine, TInt &aStart, TInt &aEnd);

Description

Method is used to calculate the locations of vertex interactions between the polygon and scan lines. An initial scan line is required. It calculates the start and end positions on the line. The method can use either the fast or slow polygon algorithm depending upon the state of aUsage. Polygon filling is also addressed by this method.

Parameters

TBool &aExists

Will be set to false if a polygon with no vertexes is passed in, otherwise ETrue on return.

TInt &aScanLine

TInt &aStart

The position on the scan line to start the run, on returned.

TInt &aEnd

The position on the scan line to end the run, returned.


GetNextPixelRunOnSpecifiedScanLine(TBool &,TInt,TInt &,TInt &)

IMPORT_C void GetNextPixelRunOnSpecifiedScanLine(TBool &aExists, TInt aScanLine, TInt &aStart, TInt &aEnd);

Description

Similar to GetNextPixelRun(aExists, aScanLine, aStart, aEnd) this method is used to draw the relevant vertex intersections for a polygon but only for an individual specified scan line. The method can use either the fast or slow polygon algorithm depending upon the state of aUsage.

Parameters

TBool &aExists

Will be set to false if the line does not pass through the polygon or if a polygon with no vertices is specified, otherwise ETrue on return.

TInt aScanLine

TInt &aStart

The position on the scan line to start the run, on returned.

TInt &aEnd

The position on the scan line to end the run, returned.

[Top]


Member enumerations


Enum TUsage

TUsage

Description

Describes how pixels are to be displayed in the polygon. aUsage should be select to one of these values before CPolygonFiller::Construct(const CArrayFix< TPoint > *,CGraphicsContext::TFillRule,TUsage) is used.

EGetAllPixelRunsSequentially

A request for all pixel runs in sequential order

EGetPixelRunsSequentiallyForSpecifiedScanLines

A request for all pixel runs in sequential order but only for specified lines.