File indexing completed on 2024-04-28 15:24:31

0001 /*
0002      Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
0003 
0004      This library is free software; you can redistribute it and/or
0005      modify it under the terms of the GNU Library General Public
0006      License as published by the Free Software Foundation; either
0007      version 2 of the License, or (at your option) any later version.
0008 
0009      This library is distributed in the hope that it will be useful,
0010      but WITHOUT ANY WARRANTY; without even the implied warranty of
0011      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012      Library General Public License for more details.
0013 
0014      You should have received a copy of the GNU Library General Public License
0015      along with this library; see the file COPYING.LIB.  If not, write to
0016      the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017      Boston, MA 02110-1301, USA.
0018  */
0019 
0020 #if ENABLE(SVG) && ENABLE(SVG_FILTERS)
0021 #include "SVGFESpotLightElement.h"
0022 #include "SVGSpotLightSource.h"
0023 
0024 namespace WebCore
0025 {
0026 
0027 SVGFESpotLightElement::SVGFESpotLightElement(const QualifiedName &tagName, Document *doc)
0028     : SVGFELightElement(tagName, doc)
0029 {
0030 }
0031 
0032 SVGFESpotLightElement::~SVGFESpotLightElement()
0033 {
0034 }
0035 
0036 SVGLightSource *SVGFESpotLightElement::lightSource() const
0037 {
0038     FloatPoint3D pos(x(), y(), z());
0039 
0040     // convert lookAt to a direction
0041     FloatPoint3D direction(pointsAtX() - pos.x(),
0042                            pointsAtY() - pos.y(),
0043                            pointsAtZ() - pos.z());
0044 
0045     direction.normalize();
0046     return new SVGSpotLightSource(pos, direction, specularExponent(), limitingConeAngle());
0047 }
0048 
0049 }
0050 
0051 #endif // ENABLE(SVG)
0052