cz.cuni.jagrlib
Class DefaultImageFunction

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.DefaultImageFunction
All Implemented Interfaces:
Breakable, ImageFunction, Property, TimeDependent, Template
Direct Known Subclasses:
DefaultRenderer, RayCasting, TestImageFunctions, TextureFunctions

public abstract class DefaultImageFunction
extends Piece
implements ImageFunction

Default implementation of ImageFunction.

Since:
0.25
See Also:
DefaultImageFunction.java

Field Summary
protected  double[] background
          Background color.
protected  double time
          Actual time.
protected  double xMax
          Image function sampling bounds - horizontal maximum.
protected  double xMin
          Image function sampling bounds - horizontal minimum.
protected  double yMax
          Image function sampling bounds - vertical maximum.
protected  double yMin
          Image function sampling bounds - vertical minimum.
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, reg, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.ImageFunction
BACKGROUND_COLOR
 
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
DefaultImageFunction()
           
 
Method Summary
 double[] getBounds(double[] pre)
          Returns actual bounds for [x,y] (2D coordinates).
 long getSample(double x, double y, double[] color)
          Computes one image sample.
 long getSample(double x, double y, int order, int total, double[] color)
          Computes one image sample.
 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 setBounds(double Xmin, double Xmax, double Ymin, double Ymax)
          Sets bounds (scaling factors) for the image function (e.g. 2D mapping).
 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.Property
commit, get, set
 

Field Detail

background

protected double[] background
Background color.


time

protected double time
Actual time.


xMin

protected double xMin
Image function sampling bounds - horizontal minimum.


xMax

protected double xMax
Image function sampling bounds - horizontal maximum.


yMin

protected double yMin
Image function sampling bounds - vertical minimum.


yMax

protected double yMax
Image function sampling bounds - vertical maximum.

Constructor Detail

DefaultImageFunction

public DefaultImageFunction()
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(double Xmin,
                      double Xmax,
                      double Ymin,
                      double Ymax)
Sets bounds (scaling factors) for the image function (e.g. 2D mapping).

Specified by:
setBounds in interface ImageFunction
Parameters:
Xmin - Minimum X coordinate.
Xmax - Maximum X coordinate.
Ymin - Minimum Y coordinate.
Ymax - Maximum Y coordinate.
See Also:
getBounds(double[])

getBounds

public double[] getBounds(double[] pre)
Returns actual bounds for [x,y] (2D coordinates).

Specified by:
getBounds in interface ImageFunction
Parameters:
pre - Pre-allocated (non-mandatory) double[4] array to hold results: pre[0] .. Xmin, pre[1] .. Xmax, pre[2] .. Ymin, pre[3] .. Ymax.
Returns:
Array with all 4 return values.
See Also:
setBounds(double, double, double, double), TimeDependent.getTimeInterval(double[])

getSample

public long getSample(double x,
                      double y,
                      double[] color)
Computes one image sample.

Specified by:
getSample in interface ImageFunction
Parameters:
x - X coordinate of the sample.
y - Y coordinate of the sample.
color - Pre-allocated array to hold result color vector (double[1] for monochrome images, double[3] for RGB images, larger arrays can be used for more complex spectral sampling).
Returns:
Hash-value (sample signature) used for adaptive subsampling.
See Also:
getSample(double,double,int,int,double[]), getBounds(double[])

getSample

public long getSample(double x,
                      double y,
                      int order,
                      int total,
                      double[] color)
Computes one image sample. Passes parameters for hidden sampling.

Specified by:
getSample in interface ImageFunction
Parameters:
x - X coordinate of the sample.
y - Y coordinate of the sample.
order - Order of this sample inside the actual pixel.
total - Total number of samples in the actual pixel.
color - Pre-allocated array to hold result color vector (double[1] for monochrome images, double[3] for RGB images, larger arrays can be used for more complex spectral sampling).
Returns:
Hash-value (sample signature) used for adaptive subsampling.
See Also:
getSample(double,double,double[]), getBounds(double[])