cz.cuni.jagrlib.piece
Class SimpleSynthesizer

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

public class SimpleSynthesizer
extends DefaultImageSynthesizer

Simple image synthesizer with progressive rendering.

Since:
0.12
See Also:
SimpleSynthesizer.java

Field Summary
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 static int INIT_CELL
          Initial image cell size in pixels.
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  int setHeight
           
protected  int setWidth
           
protected static java.lang.String TEMPLATE_NAME
          Object template identifier.
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.DefaultImageSynthesizer
actTime, imageHeight, imageWidth
 
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
SimpleSynthesizer()
           
 
Method Summary
 void commit()
          Commits all previous changes to the internal object state.
 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.
 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.DefaultImageSynthesizer
renderAll
 
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

INIT_CELL

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

See Also:
Constant Field Values

useGray

protected boolean useGray
Use gray palette (for RealFunction).


useTime

protected boolean useTime
Use time variable (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).


gamma

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


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

SimpleSynthesizer

public SimpleSynthesizer()
Method Detail

imageBounds

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


getTimeInterval

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

Specified by:
getTimeInterval in interface TimeDependent
Overrides:
getTimeInterval in class DefaultImageSynthesizer
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
Overrides:
getTime in class DefaultImageSynthesizer
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
Overrides:
setTime in class DefaultImageSynthesizer
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
Overrides:
setBounds in class DefaultImageSynthesizer
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
Overrides:
renderPixel in class DefaultImageSynthesizer
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), DefaultImageSynthesizer.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).

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[]), DefaultImageSynthesizer.renderAll()

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.