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