cz.cuni.jagrlib.piece
Class PolygonScanline

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.piece.PolygonScanline
All Implemented Interfaces:
Breakable, PolygonFillRender, PolygonRender, Property, Render, Template

public class PolygonScanline
extends Piece
implements PolygonFillRender

Scan-line rasterization of 2D polygon. Implements both simple and anti-aliased rendering.

Since:
0.25
Version:
0.26 $Rev: 813 $ $Date: 2008-10-21 15:44:11 +0200 (Ășt, 21 X 2008) $ $Author: pepca $
See Also:
PolygonScanline.java

Nested Class Summary
protected static class PolygonScanline.EdgeComparator
          Edge comparator for actual edge list: [ x ].
protected static class PolygonScanline.PolyEdge
          Polygon edge.
protected static class PolygonScanline.Supersampler
          Temporary rendering target for super-sampling.
 
Field Summary
protected static String CATEGORY
          Object category.
protected static PolygonScanline.EdgeComparator eComparator
          Single comparator instance.
protected  int insideRule
          Actual inside-test mode.
static RegPiece[] reg
          Static registration instance for this class.
protected  int supersampling
          Supersampling factor.
static String SUPERSAMPLING
           
protected static String TEMPLATE_NAME
          Object template identifier.
protected static String TEMPLATE2_NAME
          Object template identifier.
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.PolygonRender
POLY_INSIDE, POLY_INSIDE_PARITY, POLY_INSIDE_WINDING
 
Fields inherited from interface cz.cuni.jagrlib.iface.Render
LINE_CAP, LINE_CAP_BUTT, LINE_CAP_ROUND, LINE_CAP_SQUARE, LINE_JOIN, LINE_JOIN_BEVEL, LINE_JOIN_DISJOINT, LINE_JOIN_MITER, LINE_JOIN_OVERLAP, LINE_JOIN_ROUND, LINE_WIDTH, PROJECTION, RENDER_STYLE, RENDER_STYLE_FLAT, RENDER_STYLE_GOURAUD, RENDER_STYLE_LINE, RENDER_STYLE_PHONG, RENDER_STYLE_TEXTURE
 
Fields inherited from interface cz.cuni.jagrlib.iface.Property
LOGGING, STATISTICS, TEXT_DESCRIPTION
 
Fields inherited from interface cz.cuni.jagrlib.Template
ALL_PLUGS, C_1D, C_2D, C_3D, C_ALPHA, C_BINARY, C_BREP, C_CAMERA, C_CIRCLE, C_CLIP, C_COMPRESSION, C_CURVE, C_DATA, C_DRAW, C_EDITOR, C_ELLIPSE, C_FILL, C_FILTER, C_FLOAT, C_FUNCTION, C_IMAGE, C_INTEGER, C_IO, C_LIGHT, C_LINE, C_METRIC, C_POLYGON, C_PROJECTION, C_RADIOSITY, C_RASTER, C_RENDER, C_SAMPLE, C_SCENE, C_SET, C_SOLID, C_TEXT, C_TRANSFORM, C_VECTOR, C_VIEWER, C_WORKER, CAT_EMPTY, EMPTY, IFACE, JAGRLIB, JAGRLIB2, MANIPULATOR_COMBO, MANIPULATOR_CUSTOM, MANIPULATOR_DEFAULT, MANIPULATOR_MULTILINE, PL_ALPHAMASK, PL_BITMASK, PL_CODEC, PL_COLORMAP, PL_COMPARE, PL_DATA, PL_DIRECT, PL_EDITOR, PL_FILTER, PL_FUNCTION, PL_IMAGE, PL_IMPORT, PL_INPUT, PL_INTERSECTION, PL_LIGHTSOURCE, PL_ORDER, PL_OUTPUT, PL_PALETTE, PL_PROPERTY, PL_QUANTIZER, PL_RASTER, PL_RENDER, PL_STREAM, PL_TRANSFORM, PL_TRIGGER, PL_WINDOW, TYPE_BOOLEAN, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INTEGER, TYPE_LONG, TYPE_OBJECT, TYPE_STRING
 
Constructor Summary
PolygonScanline()
           
 
Method Summary
 void fillPolygon(Point[] v)
          Fills the given polygon.
 void fillPolygon(Point2D.Double[] v)
          Fills the given polygon.
 Object get(String key)
          Gets the given property.
 void set(String key, Object value)
          Sets the given property.
static int setTemplate(Template t, int ord)
          General-purpose registration routine.
 
Methods inherited from class cz.cuni.jagrlib.Piece
className, connect, findPlug, findPlug, getInfo, getInterface, getInterface, getPlug, getReg, init, isCompatible, isCompatible, isConnected, logError, logWarning, myInterface, newInputPlug, newOptOutputPlug, newOutputPlug, newPlug, noTemplates, propBegin, propBounds, propDefault, propEnd, propEnum, propManipulator, propManipulator, setProgressListener, setRegStrings, setTemplateDynamic, stop
 
Methods inherited from class cz.cuni.jagrlib.DefaultProperty
booleanProperty, booleanProperty, colorDoubleProperty, colorProperty, commit, doubleProperty, doubleProperty, doubleProperty, enumProperty, floatProperty, floatProperty, floatProperty, intProperty, intProperty, intProperty, longProperty, longProperty, longProperty, set, stringProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface cz.cuni.jagrlib.iface.Property
commit
 

Field Detail

eComparator

protected static final PolygonScanline.EdgeComparator eComparator
Single comparator instance.


insideRule

protected int insideRule
Actual inside-test mode.

See Also:
PolygonRender.POLY_INSIDE, PolygonRender.POLY_INSIDE_PARITY, PolygonRender.POLY_INSIDE_WINDING

supersampling

protected int supersampling
Supersampling factor.


SUPERSAMPLING

public static final String SUPERSAMPLING
See Also:
Constant Field Values

TEMPLATE_NAME

protected static final String TEMPLATE_NAME
Object template identifier.

See Also:
Constant Field Values

TEMPLATE2_NAME

protected static final String TEMPLATE2_NAME
Object template identifier.

See Also:
Constant Field Values

CATEGORY

protected static final String CATEGORY
Object category.

See Also:
Constant Field Values

reg

public static final RegPiece[] reg
Static registration instance for this class. Automatically initialized in class-loading time.

Constructor Detail

PolygonScanline

public PolygonScanline()
Method Detail

fillPolygon

public void fillPolygon(Point[] v)
Fills the given polygon. Uses pre-defined fill style.

Specified by:
fillPolygon in interface PolygonFillRender
Parameters:
v - Array of polygon vertices (needs not to be closed, null can interrupt the sequence).
See Also:
PolygonRender.POLY_INSIDE

fillPolygon

public void fillPolygon(Point2D.Double[] v)
Fills the given polygon. Uses pre-defined fill style.

Specified by:
fillPolygon in interface PolygonFillRender
Parameters:
v - Array of polygon vertices (needs not to be closed, null can interrupt the sequence).
See Also:
PolygonRender.POLY_INSIDE

set

public void set(String key,
                Object value)
Sets the given property.

Specified by:
set in interface Property
Overrides:
set in class DefaultProperty
Parameters:
key - Key string.
value - The new value.
See Also:
Property.commit()

get

public Object get(String key)
Gets the given property.

Specified by:
get in interface Property
Overrides:
get in class DefaultProperty
Parameters:
key - Key string.
Returns:
The actual value or null.

setTemplate

public static int setTemplate(Template t,
                              int ord)
General-purpose registration routine. Sets all plugs, strings, etc. to the given Template.