fix tricky regression noticed by Vyacheslav Tokarev on Google Reader.
[kdelibs.git] / khtml / svg / SVGPathSegCurvetoCubic.h
blobb30d86096a6e06620f097f7d9ece9260e967fbf5
1 /*
2 Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
3 2004, 2005, 2006 Rob Buis <buis@kde.org>
5 This file is part of the KDE project
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Library General Public
9 License as published by the Free Software Foundation; either
10 version 2 of the License, or (at your option) any later version.
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Library General Public License for more details.
17 You should have received a copy of the GNU Library General Public License
18 along with this library; see the file COPYING.LIB. If not, write to
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 Boston, MA 02110-1301, USA.
23 #ifndef SVGPathSegCurvetoCubic_h
24 #define SVGPathSegCurvetoCubic_h
26 #if ENABLE(SVG)
28 #include "SVGPathSeg.h"
30 namespace WebCore {
31 class SVGPathSegCurvetoCubicAbs : public SVGPathSeg {
32 public:
33 static PassRefPtr<SVGPathSegCurvetoCubicAbs> create(float x, float y, float x1, float y1, float x2, float y2)
35 return adoptRef(new SVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2));
38 virtual ~SVGPathSegCurvetoCubicAbs();
40 virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_CUBIC_ABS; }
41 virtual String pathSegTypeAsLetter() const { return "C"; }
42 virtual String toString() const { return String::format("C %.6lg %.6lg %.6lg %.6lg %.6lg %.6lg", m_x1, m_y1, m_x2, m_y2, m_x, m_y); }
44 void setX(float);
45 float x() const;
47 void setY(float);
48 float y() const;
50 void setX1(float);
51 float x1() const;
53 void setY1(float);
54 float y1() const;
56 void setX2(float);
57 float x2() const;
59 void setY2(float);
60 float y2() const;
62 private:
63 SVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2);
65 float m_x;
66 float m_y;
67 float m_x1;
68 float m_y1;
69 float m_x2;
70 float m_y2;
73 class SVGPathSegCurvetoCubicRel : public SVGPathSeg {
74 public:
75 static PassRefPtr<SVGPathSegCurvetoCubicRel> create(float x, float y, float x1, float y1, float x2, float y2)
77 return adoptRef(new SVGPathSegCurvetoCubicRel(x, y, x1, y1, x2, y2));
79 virtual ~SVGPathSegCurvetoCubicRel();
81 virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_CUBIC_REL; }
82 virtual String pathSegTypeAsLetter() const { return "c"; }
83 virtual String toString() const { return String::format("c %.6lg %.6lg %.6lg %.6lg %.6lg %.6lg", m_x1, m_y1, m_x2, m_y2, m_x, m_y); }
85 void setX(float);
86 float x() const;
88 void setY(float);
89 float y() const;
91 void setX1(float);
92 float x1() const;
94 void setY1(float);
95 float y1() const;
97 void setX2(float);
98 float x2() const;
100 void setY2(float);
101 float y2() const;
103 private:
104 SVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2);
106 float m_x;
107 float m_y;
108 float m_x1;
109 float m_y1;
110 float m_x2;
111 float m_y2;
114 } // namespace WebCore
116 #endif // ENABLE(SVG)
117 #endif
119 // vim:ts=4:noet