Class SpotLight

java.lang.Object
org.apache.batik.ext.awt.image.AbstractLight
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 Details

    • SpotLight

      public SpotLight(double lightX, double lightY, double lightZ, double pointAtX, double pointAtY, double pointAtZ, double specularExponent, double limitingConeAngle, Color lightColor)
  • Method Details

    • 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)