Home | History | Annotate | Download | only in graphics
      1 /*
      2     Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox (at) kde.org>
      3                   2004, 2005 Rob Buis <buis (at) kde.org>
      4                   2005 Eric Seidel <eric (at) webkit.org>
      5 
      6     This library is free software; you can redistribute it and/or
      7     modify it under the terms of the GNU Library General Public
      8     License as published by the Free Software Foundation; either
      9     version 2 of the License, or (at your option) any later version.
     10 
     11     This library is distributed in the hope that it will be useful,
     12     but WITHOUT ANY WARRANTY; without even the implied warranty of
     13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     14     Library General Public License for more details.
     15 
     16     You should have received a copy of the GNU Library General Public License
     17     aint with this library; see the file COPYING.LIB.  If not, write to
     18     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     19     Boston, MA 02110-1301, USA.
     20 */
     21 
     22 #ifndef FloatPoint3D_h
     23 #define FloatPoint3D_h
     24 
     25 namespace WebCore {
     26 
     27 class FloatPoint;
     28 
     29 class FloatPoint3D {
     30 public:
     31     FloatPoint3D();
     32     FloatPoint3D(float x, float y, float z);
     33     FloatPoint3D(const FloatPoint&);
     34 
     35     float x() const { return m_x; }
     36     void setX(float x) { m_x = x; }
     37 
     38     float y() const { return m_y; }
     39     void setY(float y) { m_y = y; }
     40 
     41     float z() const { return m_z; }
     42     void setZ(float z) { m_z = z; }
     43 
     44     void normalize();
     45 
     46 private:
     47     float m_x;
     48     float m_y;
     49     float m_z;
     50 };
     51 
     52 inline bool operator==(const FloatPoint3D& a, const FloatPoint3D& b)
     53 {
     54     return a.x() == b.x() && a.y() == b.y() && a.z() == b.z();
     55 }
     56 
     57 inline bool operator!=(const FloatPoint3D& a, const FloatPoint3D& b)
     58 {
     59     return a.x() != b.x() || a.y() != b.y() || a.z() != b.z();
     60 }
     61 
     62 } // namespace WebCore
     63 
     64 #endif // FloatPoint3D_h
     65