18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 2dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com> 3dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org> 4dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org> 5dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2005 Eric Seidel <eric@webkit.org> 6dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 7dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * This library is free software; you can redistribute it and/or 8dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * modify it under the terms of the GNU Library General Public 9dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * License as published by the Free Software Foundation; either 10dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * version 2 of the License, or (at your option) any later version. 11dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 12dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * This library is distributed in the hope that it will be useful, 13dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * but WITHOUT ANY WARRANTY; without even the implied warranty of 14dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Library General Public License for more details. 16dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 17dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * You should have received a copy of the GNU Library General Public License 18dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * along with this library; see the file COPYING.LIB. If not, write to 19dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 20dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Boston, MA 02110-1301, USA. 21dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch */ 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 23bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#ifndef PointLightSource_h 24bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#define PointLightSource_h 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 26bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#if ENABLE(FILTERS) 27bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "LightSource.h" 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 316c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenclass PointLightSource : public LightSource { 326c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenpublic: 336c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen static PassRefPtr<PointLightSource> create(const FloatPoint3D& position) 346c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { 356c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen return adoptRef(new PointLightSource(position)); 366c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen } 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 386c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen const FloatPoint3D& position() const { return m_position; } 392fc2651226baac27029e38c9d6ef883fa32084dbSteve Block bool setX(float); 402fc2651226baac27029e38c9d6ef883fa32084dbSteve Block bool setY(float); 412fc2651226baac27029e38c9d6ef883fa32084dbSteve Block bool setZ(float); 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 436c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen virtual void initPaintingData(PaintingData&); 446c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen virtual void updatePaintingData(PaintingData&, int x, int y, float z); 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 466c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen virtual TextStream& externalRepresentation(TextStream&) const; 47643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 486c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenprivate: 496c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen PointLightSource(const FloatPoint3D& position) 506c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen : LightSource(LS_POINT) 516c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen , m_position(position) 526c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen { 536c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen } 546c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 556c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen FloatPoint3D m_position; 566c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen}; 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 60bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#endif // ENABLE(FILTERS) 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 62bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#endif // PointLightSource_h 63