cz.cuni.jagrlib.piece
Class JitteringSynthesizer

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

public class JitteringSynthesizer
extends Piece
implements ImageSynthesizer

Jittering image synthesizer with progressive rendering. Static variant of regular NxN jitering.

Since:
0.25
See Also:
JitteringSynthesizer.java

Field Summary
protected  double actTime
          Actual time (for RealFunction).
protected  double addX
          Horizontal translation (for RealFunction).
protected  double addY
          Vertical translation (for RealFunction).
protected static java.lang.String CATEGORY
          Object category.
protected  double gamma
          Gamma-correction for frame-buffer efficiency.
protected  int imageHeight
          Actual image height in pixels.
protected  int imageWidth
          Actual image width in pixels.
protected static int INIT_CELL
          Initial image cell size in pixels.
protected  double jittering
          Actual jittering amplitude (0.0 to 1.0).
static java.lang.String JITTERING
           
protected  double mulX
          Horizontal scaling coefficient (for RealFunction).
protected  double mulY
          Vertical scaling coefficient (for RealFunction).
static RegPiece reg
          Static registration instance for this class.
protected static RandomJames rnd
          Global random generator.
protected  int setHeight
           
protected  int setWidth
           
protected  int supersampling
          Linear supersampling factor.
protected static java.lang.String TEMPLATE_NAME
          Object template identifier.
protected  double[] tmp
           
protected  int totalSamples
          Actual number of samples per pixel (supersampling2).
static java.lang.String USE_GRAY
           
static java.lang.String USE_TIME
           
protected  boolean useGray
          Use gray palette (for RealFunction).
protected  boolean useTime
          Use time variable (for RealFunction).
 
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
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_CAUSTIC, 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_PHOTON, PL_PROPERTY, PL_QUANTIZER, PL_RASTER, PL_RENDER, PL_SHADOW, PL_STREAM, PL_TRANSFORM, PL_TRIGGER, PL_VOLUME, PL_WINDOW, TYPE_BOOLEAN, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INTEGER, TYPE_LONG, TYPE_OBJECT, TYPE_STRING
 
Constructor Summary
JitteringSynthesizer()
           
 
Method Summary
 void commit()
          Commits all previous changes to the internal object state.
protected  void computePixel(ImageFunction f, int x, int y, double[] pre)
           
protected  void computePixel(RealFunction rf, int x, int y, double[] pre)
           
 java.lang.Object get(java.lang.String key)
          Gets the given property.
 double getTime()
          Returns the actual time value for the object (used in animations).
 double[] getTimeInterval(double[] pre)
          Retrieve the valid bounds for time variable.
protected  void imageBounds()
          Transfers image size from associated RasterGraphics if necessary.
 void renderAll()
          Render the whole image.
 double[] renderPixel(int x, int y, double[] pre)
          Render the given pixel of the image.
 void renderRectangle(int x1, int y1, int x2, int y2)
          Render the given rectangle.
 void set(java.lang.String key, java.lang.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.
 void setTime(double time)
          Sets the actual time value for the object (used in animations).
 
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

imageWidth

protected int imageWidth
Actual image width in pixels.


imageHeight

protected int imageHeight
Actual image height in pixels.


useGray

protected boolean useGray
Use gray palette (for RealFunction).


useTime

protected boolean useTime
Use time variable (for RealFunction).


actTime

protected double actTime
Actual time (for RealFunction).


mulX

protected double mulX
Horizontal scaling coefficient (for RealFunction).


addX

protected double addX
Horizontal translation (for RealFunction).


mulY

protected double mulY
Vertical scaling coefficient (for RealFunction).


addY

protected double addY
Vertical translation (for RealFunction).


supersampling

protected int supersampling
Linear supersampling factor. Number of samples per pixel = supersampling2.


totalSamples

protected int totalSamples
Actual number of samples per pixel (supersampling2).


INIT_CELL

protected static final int INIT_CELL
Initial image cell size in pixels.

See Also:
Constant Field Values

jittering

protected double jittering
Actual jittering amplitude (0.0 to 1.0).


rnd

protected static final RandomJames rnd
Global random generator.


tmp

protected double[] tmp

gamma

protected double gamma
Gamma-correction for frame-buffer efficiency. It can be 0.0 to turn off gamma-correction and color clamping.


JITTERING

public static final java.lang.String JITTERING
See Also:
Constant Field Values

USE_GRAY

public static final java.lang.String USE_GRAY
See Also:
Constant Field Values

USE_TIME

public static final java.lang.String USE_TIME
See Also:
Constant Field Values

setWidth

protected int setWidth

setHeight

protected int setHeight

TEMPLATE_NAME

protected static final java.lang.String TEMPLATE_NAME
Object template identifier.

See Also:
Constant Field Values

CATEGORY

protected static final java.lang.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

JitteringSynthesizer

public JitteringSynthesizer()
Method Detail

imageBounds

protected void imageBounds()
Transfers image size from associated RasterGraphics if necessary.


computePixel

protected void computePixel(ImageFunction f,
                            int x,
                            int y,
                            double[] pre)

computePixel

protected void computePixel(RealFunction rf,
                            int x,
                            int y,
                            double[] pre)

getTimeInterval

public double[] getTimeInterval(double[] pre)
Retrieve the valid bounds for time variable.

Specified by:
getTimeInterval in interface TimeDependent
Parameters:
pre - Pre-allocated double[2] array to hold the result (can be null).
Returns:
result[0] .. minimum time value, result[1] .. maximum time value.
See Also:
getTime(), setTime(double)

getTime

public double getTime()
Returns the actual time value for the object (used in animations).

Specified by:
getTime in interface TimeDependent
Returns:
Actual time (in seconds).
See Also:
setTime(double)

setTime

public void setTime(double time)
Sets the actual time value for the object (used in animations).

Specified by:
setTime in interface TimeDependent
Parameters:
time - New scene time (in seconds).
See Also:
getTime(), getTimeInterval(double[])

setBounds

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

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

renderPixel

public double[] renderPixel(int x,
                            int y,
                            double[] pre)
Render the given pixel of the image.

Specified by:
renderPixel in interface ImageSynthesizer
Parameters:
x - X coordinate of the pixel.
y - Y coordinate of the pixel.
pre - Pre-allocated double[3] array to hold results (can be null).
Returns:
Color of the pixel (in RGB color space).
See Also:
renderRectangle(int, int, int, int), renderAll()

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
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:
renderPixel(int, int, double[]), renderAll()

renderAll

public void renderAll()
Render the whole image. Output is written to some connected raster device (not defined in this interface).

Specified by:
renderAll in interface ImageSynthesizer
See Also:
renderPixel(int, int, double[]), renderRectangle(int, int, int, int)

set

public void set(java.lang.String key,
                java.lang.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 java.lang.Object get(java.lang.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.

commit

public void commit()
Commits all previous changes to the internal object state. Non-mandatory.

Specified by:
commit in interface Property
Overrides:
commit in class DefaultProperty

setTemplate

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