org.apache.batik.ext.awt.image
Interface Light

All Known Implementing Classes:
AbstractLight, DistantLight, PointLight, SpotLight

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)
           
 void getLight(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.
 boolean isConstant()
           
 void setColor(Color color)
          Sets the light color to a new value
 

Method Detail

isConstant

boolean isConstant()
Returns:
true if the light is constant over the whole surface

getLight

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

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

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.

getColor

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

setColor

void setColor(Color color)
Sets the light color to a new value



Copyright © 2008 Apache Software Foundation. All Rights Reserved.