Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1341)

Unified Diff: Source/core/svg/SVGAngle.cpp

Issue 303263008: [SVG2] Add support for the 'turn' unit in <angle>. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: fixups for MathExtras Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/svg/SVGAngle.h ('k') | Source/core/svg/SVGAngleTearOff.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/svg/SVGAngle.cpp
diff --git a/Source/core/svg/SVGAngle.cpp b/Source/core/svg/SVGAngle.cpp
index 7768b9385ceb1bfb713a3631cf552d7a9b04e172..eedb177409e2df0a989b6240c224c18e9295505c 100644
--- a/Source/core/svg/SVGAngle.cpp
+++ b/Source/core/svg/SVGAngle.cpp
@@ -117,6 +117,8 @@ float SVGAngle::value() const
return grad2deg(m_valueInSpecifiedUnits);
case SVG_ANGLETYPE_RAD:
return rad2deg(m_valueInSpecifiedUnits);
+ case SVG_ANGLETYPE_TURN:
+ return turn2deg(m_valueInSpecifiedUnits);
case SVG_ANGLETYPE_UNSPECIFIED:
case SVG_ANGLETYPE_UNKNOWN:
case SVG_ANGLETYPE_DEG:
@@ -136,6 +138,9 @@ void SVGAngle::setValue(float value)
case SVG_ANGLETYPE_RAD:
m_valueInSpecifiedUnits = deg2rad(value);
break;
+ case SVG_ANGLETYPE_TURN:
+ m_valueInSpecifiedUnits = deg2turn(value);
+ break;
case SVG_ANGLETYPE_UNSPECIFIED:
case SVG_ANGLETYPE_UNKNOWN:
case SVG_ANGLETYPE_DEG:
@@ -168,6 +173,8 @@ static SVGAngle::SVGAngleType stringToAngleType(const CharType*& ptr, const Char
const CharType fourthChar = *ptr++;
if (firstChar == 'g' && secondChar == 'r' && thirdChar == 'a' && fourthChar == 'd')
type = SVGAngle::SVG_ANGLETYPE_GRAD;
+ else if (firstChar == 't' && secondChar == 'u' && thirdChar == 'r' && fourthChar == 'n')
+ type = SVGAngle::SVG_ANGLETYPE_TURN;
}
}
@@ -192,6 +199,10 @@ String SVGAngle::valueAsString() const
DEFINE_STATIC_LOCAL(String, gradString, ("grad"));
return String::number(m_valueInSpecifiedUnits) + gradString;
}
+ case SVG_ANGLETYPE_TURN: {
+ DEFINE_STATIC_LOCAL(String, turnString, ("turn"));
+ return String::number(m_valueInSpecifiedUnits) + turnString;
+ }
case SVG_ANGLETYPE_UNSPECIFIED:
case SVG_ANGLETYPE_UNKNOWN:
return String::number(m_valueInSpecifiedUnits);
@@ -263,6 +274,24 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex
return;
switch (m_unitType) {
+ case SVG_ANGLETYPE_TURN:
+ switch (unitType) {
+ case SVG_ANGLETYPE_GRAD:
+ m_valueInSpecifiedUnits = turn2grad(m_valueInSpecifiedUnits);
+ break;
+ case SVG_ANGLETYPE_UNSPECIFIED:
+ case SVG_ANGLETYPE_DEG:
+ m_valueInSpecifiedUnits = turn2deg(m_valueInSpecifiedUnits);
+ break;
+ case SVG_ANGLETYPE_RAD:
+ m_valueInSpecifiedUnits = deg2rad(turn2deg(m_valueInSpecifiedUnits));
+ break;
+ case SVG_ANGLETYPE_TURN:
+ case SVG_ANGLETYPE_UNKNOWN:
+ ASSERT_NOT_REACHED();
+ break;
+ }
+ break;
case SVG_ANGLETYPE_RAD:
switch (unitType) {
case SVG_ANGLETYPE_GRAD:
@@ -272,6 +301,9 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex
case SVG_ANGLETYPE_DEG:
m_valueInSpecifiedUnits = rad2deg(m_valueInSpecifiedUnits);
break;
+ case SVG_ANGLETYPE_TURN:
+ m_valueInSpecifiedUnits = deg2turn(rad2deg(m_valueInSpecifiedUnits));
+ break;
case SVG_ANGLETYPE_RAD:
case SVG_ANGLETYPE_UNKNOWN:
ASSERT_NOT_REACHED();
@@ -287,6 +319,9 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex
case SVG_ANGLETYPE_DEG:
m_valueInSpecifiedUnits = grad2deg(m_valueInSpecifiedUnits);
break;
+ case SVG_ANGLETYPE_TURN:
+ m_valueInSpecifiedUnits = grad2turn(m_valueInSpecifiedUnits);
+ break;
case SVG_ANGLETYPE_GRAD:
case SVG_ANGLETYPE_UNKNOWN:
ASSERT_NOT_REACHED();
@@ -303,9 +338,12 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex
case SVG_ANGLETYPE_GRAD:
m_valueInSpecifiedUnits = deg2grad(m_valueInSpecifiedUnits);
break;
- case SVG_ANGLETYPE_UNSPECIFIED:
+ case SVG_ANGLETYPE_TURN:
+ m_valueInSpecifiedUnits = deg2turn(m_valueInSpecifiedUnits);
break;
+ case SVG_ANGLETYPE_UNSPECIFIED:
case SVG_ANGLETYPE_DEG:
+ break;
case SVG_ANGLETYPE_UNKNOWN:
ASSERT_NOT_REACHED();
break;
« no previous file with comments | « Source/core/svg/SVGAngle.h ('k') | Source/core/svg/SVGAngleTearOff.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698