org.apache.batik.ext.awt.image

Interface Light

public interface Light

Top level interface to model a light element. A light is responsible for computing the light vector on a given point of a surface. A light is typically in a 3 dimensional space and the methods assumes the surface is at elevation 0.
Method Summary
double[]getColor(boolean linear)
voidgetLight(double x, double y, double z, double[] L)
Computes the light vector in (x, y)
double[][][]getLightMap(double x, double y, double dx, double dy, int width, int height, double[][][] z)
Returns a light map, starting in (x, y) with dx, dy increments, a given width and height, and z elevations stored in the fourth component on the N array.
double[][]getLightRow(double x, double y, double dx, int width, double[][] z, double[][] lightRow)
Returns a row of the light map, starting at (x, y) with dx increments, a given width, and z elevations stored in the fourth component on the N array.
booleanisConstant()
voidsetColor(Color color)
Sets the light color to a new value

Method Detail

getColor

public double[] getColor(boolean linear)

Parameters: linear if true the color is returned in the Linear sRGB colorspace otherwise the color is in the gamma corrected sRGB color space.

Returns: the light's color

getLight

public void getLight(double x, double y, double z, double[] L)
Computes the light vector in (x, y)

Parameters: x x-axis coordinate where the light should be computed y y-axis coordinate where the light should be computed z z-axis coordinate where the light should be computed L array of length 3 where the result is stored

getLightMap

public double[][][] getLightMap(double x, double y, double dx, double dy, int width, int height, double[][][] z)
Returns a light map, starting in (x, y) with dx, dy increments, a given width and height, and z elevations stored in the fourth component on the N array.

Parameters: x x-axis coordinate where the light should be computed y y-axis coordinate where the light should be computed dx delta x for computing light vectors in user space dy delta y for computing light vectors in user space width number of samples to compute on the x axis height number of samples to compute on the y axis z array containing the z elevation for all the points

Returns: an array of height rows, width columns where each element is an array of three components representing the x, y and z components of the light vector.

getLightRow

public double[][] getLightRow(double x, double y, double dx, int width, double[][] z, double[][] lightRow)
Returns a row of the light map, starting at (x, y) with dx increments, a given width, and z elevations stored in the fourth component on the N array.

Parameters: x x-axis coordinate where the light should be computed y y-axis coordinate where the light should be computed dx delta x for computing light vectors in user space width number of samples to compute on the x axis z array containing the z elevation for all the points lightRow array to store the light info to, if null it will be allocated for you and returned.

Returns: an array width columns where each element is an array of three components representing the x, y and z components of the light vector.

isConstant

public boolean isConstant()

Returns: true if the light is constant over the whole surface

setColor

public void setColor(Color color)
Sets the light color to a new value
Copyright B) 2008 Apache Software Foundation. All Rights Reserved.