cz.cuni.jagrlib
Class DefaultImageSynthesizer

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.DefaultImageSynthesizer
All Implemented Interfaces:
Breakable, ImageSynthesizer, Property, TimeDependent, Template
Direct Known Subclasses:
FractalCircles, SimpleSynthesizer, TestGamma, TestImageLaser

public abstract class DefaultImageSynthesizer
extends Piece
implements ImageSynthesizer

Default implementation of ImageSynthesizer interface.

Since:
0.25
See Also:
DefaultImageSynthesizer.java

Field Summary
protected  double actTime
          Actual time (for RealFunction).
protected  int imageHeight
          Actual image height in pixels.
protected  int imageWidth
          Actual image width in pixels.
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, reg, 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
DefaultImageSynthesizer()
           
 
Method Summary
 double getTime()
          Returns the actual time value for the object (used in animations).
 double[] getTimeInterval(double[] pre)
          Retrieve the valid bounds for time variable.
 void renderAll()
          Render the whole image.
 double[] renderPixel(int x, int y, double[] pre)
          Render the given pixel of the image.
 void setBounds(int width, int height)
          Sets resolution of an output raster image.
 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, setTemplate, setTemplateDynamic, stop
 
Methods inherited from class cz.cuni.jagrlib.DefaultProperty
booleanProperty, booleanProperty, colorDoubleProperty, colorProperty, commit, doubleProperty, doubleProperty, doubleProperty, enumProperty, floatProperty, floatProperty, floatProperty, get, intProperty, intProperty, intProperty, longProperty, longProperty, longProperty, set, 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.ImageSynthesizer
renderRectangle
 
Methods inherited from interface cz.cuni.jagrlib.iface.Property
commit, get, set
 
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.


actTime

protected double actTime
Actual time (for RealFunction).

Constructor Detail

DefaultImageSynthesizer

public DefaultImageSynthesizer()
Method Detail

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:
ImageSynthesizer.renderRectangle(int, int, int, int), 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[]), ImageSynthesizer.renderRectangle(int, int, int, int)