cz.cuni.jagrlib.obscure
Class AdaptiveJitteringSynthesizer

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.piece.JitteringSynthesizer
              extended by cz.cuni.jagrlib.obscure.AdaptiveJitteringSynthesizer
All Implemented Interfaces:
Breakable, ImageSynthesizer, Property, TimeDependent, Template

public class AdaptiveJitteringSynthesizer
extends JitteringSynthesizer

Jittering image synthesizer with progressive rendering. Adaptive variant based on Q-tree pattern.

Since:
0.25
Version:
0.26 $Rev: 465 $ $Date: 2007-05-25 23:57:10 +0200 (pá, 25 V 2007) $ $Author: pepca $
See Also:
JitteringSynthesizer.java

Field Summary
protected static String CATEGORY
          Object category.
static String COLOR_TOLERANCE
           
protected  double colorTolerance
          Maximum distance of two color samples which will be considered "similar".
protected  long[] hash
          Hash-values for individual pixels (array indexing: hash[ x + y * imageWidth ]).
protected  RasterGraphics log
          Image for sampling statistics.
protected  boolean logging
          Log super-sampling visualization.
static String LOGGING
           
protected  int logId
          Log-image id.
protected  int ord
          Ordinal number of the current sample.
protected  int[] ramp
          Temp: color for sampling statistics.
static RegPiece reg
          Static registration instance for this class.
protected  double[] samples
          Array of primary samples for individual pixels: Indexing: offset = 5 * ( x + y * imageWidth ),
samples[offset ] = x,
samples[offset+1] = y,
samples[offset+2] = Red,
samples[offset+3] = Green,
samples[offset+4] = Blue.
protected static String TEMPLATE_NAME
          Object template identifier.
protected static int WIN
          Window size used for super-sampling tests.
 
Fields inherited from class cz.cuni.jagrlib.piece.JitteringSynthesizer
actTime, addX, addY, gamma, imageHeight, imageWidth, INIT_CELL, jittering, JITTERING, mulX, mulY, rnd, setHeight, setWidth, supersampling, tmp, totalSamples, USE_GRAY, USE_TIME, useGray, useTime
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.ImageSynthesizer
GAMMA, HEIGHT, SUPERSAMPLING, WIDTH
 
Fields inherited from interface cz.cuni.jagrlib.iface.Property
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
AdaptiveJitteringSynthesizer()
           
 
Method Summary
protected  void computePixel(ImageFunction f, int x, int y, double[] pre)
           
protected  void computePixel(RealFunction rf, int x, int y, double[] pre)
           
 Object get(String key)
          Gets the given property.
protected  long checkPixel(ImageFunction f, int x, int y, double[] color)
           
 void renderRectangle(int x1, int y1, int x2, int y2)
          Render the given rectangle.
 void set(String key, Object value)
          Sets the given property.
 void setBounds(int width, int height)
          Sets resolution of an output raster image.
static int setTemplate(Template t, int ord)
          General-purpose registration routine.
protected  void subpixel(ImageFunction f, double x, double y, double half, long oh, double ox, double oy, double or, double og, double ob, int depth, double[] result)
           
 
Methods inherited from class cz.cuni.jagrlib.piece.JitteringSynthesizer
commit, getTime, getTimeInterval, imageBounds, renderAll, renderPixel, setTime
 
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, 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.Breakable
setProgressListener, stop
 

Field Detail

colorTolerance

protected double colorTolerance
Maximum distance of two color samples which will be considered "similar".


ord

protected int ord
Ordinal number of the current sample.


hash

protected long[] hash
Hash-values for individual pixels (array indexing: hash[ x + y * imageWidth ]).


samples

protected double[] samples
Array of primary samples for individual pixels:

Indexing: offset = 5 * ( x + y * imageWidth ),
samples[offset ] = x,
samples[offset+1] = y,
samples[offset+2] = Red,
samples[offset+3] = Green,
samples[offset+4] = Blue.


WIN

protected static final int WIN
Window size used for super-sampling tests.

See Also:
Constant Field Values

logging

protected boolean logging
Log super-sampling visualization.


logId

protected int logId
Log-image id.


log

protected RasterGraphics log
Image for sampling statistics.


ramp

protected int[] ramp
Temp: color for sampling statistics.


COLOR_TOLERANCE

public static final String COLOR_TOLERANCE
See Also:
Constant Field Values

LOGGING

public static final String LOGGING
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

AdaptiveJitteringSynthesizer

public AdaptiveJitteringSynthesizer()
Method Detail

subpixel

protected void subpixel(ImageFunction f,
                        double x,
                        double y,
                        double half,
                        long oh,
                        double ox,
                        double oy,
                        double or,
                        double og,
                        double ob,
                        int depth,
                        double[] result)

checkPixel

protected long checkPixel(ImageFunction f,
                          int x,
                          int y,
                          double[] color)

computePixel

protected void computePixel(ImageFunction f,
                            int x,
                            int y,
                            double[] pre)
Overrides:
computePixel in class JitteringSynthesizer

computePixel

protected void computePixel(RealFunction rf,
                            int x,
                            int y,
                            double[] pre)
Overrides:
computePixel in class JitteringSynthesizer

setBounds

public void setBounds(int width,
                      int height)
Sets resolution of an output raster image.

Specified by:
setBounds in interface ImageSynthesizer
Overrides:
setBounds in class JitteringSynthesizer
Parameters:
width - Horizontal image size in pixels.
height - Vertical image size in pixels.

renderRectangle

public void renderRectangle(int x1,
                            int y1,
                            int x2,
                            int y2)
Render the given rectangle. Output is written to some connected raster device (not defined in this interface).

Specified by:
renderRectangle in interface ImageSynthesizer
Overrides:
renderRectangle in class JitteringSynthesizer
Parameters:
x1 - X coordinate of the upper left corner.
y1 - Y coordinate of the upper left corner.
x2 - X coordinate of the lower right corner (outside pixel).
y2 - Y coordinate of the upper left corner (outside pixel).
See Also:
JitteringSynthesizer.renderPixel(int, int, double[]), JitteringSynthesizer.renderAll()

set

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

Specified by:
set in interface Property
Overrides:
set in class JitteringSynthesizer
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 JitteringSynthesizer
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.