2010-11-10 Nikolas Zimmermann <nzimmermann@rim.com>
[WebKit-https.git] / WebCore / svg / SVGTransform.cpp
index 594af16..c39fe39 100644 (file)
  */
 
 #include "config.h"
-#if ENABLE(SVG)
 
+#if ENABLE(SVG)
 #include "FloatPoint.h"
 #include "FloatSize.h"
 #include "SVGAngle.h"
 #include "SVGSVGElement.h"
 #include "SVGTransform.h"
 
-#include <math.h>
+#include <wtf/MathExtras.h>
 
-using namespace WebCore;
+namespace WebCore {
 
 SVGTransform::SVGTransform()
     : m_type(SVG_TRANSFORM_UNKNOWN)
@@ -40,8 +40,6 @@ SVGTransform::SVGTransform()
 SVGTransform::SVGTransform(SVGTransformType type)
     : m_type(type)
     , m_angle(0)
-    , m_center(FloatPoint())
-    , m_matrix(AffineTransform())
 {
 }
 
@@ -52,41 +50,20 @@ SVGTransform::SVGTransform(const AffineTransform& matrix)
 {
 }
 
-SVGTransform::~SVGTransform()
-{
-}
-
-bool SVGTransform::isValid()
-{
-    return (m_type != SVG_TRANSFORM_UNKNOWN);
-}
-
-SVGTransform::SVGTransformType SVGTransform::type() const
-{
-    return m_type;
-}
-
-AffineTransform SVGTransform::matrix() const
-{
-    return m_matrix;
-}
-
-float SVGTransform::angle() const
-{
-    return m_angle;
-}
-
-FloatPoint SVGTransform::rotationCenter() const
+void SVGTransform::setMatrix(const AffineTransform& matrix)
 {
-    return m_center;
+    m_type = SVG_TRANSFORM_MATRIX;
+    m_angle = 0;
+    m_matrix = matrix;
 }
 
-void SVGTransform::setMatrix(AffineTransform matrix)
+void SVGTransform::updateMatrix()
 {
+    // The underlying matrix has been changed, alter the transformation type.
+    // Spec: In case the matrix object is changed directly (i.e., without using the methods on the SVGTransform interface itself)
+    // then the type of the SVGTransform changes to SVG_TRANSFORM_MATRIX.
     m_type = SVG_TRANSFORM_MATRIX;
     m_angle = 0;
-
-    m_matrix = matrix;
 }
 
 void SVGTransform::setTranslate(float tx, float ty)
@@ -149,5 +126,6 @@ void SVGTransform::setSkewY(float angle)
     m_matrix.skewY(angle);
 }
 
-#endif // ENABLE(SVG)
+} // namespace WebCore
 
+#endif // ENABLE(SVG)