org.apache.batik.ext.awt.image
Class SpotLight

java.lang.Object
  |
  +--org.apache.batik.ext.awt.image.SpotLight
All Implemented Interfaces:
Light

public class SpotLight
extends java.lang.Object
implements Light

A light source which emits a light of constant intensity in all directions.


Constructor Summary
SpotLight(double lightX, double lightY, double lightZ, double pointAtX, double pointAtY, double pointAtZ, double specularExponent, double limitingConeAngle, java.awt.Color lightColor)
           
 
Method Summary
 double[] getColor()
           
 void getLight(double x, double y, double z, double[] L)
          Computes the light vector in (x, y, z)
 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.
 double getLightX()
           
 double getLightY()
           
 double getLightZ()
           
 double getLimitingConeAngle()
           
 double getPointAtX()
           
 double getPointAtY()
           
 double getPointAtZ()
           
 double getSpecularExponent()
           
 boolean isConstant()
           
 void setColor(java.awt.Color newColor)
          Sets the new light color
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SpotLight

public SpotLight(double lightX,
                 double lightY,
                 double lightZ,
                 double pointAtX,
                 double pointAtY,
                 double pointAtZ,
                 double specularExponent,
                 double limitingConeAngle,
                 java.awt.Color lightColor)
Method Detail

getLightX

public double getLightX()
Returns:
the light's x position

getLightY

public double getLightY()
Returns:
the light's y position

getLightZ

public double getLightZ()
Returns:
the light's z position

getPointAtX

public double getPointAtX()
Returns:
x-axis coordinate where the light points to

getPointAtY

public double getPointAtY()
Returns:
y-axis coordinate where the light points to

getPointAtZ

public double getPointAtZ()
Returns:
z-axis coordinate where the light points to

getSpecularExponent

public double getSpecularExponent()
Returns:
light's specular exponent (focus)

getLimitingConeAngle

public double getLimitingConeAngle()
Returns:
light's limiting cone angle

getColor

public double[] getColor()
Specified by:
getColor in interface Light
Returns:
the light's color

setColor

public void setColor(java.awt.Color newColor)
Sets the new light color
Specified by:
setColor in interface Light

isConstant

public boolean isConstant()
Specified by:
isConstant in interface Light
Returns:
true if the light is constant over the whole surface

getLight

public final void getLight(double x,
                           double y,
                           double z,
                           double[] L)
Computes the light vector in (x, y, z)
Specified by:
getLight in interface Light
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.
Specified by:
getLightMap in interface Light
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

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.
Specified by:
getLightRow in interface Light
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
lightRwo - 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.


Copyright © 2001 Apache Software Foundation. All Rights Reserved.