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

java.lang.Object
  extended by org.apache.batik.ext.awt.image.AbstractLight
      extended by org.apache.batik.ext.awt.image.SpotLight
All Implemented Interfaces:
Light

public class SpotLight
extends AbstractLight

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, Color lightColor)
           
 
Method Summary
 void getLight(double x, double y, double z, double[] L)
          Computes the light vector in (x, y, z)
 void getLight4(double x, double y, double z, double[] L)
          computes light vector in (x, y, z).
 double getLightBase(double x, double y, double z, double[] L)
          Computes the light vector in (x, y, z)
 double[][] getLightRow4(double x, double y, double dx, int width, double[][] z, double[][] lightRow)
           
 double getLightX()
           
 double getLightY()
           
 double getLightZ()
           
 double getLimitingConeAngle()
           
 double getPointAtX()
           
 double getPointAtY()
           
 double getPointAtZ()
           
 double getSpecularExponent()
           
 boolean isConstant()
           
 
Methods inherited from class org.apache.batik.ext.awt.image.AbstractLight
getColor, getLightMap, getLightRow, setColor, sRGBToLsRGB
 
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,
                 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

isConstant

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

getLightBase

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

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
Returns:
the intensity factor for this light vector.

getLight

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

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, x,y,z are scaled by light intensity.

getLight4

public final void getLight4(double x,
                            double y,
                            double z,
                            double[] L)
computes light vector in (x, y, z).

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 4 where result is stored. 0,1,2 are x,y,z respectively of light vector (normalized). 3 is the intensity of the light at this point.

getLightRow4

public double[][] getLightRow4(double x,
                               double y,
                               double dx,
                               int width,
                               double[][] z,
                               double[][] lightRow)


Copyright © 2008 Apache Software Foundation. All Rights Reserved.