cz.cuni.jagrlib.piece
Class ClusterDotDither

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.piece.ClusterDotDither
All Implemented Interfaces:
Breakable, Property, Trigger, Template

public class ClusterDotDither
extends Piece
implements Trigger

Cluster-dot halftoning able to use external "level-set" function. Scales input raster image, gamma-corrects it, converts it to RasterGraphics.MODE_GRAY and uses only 0.0 and 1.0 values.

External level-set function must be 2D real function mapping [-1,1]2 square to "level-set" distance ({code 0.0} for first painted pixel, only positive values are allowed). Value transfer function and geometric transforms (angle, LPI) will be performed automatically.

Since:
0.26
Version:
0.26 $Rev: 823 $ $Date: 2008-12-07 16:35:05 +0100 (ne, 07 XII 2008) $ $Author: pepca $
See Also:
ClusterDotDither.java

Nested Class Summary
protected static class ClusterDotDither.DotType
          Implemented internal dot shapes.
protected static class ClusterDotDither.RectangleLevelSet
          Level-set function for square dots (external shape function is not considered yet).
protected static class ClusterDotDither.RoundLevelSet
          Level-set function for round dots (w/o transition).
protected static class ClusterDotDither.RoundSquareLevelSet
          Level-set function for round dots with square transition.
 
Field Summary
protected  double angle
          Screen angle in degrees.
static String ANGLE
           
protected static String CATEGORY
          Object category.
protected  double dpi
          Dots per inch of the output image.
static String DPI
           
protected  RealFunction field
          Accelerator: actual level-set function.
protected  double gamma
          Simulated gamma-exponent.
static String GAMMA
           
protected  int height
          Target image height in pixels (0 for original size).
static String HEIGHT
           
protected  double lpi
          Lines per inch (distance between adjacent dots) of the screen.
static String LPI
           
protected  double[] m
          Transform matrix (2x2).
static RegPiece reg
          Static registration instance for this class.
protected static RandomJames rnd
          Shared random-number generator for level-set sampling.
protected static double SAMPLING_CELL
          Sampling cell size.
protected static int SAMPLING_SIDE
          Sampling side.
protected static int SAMPLING_SIZE
          Sampling table size.
protected  double scale
          Scale factor (0.0 or 1.0 for original size).
static String SCALE
           
protected  ClusterDotDither.DotType shape
          Actual dot shape.
static String SHAPE
           
protected static int TABLE_SIZE
          Transfer function table size.
protected  double tableScale
          Scaling factor for transfer function table (origin is in 0.0).
protected static String TEMPLATE_NAME
          Object template identifier.
protected  double[] transferTable
          Transfer function: maps field /levelset/ value to gray level (0.0 to 1.0).
protected  int width
          Target image width in pixels (0 for original size).
static String WIDTH
           
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
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
ClusterDotDither()
           
 
Method Summary
 boolean fire(int type)
          Starts image transform.
 Object get(String key)
          Gets the given property.
protected  void prepareTransferFunction(RealFunction fld)
          Sets level-set function and prepares transfer function table.
 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
 
Methods inherited from interface cz.cuni.jagrlib.Breakable
setProgressListener, stop
 

Field Detail

shape

protected ClusterDotDither.DotType shape
Actual dot shape.


width

protected int width
Target image width in pixels (0 for original size).


height

protected int height
Target image height in pixels (0 for original size).


scale

protected double scale
Scale factor (0.0 or 1.0 for original size).


gamma

protected double gamma
Simulated gamma-exponent.


angle

protected double angle
Screen angle in degrees.


dpi

protected double dpi
Dots per inch of the output image.


lpi

protected double lpi
Lines per inch (distance between adjacent dots) of the screen.


m

protected double[] m
Transform matrix (2x2).


SAMPLING_SIDE

protected static final int SAMPLING_SIDE
Sampling side.

See Also:
Constant Field Values

SAMPLING_CELL

protected static final double SAMPLING_CELL
Sampling cell size.

See Also:
Constant Field Values

SAMPLING_SIZE

protected static final int SAMPLING_SIZE
Sampling table size.

See Also:
Constant Field Values

TABLE_SIZE

protected static final int TABLE_SIZE
Transfer function table size.

See Also:
Constant Field Values

tableScale

protected double tableScale
Scaling factor for transfer function table (origin is in 0.0).


transferTable

protected double[] transferTable
Transfer function: maps field /levelset/ value to gray level (0.0 to 1.0).


field

protected RealFunction field
Accelerator: actual level-set function.


rnd

protected static final RandomJames rnd
Shared random-number generator for level-set sampling.


SHAPE

public static final String SHAPE
See Also:
Constant Field Values

ANGLE

public static final String ANGLE
See Also:
Constant Field Values

DPI

public static final String DPI
See Also:
Constant Field Values

LPI

public static final String LPI
See Also:
Constant Field Values

WIDTH

public static final String WIDTH
See Also:
Constant Field Values

HEIGHT

public static final String HEIGHT
See Also:
Constant Field Values

SCALE

public static final String SCALE
See Also:
Constant Field Values

GAMMA

public static final String GAMMA
See Also:
Constant Field Values

TEMPLATE_NAME

protected static final String TEMPLATE_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

ClusterDotDither

public ClusterDotDither()
Method Detail

prepareTransferFunction

protected void prepareTransferFunction(RealFunction fld)
Sets level-set function and prepares transfer function table.


fire

public boolean fire(int type)
Starts image transform.

Specified by:
fire in interface Trigger
Parameters:
type - The action type (whatever it means..).
Returns:
true if the action was successful.

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.