1 /* 2 * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann (at) kde.org> 3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis (at) kde.org> 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Library General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU Library General Public License 16 * along with this library; see the file COPYING.LIB. If not, write to 17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * Boston, MA 02110-1301, USA. 19 */ 20 21 #ifndef SVGPathSegArc_h 22 #define SVGPathSegArc_h 23 24 #include "core/svg/SVGPathSegWithContext.h" 25 26 namespace WebCore { 27 28 class SVGPathSegArc : public SVGPathSegWithContext { 29 public: 30 SVGPathSegArc(SVGPathElement* element, SVGPathSegRole role, float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag) 31 : SVGPathSegWithContext(element, role) 32 , m_x(x) 33 , m_y(y) 34 , m_r1(r1) 35 , m_r2(r2) 36 , m_angle(angle) 37 , m_largeArcFlag(largeArcFlag) 38 , m_sweepFlag(sweepFlag) 39 { 40 } 41 42 float x() const { return m_x; } 43 void setX(float x) 44 { 45 m_x = x; 46 commitChange(); 47 } 48 49 float y() const { return m_y; } 50 void setY(float y) 51 { 52 m_y = y; 53 commitChange(); 54 } 55 56 float r1() const { return m_r1; } 57 void setR1(float r1) 58 { 59 m_r1 = r1; 60 commitChange(); 61 } 62 63 float r2() const { return m_r2; } 64 void setR2(float r2) 65 { 66 m_r2 = r2; 67 commitChange(); 68 } 69 70 float angle() const { return m_angle; } 71 void setAngle(float angle) 72 { 73 m_angle = angle; 74 commitChange(); 75 } 76 77 bool largeArcFlag() const { return m_largeArcFlag; } 78 void setLargeArcFlag(bool largeArcFlag) 79 { 80 m_largeArcFlag = largeArcFlag; 81 commitChange(); 82 } 83 84 bool sweepFlag() const { return m_sweepFlag; } 85 void setSweepFlag(bool sweepFlag) 86 { 87 m_sweepFlag = sweepFlag; 88 commitChange(); 89 } 90 91 private: 92 float m_x; 93 float m_y; 94 float m_r1; 95 float m_r2; 96 float m_angle; 97 98 bool m_largeArcFlag : 1; 99 bool m_sweepFlag : 1; 100 }; 101 102 } // namespace WebCore 103 104 #endif 105