blob: b88deb2b872722871a43dd3d5c330f32ba736ea5 [file] [log] [blame]
/*
Copyright 2001 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package org.apache.batik.ext.awt.image.renderable;
import java.awt.geom.Rectangle2D;
import org.apache.batik.ext.awt.image.Light;
/**
* This filter follows the specification of the feSpecularLighting filter in
* the SVG 1.0 specification.
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
* @version $Id$
*/
public interface SpecularLightingRable extends FilterColorInterpolation {
/**
* Returns the source to be filtered
*/
public Filter getSource();
/**
* Sets the source to be filtered
*/
public void setSource(Filter src);
/**
* @return Light object used for the diffuse lighting
*/
public Light getLight();
/**
* @param light New Light object
*/
public void setLight(Light light);
/**
* @return surfaceScale
*/
public double getSurfaceScale();
/**
* Sets the surface scale
*/
public void setSurfaceScale(double surfaceScale);
/**
* @return specular constant, or ks.
*/
public double getKs();
/**
* Sets the specular constant, or ks
*/
public void setKs(double ks);
/**
* @return specular exponent, or kd
*/
public double getSpecularExponent();
/**
* Sets the specular exponent
*/
public void setSpecularExponent(double specularExponent);
/**
* @return the litRegion for this filter
*/
public Rectangle2D getLitRegion();
/**
* Sets the litRegion for this filter
*/
public void setLitRegion(Rectangle2D litRegion);
/**
* Returns the min [dx,dy] distance in user space for evalutation of
* the sobel gradient.
*/
public double [] getKernelUnitLength();
/**
* Sets the min [dx,dy] distance in user space for evaluation of the
* sobel gradient. If set to zero or null then device space will be used.
*/
public void setKernelUnitLength(double [] kernelUnitLength);
}