Package org.apache.batik.ext.awt.image
Class SpotLight
java.lang.Object
org.apache.batik.ext.awt.image.AbstractLight
org.apache.batik.ext.awt.image.SpotLight
- All Implemented Interfaces:
Light
A light source which emits a light of constant intensity in all directions.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal void
getLight
(double x, double y, double z, double[] L) Computes the light vector in (x, y, z)final void
getLight4
(double x, double y, double z, double[] L) computes light vector in (x, y, z).final 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
double
double
double
double
double
double
double
boolean
Methods inherited from class org.apache.batik.ext.awt.image.AbstractLight
getColor, getLightMap, getLightRow, setColor, sRGBToLsRGB
-
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 interfaceLight
- Overrides:
isConstant
in classAbstractLight
- 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 computedy
- y-axis coordinate where the light should be computedz
- z-axis coordinate where the light should be computedL
- 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 computedy
- y-axis coordinate where the light should be computedz
- z-axis coordinate where the light should be computedL
- 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 computedy
- y-axis coordinate where the light should be computedz
- z-axis coordinate where the light should be computedL
- 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)
-