KHtml

SVGPathSegArc.h
1 /*
2  Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <[email protected]>
3  2004, 2005, 2006 Rob Buis <[email protected]>
4 
5  This file is part of the KDE project
6 
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.
11 
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.
16 
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.
21 */
22 
23 #ifndef SVGPathSegArc_h
24 #define SVGPathSegArc_h
25 
26 #if ENABLE(SVG)
27 
28 #include "SVGPathSeg.h"
29 
30 #include <wtf/PassRefPtr.h>
31 
32 namespace WebCore
33 {
34 
35 class SVGPathSegArcAbs : public SVGPathSeg
36 {
37 public:
38  static PassRefPtr<SVGPathSegArcAbs> create(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
39  {
40  return adoptRef(new SVGPathSegArcAbs(x, y, r1, r2, angle, largeArcFlag, sweepFlag));
41  }
42 
43  virtual ~SVGPathSegArcAbs();
44 
45  unsigned short pathSegType() const override
46  {
47  return PATHSEG_ARC_ABS;
48  }
49  String pathSegTypeAsLetter() const override
50  {
51  return "A";
52  }
53  String toString() const override
54  {
55  return String::format("A %.6lg %.6lg %.6lg %d %d %.6lg %.6lg", m_r1, m_r2, m_angle, m_largeArcFlag, m_sweepFlag, m_x, m_y);
56  }
57 
58  void setX(float x);
59  float x() const;
60 
61  void setY(float y);
62  float y() const;
63 
64  void setR1(float r1);
65  float r1() const;
66 
67  void setR2(float r2);
68  float r2() const;
69 
70  void setAngle(float angle);
71  float angle() const;
72 
73  void setLargeArcFlag(bool largeArcFlag);
74  bool largeArcFlag() const;
75 
76  void setSweepFlag(bool sweepFlag);
77  bool sweepFlag() const;
78 
79 private:
80  SVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag);
81 
82  float m_x;
83  float m_y;
84  float m_r1;
85  float m_r2;
86  float m_angle;
87 
88  bool m_largeArcFlag : 1;
89  bool m_sweepFlag : 1;
90 };
91 
92 class SVGPathSegArcRel : public SVGPathSeg
93 {
94 public:
95  static PassRefPtr<SVGPathSegArcRel> create(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
96  {
97  return adoptRef(new SVGPathSegArcRel(x, y, r1, r2, angle, largeArcFlag, sweepFlag));
98  }
99  virtual ~SVGPathSegArcRel();
100 
101  unsigned short pathSegType() const override
102  {
103  return PATHSEG_ARC_REL;
104  }
105  String pathSegTypeAsLetter() const override
106  {
107  return "a";
108  }
109  String toString() const override
110  {
111  return String::format("a %.6lg %.6lg %.6lg %d %d %.6lg %.6lg", m_r1, m_r2, m_angle, m_largeArcFlag, m_sweepFlag, m_x, m_y);
112  }
113 
114  void setX(float x);
115  float x() const;
116 
117  void setY(float y);
118  float y() const;
119 
120  void setR1(float r1);
121  float r1() const;
122 
123  void setR2(float r2);
124  float r2() const;
125 
126  void setAngle(float angle);
127  float angle() const;
128 
129  void setLargeArcFlag(bool largeArcFlag);
130  bool largeArcFlag() const;
131 
132  void setSweepFlag(bool sweepFlag);
133  bool sweepFlag() const;
134 
135 private:
136  SVGPathSegArcRel(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag);
137 
138  float m_x;
139  float m_y;
140  float m_r1;
141  float m_r2;
142  float m_angle;
143 
144  bool m_largeArcFlag : 1;
145  bool m_sweepFlag : 1;
146 };
147 
148 } // namespace WebCore
149 
150 #endif // ENABLE(SVG)
151 #endif
152 
QAction * create(StandardAction id, const QObject *recvr, Func slot, QObject *parent)
char * toString(const T &value)
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Mon Oct 25 2021 22:48:23 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.