CPolygonFiller Class Reference
class CPolygonFiller : public CBase
|
Nested Classes and Structures
Public Member Functions
|
|
CPolygonFiller
()
|
|
~CPolygonFiller
()
|
IMPORT_C void
|
Construct
(const
CArrayFix
<
TPoint
> *,
CGraphicsContext::TFillRule
,
TUsage
)
|
IMPORT_C void
|
Construct
(const
TPoint
*,
TInt
,
CGraphicsContext::TFillRule
,
TUsage
)
|
IMPORT_C void
|
GetNextPixelRun
(
TBool
&,
TInt
&,
TInt
&,
TInt
&)
|
IMPORT_C void
|
GetNextPixelRunOnSpecifiedScanLine
(
TBool
&,
TInt
,
TInt
&,
TInt
&)
|
IMPORT_C void
|
Reset
()
|
Constructor & Destructor Documentation
CPolygonFiller()
IMPORT_C
|
CPolygonFiller
|
(
|
)
|
|
Constructor which initializes all member data to zero, EFalse or null for TInt, TBool pointers respectively.
~CPolygonFiller()
IMPORT_C
|
~CPolygonFiller
|
(
|
)
|
|
Destructor calls reset on the polygon.
Member Functions Documentation
Construct(const CArrayFix< TPoint > *, CGraphicsContext::TFillRule, TUsage)
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.
|
TUsage
aUsage = EGetAllPixelRunsSequentially
|
How the polygon should be used.
|
Construct(const TPoint *, TInt, CGraphicsContext::TFillRule, TUsage)
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.
|
TUsage
aUsage = EGetAllPixelRunsSequentially
|
How the polygon should be used, see TUsage enumeration.
|
Construct(CGraphicsContext::TFillRule, TUsage)
FastHandleVertexIntersection(TInt &, TBool)
void
|
FastHandleVertexIntersection
|
(
|
TInt
&
|
aCurrentActiveEdge,
|
|
TBool
|
aIsLowerVertex
|
|
)
|
[private]
|
Parameters
TInt
& aCurrentActiveEdge
|
|
TBool
aIsLowerVertex
|
|
GetNextPixelRun(TBool &, TInt &, TInt &, TInt &)
IMPORT_C void
|
GetNextPixelRun
|
(
|
TBool
&
|
aExists,
|
|
TInt
&
|
aScanLine,
|
|
TInt
&
|
aStart,
|
|
TInt
&
|
aEnd
|
|
)
|
|
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
|
|
)
|
|
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.
|
JumpToCurrentScanLine(TLinearDDA &, const TPoint &, const TPoint &, TPoint &, TPoint &)
Reset()
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.
SetFastIntersection(SFastActiveEdge &, SFastScanLineIntersection &)
SlowHandleVertexIntersection(SSlowScanLineIntersection &, TInt &, TBool)
Member Enumerations Documentation
Enum TUsage
Describes how pixels are to be displayed in the polygon. aUsage should be select to one of these values before
CPolygonFiller::Construct
is used.
Enumerators
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.
|
Member Data Documentation
TInt
iCurrentScanLine
TInt
|
iCurrentScanLine
|
[private]
|
CGraphicsContext::TFillRule
iFillRule
TInt
iFirstScanLine
TInt
|
iFirstScanLine
|
[private]
|
TInt
iFirstVertex
TInt
|
iFirstVertex
|
[private]
|
TInt
iLastScanLine
TInt
|
iLastScanLine
|
[private]
|
TInt
iNestingLevel
TInt
|
iNestingLevel
|
[private]
|
TInt
iNumVertexes
TInt
|
iNumVertexes
|
[private]
|
const CArrayFix< TPoint > * iPointArray
const TPoint * iPointList
const
TPoint
*
|
iPointList
|
[private]
|
TBool
iPolygonIsAllHorizontal
TBool
|
iPolygonIsAllHorizontal
|
[private]
|
TInt
iRightMostPixelOnScanLine
TInt
|
iRightMostPixelOnScanLine
|
[private]
|
TInt
iScanLineIntersection
TInt
|
iScanLineIntersection
|
[private]
|
TBool
iUseFastAlgorithm
TBool
|
iUseFastAlgorithm
|
[private]
|
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.