2 Copyright (C) 2004, 2005, 2007, 2008 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.
27 //#include "PlatformString.h"
28 #include "wtf/RefCounted.h"
33 class SVGStyledElement
;
35 class SVGAngle
: public RefCounted
<SVGAngle
> {
41 SVG_ANGLETYPE_UNKNOWN
= 0,
42 SVG_ANGLETYPE_UNSPECIFIED
= 1,
43 SVG_ANGLETYPE_DEG
= 2,
44 SVG_ANGLETYPE_RAD
= 3,
45 SVG_ANGLETYPE_GRAD
= 4
48 SVGAngleType
unitType() const;
53 void setValueInSpecifiedUnits(float valueInSpecifiedUnits
);
54 float valueInSpecifiedUnits() const;
56 void setValueAsString(const String
&);
57 String
valueAsString() const;
59 void newValueSpecifiedUnits(unsigned short unitType
, float valueInSpecifiedUnits
);
60 void convertToSpecifiedUnits(unsigned short unitType
);
63 static double todeg(double rad
);
64 static double torad(double deg
);
66 // Returns the angle that divides the shortest arc between the two angles.
67 static double shortestArcBisector(double angle1
, double angle2
);
69 // Throughout SVG 1.1 'SVGAngle' is only used for 'SVGMarkerElement' (orient-angle)
70 const QualifiedName
& associatedAttributeName() const { return SVGNames::orientAttr
; }
73 SVGAngleType m_unitType
;
75 float m_valueInSpecifiedUnits
;
76 mutable String m_valueAsString
;
81 } // namespace WebCore