| /* |
| |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You 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 primitive lights an image using the alpha channel as a bump map. |
| * The resulting image is an RGBA opaque image based on the light color |
| * with alpha = 1.0 everywhere. The lighting calculation follows the standard diffuse |
| * component of the Phong lighting model. The resulting image depends on the light color, |
| * light position and surface geometry of the input bump map. |
| * |
| * This filter follows the specification of the feDiffuseLighting filter in |
| * the SVG 1.0 specification. |
| * |
| * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a> |
| * @version $Id$ |
| */ |
| public interface DiffuseLightingRable extends FilterColorInterpolation { |
| /** |
| * Returns the source to be filtered |
| */ |
| Filter getSource(); |
| |
| /** |
| * Sets the source to be filtered |
| */ |
| void setSource(Filter src); |
| |
| /** |
| * @return Light object used for the diffuse lighting |
| */ |
| Light getLight(); |
| |
| /** |
| * @param light New Light object |
| */ |
| void setLight(Light light); |
| |
| /** |
| * @return surfaceScale |
| */ |
| double getSurfaceScale(); |
| |
| /** |
| * Sets the surface scale |
| */ |
| void setSurfaceScale(double surfaceScale); |
| |
| /** |
| * @return diffuse constant, or kd. |
| */ |
| double getKd(); |
| |
| /** |
| * Sets the diffuse constant, or kd |
| */ |
| void setKd(double kd); |
| |
| /** |
| * @return the litRegion for this filter |
| */ |
| Rectangle2D getLitRegion(); |
| |
| /** |
| * Sets the litRegion for this filter |
| */ |
| void setLitRegion(Rectangle2D litRegion); |
| |
| /** |
| * Returns the min [dx,dy] distance in user space for evalutation of |
| * the sobel gradient. |
| */ |
| 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. |
| */ |
| void setKernelUnitLength(double [] kernelUnitLength); |
| } |
| |