Code

work in progress
authorishmal <ishmal@users.sourceforge.net>
Tue, 17 Jun 2008 21:18:19 +0000 (21:18 +0000)
committerishmal <ishmal@users.sourceforge.net>
Tue, 17 Jun 2008 21:18:19 +0000 (21:18 +0000)
src/dom/svg2.h
src/dom/work/svg2.cpp [new file with mode: 0644]

index 4f9b78ecb56172a7cb7af4c6b36aeceab30bd0f5..97a534d049183406790a9fd3ae1d7d302606200c 100644 (file)
@@ -92,358 +92,235 @@ typedef Ptr<SVGElement> SVGElementPtr;
 class SVGDocument;\r
 typedef Ptr<SVGDocument> SVGDocumentPtr;\r
 \r
+\r
+\r
 //########################################################################\r
 //########################################################################\r
-//########################################################################\r
-//#   I N T E R F A C E S\r
-//########################################################################\r
+//#   V A L U E S\r
 //########################################################################\r
 //########################################################################\r
 \r
 \r
 \r
+\r
+\r
 /*#########################################################################\r
-## SVGMatrix\r
+## SVGAngle\r
 #########################################################################*/\r
 \r
 /**\r
- *  In SVG, a Matrix is defined like this:\r
- *\r
- * | a  c  e |\r
- * | b  d  f |\r
- * | 0  0  1 |\r
  *\r
  */\r
-class SVGMatrix\r
+class SVGAngle\r
 {\r
 public:\r
 \r
+    /**\r
+     *  Angle Unit Types\r
+     */\r
+    typedef enum\r
+        {\r
+        SVG_ANGLETYPE_UNKNOWN     = 0,\r
+        SVG_ANGLETYPE_UNSPECIFIED = 1,\r
+        SVG_ANGLETYPE_DEG         = 2,\r
+        SVG_ANGLETYPE_RAD         = 3,\r
+        SVG_ANGLETYPE_GRAD        = 4\r
+        } AngleUnitType;\r
+\r
+\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getA()\r
-        { return a; }\r
+    unsigned short getUnitType();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setA(double val) throw (DOMException)\r
-        { a = val; }\r
+    double getValue();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getB()\r
-        { return b; }\r
+    void setValue(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setB(double val) throw (DOMException)\r
-        { b = val; }\r
+    double getValueInSpecifiedUnits();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getC()\r
-        { return c; }\r
+    void setValueInSpecifiedUnits(double /*val*/)\r
+                                     throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setC(double val) throw (DOMException)\r
-        { c = val; }\r
+    DOMString getValueAsString();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getD()\r
-        { return d; }\r
+    void setValueAsString(const DOMString &/*val*/)\r
+                                  throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setD(double val) throw (DOMException)\r
-        { d = val; }\r
+    void newValueSpecifiedUnits(unsigned short /*unitType*/,\r
+                                double /*valueInSpecifiedUnits*/);\r
+\r
     /**\r
      *\r
      */\r
-    virtual double getE()\r
-        { return e; }\r
+    void convertToSpecifiedUnits(unsigned short /*unitType*/);\r
+\r
+    //##################\r
+    //# Non-API methods\r
+    //##################\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setE(double val) throw (DOMException)\r
-        { e = val; }\r
+    SVGAngle();\r
+\r
     /**\r
      *\r
      */\r
-    virtual double getF()\r
-        { return f; }\r
+    SVGAngle(const SVGAngle &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setF(double val) throw (DOMException)\r
-        { f = val; }\r
+    ~SVGAngle();\r
+\r
+protected:\r
+\r
+    int unitType;\r
+\r
+    double value;\r
+\r
+};\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGColor\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+class SVGColor : public css::CSSValue\r
+{\r
+public:\r
 \r
 \r
     /**\r
-     * Return the result of postmultiplying this matrix with another.\r
+     * Color Types\r
      */\r
-    virtual SVGMatrix multiply(const SVGMatrix &other)\r
+    typedef enum\r
         {\r
-        SVGMatrix result;\r
-        result.a = a * other.a  +  c * other.b;\r
-        result.b = b * other.a  +  d * other.b;\r
-        result.c = a * other.c  +  c * other.d;\r
-        result.d = b * other.c  +  d * other.d;\r
-        result.e = a * other.e  +  c * other.f  +  e;\r
-        result.f = b * other.e  +  d * other.f  +  f;\r
-        return result;\r
-        }\r
+        SVG_COLORTYPE_UNKNOWN           = 0,\r
+        SVG_COLORTYPE_RGBCOLOR          = 1,\r
+        SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2,\r
+        SVG_COLORTYPE_CURRENTCOLOR      = 3\r
+        } ColorType;\r
+\r
 \r
     /**\r
-     *  Calculate the inverse of this matrix\r
      *\r
      */\r
-    virtual SVGMatrix inverse(  ) throw( SVGException )\r
-        {\r
-        /*###########################################\r
-        The determinant of a 3x3 matrix E\r
-           (let's use our own notation for a bit)\r
-\r
-            A  B  C\r
-            D  E  F\r
-            G  H  I\r
-        is\r
-            AEI - AFH - BDI + BFG + CDH - CEG\r
-\r
-        Since in our affine transforms, G and H==0 and I==1,\r
-        this reduces to:\r
-            AE - BD\r
-        In SVG's naming scheme, that is:  a * d - c * b .  SIMPLE!\r
-\r
-        In a similar method of attack, SVG's adjunct matrix is:\r
-\r
-           d  -c   cf-ed\r
-          -b   a   eb-af\r
-           0   0   ad-cb\r
-\r
-        To get the inverse matrix, we divide the adjunct matrix by\r
-        the determinant.  Notice that (ad-cb)/(ad-cb)==1.  Very cool.\r
-        So what we end up with is this:\r
-\r
-           a =  d/(ad-cb)  c = -c/(ad-cb)   e = (cf-ed)/(ad-cb)\r
-           b = -b/(ad-cb)  d =  a/(ad-cb)   f = (eb-af)/(ad-cb)\r
-\r
-        (Since this would be in all SVG-DOM implementations,\r
-         somebody needed to document this!  ^^ )\r
-        #############################################*/\r
-\r
-        SVGMatrix result;\r
-        double determinant = a * d  -  c * b;\r
-        if (determinant < 1.0e-18)//invertible?\r
-            {\r
-            result.identity();//cop out\r
-            return result;\r
-            }\r
-\r
-        double idet = 1.0 / determinant;\r
-        result.a =   d * idet;\r
-        result.b =  -b * idet;\r
-        result.c =  -c * idet;\r
-        result.d =   a * idet;\r
-        result.e =  (c*f - e*d) * idet;\r
-        result.f =  (e*b - a*f) * idet;\r
-        return result;\r
-        }\r
+    unsigned short getColorType();\r
 \r
     /**\r
-     * Equivalent to multiplying by:\r
-     *  | 1  0  x |\r
-     *  | 0  1  y |\r
-     *  | 0  0  1 |\r
      *\r
      */\r
-    virtual SVGMatrix translate(double x, double y )\r
-        {\r
-        SVGMatrix result;\r
-        result.a = a;\r
-        result.b = b;\r
-        result.c = c;\r
-        result.d = d;\r
-        result.e = a * x  +  c * y  +  e;\r
-        result.f = b * x  +  d * y  +  f;\r
-        return result;\r
-        }\r
+    css::RGBColor getRgbColor();\r
 \r
     /**\r
-     * Equivalent to multiplying by:\r
-     *  | scale  0      0 |\r
-     *  | 0      scale  0 |\r
-     *  | 0      0      1 |\r
      *\r
      */\r
-    virtual SVGMatrix scale(double scale)\r
-        {\r
-        SVGMatrix result;\r
-        result.a = a * scale;\r
-        result.b = b * scale;\r
-        result.c = c * scale;\r
-        result.d = d * scale;\r
-        result.e = e;\r
-        result.f = f;\r
-        return result;\r
-        }\r
+    SVGICCColor getIccColor();\r
+\r
 \r
     /**\r
-     * Equivalent to multiplying by:\r
-     *  | scaleX  0       0 |\r
-     *  | 0       scaleY  0 |\r
-     *  | 0       0       1 |\r
      *\r
      */\r
-    virtual SVGMatrix scaleNonUniform(double scaleX,\r
-                                      double scaleY )\r
-        {\r
-        SVGMatrix result;\r
-        result.a = a * scaleX;\r
-        result.b = b * scaleX;\r
-        result.c = c * scaleY;\r
-        result.d = d * scaleY;\r
-        result.e = e;\r
-        result.f = f;\r
-        return result;\r
-        }\r
+    void setRGBColor(const DOMString& /*rgbColor*/)\r
+                              throw(SVGException);\r
 \r
     /**\r
-     * Equivalent to multiplying by:\r
-     *  | cos(a) -sin(a)   0 |\r
-     *  | sin(a)  cos(a)   0 |\r
-     *  | 0       0        1 |\r
      *\r
      */\r
-    virtual SVGMatrix rotate (double angle)\r
-        {\r
-        double sina  = sin(angle);\r
-        double msina = -sina;\r
-        double cosa  = cos(angle);\r
-        SVGMatrix result;\r
-        result.a = a * cosa   +  c * sina;\r
-        result.b = b * cosa   +  d + sina;\r
-        result.c = a * msina  +  c * cosa;\r
-        result.d = b * msina  +  d * cosa;\r
-        result.e = e;\r
-        result.f = f;\r
-        return result;\r
-        }\r
+    void setRGBColorICCColor(const DOMString& /*rgbColor*/,\r
+                                      const DOMString& /*iccColor*/)\r
+                                      throw(SVGException);\r
 \r
     /**\r
-     * Equivalent to multiplying by:\r
-     *  | cos(a) -sin(a)   0 |\r
-     *  | sin(a)  cos(a)   0 |\r
-     *  | 0       0        1 |\r
-     *  In this case, angle 'a' is computed as the artangent\r
-     *  of the slope y/x .  It is negative if the slope is negative.\r
+     *\r
      */\r
-    virtual SVGMatrix rotateFromVector(double x, double y)\r
-                                      throw( SVGException )\r
-        {\r
-        double angle = atan(y / x);\r
-        if (y < 0.0)\r
-            angle = -angle;\r
-        SVGMatrix result;\r
-        double sina  = sin(angle);\r
-        double msina = -sina;\r
-        double cosa  = cos(angle);\r
-        result.a = a * cosa   +  c * sina;\r
-        result.b = b * cosa   +  d + sina;\r
-        result.c = a * msina  +  c * cosa;\r
-        result.d = b * msina  +  d * cosa;\r
-        result.e = e;\r
-        result.f = f;\r
-        return result;\r
-        }\r
+    void setColor(unsigned short /*colorType*/,\r
+                           const DOMString& /*rgbColor*/,\r
+                           const DOMString& /*iccColor*/)\r
+                           throw(SVGException);\r
+\r
+    //##################\r
+    //# Non-API methods\r
+    //##################\r
 \r
     /**\r
-     * Equivalent to multiplying by:\r
-     *  | -1   0   0 |\r
-     *  | 0    1   0 |\r
-     *  | 0    0   1 |\r
      *\r
      */\r
-    virtual SVGMatrix flipX(  )\r
-        {\r
-        SVGMatrix result;\r
-        result.a = -a;\r
-        result.b = -b;\r
-        result.c =  c;\r
-        result.d =  d;\r
-        result.e =  e;\r
-        result.f =  f;\r
-        return result;\r
-        }\r
+    SVGColor();\r
 \r
     /**\r
-     * Equivalent to multiplying by:\r
-     *  | 1   0   0 |\r
-     *  | 0  -1   0 |\r
-     *  | 0   0   1 |\r
      *\r
      */\r
-    virtual SVGMatrix flipY( )\r
-        {\r
-        SVGMatrix result;\r
-        result.a =  a;\r
-        result.b =  b;\r
-        result.c = -c;\r
-        result.d = -d;\r
-        result.e =  e;\r
-        result.f =  f;\r
-        return result;\r
-        }\r
+    SVGColor(const SVGColor &other) : css::CSSValue(other);\r
 \r
     /**\r
-     *  | 1   tan(a)  0 |\r
-     *  | 0   1       0 |\r
-     *  | 0   0       1 |\r
      *\r
      */\r
-    virtual SVGMatrix skewX(double angle)\r
-        {\r
-        double tana = tan(angle);\r
-        SVGMatrix result;\r
-        result.a =  a;\r
-        result.b =  b;\r
-        result.c =  a * tana + c;\r
-        result.d =  b * tana + d;\r
-        result.e =  e;\r
-        result.f =  f;\r
-        return result;\r
-        }\r
+    ~SVGColor();\r
+\r
+protected:\r
+\r
+    int colorType;\r
+\r
+};\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGICCColor\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+class SVGICCColor\r
+{\r
+public:\r
 \r
     /**\r
-     * Equivalent to multiplying by:\r
-     *  | 1       0   0 |\r
-     *  | tan(a)  1   0 |\r
-     *  | 0       0   1 |\r
      *\r
      */\r
-    virtual SVGMatrix skewY(double angle)\r
-        {\r
-        double tana = tan(angle);\r
-        SVGMatrix result;\r
-        result.a =  a + c * tana;\r
-        result.b =  b + d * tana;\r
-        result.c =  c;\r
-        result.d =  d;\r
-        result.e =  e;\r
-        result.f =  f;\r
-        return result;\r
-        }\r
+    DOMString getColorProfile();\r
+\r
+    /**\r
+     *\r
+     */\r
+    void setColorProfile(const DOMString &val) throw(DOMException);\r
+\r
+    /**\r
+     *\r
+     */\r
+    SVGNumberList &getColors();\r
 \r
 \r
 \r
@@ -454,182 +331,100 @@ public:
     /**\r
      *\r
      */\r
-    SVGMatrix()\r
-        {\r
-        identity();\r
-        }\r
+    SVGICCColor();\r
 \r
     /**\r
      *\r
      */\r
-    SVGMatrix(double aArg, double bArg, double cArg,\r
-              double dArg, double eArg, double fArg )\r
-        {\r
-        a = aArg; b = bArg; c = cArg;\r
-        d = dArg; e = eArg; f = fArg;\r
-        }\r
-\r
-    /**\r
-     * Copy constructor\r
-     */\r
-    SVGMatrix(const SVGMatrix &other)\r
-        {\r
-        a = other.a;\r
-        b = other.b;\r
-        c = other.c;\r
-        d = other.d;\r
-        e = other.e;\r
-        f = other.f;\r
-        }\r
-\r
-\r
+    SVGICCColor(const SVGICCColor &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGMatrix() {}\r
+    ~SVGICCColor();\r
 \r
 protected:\r
 \r
-friend class SVGTransform;\r
-\r
-    /*\r
-     * Set to the identify matrix\r
-     */\r
-   void identity()\r
-       {\r
-       a = 1.0;\r
-       b = 0.0;\r
-       c = 0.0;\r
-       d = 1.0;\r
-       e = 0.0;\r
-       f = 0.0;\r
-       }\r
+    DOMString colorProfile;\r
 \r
-    double a, b, c, d, e, f;\r
+    SVGNumberList colors;\r
 \r
 };\r
 \r
 \r
 /*#########################################################################\r
-## SVGTransform\r
+## SVGLength\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGTransform\r
+class SVGLength\r
 {\r
 public:\r
 \r
     /**\r
-     * Transform Types\r
+     * Length Unit Types\r
      */\r
     typedef enum\r
         {\r
-        SVG_TRANSFORM_UNKNOWN   = 0,\r
-        SVG_TRANSFORM_MATRIX    = 1,\r
-        SVG_TRANSFORM_TRANSLATE = 2,\r
-        SVG_TRANSFORM_SCALE     = 3,\r
-        SVG_TRANSFORM_ROTATE    = 4,\r
-        SVG_TRANSFORM_SKEWX     = 5,\r
-        SVG_TRANSFORM_SKEWY     = 6,\r
-        } TransformType;\r
+        SVG_LENGTHTYPE_UNKNOWN    = 0,\r
+        SVG_LENGTHTYPE_NUMBER     = 1,\r
+        SVG_LENGTHTYPE_PERCENTAGE = 2,\r
+        SVG_LENGTHTYPE_EMS        = 3,\r
+        SVG_LENGTHTYPE_EXS        = 4,\r
+        SVG_LENGTHTYPE_PX         = 5,\r
+        SVG_LENGTHTYPE_CM         = 6,\r
+        SVG_LENGTHTYPE_MM         = 7,\r
+        SVG_LENGTHTYPE_IN         = 8,\r
+        SVG_LENGTHTYPE_PT         = 9,\r
+        SVG_LENGTHTYPE_PC         = 10\r
+        } LengthUnitType;\r
 \r
     /**\r
      *\r
      */\r
-    virtual unsigned short getType()\r
-        { return type; }\r
-\r
+    unsigned short getUnitType();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGMatrix getMatrix()\r
-        {\r
-        return matrix;\r
-        }\r
+    double getValue();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getAngle()\r
-        {\r
-        return angle;\r
-        }\r
-\r
+    void setValue(double val)  throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setMatrix(const SVGMatrix &matrixArg)\r
-        {\r
-        type = SVG_TRANSFORM_MATRIX;\r
-        matrix = matrixArg;\r
-        }\r
+    double getValueInSpecifiedUnits();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setTranslate (double tx, double ty )\r
-        {\r
-        type = SVG_TRANSFORM_TRANSLATE;\r
-        matrix.setA(1.0);\r
-        matrix.setB(0.0);\r
-        matrix.setC(0.0);\r
-        matrix.setD(1.0);\r
-        matrix.setE(tx);\r
-        matrix.setF(ty);\r
-        }\r
+    void setValueInSpecifiedUnits(double /*val*/) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setScale (double sx, double sy )\r
-        {\r
-        type = SVG_TRANSFORM_SCALE;\r
-        matrix.setA(sx);\r
-        matrix.setB(0.0);\r
-        matrix.setC(0.0);\r
-        matrix.setD(sy);\r
-        matrix.setE(0.0);\r
-        matrix.setF(0.0);\r
-        }\r
+    DOMString getValueAsString();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setRotate (double angleArg, double cx, double cy)\r
-        {\r
-        angle = angleArg;\r
-        setTranslate(cx, cy);\r
-        type = SVG_TRANSFORM_ROTATE;\r
-        matrix.rotate(angle);\r
-        }\r
+    void setValueAsString(const DOMString& /*val*/) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setSkewX (double angleArg)\r
-        {\r
-        angle = angleArg;\r
-        type = SVG_TRANSFORM_SKEWX;\r
-        matrix.identity();\r
-        matrix.skewX(angle);\r
-        }\r
+    void newValueSpecifiedUnits(unsigned short /*unitType*/, double /*val*/);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setSkewY (double angleArg)\r
-        {\r
-        angle = angleArg;\r
-        type = SVG_TRANSFORM_SKEWY;\r
-        matrix.identity();\r
-        matrix.skewY(angle);\r
-        }\r
-\r
+    void convertToSpecifiedUnits(unsigned short /*unitType*/);\r
 \r
     //##################\r
     //# Non-API methods\r
@@ -638,49 +433,39 @@ public:
     /**\r
      *\r
      */\r
-    SVGTransform()\r
-        {\r
-        type = SVG_TRANSFORM_UNKNOWN;\r
-        angle = 0.0;\r
-        }\r
+    SVGLength();\r
 \r
     /**\r
      *\r
      */\r
-    SVGTransform(const SVGTransform &other)\r
-        {\r
-        type   = other.type;\r
-        angle  = other.angle;\r
-        matrix = other.matrix;\r
-        }\r
+    SVGLength(const SVGLength &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGTransform()\r
-        {}\r
+    ~SVGLength();\r
 \r
 protected:\r
 \r
-    int type;\r
-    double angle;\r
-\r
-    SVGMatrix matrix;\r
-};\r
-\r
-\r
-\r
+    int unitType;\r
 \r
+    double value;\r
 \r
+};\r
 \r
 /*#########################################################################\r
-## SVGTransformList\r
+## SVGMatrix\r
 #########################################################################*/\r
 \r
 /**\r
+ *  In SVG, a Matrix is defined like this:\r
+ *\r
+ * | a  c  e |\r
+ * | b  d  f |\r
+ * | 0  0  1 |\r
  *\r
  */\r
-class SVGTransformList\r
+class SVGMatrix\r
 {\r
 public:\r
 \r
@@ -688,479 +473,247 @@ public:
     /**\r
      *\r
      */\r
-    virtual unsigned long getNumberOfItems()\r
-        { return items.size(); }\r
-\r
+    double getA();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void clear( ) throw( DOMException )\r
-        { items.clear(); }\r
+    void setA(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGTransform initialize (const SVGTransform &newItem)\r
-                         throw( DOMException, SVGException )\r
-        {\r
-        items.clear();\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
+    double getB();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGTransform getItem (unsigned long index )\r
-                    throw( DOMException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            SVGTransform transform;\r
-            return transform;\r
-            }\r
-        return items[index];\r
-        }\r
+    void setB(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGTransform insertItemBefore (const SVGTransform &newItem,\r
-                                           unsigned long index )\r
-                                      throw( DOMException, SVGException )\r
-        {\r
-        if (index > items.size())\r
-            items.push_back(newItem);\r
-        else\r
-            {\r
-            std::vector<SVGTransform>::iterator iter = items.begin() + index;\r
-            items.insert(iter, newItem);\r
-            }\r
-        return newItem;\r
-        }\r
+    double getC();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGTransform replaceItem (const SVGTransform &newItem,\r
-                                       unsigned long index )\r
-                                throw( DOMException, SVGException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            SVGTransform transform;\r
-            return transform;\r
-            }\r
-        else\r
-            {\r
-            std::vector<SVGTransform>::iterator iter = items.begin() + index;\r
-            *iter = newItem;\r
-            }\r
-        return newItem;\r
-        }\r
+    void setC(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGTransform removeItem (unsigned long index )\r
-                                     throw( DOMException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            SVGTransform transform;\r
-            return transform;\r
-            }\r
-        std::vector<SVGTransform>::iterator iter = items.begin() + index;\r
-        SVGTransform oldItem = *iter;\r
-        items.erase(iter);\r
-        return oldItem;\r
-        }\r
+    double getD();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGTransform appendItem (const SVGTransform &newItem)\r
-                                  throw( DOMException, SVGException )\r
-        {\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
+    void setD(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix)\r
-        {\r
-        SVGTransform transform;\r
-        transform.setMatrix(matrix);\r
-        return transform;\r
-        }\r
+    double getE();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGTransform consolidate()\r
-        {\r
-        SVGMatrix matrix;\r
-        for (unsigned int i=0 ; i<items.size() ; i++)\r
-            matrix = matrix.multiply(items[i].getMatrix());\r
-        SVGTransform transform;\r
-        transform.setMatrix(matrix);\r
-        items.clear();\r
-        items.push_back(transform);\r
-        return transform;\r
-        }\r
+    void setE(double val) throw(DOMException);\r
 \r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
+    /**\r
+     *\r
+     */\r
+    double getF();\r
 \r
     /**\r
      *\r
      */\r
-    SVGTransformList()\r
-        {}\r
+    void setF(double val) throw(DOMException);\r
 \r
-    /**\r
-     *\r
-     */\r
-    SVGTransformList(const SVGTransformList &other)\r
-        {\r
-        items = other.items;\r
-        }\r
 \r
     /**\r
-     *\r
+     * Return the result of postmultiplying this matrix with another.\r
      */\r
-    virtual ~SVGTransformList() {}\r
-\r
-protected:\r
-\r
-    std::vector<SVGTransform> items;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedTransformList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedTransformList\r
-{\r
-public:\r
+    SVGMatrix multiply(const SVGMatrix &other);\r
 \r
     /**\r
+     *  Calculate the inverse of this matrix\r
      *\r
-     */\r
-    virtual SVGTransformList getBaseVal()\r
-        { return baseVal; }\r
-\r
-    /**\r
      *\r
-     */\r
-    virtual SVGTransformList getAnimVal()\r
-        { return animVal; }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
+     *   The determinant of a 3x3 matrix E\r
+     *     (let's use our own notation for a bit)\r
      *\r
-     */\r
-    SVGAnimatedTransformList()\r
-        {}\r
-\r
-    /**\r
+     *       A  B  C\r
+     *       D  E  F\r
+     *       G  H  I\r
+     *   is\r
+     *       AEI - AFH - BDI + BFG + CDH - CEG\r
      *\r
-     */\r
-    SVGAnimatedTransformList(const SVGAnimatedTransformList &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        animVal = other.animVal;\r
-        }\r
-\r
-    /**\r
+     *   Since in our affine transforms, G and H==0 and I==1,\r
+     *   this reduces to:\r
+     *       AE - BD\r
+     *   In SVG's naming scheme, that is:  a * d - c * b .  SIMPLE!\r
+     *\r
+     *   In a similar method of attack, SVG's adjunct matrix is:\r
+     *\r
+     *      d  -c   cf-ed\r
+     *     -b   a   eb-af\r
+     *      0   0   ad-cb\r
+     *\r
+     *   To get the inverse matrix, we divide the adjunct matrix by\r
+     *   the determinant.  Notice that(ad-cb)/(ad-cb)==1.  Very cool.\r
+     *   So what we end up with is this:\r
+     *\r
+     *      a =  d/(ad-cb)  c = -c/(ad-cb)   e =(cf-ed)/(ad-cb)\r
+     *      b = -b/(ad-cb)  d =  a/(ad-cb)   f =(eb-af)/(ad-cb)\r
+     *\r
+     *  (Since this would be in all SVG-DOM implementations,\r
+     *    somebody needed to document this!  ^^)\r
      *\r
      */\r
-    virtual ~SVGAnimatedTransformList() {}\r
-\r
-protected:\r
-\r
-    SVGTransformList baseVal;\r
-    SVGTransformList animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedBoolean\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedBoolean\r
-{\r
-public:\r
+    SVGMatrix inverse() throw(SVGException);\r
 \r
     /**\r
+     * Equivalent to multiplying by:\r
+     *  | 1  0  x |\r
+     *  | 0  1  y |\r
+     *  | 0  0  1 |\r
      *\r
      */\r
-    virtual bool getBaseVal()\r
-        {\r
-        return baseVal;\r
-        }\r
+    SVGMatrix translate(double x, double y);\r
 \r
     /**\r
+     * Equivalent to multiplying by:\r
+     *  | scale  0      0 |\r
+     *  | 0      scale  0 |\r
+     *  | 0      0      1 |\r
      *\r
      */\r
-    virtual void setBaseVal(bool val) throw (DOMException)\r
-        {\r
-        baseVal = val;\r
-        }\r
+    SVGMatrix scale(double scale);\r
 \r
     /**\r
+     * Equivalent to multiplying by:\r
+     *  | scaleX  0       0 |\r
+     *  | 0       scaleY  0 |\r
+     *  | 0       0       1 |\r
      *\r
      */\r
-    virtual bool getAnimVal()\r
-        {\r
-        return animVal;\r
-        }\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
+    SVGMatrix scaleNonUniform(double scaleX, double scaleY);\r
 \r
     /**\r
+     * Equivalent to multiplying by:\r
+     *  | cos(a) -sin(a)   0 |\r
+     *  | sin(a)  cos(a)   0 |\r
+     *  | 0       0        1 |\r
      *\r
      */\r
-    SVGAnimatedBoolean()\r
-        {\r
-        baseVal = animVal = false;\r
-        }\r
+    SVGMatrix rotate(double angle);\r
 \r
     /**\r
-     *\r
+     * Equivalent to multiplying by:\r
+     *  | cos(a) -sin(a)   0 |\r
+     *  | sin(a)  cos(a)   0 |\r
+     *  | 0       0        1 |\r
+     *  In this case, angle 'a' is computed as the artangent\r
+     *  of the slope y/x .  It is negative if the slope is negative.\r
      */\r
-    SVGAnimatedBoolean(const SVGAnimatedBoolean &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        animVal = other.animVal;\r
-        }\r
+    SVGMatrix rotateFromVector(double x, double y) throw(SVGException);\r
 \r
     /**\r
+     * Equivalent to multiplying by:\r
+     *  | -1   0   0 |\r
+     *  | 0    1   0 |\r
+     *  | 0    0   1 |\r
      *\r
      */\r
-    virtual ~SVGAnimatedBoolean() {}\r
-\r
-protected:\r
-\r
-    bool baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedString\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedString\r
-{\r
-public:\r
+    SVGMatrix flipX();\r
 \r
     /**\r
+     * Equivalent to multiplying by:\r
+     *  | 1   0   0 |\r
+     *  | 0  -1   0 |\r
+     *  | 0   0   1 |\r
      *\r
      */\r
-    virtual DOMString getBaseVal()\r
-        {\r
-        return baseVal;\r
-        }\r
+    SVGMatrix flipY();\r
 \r
     /**\r
+     *  | 1   tan(a)  0 |\r
+     *  | 0   1       0 |\r
+     *  | 0   0       1 |\r
      *\r
      */\r
-    virtual void setBaseVal(const DOMString &val)\r
-                            throw (DOMException)\r
-        {\r
-        baseVal = val;\r
-        }\r
+    SVGMatrix skewX(double angle);\r
 \r
     /**\r
+     * Equivalent to multiplying by:\r
+     *  | 1       0   0 |\r
+     *  | tan(a)  1   0 |\r
+     *  | 0       0   1 |\r
      *\r
      */\r
-    virtual DOMString getAnimVal()\r
-        {\r
-        return animVal;\r
-        }\r
+    SVGMatrix skewY(double angle);\r
 \r
 \r
     //##################\r
     //# Non-API methods\r
     //##################\r
 \r
-\r
     /**\r
      *\r
      */\r
-    SVGAnimatedString()\r
-        {\r
-        baseVal = "";\r
-        animVal = "";\r
-        }\r
+    SVGMatrix();\r
 \r
     /**\r
      *\r
      */\r
-    SVGAnimatedString(const SVGAnimatedString &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        animVal = other.animVal;\r
-        }\r
+    SVGMatrix(double aArg, double bArg, double cArg,\r
+              double dArg, double eArg, double fArg);\r
+\r
+    /**\r
+     * Copy constructor\r
+     */\r
+    SVGMatrix(const SVGMatrix &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGAnimatedString() {}\r
+    ~SVGMatrix() {}\r
 \r
 protected:\r
 \r
-    DOMString baseVal, animVal;\r
-\r
-};\r
+friend class SVGTransform;\r
 \r
+    /*\r
+     * Set to the identify matrix\r
+     */\r
+    void identity();\r
 \r
+    double a, b, c, d, e, f;\r
 \r
+};\r
 \r
 \r
 /*#########################################################################\r
-## SVGStringList\r
+## SVGNumber\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGStringList\r
+class SVGNumber\r
 {\r
 public:\r
 \r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual unsigned long getNumberOfItems()\r
-        {\r
-        return items.size();\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void clear () throw( DOMException )\r
-       {\r
-       items.clear();\r
-       }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString initialize ( const DOMString& newItem )\r
-                    throw( DOMException, SVGException )\r
-        {\r
-        items.clear();\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString getItem ( unsigned long index )\r
-                    throw( DOMException )\r
-        {\r
-        if (index >= items.size())\r
-            return "";\r
-        return items[index];\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString insertItemBefore ( const DOMString& newItem,\r
-                                 unsigned long index )\r
-                               throw( DOMException, SVGException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            items.push_back(newItem);\r
-            }\r
-        else\r
-            {\r
-            std::vector<DOMString>::iterator iter = items.begin() + index;\r
-            items.insert(iter, newItem);\r
-            }\r
-        return newItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString replaceItem ( const DOMString& newItem,\r
-                                    unsigned long index )\r
-                                throw( DOMException, SVGException )\r
-        {\r
-        if (index>=items.size())\r
-            return "";\r
-        std::vector<DOMString>::iterator iter = items.begin() + index;\r
-        *iter = newItem;\r
-        return newItem;\r
-        }\r
-\r
     /**\r
      *\r
      */\r
-    virtual DOMString removeItem ( unsigned long index )\r
-                    throw( DOMException )\r
-        {\r
-        if (index>=items.size())\r
-            return "";\r
-        std::vector<DOMString>::iterator iter = items.begin() + index;\r
-        DOMString oldstr = *iter;\r
-        items.erase(iter);\r
-        return oldstr;\r
-        }\r
+    double getValue();\r
 \r
     /**\r
      *\r
      */\r
-    virtual DOMString appendItem ( const DOMString& newItem )\r
-                    throw( DOMException, SVGException )\r
-        {\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
-\r
-\r
+    void setValue(double val) throw(DOMException);\r
 \r
     //##################\r
     //# Non-API methods\r
@@ -1169,2894 +722,100 @@ public:
     /**\r
      *\r
      */\r
-    SVGStringList() {}\r
+    SVGNumber();\r
 \r
     /**\r
      *\r
      */\r
-   SVGStringList(const SVGStringList &other)\r
-       {\r
-       items = other.items;\r
-       }\r
+    SVGNumber(const SVGNumber &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGStringList() {}\r
+    ~SVGNumber();\r
 \r
 protected:\r
 \r
-    std::vector<DOMString>items;\r
+    double value;\r
 \r
 };\r
 \r
-\r
-\r
-\r
-\r
 /*#########################################################################\r
-## SVGAnimatedEnumeration\r
+## SVGPoint\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGAnimatedEnumeration\r
+class SVGPoint\r
 {\r
 public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual unsigned short getBaseVal()\r
-        {\r
-        return baseVal;\r
-        }\r
+    double getX();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setBaseVal(unsigned short val)\r
-                                     throw (DOMException)\r
-        {\r
-        baseVal = val;\r
-        }\r
+    void setX(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual unsigned short getAnimVal()\r
-        {\r
-        return animVal;\r
-        }\r
+    double getY();\r
 \r
+    /**\r
+     *\r
+     */\r
+    void setY(double val) throw(DOMException);\r
 \r
+    /**\r
+     *\r
+     */\r
+    SVGPoint matrixTransform(const SVGMatrix &/*matrix*/);\r
 \r
     //##################\r
     //# Non-API methods\r
     //##################\r
 \r
-\r
     /**\r
      *\r
      */\r
-    SVGAnimatedEnumeration()\r
-        {\r
-        baseVal = animVal = 0;\r
-        }\r
+    SVGPoint();\r
 \r
     /**\r
      *\r
      */\r
-    SVGAnimatedEnumeration(const SVGAnimatedEnumeration &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        animVal = other.animVal;\r
-        }\r
+    SVGPoint(const SVGPoint &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGAnimatedEnumeration() {}\r
+    ~SVGPoint();\r
 \r
 protected:\r
 \r
-    int baseVal, animVal;\r
-\r
+    double x, y;\r
 };\r
 \r
 \r
-\r
-\r
-\r
 /*#########################################################################\r
-## SVGAnimatedInteger\r
+## SVGPathSeg\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGAnimatedInteger\r
+class SVGPathSeg\r
 {\r
 public:\r
 \r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual long getBaseVal()\r
-        {\r
-        return baseVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setBaseVal(long val) throw (DOMException)\r
-        {\r
-        baseVal = val;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual long getAnimVal()\r
-        {\r
-        return animVal;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedInteger()\r
-        { baseVal = animVal = 0L;}\r
-\r
-\r
     /**\r
-     *\r
+     *  Path Segment Types\r
      */\r
-    SVGAnimatedInteger(long value)\r
-        {\r
-        baseVal = value;\r
-        animVal = 0L;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedInteger(long baseValArg, long animValArg)\r
-        {\r
-        baseVal = baseValArg;\r
-        animVal = animValArg;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedInteger(const SVGAnimatedInteger &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        animVal = other.animVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGAnimatedInteger() {}\r
-\r
-protected:\r
-\r
-    long baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGNumber\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGNumber\r
-{\r
-public:\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getValue()\r
-        {\r
-        return value;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setValue(double val) throw (DOMException)\r
-        {\r
-        value = val;\r
-        }\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGNumber()\r
-        {\r
-        value = 0.0;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGNumber(const SVGNumber &other)\r
-        {\r
-        value = other.value;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGNumber() {}\r
-\r
-protected:\r
-\r
-    double value;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedNumber\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedNumber\r
-{\r
-public:\r
-\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getBaseVal()\r
-        {\r
-        return baseVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setBaseVal(double val) throw (DOMException)\r
-        {\r
-        baseVal = val;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getAnimVal()\r
-        {\r
-        return animVal;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedNumber()\r
-        {\r
-        baseVal = animVal = 0.0;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedNumber(double val)\r
-        {\r
-        baseVal = val;\r
-        animVal = 0.0;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedNumber(double baseValArg, double animValArg)\r
-        {\r
-        baseVal = baseValArg;\r
-        animVal = animValArg;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedNumber(const SVGAnimatedNumber &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        animVal = other.animVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGAnimatedNumber() {}\r
-\r
-protected:\r
-\r
-    double baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGNumberList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGNumberList\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual unsigned long getNumberOfItems()\r
-        {\r
-        return items.size();\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void clear() throw( DOMException )\r
-        {\r
-        items.clear();\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGNumber initialize (const SVGNumber &newItem)\r
-                    throw( DOMException, SVGException )\r
-        {\r
-        items.clear();\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGNumber getItem ( unsigned long index )\r
-                                  throw( DOMException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            SVGNumber num;\r
-            return num;\r
-            }\r
-        return items[index];\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGNumber insertItemBefore ( const SVGNumber &newItem,\r
-                                         unsigned long index )\r
-                                         throw( DOMException, SVGException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            items.push_back(newItem);\r
-            }\r
-        else\r
-            {\r
-            std::vector<SVGNumber>::iterator iter = items.begin() + index;\r
-            items.insert(iter, newItem);\r
-            }\r
-        return newItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGNumber replaceItem ( const SVGNumber &newItem,\r
-                                    unsigned long index )\r
-                                    throw( DOMException, SVGException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            SVGNumber num;\r
-            return num;\r
-            }\r
-        std::vector<SVGNumber>::iterator iter = items.begin() + index;\r
-        *iter = newItem;\r
-        return newItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGNumber removeItem ( unsigned long index )\r
-                                  throw( DOMException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            SVGNumber num;\r
-            return num;\r
-            }\r
-        std::vector<SVGNumber>::iterator iter = items.begin() + index;\r
-        SVGNumber oldval = *iter;\r
-        items.erase(iter);\r
-        return oldval;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGNumber appendItem ( const SVGNumber &newItem )\r
-                                   throw( DOMException, SVGException )\r
-        {\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGNumberList() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGNumberList(const SVGNumberList &other)\r
-        {\r
-        items = other.items;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGNumberList() {}\r
-\r
-protected:\r
-\r
-    std::vector<SVGNumber>items;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedNumberList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedNumberList\r
-{\r
-public:\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGNumberList &getBaseVal()\r
-        {\r
-        return baseVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGNumberList &getAnimVal()\r
-        {\r
-        return animVal;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedNumberList() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedNumberList(const SVGAnimatedNumberList &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        animVal = other.animVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGAnimatedNumberList() {}\r
-\r
-protected:\r
-\r
-    SVGNumberList baseVal;\r
-    SVGNumberList animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGLength\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGLength\r
-{\r
-public:\r
-\r
-    /**\r
-     * Length Unit Types\r
-     */\r
-    typedef enum\r
-        {\r
-        SVG_LENGTHTYPE_UNKNOWN    = 0,\r
-        SVG_LENGTHTYPE_NUMBER     = 1,\r
-        SVG_LENGTHTYPE_PERCENTAGE = 2,\r
-        SVG_LENGTHTYPE_EMS        = 3,\r
-        SVG_LENGTHTYPE_EXS        = 4,\r
-        SVG_LENGTHTYPE_PX         = 5,\r
-        SVG_LENGTHTYPE_CM         = 6,\r
-        SVG_LENGTHTYPE_MM         = 7,\r
-        SVG_LENGTHTYPE_IN         = 8,\r
-        SVG_LENGTHTYPE_PT         = 9,\r
-        SVG_LENGTHTYPE_PC         = 10\r
-        } LengthUnitType;\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual unsigned short getUnitType( )\r
-        {\r
-        return unitType;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getValue( )\r
-        {\r
-        return value;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setValue( double val )  throw (DOMException)\r
-        {\r
-        value = val;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getValueInSpecifiedUnits( )\r
-        {\r
-        double result = 0.0;\r
-        //fill this in\r
-        return result;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setValueInSpecifiedUnits( double /*val*/ )\r
-                                           throw (DOMException)\r
-        {\r
-        //fill this in\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString getValueAsString( )\r
-        {\r
-        DOMString ret;\r
-        char buf[32];\r
-        snprintf(buf, 31, "%f", value);\r
-        ret.append(buf);\r
-        return ret;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setValueAsString( const DOMString& /*val*/ )\r
-                                   throw (DOMException)\r
-        {\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void newValueSpecifiedUnits ( unsigned short /*unitType*/, double /*val*/ )\r
-        {\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void convertToSpecifiedUnits ( unsigned short /*unitType*/ )\r
-        {\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGLength()\r
-        {\r
-        unitType = SVG_LENGTHTYPE_UNKNOWN;\r
-        value    = 0.0;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGLength(const SVGLength &other)\r
-        {\r
-        unitType  = other.unitType;\r
-        value     = other.value;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGLength() {}\r
-\r
-protected:\r
-\r
-    int unitType;\r
-\r
-    double value;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedLength\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedLength\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGLength &getBaseVal()\r
-        {\r
-        return baseVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGLength &getAnimVal()\r
-        {\r
-        return animVal;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedLength() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedLength(const SVGAnimatedLength &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        animVal = other.animVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGAnimatedLength() {}\r
-\r
-protected:\r
-\r
-    SVGLength baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGLengthList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGLengthList\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual unsigned long getNumberOfItems()\r
-        {\r
-        return items.size();\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void clear (  ) throw( DOMException )\r
-        {\r
-        items.clear();\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGLength initialize (const SVGLength &newItem )\r
-                    throw( DOMException, SVGException )\r
-        {\r
-        items.clear();\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGLength getItem (unsigned long index)\r
-                    throw( DOMException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            SVGLength ret;\r
-            return ret;\r
-            }\r
-        return items[index];\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGLength insertItemBefore (const SVGLength &newItem,\r
-                                         unsigned long index )\r
-                                   throw( DOMException, SVGException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            items.push_back(newItem);\r
-            }\r
-        else\r
-            {\r
-            std::vector<SVGLength>::iterator iter = items.begin() + index;\r
-            items.insert(iter, newItem);\r
-            }\r
-        return newItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGLength replaceItem (const SVGLength &newItem,\r
-                                    unsigned long index )\r
-                               throw( DOMException, SVGException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            SVGLength ret;\r
-            return ret;\r
-            }\r
-        std::vector<SVGLength>::iterator iter = items.begin() + index;\r
-        *iter = newItem;\r
-        return newItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGLength removeItem (unsigned long index )\r
-                    throw( DOMException )\r
-        {\r
-        if (index>=items.size())\r
-            {\r
-            SVGLength ret;\r
-            return ret;\r
-            }\r
-        std::vector<SVGLength>::iterator iter = items.begin() + index;\r
-        SVGLength oldval = *iter;\r
-        items.erase(iter);\r
-        return oldval;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGLength appendItem (const SVGLength &newItem )\r
-                    throw( DOMException, SVGException )\r
-        {\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGLengthList() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGLengthList(const SVGLengthList &other)\r
-        {\r
-        items = other.items;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGLengthList() {}\r
-\r
-protected:\r
-\r
-    std::vector<SVGLength>items;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedLengthList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedLengthList\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGLengthList &getBaseVal()\r
-        {\r
-        return baseVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGLengthList &getAnimVal()\r
-        {\r
-        return animVal;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedLengthList() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-   SVGAnimatedLengthList(const SVGAnimatedLengthList &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        animVal = other.animVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGAnimatedLengthList() {}\r
-\r
-protected:\r
-\r
-    SVGLengthList baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAngle\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAngle\r
-{\r
-public:\r
-\r
-    /**\r
-     *  Angle Unit Types\r
-     */\r
-    typedef enum\r
-        {\r
-        SVG_ANGLETYPE_UNKNOWN     = 0,\r
-        SVG_ANGLETYPE_UNSPECIFIED = 1,\r
-        SVG_ANGLETYPE_DEG         = 2,\r
-        SVG_ANGLETYPE_RAD         = 3,\r
-        SVG_ANGLETYPE_GRAD        = 4\r
-        } AngleUnitType;\r
-\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual unsigned short getUnitType()\r
-        {\r
-        return unitType;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getValue()\r
-        {\r
-        return value;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setValue(double val) throw (DOMException)\r
-        {\r
-        value = val;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getValueInSpecifiedUnits()\r
-        {\r
-        double result = 0.0;\r
-        //convert here\r
-        return result;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setValueInSpecifiedUnits(double /*val*/)\r
-                                     throw (DOMException)\r
-        {\r
-        //do conversion\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString getValueAsString()\r
-        {\r
-        DOMString result;\r
-        char buf[32];\r
-        snprintf(buf, 31, "%f", value);\r
-        result.append(buf);\r
-        return result;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setValueAsString(const DOMString &/*val*/)\r
-                                  throw (DOMException)\r
-        {\r
-        //convert here\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void newValueSpecifiedUnits (unsigned short /*unitType*/,\r
-                                         double /*valueInSpecifiedUnits*/ )\r
-        {\r
-        //convert here\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void convertToSpecifiedUnits (unsigned short /*unitType*/ )\r
-        {\r
-        //convert here\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAngle()\r
-        {\r
-        unitType = SVG_ANGLETYPE_UNKNOWN;\r
-        value    = 0.0;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAngle(const SVGAngle &other)\r
-        {\r
-        unitType = other.unitType;\r
-        value    = other.value;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGAngle() {}\r
-\r
-protected:\r
-\r
-    int unitType;\r
-\r
-    double value;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedAngle\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedAngle\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGAngle getBaseVal()\r
-        {\r
-        return baseVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGAngle getAnimVal()\r
-        {\r
-        return animVal;\r
-        }\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedAngle() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedAngle(const SVGAngle &angle)\r
-        { baseVal = angle; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedAngle(const SVGAnimatedAngle &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        animVal = other.animVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGAnimatedAngle() {}\r
-\r
-protected:\r
-\r
-    SVGAngle baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGICCColor\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGICCColor\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString getColorProfile()\r
-        {\r
-        return colorProfile;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setColorProfile(const DOMString &val) throw (DOMException)\r
-        {\r
-        colorProfile = val;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGNumberList &getColors()\r
-        {\r
-        return colors;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGICCColor() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGICCColor(const SVGICCColor &other)\r
-        {\r
-        colorProfile = other.colorProfile;\r
-        colors       = other.colors;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGICCColor() {}\r
-\r
-protected:\r
-\r
-    DOMString colorProfile;\r
-\r
-    SVGNumberList colors;\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGColor\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGColor : virtual public css::CSSValue\r
-{\r
-public:\r
-\r
-\r
-    /**\r
-     * Color Types\r
-     */\r
-    typedef enum\r
-        {\r
-        SVG_COLORTYPE_UNKNOWN           = 0,\r
-        SVG_COLORTYPE_RGBCOLOR          = 1,\r
-        SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2,\r
-        SVG_COLORTYPE_CURRENTCOLOR      = 3\r
-        } ColorType;\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual unsigned short getColorType()\r
-        {\r
-        return colorType;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual css::RGBColor getRgbColor()\r
-        {\r
-        css::RGBColor col;\r
-        return col;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGICCColor getIccColor()\r
-        {\r
-        SVGICCColor col;\r
-        return col;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setRGBColor (const DOMString& /*rgbColor*/ )\r
-                              throw( SVGException )\r
-        {\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setRGBColorICCColor (const DOMString& /*rgbColor*/,\r
-                                      const DOMString& /*iccColor*/ )\r
-                                      throw( SVGException )\r
-        {\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setColor (unsigned short /*colorType*/,\r
-                           const DOMString& /*rgbColor*/,\r
-                           const DOMString& /*iccColor*/ )\r
-                           throw( SVGException )\r
-        {\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGColor()\r
-        {\r
-        colorType = SVG_COLORTYPE_UNKNOWN;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGColor(const SVGColor &other) : css::CSSValue(other)\r
-        {\r
-        colorType = other.colorType;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGColor() {}\r
-\r
-protected:\r
-\r
-    int colorType;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGRect\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGRect\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getX()\r
-        {\r
-        return x;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setX(double val) throw (DOMException)\r
-        {\r
-        x = val;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getY()\r
-        {\r
-        return y;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setY(double val) throw (DOMException)\r
-        {\r
-        y = val;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getWidth()\r
-        {\r
-        return width;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setWidth(double val) throw (DOMException)\r
-        {\r
-        width = val;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getHeight()\r
-        {\r
-        return height;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setHeight(double val) throw (DOMException)\r
-        {\r
-        height = val;\r
-        }\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGRect()\r
-        {\r
-        x = y = width = height = 0.0;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGRect(const SVGRect &other)\r
-        {\r
-        x = other.x;\r
-        y = other.y;\r
-        width = other.width;\r
-        height = other.height;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGRect() {}\r
-\r
-protected:\r
-\r
-    double x, y, width, height;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedRect\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedRect\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGRect &getBaseVal()\r
-        {\r
-        return baseVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGRect &getAnimVal()\r
-        {\r
-        return animVal;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedRect()\r
-        {\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedRect(const SVGAnimatedRect &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        animVal = other.animVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGAnimatedRect() {}\r
-\r
-protected:\r
-\r
-    SVGRect baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPoint\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPoint\r
-{\r
-public:\r
-\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getX()\r
-        { return x; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getY()\r
-        { return y; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGPoint matrixTransform(const SVGMatrix &/*matrix*/)\r
-        {\r
-        SVGPoint point;\r
-        return point;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPoint()\r
-        { x = y = 0; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPoint(const SVGPoint &other)\r
-        {\r
-        x = other.x;\r
-        y = other.y;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGPoint() {}\r
-\r
-protected:\r
-\r
-    double x, y;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPointList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPointList\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual unsigned long getNumberOfItems()\r
-        { return items.size(); }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void clear() throw( DOMException )\r
-        { items.clear(); }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGPoint initialize(const SVGPoint &newItem)\r
-                             throw( DOMException, SVGException )\r
-        {\r
-        items.clear();\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGPoint getItem(unsigned long index )\r
-                             throw( DOMException )\r
-        {\r
-        if (index >= items.size())\r
-            {\r
-            SVGPoint point;\r
-            return point;\r
-            }\r
-        return items[index];\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGPoint insertItemBefore(const SVGPoint &newItem,\r
-                                      unsigned long index )\r
-                                      throw( DOMException, SVGException )\r
-        {\r
-        if (index >= items.size())\r
-            items.push_back(newItem);\r
-        else\r
-            {\r
-            std::vector<SVGPoint>::iterator iter = items.begin() + index;\r
-            items.insert(iter, newItem);\r
-            }\r
-        return newItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGPoint replaceItem(const SVGPoint &newItem,\r
-                                  unsigned long index )\r
-                                  throw( DOMException, SVGException )\r
-        {\r
-        if (index >= items.size())\r
-            {\r
-            SVGPoint point;\r
-            return point;\r
-            }\r
-        std::vector<SVGPoint>::iterator iter = items.begin() + index;\r
-        *iter = newItem;\r
-        return newItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGPoint removeItem(unsigned long index )\r
-                                  throw( DOMException )\r
-        {\r
-        if (index >= items.size())\r
-            {\r
-            SVGPoint point;\r
-            return point;\r
-            }\r
-        std::vector<SVGPoint>::iterator iter = items.begin() + index;\r
-        SVGPoint oldItem = *iter;\r
-        items.erase(iter);\r
-        return oldItem;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGPoint appendItem(const SVGPoint &newItem)\r
-                              throw( DOMException, SVGException )\r
-        {\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPointList() {}\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPointList(const SVGPointList &other)\r
-        {\r
-        items = other.items;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGPointList() {}\r
-\r
-protected:\r
-\r
-    std::vector<SVGPoint> items;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGUnitTypes\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGUnitTypes\r
-{\r
-public:\r
-\r
-    /**\r
-     * Unit Types\r
-     */\r
-    typedef enum\r
-        {\r
-        SVG_UNIT_TYPE_UNKNOWN           = 0,\r
-        SVG_UNIT_TYPE_USERSPACEONUSE    = 1,\r
-        SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2\r
-        } UnitType;\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGUnitTypes() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGUnitTypes() {}\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGStylable\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGStylable\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGAnimatedString getClassName()\r
-        {\r
-        return className;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual css::CSSStyleDeclaration getStyle()\r
-        {\r
-        return style;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual css::CSSValue getPresentationAttribute (const DOMString& /*name*/ )\r
-        {\r
-        css::CSSValue val;\r
-        //perform a lookup\r
-        return val;\r
-        }\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGStylable() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGStylable(const SVGStylable &other)\r
-        {\r
-        className = other.className;\r
-        style     = other.style;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGStylable() {}\r
-\r
-protected:\r
-\r
-    SVGAnimatedString className;\r
-    css::CSSStyleDeclaration style;\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGLocatable\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGLocatable\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGElementPtr getNearestViewportElement()\r
-        {\r
-        SVGElementPtr result;\r
-        return result;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGElementPtr getFarthestViewportElement()\r
-        {\r
-        SVGElementPtr result;\r
-        return result;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGRect getBBox (  )\r
-        {\r
-        return bbox;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGMatrix getCTM (  )\r
-        {\r
-        return ctm;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGMatrix getScreenCTM (  )\r
-        {\r
-        return screenCtm;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGMatrix getTransformToElement (const SVGElement &/*element*/)\r
-                    throw( SVGException )\r
-        {\r
-        SVGMatrix result;\r
-        //do calculations\r
-        return result;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGLocatable() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGLocatable(const SVGLocatable &/*other*/)\r
-        {\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGLocatable() {}\r
-\r
-protected:\r
-\r
-    SVGRect bbox;\r
-    SVGMatrix ctm;\r
-    SVGMatrix screenCtm;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGTransformable\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGTransformable : public SVGLocatable\r
-{\r
-public:\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGAnimatedTransformList &getTransform()\r
-        {\r
-        return transforms;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGTransformable() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGTransformable(const SVGTransformable &other) : SVGLocatable(other)\r
-        {\r
-        transforms = other.transforms;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGTransformable() {}\r
-\r
-protected:\r
-\r
-    SVGAnimatedTransformList transforms;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGTests\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGTests\r
-{\r
-public:\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGStringList &getRequiredFeatures()\r
-        {\r
-        return requiredFeatures;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGStringList &getRequiredExtensions()\r
-        {\r
-        return requiredExtensions;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGStringList &getSystemLanguage()\r
-        {\r
-        return systemLanguage;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual bool hasExtension (const DOMString& /*extension*/ )\r
-        {\r
-        return false;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGTests() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGTests(const SVGTests &other)\r
-        {\r
-        requiredFeatures   = other.requiredFeatures;\r
-        requiredExtensions = other.requiredExtensions;\r
-        systemLanguage     = other.systemLanguage;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGTests() {}\r
-\r
-protected:\r
-\r
-    SVGStringList requiredFeatures;\r
-    SVGStringList requiredExtensions;\r
-    SVGStringList systemLanguage;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGLangSpace\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGLangSpace\r
-{\r
-public:\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString getXmllang()\r
-        {\r
-        return xmlLang;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setXmllang(const DOMString &val)\r
-                                     throw (DOMException)\r
-        {\r
-        xmlLang = val;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString getXmlspace()\r
-        {\r
-        return xmlSpace;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setXmlspace(const DOMString &val)\r
-                                     throw (DOMException)\r
-        {\r
-        xmlSpace = val;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGLangSpace() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGLangSpace(const SVGLangSpace &other)\r
-        {\r
-        xmlLang  = other.xmlLang;\r
-        xmlSpace = other.xmlSpace;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGLangSpace() {}\r
-\r
-protected:\r
-\r
-    DOMString xmlLang;\r
-    DOMString xmlSpace;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGExternalResourcesRequired\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGExternalResourcesRequired\r
-{\r
-public:\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGAnimatedBoolean getExternalResourcesRequired()\r
-        { return required; }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGExternalResourcesRequired()\r
-        {  }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGExternalResourcesRequired(const SVGExternalResourcesRequired &other)\r
-        {\r
-        required = other.required;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGExternalResourcesRequired() {}\r
-\r
-protected:\r
-\r
-    SVGAnimatedBoolean required;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPreserveAspectRatio\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPreserveAspectRatio\r
-{\r
-public:\r
-\r
-\r
-    /**\r
-     * Alignment Types\r
-     */\r
-    typedef enum\r
-        {\r
-        SVG_PRESERVEASPECTRATIO_UNKNOWN  = 0,\r
-        SVG_PRESERVEASPECTRATIO_NONE     = 1,\r
-        SVG_PRESERVEASPECTRATIO_XMINYMIN = 2,\r
-        SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3,\r
-        SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4,\r
-        SVG_PRESERVEASPECTRATIO_XMINYMID = 5,\r
-        SVG_PRESERVEASPECTRATIO_XMIDYMID = 6,\r
-        SVG_PRESERVEASPECTRATIO_XMAXYMID = 7,\r
-        SVG_PRESERVEASPECTRATIO_XMINYMAX = 8,\r
-        SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9,\r
-        SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10\r
-        } AlignmentType;\r
-\r
-\r
-    /**\r
-     * Meet-or-slice Types\r
-     */\r
-    typedef enum\r
-        {\r
-        SVG_MEETORSLICE_UNKNOWN  = 0,\r
-        SVG_MEETORSLICE_MEET     = 1,\r
-        SVG_MEETORSLICE_SLICE    = 2\r
-        } MeetOrSliceType;\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual unsigned short getAlign()\r
-        { return align; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setAlign(unsigned short val) throw (DOMException)\r
-        { align = val; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual unsigned short getMeetOrSlice()\r
-        { return meetOrSlice; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setMeetOrSlice(unsigned short val) throw (DOMException)\r
-        { meetOrSlice = val; }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPreserveAspectRatio()\r
-        {\r
-        align       = SVG_PRESERVEASPECTRATIO_UNKNOWN;\r
-        meetOrSlice = SVG_MEETORSLICE_UNKNOWN;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPreserveAspectRatio(const SVGPreserveAspectRatio &other)\r
-        {\r
-        align       = other.align;\r
-        meetOrSlice = other.meetOrSlice;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGPreserveAspectRatio() {}\r
-\r
-protected:\r
-\r
-    unsigned short align;\r
-    unsigned short meetOrSlice;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedPreserveAspectRatio\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedPreserveAspectRatio\r
-{\r
-public:\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGPreserveAspectRatio getBaseVal()\r
-        { return baseVal; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGPreserveAspectRatio getAnimVal()\r
-        { return animVal; }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedPreserveAspectRatio() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedPreserveAspectRatio(const SVGAnimatedPreserveAspectRatio &other)\r
-        {\r
-        baseVal = other.baseVal;\r
-        baseVal = other.animVal;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGAnimatedPreserveAspectRatio() {}\r
-\r
-protected:\r
-\r
-    SVGPreserveAspectRatio baseVal;\r
-    SVGPreserveAspectRatio animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGFitToViewBox\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGFitToViewBox\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGAnimatedRect getViewBox()\r
-        { return viewBox; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()\r
-        { return preserveAspectRatio; }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGFitToViewBox()\r
-        {}\r
-\r
-    /**\r
-     *\r
-     */\r
-\r
-    SVGFitToViewBox(const SVGFitToViewBox &other)\r
-        {\r
-        viewBox = other.viewBox;\r
-        preserveAspectRatio = other.preserveAspectRatio;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGFitToViewBox() {}\r
-\r
-protected:\r
-\r
-    SVGAnimatedRect viewBox;\r
-\r
-    SVGAnimatedPreserveAspectRatio preserveAspectRatio;\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGZoomAndPan\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGZoomAndPan\r
-{\r
-public:\r
-\r
-\r
-    /**\r
-     * Zoom and Pan Types\r
-     */\r
-    typedef enum\r
-        {\r
-        SVG_ZOOMANDPAN_UNKNOWN = 0,\r
-        SVG_ZOOMANDPAN_DISABLE = 1,\r
-        SVG_ZOOMANDPAN_MAGNIFY = 2\r
-        } ZoomAndPanType;\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual unsigned short getZoomAndPan()\r
-        { return zoomAndPan; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setZoomAndPan(unsigned short val) throw (DOMException)\r
-        { zoomAndPan = val; }\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGZoomAndPan()\r
-        { zoomAndPan = SVG_ZOOMANDPAN_UNKNOWN; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGZoomAndPan(const SVGZoomAndPan &other)\r
-        { zoomAndPan = other.zoomAndPan; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGZoomAndPan() {}\r
-\r
-protected:\r
-\r
-    unsigned short zoomAndPan;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGViewSpec\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGViewSpec : public SVGZoomAndPan,\r
-                    public SVGFitToViewBox\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGTransformList getTransform()\r
-        { return transform; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGElementPtr getViewTarget()\r
-        { return viewTarget; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString getViewBoxString()\r
-        {\r
-        DOMString ret;\r
-        return ret;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString getPreserveAspectRatioString()\r
-        {\r
-        DOMString ret;\r
-        return ret;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString getTransformString()\r
-        {\r
-        DOMString ret;\r
-        return ret;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString getViewTargetString()\r
-        {\r
-        DOMString ret;\r
-        return ret;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGViewSpec()\r
-        {\r
-        viewTarget = NULL;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGViewSpec(const SVGViewSpec &other) : SVGZoomAndPan(other), SVGFitToViewBox(other)\r
-        {\r
-        viewTarget = other.viewTarget;\r
-        transform  = other.transform;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGViewSpec() {}\r
-\r
-protected:\r
-\r
-    SVGElementPtr viewTarget;\r
-    SVGTransformList transform;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGURIReference\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGURIReference\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGAnimatedString getHref()\r
-        { return href; }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGURIReference() {}\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGURIReference(const SVGURIReference &other)\r
-        {\r
-        href = other.href;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGURIReference() {}\r
-\r
-protected:\r
-\r
-    SVGAnimatedString href;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGCSSRule\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGCSSRule : public css::CSSRule\r
-{\r
-public:\r
-\r
-\r
-    /**\r
-     * Additional CSS RuleType to support ICC color specifications\r
-     */\r
-    typedef enum\r
-        {\r
-        COLOR_PROFILE_RULE = 7\r
-        } ColorProfileRuleType;\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGCSSRule()\r
-        { type = COLOR_PROFILE_RULE; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGCSSRule(const SVGCSSRule &other) : css::CSSRule(other)\r
-        { type = COLOR_PROFILE_RULE; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGCSSRule() {}\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGRenderingIntent\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGRenderingIntent\r
-{\r
-public:\r
-\r
-    /**\r
-     * Rendering Intent Types\r
-     */\r
-    typedef enum\r
-        {\r
-        RENDERING_INTENT_UNKNOWN               = 0,\r
-        RENDERING_INTENT_AUTO                  = 1,\r
-        RENDERING_INTENT_PERCEPTUAL            = 2,\r
-        RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3,\r
-        RENDERING_INTENT_SATURATION            = 4,\r
-        RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5\r
-        } RenderingIntentType;\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGRenderingIntent()\r
-        {\r
-        renderingIntentType = RENDERING_INTENT_UNKNOWN;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGRenderingIntent(const SVGRenderingIntent &other)\r
-        {\r
-        renderingIntentType = other.renderingIntentType;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGRenderingIntent() {}\r
-\r
-protected:\r
-\r
-    unsigned short renderingIntentType;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-###########################################################################\r
-## P A T H    S E G M E N T S\r
-###########################################################################\r
-#########################################################################*/\r
-\r
-static char const *const pathSegLetters[] =\r
-{\r
-    "@", // PATHSEG_UNKNOWN,\r
-    "z", // PATHSEG_CLOSEPATH\r
-    "M", // PATHSEG_MOVETO_ABS\r
-    "m", // PATHSEG_MOVETO_REL,\r
-    "L", // PATHSEG_LINETO_ABS\r
-    "l", // PATHSEG_LINETO_REL\r
-    "C", // PATHSEG_CURVETO_CUBIC_ABS\r
-    "c", // PATHSEG_CURVETO_CUBIC_REL\r
-    "Q", // PATHSEG_CURVETO_QUADRATIC_ABS,\r
-    "q", // PATHSEG_CURVETO_QUADRATIC_REL\r
-    "A", // PATHSEG_ARC_ABS\r
-    "a", // PATHSEG_ARC_REL,\r
-    "H", // PATHSEG_LINETO_HORIZONTAL_ABS,\r
-    "h", // PATHSEG_LINETO_HORIZONTAL_REL\r
-    "V", // PATHSEG_LINETO_VERTICAL_ABS\r
-    "v", // PATHSEG_LINETO_VERTICAL_REL\r
-    "S", // PATHSEG_CURVETO_CUBIC_SMOOTH_ABS\r
-    "s", // PATHSEG_CURVETO_CUBIC_SMOOTH_REL\r
-    "T", // PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS\r
-    "t"  // PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL\r
-};\r
-\r
-/*#########################################################################\r
-## SVGPathSeg\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSeg\r
-{\r
-public:\r
-\r
-\r
-\r
-    /**\r
-     *  Path Segment Types\r
-     */\r
-    typedef enum\r
+    typedef enum\r
         {\r
         PATHSEG_UNKNOWN                      = 0,\r
         PATHSEG_CLOSEPATH                    = 1,\r
@@ -4078,1248 +837,851 @@ public:
         PATHSEG_CURVETO_CUBIC_SMOOTH_REL     = 17,\r
         PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18,\r
         PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19\r
-        } PathSegmentType;\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual unsigned short getPathSegType()\r
-        { return type; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual DOMString getPathSegTypeAsLetter()\r
-        {\r
-        int typ = type;\r
-        if (typ<0 || typ>PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL)\r
-            typ = PATHSEG_UNKNOWN;\r
-        char const *ch = pathSegLetters[typ];\r
-        DOMString letter = ch;\r
-        return letter;\r
-        }\r
-\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSeg()\r
-        { type = PATHSEG_UNKNOWN; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSeg(const SVGPathSeg &other)\r
-        {\r
-        type = other.type;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGPathSeg() {}\r
-\r
-protected:\r
-\r
-    int type;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegClosePath\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegClosePath : public SVGPathSeg\r
-{\r
-public:\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegClosePath()\r
-        {\r
-        type = PATHSEG_CLOSEPATH;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegClosePath(const SVGPathSegClosePath &other) : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_CLOSEPATH;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGPathSegClosePath() {}\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegMovetoAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegMovetoAbs : public SVGPathSeg\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getX()\r
-        { return x; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getY()\r
-        { return y; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegMovetoAbs()\r
-        {\r
-        type = PATHSEG_MOVETO_ABS;\r
-        x = y = 0.0;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegMovetoAbs(double xArg, double yArg)\r
-        {\r
-        type = PATHSEG_MOVETO_ABS;\r
-        x = xArg; y = yArg;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegMovetoAbs(const SVGPathSegMovetoAbs &other) : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_MOVETO_ABS;\r
-        x = other.x; y = other.y;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGPathSegMovetoAbs() {}\r
-\r
-protected:\r
-\r
-    double x,y;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegMovetoRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegMovetoRel : public SVGPathSeg\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getX()\r
-        { return x; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getY()\r
-        { return y; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegMovetoRel()\r
-        {\r
-        type = PATHSEG_MOVETO_REL;\r
-        x = y = 0.0;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegMovetoRel(double xArg, double yArg)\r
-        {\r
-        type = PATHSEG_MOVETO_REL;\r
-        x = xArg; y = yArg;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegMovetoRel(const SVGPathSegMovetoRel &other) : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_MOVETO_REL;\r
-        x = other.x; y = other.y;\r
-        }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGPathSegMovetoRel() {}\r
-\r
-protected:\r
-\r
-    double x,y;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegLinetoAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegLinetoAbs : public SVGPathSeg\r
-{\r
-public:\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getX()\r
-        { return x; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getY()\r
-        { return y; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
+        } PathSegmentType;\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoAbs()\r
-        {\r
-        type = PATHSEG_LINETO_ABS;\r
-        x = y = 0.0;\r
-        }\r
-\r
+    unsigned short getPathSegType();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoAbs(double xArg, double yArg)\r
-        {\r
-        type = PATHSEG_LINETO_ABS;\r
-        x = xArg; y = yArg;\r
-        }\r
+    DOMString getPathSegTypeAsLetter();\r
 \r
     /**\r
-     *\r
+     * From the various subclasses\r
      */\r
-    SVGPathSegLinetoAbs(const SVGPathSegLinetoAbs &other) : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_LINETO_ABS;\r
-        x = other.x; y = other.y;\r
-        }\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegLinetoAbs() {}\r
-\r
-protected:\r
-\r
-    double x,y;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegLinetoRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegLinetoRel : public SVGPathSeg\r
-{\r
-public:\r
+    double getX();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
+    void setX(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
+    double getX1();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY()\r
-        { return y; }\r
+    void setX1(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
+    double getX2();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoRel()\r
-        {\r
-        type = PATHSEG_LINETO_REL;\r
-        x = y = 0.0;\r
-        }\r
-\r
+    void setX2(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoRel(double xArg, double yArg)\r
-        {\r
-        type = PATHSEG_LINETO_REL;\r
-        x = xArg; y = yArg;\r
-        }\r
+    double getY()\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoRel(const SVGPathSegLinetoRel &other) : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_LINETO_REL;\r
-        x = other.x; y = other.y;\r
-        }\r
+    void setY(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegLinetoRel() {}\r
-\r
-protected:\r
-\r
-    double x,y;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegCurvetoCubicAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegCurvetoCubicAbs : public SVGPathSeg\r
-{\r
-public:\r
+    double getY1()\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
+    void setY1(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
+    double getY2();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY()\r
-        { return y; }\r
+    void setY2(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
+    double getR1();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX1()\r
-        { return x1; }\r
+    void setR1(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX1(double val) throw (DOMException)\r
-        { x1 = val; }\r
+    double getR2();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY1()\r
-        { return y1; }\r
+    void setR2(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY1(double val) throw (DOMException)\r
-        { y1 = val; }\r
+    double getAngle();\r
 \r
+    /**\r
+     *\r
+     */\r
+    void setAngle(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX2()\r
-        { return x2; }\r
+    bool getLargeArcFlag();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX2(double val) throw (DOMException)\r
-        { x2 = val; }\r
+    void setLargeArcFlag(bool val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY2()\r
-        { return y2; }\r
+    bool getSweepFlag();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY2(double val) throw (DOMException)\r
-        { y2 = val; }\r
+    void setSweepFlag(bool val) throw(DOMException);\r
 \r
 \r
     //##################\r
     //# Non-API methods\r
     //##################\r
 \r
+    /**\r
+     *\r
+     */\r
+    SVGPathSeg();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoCubicAbs()\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_ABS;\r
-        x = y = x1 = y1 = x2 = y2 = 0.0;\r
-        }\r
+    SVGPathSeg(int typeArg);\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoCubicAbs(double xArg,  double yArg,\r
-                              double x1Arg, double y1Arg,\r
-                              double x2Arg, double y2Arg)\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_ABS;\r
-        x  = xArg;   y  = yArg;\r
-        x1 = x1Arg;  y1 = y1Arg;\r
-        x2 = x2Arg;  y2 = y2Arg;\r
-        }\r
+    SVGPathSeg(const SVGPathSeg &other);\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoCubicAbs(const SVGPathSegCurvetoCubicAbs &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_ABS;\r
-        x  = other.x;  y  = other.y;\r
-        x1 = other.x1; y1 = other.y1;\r
-        x2 = other.x2; y2 = other.y2;\r
-        }\r
+    SVGPathSeg &operator=(const SVGPathSeg &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegCurvetoCubicAbs() {}\r
+    ~SVGPathSeg();\r
 \r
 protected:\r
 \r
-    double x, y, x1, y1, x2, y2;\r
+    void init();\r
+    \r
+    void assign(const SVGPathSeg &other);\r
 \r
+    int type;\r
+    double x, y, x1, y1, x2, y2;\r
+    double r1, r2;\r
+    double angle;\r
+    bool largeArcFlag;\r
+    bool sweepFlag;\r
 };\r
 \r
 \r
 \r
 \r
-\r
-\r
 /*#########################################################################\r
-## SVGPathSegCurvetoCubicRel\r
+## SVGPaint\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGPathSegCurvetoCubicRel : public SVGPathSeg\r
+class SVGPaint : public SVGColor\r
 {\r
 public:\r
 \r
     /**\r
-     *\r
+     * Paint Types\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
+    typedef enum\r
+        {\r
+        SVG_PAINTTYPE_UNKNOWN               = 0,\r
+        SVG_PAINTTYPE_RGBCOLOR              = 1,\r
+        SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR     = 2,\r
+        SVG_PAINTTYPE_NONE                  = 101,\r
+        SVG_PAINTTYPE_CURRENTCOLOR          = 102,\r
+        SVG_PAINTTYPE_URI_NONE              = 103,\r
+        SVG_PAINTTYPE_URI_CURRENTCOLOR      = 104,\r
+        SVG_PAINTTYPE_URI_RGBCOLOR          = 105,\r
+        SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106,\r
+        SVG_PAINTTYPE_URI                   = 107\r
+        } PaintType;\r
+\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
+    unsigned short getPaintType();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY()\r
-        { return y; }\r
+    DOMString getUri();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
+    void setUri(const DOMString& uriArg);\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX1()\r
-        { return x1; }\r
+    void setPaint(unsigned short paintTypeArg,\r
+                           const DOMString& uriArg,\r
+                           const DOMString& /*rgbColor*/,\r
+                           const DOMString& /*iccColor*/)\r
+                           throw(SVGException);\r
+\r
+    //##################\r
+    //# Non-API methods\r
+    //##################\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX1(double val) throw (DOMException)\r
-        { x1 = val; }\r
+    SVGPaint();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY1()\r
-        { return y1; }\r
+    SVGPaint(const SVGPaint &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY1(double val) throw (DOMException)\r
-        { y1 = val; }\r
+    ~SVGPaint();\r
+\r
+protected:\r
+\r
+    unsigned int paintType;\r
+    DOMString uri;\r
+\r
+};\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGPreserveAspectRatio\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+class SVGPreserveAspectRatio\r
+{\r
+public:\r
 \r
 \r
     /**\r
-     *\r
+     * Alignment Types\r
+     */\r
+    typedef enum\r
+        {\r
+        SVG_PRESERVEASPECTRATIO_UNKNOWN  = 0,\r
+        SVG_PRESERVEASPECTRATIO_NONE     = 1,\r
+        SVG_PRESERVEASPECTRATIO_XMINYMIN = 2,\r
+        SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3,\r
+        SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4,\r
+        SVG_PRESERVEASPECTRATIO_XMINYMID = 5,\r
+        SVG_PRESERVEASPECTRATIO_XMIDYMID = 6,\r
+        SVG_PRESERVEASPECTRATIO_XMAXYMID = 7,\r
+        SVG_PRESERVEASPECTRATIO_XMINYMAX = 8,\r
+        SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9,\r
+        SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10\r
+        } AlignmentType;\r
+\r
+\r
+    /**\r
+     * Meet-or-slice Types\r
      */\r
-    virtual double getX2()\r
-        { return x2; }\r
+    typedef enum\r
+        {\r
+        SVG_MEETORSLICE_UNKNOWN  = 0,\r
+        SVG_MEETORSLICE_MEET     = 1,\r
+        SVG_MEETORSLICE_SLICE    = 2\r
+        } MeetOrSliceType;\r
+\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX2(double val) throw (DOMException)\r
-        { x2 = val; }\r
+    unsigned short getAlign();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY2()\r
-        { return y2; }\r
+    void setAlign(unsigned short val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY2(double val) throw (DOMException)\r
-        { y2 = val; }\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
+    unsigned short getMeetOrSlice();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoCubicRel()\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_REL;\r
-        x = y = x1 = y1 = x2 = y2 = 0.0;\r
-        }\r
+    void setMeetOrSlice(unsigned short val) throw(DOMException);\r
 \r
+    //##################\r
+    //# Non-API methods\r
+    //##################\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoCubicRel(double xArg,  double yArg,\r
-                              double x1Arg, double y1Arg,\r
-                              double x2Arg, double y2Arg)\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_REL;\r
-        x  = xArg;   y  = yArg;\r
-        x1 = x1Arg;  y1 = y1Arg;\r
-        x2 = x2Arg;  y2 = y2Arg;\r
-        }\r
+    SVGPreserveAspectRatio();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoCubicRel(const SVGPathSegCurvetoCubicRel &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_REL;\r
-        x  = other.x;  y  = other.y;\r
-        x1 = other.x1; y1 = other.y1;\r
-        x2 = other.x2; y2 = other.y2;\r
-        }\r
+    SVGPreserveAspectRatio(const SVGPreserveAspectRatio &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegCurvetoCubicRel() {}\r
+    ~SVGPreserveAspectRatio();\r
 \r
 protected:\r
 \r
-    double x, y, x1, y1, x2, y2;\r
+    unsigned short align;\r
+    unsigned short meetOrSlice;\r
 \r
 };\r
 \r
 \r
 \r
-\r
-\r
-\r
 /*#########################################################################\r
-## SVGPathSegCurvetoQuadraticAbs\r
+## SVGRect\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGPathSegCurvetoQuadraticAbs : public SVGPathSeg\r
+class SVGRect\r
 {\r
 public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
+    double getX();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
+    void setX(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY()\r
-        { return y; }\r
+    double getY();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
+    void setY(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX1()\r
-        { return x1; }\r
+    double getWidth();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX1(double val) throw (DOMException)\r
-        { x1 = val; }\r
+    void setWidth(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY1()\r
-        { return y1; }\r
+    double getHeight();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY1(double val) throw (DOMException)\r
-        { y1 = val; }\r
+    void setHeight(double val) throw(DOMException);\r
 \r
 \r
     //##################\r
     //# Non-API methods\r
     //##################\r
 \r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegCurvetoQuadraticAbs()\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_ABS;\r
-        x = y = x1 = y1 = 0.0;\r
-        }\r
-\r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoQuadraticAbs(double xArg,  double yArg,\r
-                              double x1Arg, double y1Arg)\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_ABS;\r
-        x  = xArg;   y  = yArg;\r
-        x1 = x1Arg;  y1 = y1Arg;\r
-        }\r
+    SVGRect();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoQuadraticAbs(const SVGPathSegCurvetoQuadraticAbs &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_ABS;\r
-        x  = other.x;  y  = other.y;\r
-        x1 = other.x1; y1 = other.y1;\r
-        }\r
+    SVGRect(const SVGRect &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegCurvetoQuadraticAbs() {}\r
+    ~SVGRect();\r
 \r
 protected:\r
 \r
-    double x, y, x1, y1;\r
+    double x, y, width, height;\r
 \r
 };\r
 \r
-\r
-\r
-\r
-\r
-\r
 /*#########################################################################\r
-## SVGPathSegCurvetoQuadraticRel\r
+## SVGTransform\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGPathSegCurvetoQuadraticRel : public SVGPathSeg\r
+class SVGTransform\r
 {\r
 public:\r
 \r
     /**\r
-     *\r
+     * Transform Types\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
+    typedef enum\r
+        {\r
+        SVG_TRANSFORM_UNKNOWN   = 0,\r
+        SVG_TRANSFORM_MATRIX    = 1,\r
+        SVG_TRANSFORM_TRANSLATE = 2,\r
+        SVG_TRANSFORM_SCALE     = 3,\r
+        SVG_TRANSFORM_ROTATE    = 4,\r
+        SVG_TRANSFORM_SKEWX     = 5,\r
+        SVG_TRANSFORM_SKEWY     = 6,\r
+        } TransformType;\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
+    unsigned short getType();\r
+\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY()\r
-        { return y; }\r
+    SVGMatrix getMatrix();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
+    double getAngle();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX1()\r
-        { return x1; }\r
+    void setMatrix(const SVGMatrix &matrixArg);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX1(double val) throw (DOMException)\r
-        { x1 = val; }\r
+    void setTranslate(double tx, double ty);\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY1()\r
-        { return y1; }\r
+    void setScale(double sx, double sy);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY1(double val) throw (DOMException)\r
-        { y1 = val; }\r
-\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
+    void setRotate(double angleArg, double cx, double cy);\r
 \r
+    /**\r
+     *\r
+     */\r
+    void setSkewX(double angleArg);\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoQuadraticRel()\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_REL;\r
-        x = y = x1 = y1 = 0.0;\r
-        }\r
+    void setSkewY(double angleArg);\r
 \r
 \r
+    //##################\r
+    //# Non-API methods\r
+    //##################\r
+\r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoQuadraticRel(double xArg,  double yArg,\r
-                                  double x1Arg, double y1Arg)\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_REL;\r
-        x  = xArg;   y  = yArg;\r
-        x1 = x1Arg;  y1 = y1Arg;\r
-        }\r
+    SVGTransform();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoQuadraticRel(const SVGPathSegCurvetoQuadraticRel &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_REL;\r
-        x  = other.x;  y  = other.y;\r
-        x1 = other.x1; y1 = other.y1;\r
-        }\r
+    SVGTransform(const SVGTransform &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegCurvetoQuadraticRel() {}\r
+    ~SVGTransform();\r
 \r
 protected:\r
 \r
-    double x, y, x1, y1;\r
+    int type;\r
+    double angle;\r
 \r
+    SVGMatrix matrix;\r
 };\r
 \r
 \r
 \r
 \r
-\r
-\r
 /*#########################################################################\r
-## SVGPathSegArcAbs\r
+## SVGUnitTypes\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGPathSegArcAbs : public SVGPathSeg\r
+class SVGUnitTypes\r
 {\r
 public:\r
 \r
+    /**\r
+     * Unit Types\r
+     */\r
+    typedef enum\r
+        {\r
+        SVG_UNIT_TYPE_UNKNOWN           = 0,\r
+        SVG_UNIT_TYPE_USERSPACEONUSE    = 1,\r
+        SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2\r
+        } UnitType;\r
+\r
+\r
+\r
+    //##################\r
+    //# Non-API methods\r
+    //##################\r
+\r
+    /**\r
+     *\r
+     */\r
+    SVGUnitTypes();\r
+\r
     /**\r
      *\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
+    ~SVGUnitTypes();\r
+\r
+};\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGValue\r
+#########################################################################*/\r
+\r
+/**\r
+ * This is a helper class that will hold several types of data.  It will\r
+ * be used in those situations where methods are common to different \r
+ * interfaces, except for the data type.  This class holds the following:\r
+ * SVGAngle\r
+ * SVGBoolean\r
+ * SVGEnumeration\r
+ * SVGInteger\r
+ * SVGLength\r
+ * SVGNumber\r
+ * SVGPreserveAspectRatio\r
+ * SVGRect\r
+ * SVGString\r
+ */   \r
+class SVGValue\r
+{\r
+public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
+    typedef enum\r
+        {\r
+        SVG_ANGLE,\r
+        SVG_BOOLEAN,\r
+        SVG_ENUMERATION,\r
+        SVG_INTEGER,\r
+        SVG_LENGTH,\r
+        SVG_NUMBER,\r
+        SVG_PRESERVE_ASPECT_RATIO,\r
+        SVG_RECT,\r
+        SVG_STRING,\r
+        } SVGValueType;\r
 \r
     /**\r
-     *\r
+     * Constructor\r
      */\r
-    virtual double getY()\r
-        { return y; }\r
-\r
+    SVGValue();\r
+    \r
     /**\r
-     *\r
+     * Copy constructor\r
      */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
-\r
+    SVGValue(const SVGValue &other);\r
+    \r
     /**\r
-     *\r
+     * Assignment\r
      */\r
-    virtual double getR1()\r
-        { return r1; }\r
-\r
+    SVGValue &operator=(const SVGValue &other);\r
+    \r
     /**\r
      *\r
      */\r
-    virtual void setR1(double val) throw (DOMException)\r
-        { r1 = val; }\r
+    ~SVGValue();\r
+        \r
+    //###########################\r
+    //  TYPES\r
+    //###########################\r
 \r
     /**\r
-     *\r
+     *  Angle\r
      */\r
-    virtual double getR2()\r
-        { return r2; }\r
-\r
+    SVGValue(const SVGAngle &v);\r
+    \r
+    SVGAngle angleValue();\r
+    \r
     /**\r
-     *\r
+     * Boolean\r
      */\r
-    virtual void setR2(double val) throw (DOMException)\r
-        { r2 = val; }\r
-\r
+    SVGValue(bool v);\r
+    \r
+    bool booleanValue();\r
+    \r
+    \r
     /**\r
-     *\r
+     * Enumeration\r
      */\r
-    virtual double getAngle()\r
-        { return angle; }\r
+    SVGValue(short v);\r
+    \r
+    short enumerationValue();\r
 \r
     /**\r
-     *\r
+     * Integer\r
      */\r
-    virtual void setAngle(double val) throw (DOMException)\r
-        { angle = val; }\r
-\r
+    SVGValue(long v);\r
+    \r
+    long integerValue();\r
+    \r
     /**\r
-     *\r
+     * Length\r
      */\r
-    virtual bool getLargeArcFlag()\r
-        { return largeArcFlag; }\r
-\r
+    SVGValue(const SVGLength &v);\r
+    \r
+    SVGLength lengthValue();\r
+    \r
     /**\r
-     *\r
+     * Number\r
      */\r
-    virtual void setLargeArcFlag(bool val) throw (DOMException)\r
-        { largeArcFlag = val; }\r
+    SVGValue(double v);\r
+    \r
+    double numberValue();\r
 \r
     /**\r
-     *\r
+     * PathSegment\r
      */\r
-    virtual bool getSweepFlag()\r
-        { return sweepFlag; }\r
-\r
+    SVGValue(const SVGPathSeg &v);\r
+    \r
+    SVGPathSeg pathDataValue();\r
+    \r
+    \r
     /**\r
-     *\r
+     * Points\r
      */\r
-    virtual void setSweepFlag(bool val) throw (DOMException)\r
-        { sweepFlag = val; }\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-\r
+    SVGValue(const SVGPointList &v);\r
+    \r
+    SVGPointList pointListValue();\r
+    \r
+    \r
     /**\r
-     *\r
+     * PreserveAspectRatio\r
      */\r
-    SVGPathSegArcAbs()\r
-        {\r
-        type = PATHSEG_ARC_ABS;\r
-        x = y = r1 = r2 = angle = 0.0;\r
-        largeArcFlag = sweepFlag = false;\r
-        }\r
-\r
+    SVGValue(const SVGPreserveAspectRatio &v);\r
+    \r
+    SVGPreserveAspectRatio preserveAspectRatioValue();\r
+    \r
     /**\r
-     *\r
+     * Rect\r
      */\r
-    SVGPathSegArcAbs(double xArg,  double yArg,\r
-                     double r1Arg, double r2Arg,\r
-                     double angleArg,\r
-                     bool largeArcFlagArg,\r
-                     bool sweepFlagArg )\r
-\r
-        {\r
-        type = PATHSEG_ARC_ABS;\r
-        x  = xArg;   y  = yArg;\r
-        r1 = r1Arg;  r2 = r2Arg;\r
-        angle        = angleArg;\r
-        largeArcFlag = largeArcFlagArg;\r
-        sweepFlag    = sweepFlagArg;\r
-        }\r
-\r
+    SVGValue(const SVGRect &v);\r
+    \r
+    SVGRect rectValue();\r
+    \r
     /**\r
-     *\r
+     * String\r
      */\r
-    SVGPathSegArcAbs(const SVGPathSegArcAbs &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_ARC_ABS;\r
-        x  = other.x;  y  = other.y;\r
-        r1 = other.r1; r2 = other.r2;\r
-        angle        = other.angle;\r
-        largeArcFlag = other.largeArcFlag;\r
-        sweepFlag    = other.sweepFlag;\r
-        }\r
-\r
+    SVGValue(const DOMString &v);\r
+    \r
+    DOMString stringValue();\r
+    \r
     /**\r
-     *\r
+     * TransformList\r
      */\r
-    virtual ~SVGPathSegArcAbs() {}\r
-\r
-protected:\r
+    SVGValue(const SVGTransformList &v);\r
+    \r
+    SVGTransformList transformListValue();\r
+    \r
+    \r
+private:\r
 \r
-    double x, y, r1, r2, angle;\r
-    bool largeArcFlag;\r
-    bool sweepFlag;\r
+    void init();\r
+    \r
+    void assign(const SVGValue &other);\r
+    \r
+    short                  type;\r
+    SVGAngle               angleval;       // SVGAngle\r
+    bool                   bval;           // SVGBoolean\r
+    short                  eval;           // SVGEnumeration\r
+    long                   ival;           // SVGInteger\r
+    SVGLength              lengthval;      // SVGLength\r
+    double                 dval;           // SVGNumber\r
+    SVGPathSegment         segval;         // SVGPathSegment\r
+    SVGPreserveAcpectRatio parval;         // SVGPreserveAspectRatio\r
+    SVGRect                rval;           // SVGRect\r
+    DOMString              sval;           // SVGString\r
 \r
 };\r
 \r
 \r
-\r
 /*#########################################################################\r
-## SVGPathSegArcRel\r
+## SVGValueList\r
 #########################################################################*/\r
 \r
 /**\r
+ * THis is used to generify a bit the several different types of lists:\r
  *\r
+ * SVGLengthList      -> SVGValueList<SVGLength>\r
+ * SVGNumberList      -> SVGValueList<SVGNumber>\r
+ * SVGPathData        -> SVGValueList<SVGPathSeg>\r
+ * SVGPoints          -> SVGValueList<SVGPoint>\r
+ * SVGTransformList   -> SVGValueList<SVGTransform>\r
  */\r
-class SVGPathSegArcRel : public SVGPathSeg\r
+class SVGValueList\r
 {\r
 public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
+    typedef enum\r
+        {\r
+        SVG_LIST_LENGTH,\r
+        SVG_LIST_NUMBER,\r
+        SVG_LIST_PATHSEG,\r
+        SVG_LIST_POINT,\r
+        SVG_LIST_TRANSFORM\r
+        } SVGValueListTypes;\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY()\r
-        { return y; }\r
+    unsigned long getNumberOfItems();\r
 \r
-    /**\r
-     *\r
-     */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getR1()\r
-        { return r1; }\r
+    void clear() throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setR1(double val) throw (DOMException)\r
-        { r1 = val; }\r
+    SVGValue getItem(unsigned long index) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getR2()\r
-        { return r2; }\r
+    SVGValue insertItemBefore(const SVGValue &newItem,\r
+                                   unsigned long index)\r
+                                   throw(DOMException, SVGException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setR2(double val) throw (DOMException)\r
-        { r2 = val; }\r
+    SVGValue replaceItem(const SVGValue &newItem,\r
+                              unsigned long index)\r
+                              throw(DOMException, SVGException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getAngle()\r
-        { return angle; }\r
+    SVGValue removeItem(unsigned long index) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setAngle(double val) throw (DOMException)\r
-        { angle = val; }\r
+    SVGValue appendItem(const SVGValue &newItem)\r
+                             throw(DOMException, SVGException);\r
 \r
     /**\r
-     *\r
+     * Matrix\r
      */\r
-    virtual bool getLargeArcFlag()\r
-        { return largeArcFlag; }\r
+    SVGValue initialize(const SVGValue &newItem)\r
+                         throw(DOMException, SVGException);\r
 \r
     /**\r
-     *\r
+     * Matrix\r
      */\r
-    virtual void setLargeArcFlag(bool val) throw (DOMException)\r
-        { largeArcFlag = val; }\r
+    SVGValue createSVGTransformFromMatrix(const SVGValue &matrix);\r
 \r
     /**\r
-     *\r
+     * Matrix\r
      */\r
-    virtual bool getSweepFlag()\r
-        { return sweepFlag; }\r
+    SVGValue consolidate();\r
 \r
-    /**\r
-     *\r
-     */\r
-    virtual void setSweepFlag(bool val) throw (DOMException)\r
-        { sweepFlag = val; }\r
 \r
     //##################\r
     //# Non-API methods\r
     //##################\r
 \r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegArcRel()\r
-        {\r
-        type = PATHSEG_ARC_REL;\r
-        x = y = r1 = r2 = angle = 0.0;\r
-        largeArcFlag = sweepFlag = false;\r
-        }\r
-\r
-\r
     /**\r
      *\r
      */\r
-    SVGPathSegArcRel(double xArg, double yArg,\r
-                     double r1Arg, double r2Arg,\r
-                     double angleArg,\r
-                     bool largeArcFlagArg,\r
-                     bool sweepFlagArg )\r
-\r
-        {\r
-        type = PATHSEG_ARC_REL;\r
-        x  = xArg;   y  = yArg;\r
-        r1 = r1Arg;  r2 = r2Arg;\r
-        angle        = angleArg;\r
-        largeArcFlag = largeArcFlagArg;\r
-        sweepFlag    = sweepFlagArg;\r
-        }\r
+    SVGValueList();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegArcRel(const SVGPathSegArcRel &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_ARC_REL;\r
-        x  = other.x;  y  = other.y;\r
-        r1 = other.r1; r2 = other.r2;\r
-        angle        = other.angle;\r
-        largeArcFlag = other.largeArcFlag;\r
-        sweepFlag    = other.sweepFlag;\r
-        }\r
+    SVGValueList(const SVGValueList &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegArcRel() {}\r
+    ~SVGValueList();\r
 \r
 protected:\r
 \r
-    double x, y, r1, r2, angle;\r
-    bool largeArcFlag;\r
-    bool sweepFlag;\r
+    std::vector<SVGValue> items;\r
 \r
 };\r
 \r
@@ -5327,281 +1689,161 @@ protected:
 \r
 \r
 \r
-\r
 /*#########################################################################\r
-## SVGPathSegLinetoHorizontalAbs\r
+## SVGAnimatedValue\r
 #########################################################################*/\r
 \r
 /**\r
- *\r
+ * This class is used to merge all of the "Animated" values, with only\r
+ * a different type, into a single API.  This class subsumes the following:\r
+ * SVGAnimatedAngle\r
+ * SVGAnimatedBoolean\r
+ * SVGAnimatedEnumeration\r
+ * SVGAnimatedInteger\r
+ * SVGAnimatedLength\r
+ * SVGAnimatedLengthList\r
+ * SVGAnimatedNumber\r
+ * SVGAnimatedNumberList\r
+ * SVGAnimatedPathData\r
+ * SVGAnimatedPoints\r
+ * SVGAnimatedPreserveAspectRatio\r
+ * SVGAnimatedRect\r
+ * SVGAnimatedString\r
+ * SVGAnimatedTransformList\r
  */\r
-class SVGPathSegLinetoHorizontalAbs : public SVGPathSeg\r
+class SVGAnimatedValue\r
 {\r
 public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegLinetoHorizontalAbs()\r
-        {\r
-        type = PATHSEG_LINETO_HORIZONTAL_ABS;\r
-        x = 0.0;\r
-        }\r
-\r
+    SVGValue &getBaseVal();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoHorizontalAbs(double xArg)\r
-        {\r
-        type = PATHSEG_LINETO_HORIZONTAL_ABS;\r
-        x = xArg;\r
-        }\r
+    void setBaseVal(const SVGValue &val) throw (DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoHorizontalAbs(const SVGPathSegLinetoHorizontalAbs &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_LINETO_HORIZONTAL_ABS;\r
-        x = other.x;\r
-        }\r
+    SVGValue &getAnimVal();\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegLinetoHorizontalAbs() {}\r
-\r
-protected:\r
-\r
-    double x;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegLinetoHorizontalRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegLinetoHorizontalRel : public SVGPathSeg\r
-{\r
-public:\r
-\r
+    SVGAnimatedValue();\r
+    \r
     /**\r
      *\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
+    SVGAnimatedValue(const SVGValue &baseValue);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
-\r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
+    SVGAnimatedValue(const SVGValue &baseValue, const SVGValue &animValue);\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoHorizontalRel()\r
-        {\r
-        type = PATHSEG_LINETO_HORIZONTAL_REL;\r
-        x = 0.0;\r
-        }\r
-\r
+    SVGAnimatedValue(const SVGAnimatedValue &other);\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoHorizontalRel(double xArg)\r
-        {\r
-        type = PATHSEG_LINETO_HORIZONTAL_REL;\r
-        x = xArg;\r
-        }\r
+    SVGAnimatedValue &operator=(const SVGAnimatedValue &other);\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoHorizontalRel(const SVGPathSegLinetoHorizontalRel &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_LINETO_HORIZONTAL_REL;\r
-        x = other.x;\r
-        }\r
+    SVGAnimatedValue &operator=(const SVGValue &baseVal);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegLinetoHorizontalRel() {}\r
-\r
-protected:\r
-\r
-    double x;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegLinetoVerticalAbs\r
-#########################################################################*/\r
+    ~SVGAnimatedValue();\r
+    \r
+private:\r
 \r
-/**\r
- *\r
- */\r
-class SVGPathSegLinetoVerticalAbs : public SVGPathSeg\r
-{\r
-public:\r
+    void init();\r
+    \r
+    void assign(const SVGAnimatedValue &other);\r
+    \r
+    SVGValue baseVal;\r
+    \r
+    SVGValue animVal;\r
+}\r
 \r
-    /**\r
-     *\r
-     */\r
-    virtual double getY()\r
-        { return y; }\r
 \r
-    /**\r
-     *\r
-     */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
 \r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
 \r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegLinetoVerticalAbs()\r
-        {\r
-        type = PATHSEG_LINETO_VERTICAL_ABS;\r
-        y = 0.0;\r
-        }\r
 \r
 \r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegLinetoVerticalAbs(double yArg)\r
-        {\r
-        type = PATHSEG_LINETO_VERTICAL_ABS;\r
-        y = yArg;\r
-        }\r
 \r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegLinetoVerticalAbs(const SVGPathSegLinetoVerticalAbs &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_LINETO_VERTICAL_ABS;\r
-        y = other.y;\r
-        }\r
+//########################################################################\r
+//########################################################################\r
+//#   I N T E R F A C E S\r
+//########################################################################\r
+//########################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    virtual ~SVGPathSegLinetoVerticalAbs() {}\r
 \r
-protected:\r
 \r
-    double y;\r
 \r
-};\r
 \r
 \r
 \r
 /*#########################################################################\r
-## SVGPathSegLinetoVerticalRel\r
+## SVGStylable\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGPathSegLinetoVerticalRel : public SVGPathSeg\r
+class SVGStylable\r
 {\r
 public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY()\r
-        { return y; }\r
+    SVGAnimatedString getClassName();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
+    css::CSSStyleDeclaration getStyle();\r
 \r
-    //##################\r
-    //# Non-API methods\r
-    //##################\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoVerticalRel()\r
-        {\r
-        type = PATHSEG_LINETO_VERTICAL_REL;\r
-        y = 0.0;\r
-        }\r
+    css::CSSValue getPresentationAttribute(const DOMString& /*name*/);\r
 \r
+    //##################\r
+    //# Non-API methods\r
+    //##################\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoVerticalRel(double yArg)\r
-        {\r
-        type = PATHSEG_LINETO_VERTICAL_REL;\r
-        y = yArg;\r
-        }\r
+    SVGStylable();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegLinetoVerticalRel(const SVGPathSegLinetoVerticalRel &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_LINETO_VERTICAL_REL;\r
-        y = other.y;\r
-        }\r
+    SVGStylable(const SVGStylable &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegLinetoVerticalRel() {}\r
+    ~SVGStylable();\r
 \r
 protected:\r
 \r
-    double y;\r
+    SVGAnimatedString className;\r
+    css::CSSStyleDeclaration style;\r
 \r
 };\r
 \r
@@ -5609,66 +1851,47 @@ protected:
 \r
 \r
 \r
-\r
 /*#########################################################################\r
-## SVGPathSegCurvetoCubicSmoothAbs\r
+## SVGLocatable\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGPathSegCurvetoCubicSmoothAbs : public SVGPathSeg\r
+class SVGLocatable\r
 {\r
 public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getY()\r
-        { return y; }\r
+    SVGElementPtr getNearestViewportElement();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
+    SVGElementPtr getFarthestViewportElement();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX2()\r
-        { return x2; }\r
+    SVGRect getBBox();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX2(double val) throw (DOMException)\r
-        { x2 = val; }\r
+    SVGMatrix getCTM();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY2()\r
-        { return y2; }\r
+    SVGMatrix getScreenCTM();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY2(double val) throw (DOMException)\r
-        { y2 = val; }\r
-\r
+    SVGMatrix getTransformToElement(const SVGElement &/*element*/)\r
+                    throw(SVGException);\r
 \r
     //##################\r
     //# Non-API methods\r
@@ -5677,107 +1900,103 @@ public:
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoCubicSmoothAbs()\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\r
-        x = y = x2 = y2 = 0.0;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegCurvetoCubicSmoothAbs(double xArg,   double yArg,\r
-                                    double x2Arg, double y2Arg)\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\r
-        x  = xArg;    y  = yArg;\r
-        x2 = x2Arg;   y2 = y2Arg;\r
-        }\r
+    SVGLocatable();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoCubicSmoothAbs(const SVGPathSegCurvetoCubicSmoothAbs &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\r
-        x  = other.x;  y  = other.y;\r
-        x2 = other.x2; y2 = other.y2;\r
-        }\r
+    SVGLocatable(const SVGLocatable &/*other*/);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegCurvetoCubicSmoothAbs() {}\r
+    ~SVGLocatable();\r
 \r
 protected:\r
 \r
-    double x, y, x2, y2;\r
+    SVGRect bbox;\r
+    SVGMatrix ctm;\r
+    SVGMatrix screenCtm;\r
 \r
 };\r
 \r
 \r
-\r
 /*#########################################################################\r
-## SVGPathSegCurvetoCubicSmoothRel\r
+## SVGTransformable\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGPathSegCurvetoCubicSmoothRel : public SVGPathSeg\r
+class SVGTransformable : public SVGLocatable\r
 {\r
 public:\r
 \r
+\r
     /**\r
      *\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
+    SVGAnimatedTransformList &getTransform();\r
+\r
+    //##################\r
+    //# Non-API methods\r
+    //##################\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
+    SVGTransformable();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY()\r
-        { return y; }\r
+    SVGTransformable(const SVGTransformable &other) : SVGLocatable(other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
+    ~SVGTransformable();\r
+\r
+protected:\r
+\r
+    SVGAnimatedTransformList transforms;\r
+};\r
+\r
+\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGTests\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+class SVGTests\r
+{\r
+public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX2()\r
-        { return x2; }\r
+    SVGValueList &getRequiredFeatures();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX2(double val) throw (DOMException)\r
-        { x2 = val; }\r
+    SVGValueList &getRequiredExtensions();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY2()\r
-        { return y2; }\r
+    SVGValueList &getSystemLanguage();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY2(double val) throw (DOMException)\r
-        { y2 = val; }\r
-\r
+    bool hasExtension(const DOMString& /*extension*/);\r
 \r
     //##################\r
     //# Non-API methods\r
@@ -5786,43 +2005,23 @@ public:
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoCubicSmoothRel()\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\r
-        x = y = x2 = y2 = 0.0;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegCurvetoCubicSmoothRel(double xArg,   double yArg,\r
-                                    double x2Arg, double y2Arg)\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\r
-        x  = xArg;    y  = yArg;\r
-        x2 = x2Arg;   y2 = y2Arg;\r
-        }\r
+    SVGTests();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoCubicSmoothRel(const SVGPathSegCurvetoCubicSmoothRel &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\r
-        x  = other.x;  y  = other.y;\r
-        x2 = other.x2; y2 = other.y2;\r
-        }\r
+    SVGTests(const SVGTests &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegCurvetoCubicSmoothRel() {}\r
+    ~SVGTests();\r
 \r
 protected:\r
 \r
-    double x, y, x2, y2;\r
+    SVGStringList requiredFeatures;\r
+    SVGStringList requiredExtensions;\r
+    SVGStringList systemLanguage;\r
 \r
 };\r
 \r
@@ -5832,41 +2031,36 @@ protected:
 \r
 \r
 /*#########################################################################\r
-## SVGPathSegCurvetoQuadraticSmoothAbs\r
+## SVGLangSpace\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGPathSegCurvetoQuadraticSmoothAbs : public SVGPathSeg\r
+class SVGLangSpace\r
 {\r
 public:\r
 \r
+\r
     /**\r
      *\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
+    DOMString getXmlLang();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
+    void setXmlLang(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getY()\r
-        { return y; }\r
+    DOMString getXmlSpace();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
-\r
-\r
+    void setXmlSpace(const DOMString &val) throw(DOMException);\r
 \r
     //##################\r
     //# Non-API methods\r
@@ -5875,84 +2069,42 @@ public:
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoQuadraticSmoothAbs()\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\r
-        x = y = 0.0;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegCurvetoQuadraticSmoothAbs(double xArg, double yArg)\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\r
-        x = xArg;     y = yArg;\r
-        }\r
+    SVGLangSpace();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoQuadraticSmoothAbs(const SVGPathSegCurvetoQuadraticSmoothAbs &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\r
-        x = y = 0.0;\r
-        }\r
+    SVGLangSpace(const SVGLangSpace &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegCurvetoQuadraticSmoothAbs() {}\r
+    ~SVGLangSpace();\r
 \r
 protected:\r
 \r
-    double x, y;\r
+    DOMString xmlLang;\r
+    DOMString xmlSpace;\r
 \r
 };\r
 \r
 \r
 \r
-\r
-\r
-\r
 /*#########################################################################\r
-## SVGPathSegCurvetoQuadraticSmoothRel\r
+## SVGExternalResourcesRequired\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGPathSegCurvetoQuadraticSmoothRel : public SVGPathSeg\r
+class SVGExternalResourcesRequired\r
 {\r
 public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getX()\r
-        { return x; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setX(double val) throw (DOMException)\r
-        { x = val; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual double getY()\r
-        { return y; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual void setY(double val) throw (DOMException)\r
-        { y = val; }\r
-\r
-\r
+    SVGAnimatedBoolean getExternalResourcesRequired();\r
 \r
     //##################\r
     //# Non-API methods\r
@@ -5961,40 +2113,21 @@ public:
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoQuadraticSmoothRel()\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\r
-        x = y = 0.0;\r
-        }\r
-\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGPathSegCurvetoQuadraticSmoothRel(double xArg, double yArg)\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\r
-        x = xArg;     y = yArg;\r
-        }\r
+    SVGExternalResourcesRequired();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegCurvetoQuadraticSmoothRel(const SVGPathSegCurvetoQuadraticSmoothRel &other)\r
-                     : SVGPathSeg(other)\r
-        {\r
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\r
-        x = y = 0.0;\r
-        }\r
+    SVGExternalResourcesRequired(const SVGExternalResourcesRequired &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegCurvetoQuadraticSmoothRel() {}\r
+    ~SVGExternalResourcesRequired();\r
 \r
 protected:\r
 \r
-    double x, y;\r
+    SVGAnimatedBoolean required;\r
 \r
 };\r
 \r
@@ -6003,117 +2136,88 @@ protected:
 \r
 \r
 \r
+\r
+\r
+\r
 /*#########################################################################\r
-## SVGPathSegList\r
+## SVGFitToViewBox\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGPathSegList\r
+class SVGFitToViewBox\r
 {\r
 public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual unsigned long getNumberOfItems()\r
-        { return items.size(); }\r
-\r
+    SVGAnimatedRect getViewBox();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void clear () throw( DOMException )\r
-        { items.clear(); }\r
+    SVGAnimatedPreserveAspectRatio getPreserveAspectRatio();\r
+\r
+    //##################\r
+    //# Non-API methods\r
+    //##################\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGPathSeg initialize (const SVGPathSeg &newItem)\r
-                    throw( DOMException, SVGException )\r
-        {\r
-        items.clear();\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
+    SVGFitToViewBox();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGPathSeg getItem (unsigned long index)\r
-                    throw( DOMException )\r
-        {\r
-        if (index >= items.size())\r
-            {\r
-            SVGPathSeg seg;\r
-            return seg;\r
-            }\r
-        return items[index];\r
-        }\r
+    SVGFitToViewBox(const SVGFitToViewBox &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGPathSeg insertItemBefore(const SVGPathSeg &newItem,\r
-                                        unsigned long index )\r
-                          throw( DOMException, SVGException )\r
-        {\r
-        if (index >= items.size())\r
-            items.push_back(newItem);\r
-        else\r
-            {\r
-            std::vector<SVGPathSeg>::iterator iter = items.begin() + index;\r
-            items.insert(iter, newItem);\r
-            }\r
-        return newItem;\r
-        }\r
+    ~SVGFitToViewBox();\r
+\r
+protected:\r
+\r
+    SVGAnimatedRect viewBox;\r
+\r
+    SVGAnimatedPreserveAspectRatio preserveAspectRatio;\r
+\r
+};\r
+\r
+\r
+/*#########################################################################\r
+## SVGZoomAndPan\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+class SVGZoomAndPan\r
+{\r
+public:\r
 \r
     /**\r
-     *\r
+     * Zoom and Pan Types\r
      */\r
-    virtual SVGPathSeg replaceItem(const SVGPathSeg &newItem,\r
-                                   unsigned long index )\r
-                              throw( DOMException, SVGException )\r
+    typedef enum\r
         {\r
-        if (index >= items.size())\r
-            {\r
-            SVGPathSeg seg;\r
-            return seg;\r
-            }\r
-        std::vector<SVGPathSeg>::iterator iter = items.begin() + index;\r
-        *iter = newItem;\r
-        return newItem;\r
-        }\r
+        SVG_ZOOMANDPAN_UNKNOWN = 0,\r
+        SVG_ZOOMANDPAN_DISABLE = 1,\r
+        SVG_ZOOMANDPAN_MAGNIFY = 2\r
+        } ZoomAndPanType;\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGPathSeg removeItem (unsigned long index)\r
-                                  throw (DOMException)\r
-        {\r
-        if (index >= items.size())\r
-            {\r
-            SVGPathSeg seg;\r
-            return seg;\r
-            }\r
-        std::vector<SVGPathSeg>::iterator iter = items.begin() + index;\r
-        SVGPathSeg olditem = *iter;\r
-        items.erase(iter);\r
-        return olditem;\r
-        }\r
+    unsigned short getZoomAndPan();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGPathSeg appendItem (const SVGPathSeg &newItem)\r
-                    throw( DOMException, SVGException )\r
-        {\r
-        items.push_back(newItem);\r
-        return newItem;\r
-        }\r
-\r
-\r
+    void setZoomAndPan(unsigned short val) throw(DOMException);\r
 \r
     //##################\r
     //# Non-API methods\r
@@ -6122,26 +2226,21 @@ public:
     /**\r
      *\r
      */\r
-    SVGPathSegList() {}\r
-\r
+    SVGZoomAndPan();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPathSegList(const SVGPathSegList &other)\r
-        {\r
-        items = other.items;\r
-        }\r
-\r
+    SVGZoomAndPan(const SVGZoomAndPan &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPathSegList() {}\r
+    ~SVGZoomAndPan();\r
 \r
 protected:\r
 \r
-    std::vector<SVGPathSeg> items;\r
+    unsigned short zoomAndPan;\r
 \r
 };\r
 \r
@@ -6151,53 +2250,46 @@ protected:
 \r
 \r
 /*#########################################################################\r
-## SVGAnimatedPathData\r
+## SVGViewSpec\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGAnimatedPathData\r
+class SVGViewSpec : public SVGZoomAndPan,\r
+                    public SVGFitToViewBox\r
 {\r
 public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGPathSegList getPathSegList()\r
-        {\r
-        SVGPathSegList list;\r
-        return list;\r
-        }\r
+    SVGTransformList getTransform();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGPathSegList getNormalizedPathSegList()\r
-        {\r
-        SVGPathSegList list;\r
-        return list;\r
-        }\r
+    SVGElementPtr getViewTarget();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGPathSegList getAnimatedPathSegList()\r
-        {\r
-        SVGPathSegList list;\r
-        return list;\r
-        }\r
+    DOMString getViewBoxString();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGPathSegList getAnimatedNormalizedPathSegList()\r
-        {\r
-        SVGPathSegList list;\r
-        return list;\r
-        }\r
+    DOMString getPreserveAspectRatioString();\r
 \r
+    /**\r
+     *\r
+     */\r
+    DOMString getTransformString();\r
 \r
+    /**\r
+     *\r
+     */\r
+    DOMString getViewTargetString();\r
 \r
     //##################\r
     //# Non-API methods\r
@@ -6206,52 +2298,40 @@ public:
     /**\r
      *\r
      */\r
-   SVGAnimatedPathData()\r
-        {}\r
+    SVGViewSpec();\r
 \r
     /**\r
      *\r
      */\r
-   SVGAnimatedPathData(const SVGAnimatedPathData &/*other*/)\r
-        {\r
-        }\r
+    SVGViewSpec(const SVGViewSpec &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGAnimatedPathData() {}\r
-\r
-};\r
-\r
-\r
+    ~SVGViewSpec();\r
 \r
+protected:\r
 \r
+    SVGElementPtr viewTarget;\r
+    SVGTransformList transform;\r
+};\r
 \r
 \r
 /*#########################################################################\r
-## SVGAnimatedPoints\r
+## SVGURIReference\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGAnimatedPoints\r
+class SVGURIReference\r
 {\r
 public:\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGPointList getPoints()\r
-        { return points; }\r
-\r
-    /**\r
-     *\r
-     */\r
-    virtual SVGPointList getAnimatedPoints()\r
-        { return animatedPoints; }\r
-\r
-\r
+    SVGAnimatedString getHref();\r
 \r
     //##################\r
     //# Non-API methods\r
@@ -6260,26 +2340,21 @@ public:
     /**\r
      *\r
      */\r
-    SVGAnimatedPoints() {}\r
+    SVGURIReference();\r
 \r
     /**\r
      *\r
      */\r
-    SVGAnimatedPoints(const SVGAnimatedPoints &other)\r
-        {\r
-        points         = other.points;\r
-        animatedPoints = other.animatedPoints;\r
-        }\r
+    SVGURIReference(const SVGURIReference &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGAnimatedPoints() {}\r
+    ~SVGURIReference();\r
 \r
 protected:\r
 \r
-    SVGPointList points;\r
-    SVGPointList animatedPoints;\r
+    SVGAnimatedString href;\r
 \r
 };\r
 \r
@@ -6287,68 +2362,73 @@ protected:
 \r
 \r
 \r
+\r
 /*#########################################################################\r
-## SVGPaint\r
+## SVGCSSRule\r
 #########################################################################*/\r
 \r
 /**\r
  *\r
  */\r
-class SVGPaint : public SVGColor\r
+class SVGCSSRule : public css::CSSRule\r
 {\r
 public:\r
 \r
 \r
     /**\r
-     * Paint Types\r
+     * Additional CSS RuleType to support ICC color specifications\r
      */\r
     typedef enum\r
         {\r
-        SVG_PAINTTYPE_UNKNOWN               = 0,\r
-        SVG_PAINTTYPE_RGBCOLOR              = 1,\r
-        SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR     = 2,\r
-        SVG_PAINTTYPE_NONE                  = 101,\r
-        SVG_PAINTTYPE_CURRENTCOLOR          = 102,\r
-        SVG_PAINTTYPE_URI_NONE              = 103,\r
-        SVG_PAINTTYPE_URI_CURRENTCOLOR      = 104,\r
-        SVG_PAINTTYPE_URI_RGBCOLOR          = 105,\r
-        SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106,\r
-        SVG_PAINTTYPE_URI                   = 107\r
-        } PaintType;\r
+        COLOR_PROFILE_RULE = 7\r
+        } ColorProfileRuleType;\r
 \r
+    //##################\r
+    //# Non-API methods\r
+    //##################\r
 \r
     /**\r
      *\r
      */\r
-    virtual unsigned short getPaintType()\r
-        { return paintType; }\r
+    SVGCSSRule();\r
 \r
     /**\r
      *\r
      */\r
-    virtual DOMString getUri()\r
-        { return uri; }\r
+    SVGCSSRule(const SVGCSSRule &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setUri (const DOMString& uriArg )\r
-        { uri = uriArg; }\r
+    ~SVGCSSRule();\r
+\r
+};\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGRenderingIntent\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+class SVGRenderingIntent\r
+{\r
+public:\r
 \r
     /**\r
-     *\r
+     * Rendering Intent Types\r
      */\r
-    virtual void setPaint (unsigned short paintTypeArg,\r
-                           const DOMString& uriArg,\r
-                           const DOMString& /*rgbColor*/,\r
-                           const DOMString& /*iccColor*/ )\r
-                           throw( SVGException )\r
+    typedef enum\r
         {\r
-        paintType = paintTypeArg;\r
-        uri       = uriArg;\r
-        //do something with rgbColor\r
-        //do something with iccColor;\r
-        }\r
+        RENDERING_INTENT_UNKNOWN               = 0,\r
+        RENDERING_INTENT_AUTO                  = 1,\r
+        RENDERING_INTENT_PERCEPTUAL            = 2,\r
+        RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3,\r
+        RENDERING_INTENT_SATURATION            = 4,\r
+        RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5\r
+        } RenderingIntentType;\r
 \r
 \r
 \r
@@ -6359,36 +2439,31 @@ public:
     /**\r
      *\r
      */\r
-    SVGPaint()\r
-        {\r
-        uri       = "";\r
-        paintType = SVG_PAINTTYPE_UNKNOWN;\r
-        }\r
+    SVGRenderingIntent();\r
 \r
     /**\r
      *\r
      */\r
-    SVGPaint(const SVGPaint &other) : css::CSSValue(other), SVGColor(other)\r
-        {\r
-        uri       = "";\r
-        paintType = SVG_PAINTTYPE_UNKNOWN;\r
-        }\r
+    SVGRenderingIntent(const SVGRenderingIntent &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGPaint() {}\r
+    ~SVGRenderingIntent();\r
 \r
 protected:\r
 \r
-    unsigned int paintType;\r
-    DOMString uri;\r
-\r
+    unsigned short renderingIntentType;\r
 };\r
 \r
 \r
 \r
 \r
+\r
+\r
+\r
+\r
+\r
 /*#########################################################################\r
 ## SVGColorProfileRule\r
 #########################################################################*/\r
@@ -6401,41 +2476,36 @@ class SVGColorProfileRule : public SVGCSSRule,
 {\r
 \r
 public:\r
+\r
    /**\r
      *\r
      */\r
-    virtual DOMString getSrc()\r
-        { return src; }\r
+    DOMString getSrc();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setSrc(const DOMString &val) throw (DOMException)\r
-        { src = val; }\r
+    void setSrc(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual DOMString getName()\r
-        { return name; }\r
+    DOMString getName();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setName(const DOMString &val) throw (DOMException)\r
-        { name = val; }\r
+    void setName(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    virtual unsigned short getRenderingIntent()\r
-        { return renderingIntent; }\r
+    unsigned short getRenderingIntent();\r
 \r
     /**\r
      *\r
      */\r
-    virtual void setRenderingIntent(unsigned short val) throw (DOMException)\r
-        { renderingIntent = val; }\r
+    void setRenderingIntent(unsigned short val) throw(DOMException)\r
 \r
 \r
     //##################\r
@@ -6445,23 +2515,17 @@ public:
     /**\r
      *\r
      */\r
-    SVGColorProfileRule() {}\r
+    SVGColorProfileRule();\r
 \r
     /**\r
      *\r
      */\r
-    SVGColorProfileRule(const SVGColorProfileRule &other)\r
-               : SVGCSSRule(other), SVGRenderingIntent(other)\r
-        {\r
-        renderingIntent = other.renderingIntent;\r
-        src             = other.src;\r
-        name            = other.name;\r
-        }\r
+    SVGColorProfileRule(const SVGColorProfileRule &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGColorProfileRule() {}\r
+    ~SVGColorProfileRule();\r
 \r
 protected:\r
 \r
@@ -6484,68 +2548,50 @@ class SVGFilterPrimitiveStandardAttributes : public SVGStylable
 {\r
 public:\r
 \r
-\r
-\r
     /**\r
      *\r
      */\r
-    virtual SVGAnimatedLength getX()\r
-        { return x; }\r
+    SVGAnimatedLength getX();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGAnimatedLength getY()\r
-        { return y; }\r
+    SVGAnimatedLength getY();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGAnimatedLength getWidth()\r
-        { return width; }\r
+    SVGAnimatedLength getWidth();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGAnimatedLength getHeight()\r
-        { return height; }\r
+    SVGAnimatedLength getHeight();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGAnimatedString getResult()\r
-        { return result; }\r
-\r
-\r
+    SVGAnimatedString getResult();\r
 \r
     //##################\r
     //# Non-API methods\r
     //##################\r
 \r
-\r
     /**\r
      *\r
      */\r
-    SVGFilterPrimitiveStandardAttributes()\r
-        {}\r
+    SVGFilterPrimitiveStandardAttributes();\r
 \r
     /**\r
      *\r
      */\r
-    SVGFilterPrimitiveStandardAttributes(const SVGFilterPrimitiveStandardAttributes &other)\r
-                                 : SVGStylable(other)\r
-        {\r
-        x      = other.x;\r
-        y      = other.y;\r
-        width  = other.width;\r
-        height = other.height;\r
-        result = other.result;\r
-        }\r
+    SVGFilterPrimitiveStandardAttributes(\r
+                const SVGFilterPrimitiveStandardAttributes &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGFilterPrimitiveStandardAttributes() {}\r
+    ~SVGFilterPrimitiveStandardAttributes();\r
 \r
 protected:\r
 \r
@@ -6558,15 +2604,6 @@ protected:
 };\r
 \r
 \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
 /*#########################################################################\r
 ## SVGEvent\r
 #########################################################################*/\r
@@ -6585,18 +2622,17 @@ public:
     /**\r
      *\r
      */\r
-    SVGEvent() {}\r
+    SVGEvent();\r
 \r
     /**\r
      *\r
      */\r
-    SVGEvent(const SVGEvent &other) : events::Event(other)\r
-        {}\r
+    SVGEvent(const SVGEvent &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGEvent() {}\r
+    ~SVGEvent();\r
 \r
 };\r
 \r
@@ -6617,33 +2653,27 @@ public:
     /**\r
      *\r
      */\r
-    virtual SVGRect getZoomRectScreen()\r
-        { return zoomRectScreen; }\r
+    SVGRect getZoomRectScreen();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getPreviousScale()\r
-        { return previousScale; }\r
+    double getPreviousScale();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGPoint getPreviousTranslate()\r
-        { return previousTranslate; }\r
+    SVGPoint getPreviousTranslate();\r
 \r
     /**\r
      *\r
      */\r
-    virtual double getNewScale()\r
-        { return newScale; }\r
+    double getNewScale();\r
 \r
    /**\r
      *\r
      */\r
-    virtual SVGPoint getNewTranslate()\r
-        { return newTranslate; }\r
-\r
+    SVGPoint getNewTranslate()\r
 \r
 \r
     //##################\r
@@ -6653,26 +2683,17 @@ public:
     /**\r
      *\r
      */\r
-    SVGZoomEvent()\r
-        {}\r
+    SVGZoomEvent();\r
 \r
     /**\r
      *\r
      */\r
-    SVGZoomEvent(const SVGZoomEvent &other) : events::Event(other),\r
-                                              events::UIEvent(other)\r
-        {\r
-        zoomRectScreen    = other.zoomRectScreen;\r
-        previousScale     = other.previousScale;\r
-        previousTranslate = other.previousTranslate;\r
-        newScale          = other.newScale;\r
-        newTranslate      = other.newTranslate;\r
-        }\r
+    SVGZoomEvent(const SVGZoomEvent &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGZoomEvent() {}\r
+    ~SVGZoomEvent();\r
 \r
 protected:\r
 \r
@@ -6700,66 +2721,44 @@ public:
     /**\r
      *\r
      */\r
-    virtual SVGElementPtr getCorrespondingElement()\r
-        { return correspondingElement; }\r
+    SVGElementPtr getCorrespondingElement();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGUseElementPtr getCorrespondingUseElement()\r
-        { return correspondingUseElement; }\r
+    SVGUseElementPtr getCorrespondingUseElement();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGElementInstance getParentNode()\r
-        {\r
-        SVGElementInstance ret;\r
-        return ret;\r
-        }\r
+    SVGElementInstance getParentNode();\r
 \r
     /**\r
      *  Since we are using stack types and this is a circular definition,\r
      *  we will instead implement this as a global function below:\r
      *   SVGElementInstanceList getChildNodes(const SVGElementInstance instance);\r
      */\r
-    //virtual SVGElementInstanceList getChildNodes();\r
+    //SVGElementInstanceList getChildNodes();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGElementInstance getFirstChild()\r
-        {\r
-        SVGElementInstance ret;\r
-        return ret;\r
-        }\r
+    SVGElementInstance getFirstChild();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGElementInstance getLastChild()\r
-        {\r
-        SVGElementInstance ret;\r
-        return ret;\r
-        }\r
+    SVGElementInstance getLastChild();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGElementInstance getPreviousSibling()\r
-        {\r
-        SVGElementInstance ret;\r
-        return ret;\r
-        }\r
+    SVGElementInstance getPreviousSibling();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGElementInstance getNextSibling()\r
-        {\r
-        SVGElementInstance ret;\r
-        return ret;\r
-        }\r
+    SVGElementInstance getNextSibling();\r
 \r
 \r
     //##################\r
@@ -6769,20 +2768,17 @@ public:
     /**\r
      *\r
      */\r
-    SVGElementInstance() {}\r
+    SVGElementInstance();\r
 \r
     /**\r
      *\r
      */\r
-    SVGElementInstance(const SVGElementInstance &other)\r
-                        : events::EventTarget(other)\r
-        {\r
-        }\r
+    SVGElementInstance(const SVGElementInstance &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGElementInstance() {}\r
+    ~SVGElementInstance();\r
 \r
 protected:\r
 \r
@@ -6807,36 +2803,22 @@ class SVGElementInstanceList
 {\r
 public:\r
 \r
-\r
     /**\r
      *\r
      */\r
-    virtual unsigned long getLength()\r
-        { return items.size(); }\r
+    unsigned long getLength();\r
 \r
     /**\r
      *\r
      */\r
-    virtual SVGElementInstance item (unsigned long index )\r
-        {\r
-        if (index >= items.size())\r
-            {\r
-            SVGElementInstance ret;\r
-            return ret;\r
-            }\r
-        return items[index];\r
-        }\r
+    SVGElementInstance item(unsigned long index);\r
 \r
     /**\r
      *  This static method replaces the circular definition of:\r
      *        SVGElementInstanceList SVGElementInstance::getChildNodes()\r
      *\r
      */\r
-    static SVGElementInstanceList getChildNodes(const SVGElementInstance &/*instance*/)\r
-        {\r
-        SVGElementInstanceList list;\r
-        return list;\r
-        }\r
+    static SVGElementInstanceList getChildNodes(const SVGElementInstance &/*instance*/);\r
 \r
 \r
     //##################\r
@@ -6846,138 +2828,29 @@ public:
     /**\r
      *\r
      */\r
-    SVGElementInstanceList() {}\r
+    SVGElementInstanceList();\r
 \r
     /**\r
      *\r
      */\r
-    SVGElementInstanceList(const SVGElementInstanceList &other)\r
-        {\r
-        items = other.items;\r
-        }\r
+    SVGElementInstanceList(const SVGElementInstanceList &other);\r
 \r
     /**\r
      *\r
      */\r
-    virtual ~SVGElementInstanceList() {}\r
-\r
-protected:\r
-\r
-    std::vector<SVGElementInstance> items;\r
-\r
-\r
-};\r
-\r
-\r
-/**\r
- * This is a helper class that will hold several types of data.  It will\r
- * be used in those situations where methods are common to different \r
- * interfaces, except for the data type.\r
- */   \r
-class SVGValue\r
-{\r
-public:\r
-\r
-    typedef enum\r
-        {\r
-        SVG_DOUBLE,\r
-        SVG_INT,\r
-        SVG_STRING\r
-           }SVGValueType;\r
-\r
-    SVGValue(long v)\r
-        {\r
-        init();\r
-        ival = d;\r
-        type = SVG_INT;\r
-           }\r
-       \r
-    SVGValue(double v)\r
-        {\r
-        init();\r
-        dval = v;\r
-        type = SVG_DOUBLE;\r
-           }\r
-       \r
-    SVGValue(const DOMString &v)\r
-        {\r
-        init();\r
-        sval = v;\r
-        type = SVG_STRING;\r
-           }\r
-       \r
-    SVGValue(const SVGValue &other)\r
-        {\r
-        assign(other);\r
-           }\r
-       \r
-    SVGValue &operator=(const SVGValue &other)\r
-        {\r
-        assign(other);\r
-        return *this;\r
-           }\r
-       \r
-    SVGValue &operator=(long v)\r
-        {\r
-        init();\r
-        ival = v;\r
-        type = SVG_INT;\r
-        return *this;\r
-           }\r
-       \r
-    SVGValue &operator=(double v)\r
-        {\r
-        init();\r
-        ival = v;\r
-        type = SVG_DOUBLE;\r
-        return *this;\r
-           }\r
-       \r
-    SVGValue &operator=(const DOMString &v)\r
-        {\r
-        init();\r
-        sval = v;\r
-        type = SVG_STRING;\r
-        return *this;\r
-           }\r
-       \r
-       ~SVGValue()\r
-           {}\r
-           \r
-       long intValue()\r
-           { return ival; }\r
+    ~SVGElementInstanceList();\r
 \r
-       double doubleValue()\r
-           { return ival; }\r
+protected:\r
+\r
+    std::vector<SVGElementInstance> items;\r
+\r
+\r
+};\r
 \r
-       DOMString &stringValue()\r
-           { return sval; }\r
 \r
 \r
-private:\r
 \r
-    void init()\r
-        {\r
-        type = SVG_DOUBLE;\r
-        ival = 0;\r
-               dval = 0.0;    \r
-               sval = "";\r
-           }\r
-       \r
-    void assign(const SVGValue &other)\r
-        {\r
-        type = other.type;\r
-        ival = other.ival;\r
-               dval = other.dval;\r
-               sval = other.sval;\r
-           }\r
-       \r
-       int       type;\r
-       double    dval;\r
-       long      ival;\r
-       DOMString sval;\r
 \r
-};\r
 \r
 \r
 \r
@@ -7146,91 +3019,6 @@ const char *svgElementEnumToStr(int type);
 \r
 \r
 \r
-/*#########################################################################\r
-## SVGValue\r
-#########################################################################*/\r
-\r
-\r
-/**\r
- * A helper class to provide a common API across several data types\r
- */\r
-class SVGValue\r
-{\r
-public:\r
-\r
-    /**\r
-     * Constructors\r
-     */\r
-    SVGValue()\r
-        { init(); }\r
-\r
-    SVGValue(const SVGValue &other)\r
-        { assign(other); }\r
-\r
-    SVGValue(double val)\r
-        { init(); type = SVG_DOUBLE; dval = val; }\r
-\r
-    SVGValue(long val)\r
-        { init(); type = SVG_INT; ival = val; }\r
-\r
-    SVGValue(const DOMString &val)\r
-        { init(); type = SVG_STRING; sval = val; }\r
-\r
-    int getType()\r
-        { return type; }\r
-\r
-    /**\r
-     * Assignment\r
-     */\r
-    SVGValue &operator=(const SVGValue &val)\r
-        { assign(val); return *this; }\r
-\r
-    SVGValue &operator=(double val)\r
-        { init(); type = SVG_DOUBLE; dval = val; return *this; }\r
-\r
-    SVGValue &operator=(long val)\r
-        { init(); type = SVG_INT; ival = val; return *this; }\r
-\r
-    SVGValue &operator=(const DOMString &val)\r
-        { init(); type = SVG_STRING; sval = val; return *this; }\r
-\r
-    /**\r
-     * Getters\r
-     */\r
-    double doubleValue()\r
-        { return dval; }\r
-        \r
-    long intValue()\r
-        { return ival; }\r
-        \r
-    DOMString &stringValue()\r
-        { return sval; }\r
-\r
-private:\r
-\r
-    void init()\r
-        {\r
-        type = SVG_DOUBLE;\r
-        dval = 0.0;\r
-        ival = 0;\r
-        sval.clear();\r
-        }\r
-\r
-    void assign(const SVGValue &other)\r
-        {\r
-        type = other.type;\r
-        dval = other.dval;\r
-        ival = other.ival;\r
-        sval = other.sval;\r
-        }\r
-\r
-    int       type;\r
-    double    dval;\r
-    long      ival;\r
-    DOMString sval;\r
-\r
-};\r
-\r
 \r
 /*#########################################################################\r
 ## SVGElement\r
@@ -7257,7 +3045,7 @@ public:
     /**\r
      * Set the value of the id attribute on the given element.\r
      */\r
-    void setId(const DOMString &val) throw (DOMException);\r
+    void setId(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * Corresponds to attribute xml:base on the given element.\r
@@ -7267,7 +3055,7 @@ public:
     /**\r
      * Corresponds to attribute xml:base on the given element.\r
      */\r
-    void setXmlBase(const DOMString &val) throw (DOMException);\r
+    void setXmlBase(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * The nearest ancestor 'svg' element. Null if the given element is the\r
@@ -7306,7 +3094,7 @@ public:
     /**\r
      *\r
      */\r
-    void setValue(double val) throw (DOMException);\r
+    void setValue(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
@@ -7316,7 +3104,7 @@ public:
     /**\r
      *\r
      */\r
-    void setValueInSpecifiedUnits(double /*val*/) throw (DOMException);\r
+    void setValueInSpecifiedUnits(double /*val*/) throw(DOMException);\r
 \r
     /**\r
      *\r
@@ -7326,7 +3114,7 @@ public:
     /**\r
      *\r
      */\r
-    void setValueAsString(const DOMString &/*val*/) throw (DOMException);\r
+    void setValueAsString(const DOMString &/*val*/) throw(DOMException);\r
 \r
 \r
     /**\r
@@ -7341,170 +3129,85 @@ public:
     void convertToSpecifiedUnits(unsigned short /*unitType*/);\r
 \r
     //####################################################################\r
-    //# SVGAnimatedAngle            \r
+    //## The following animated types are rolled up into a single\r
+    //## SVGAnimatedValue interface\r
     //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    SVGAngle getBaseAngleVal();\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAngle getAnimAngleVal();\r
-\r
-\r
     //####################################################################\r
-    //# SVGAnimatedBoolean          \r
+    //## SVGAnimatedAngle\r
     //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    bool getBaseBooleanVal();\r
-\r
-    /**\r
-     *\r
-     */\r
-    void setBaseBooleanVal(bool val) throw (DOMException);\r
-\r
-    /**\r
-     *\r
-     */\r
-    bool getAnimBooleanVal();\r
-\r
     //####################################################################\r
-    //# SVGAnimatedEnumeration      \r
+    //## SVGAnimatedBoolean\r
     //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    unsigned short getBaseEnumerationVal();\r
-\r
-    /**\r
-     *\r
-     */\r
-    void setBaseEnumerationVal(unsigned short val) throw (DOMException);\r
-\r
-    /**\r
-     *\r
-     */\r
-    unsigned short getAnimEnumerationVal();\r
-\r
     //####################################################################\r
-    //# SVGAnimatedInteger          \r
+    //## SVGAnimatedEnumeration\r
     //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    long getBaseIntegerVal();\r
-\r
-    /**\r
-     *\r
-     */\r
-    void setBaseIntegerVal(long val) throw (DOMException);\r
-\r
-    /**\r
-     *\r
-     */\r
-    long getAnimIntegerVal();\r
-\r
     //####################################################################\r
-    //# SVGAnimatedLength           \r
+    //## SVGAnimatedInteger\r
     //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    SVGLength &getBaseLengthVal();\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGLength &getAnimLengthVal();\r
-\r
     //####################################################################\r
-    //# SVGAnimatedLengthList       \r
+    //## SVGAnimatedLength\r
     //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    SVGLengthList &getBaseLengthListVal();\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGLengthList &getAnimLengthListVal();\r
-\r
     //####################################################################\r
-    //# SVGAnimatedNumber           \r
+    //## SVGAnimatedLengthList\r
     //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    double getBaseNumberVal();\r
-\r
-    /**\r
-     *\r
-     */\r
-    void setBaseNumberVal(double val) throw (DOMException);\r
+    //####################################################################\r
+    //## SVGAnimatedNumber\r
+    //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    double getAnimNumberVal();\r
+    //####################################################################\r
+    //## SVGAnimatedNumberList\r
+    //####################################################################\r
 \r
     //####################################################################\r
-    //# SVGAnimatedNumberList       \r
+    //## SVGAnimatedPathData\r
     //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    SVGNumberList &getBaseNumberListVal();\r
+    //####################################################################\r
+    //## SVGAnimatedPoints\r
+    //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    SVGNumberList &getAnimNumberListVal();\r
+    //####################################################################\r
+    //## SVGAnimatedPreserveAspectRatio\r
+    //####################################################################\r
 \r
     //####################################################################\r
-    //# SVGAnimatedRect             \r
+    //## SVGAnimatedRect\r
     //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    SVGRect &getBaseRectVal();\r
+    //####################################################################\r
+    //## SVGAnimatedString\r
+    //####################################################################\r
 \r
-    /**\r
-     *\r
-     */\r
-    SVGRect &getAnimRectVal();\r
+    //####################################################################\r
+    //## SVGAnimatedTransformList\r
+    //####################################################################\r
 \r
     //####################################################################\r
-    //# SVGAnimatedString           \r
+    //# SVGAnimatedValue          \r
     //####################################################################\r
 \r
     /**\r
      *\r
      */\r
-    DOMString getBaseVal();\r
+    SVGValue &getBaseVal();\r
 \r
     /**\r
      *\r
      */\r
-    void setBaseVal(const DOMString &val) throw (DOMException);\r
+    void setBaseVal(const SVGValue &val) throw (DOMException);\r
 \r
     /**\r
      *\r
      */\r
-    DOMString getAnimVal();\r
+    SVGValue &getAnimVal();\r
+\r
 \r
     //####################################################################\r
     //# SVGColor                    \r
@@ -7527,7 +3230,7 @@ public:
      * A string representation of the current value.\r
      * Note that setting implies parsing.     \r
      */\r
-    void setCssText(const DOMString &val) throw (dom::DOMException);\r
+    void setCssText(const DOMString &val) throw(dom::DOMException);\r
 \r
 \r
     /**\r
@@ -7549,14 +3252,14 @@ public:
     /**\r
      *\r
      */\r
-    void setRGBColor(const DOMString& /*rgbColor*/) throw (SVGException);\r
+    void setRGBColor(const DOMString& /*rgbColor*/) throw(SVGException);\r
 \r
     /**\r
      *\r
      */\r
     void setRGBColorICCColor(const DOMString& /*rgbColor*/,\r
                              const DOMString& /*iccColor*/)\r
-                             throw (SVGException);\r
+                             throw(SVGException);\r
 \r
     /**\r
      *\r
@@ -7564,7 +3267,7 @@ public:
     void setColor(unsigned short /*colorType*/,\r
                            const DOMString& /*rgbColor*/,\r
                            const DOMString& /*iccColor*/)\r
-                           throw (SVGException);\r
+                           throw(SVGException);\r
 \r
     //####################################################################\r
     //# SVGCSSRule                  \r
@@ -7591,7 +3294,7 @@ public:
      * state of the rule and not its initial value.\r
      * Note that setting involves reparsing.     \r
      */\r
-    void setCssText(const DOMString &val) throw (DOMException);\r
+    void setCssText(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * From CSSRule    \r
@@ -7642,7 +3345,7 @@ public:
     /**\r
      *\r
      */\r
-    void setColorProfile(const DOMString &val) throw (DOMException);\r
+    void setColorProfile(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      *\r
@@ -7661,7 +3364,7 @@ public:
     /**\r
      *\r
      */\r
-    void setXmllang(const DOMString &val) throw (DOMException);\r
+    void setXmllang(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      *\r
@@ -7671,7 +3374,7 @@ public:
     /**\r
      *\r
      */\r
-    void setXmlspace(const DOMString &val) throw (DOMException);\r
+    void setXmlspace(const DOMString &val) throw(DOMException);\r
 \r
     //####################################################################\r
     //# SVGLength                   \r
@@ -7690,7 +3393,7 @@ public:
     /**\r
      *\r
      */\r
-    void setValue(double val) throw (DOMException);\r
+    void setValue(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
@@ -7700,7 +3403,7 @@ public:
     /**\r
      *\r
      */\r
-    void setValueInSpecifiedUnits(double /*val*/) throw (DOMException);\r
+    void setValueInSpecifiedUnits(double /*val*/) throw(DOMException);\r
 \r
     /**\r
      *\r
@@ -7710,7 +3413,7 @@ public:
     /**\r
      *\r
      */\r
-    void setValueAsString(const DOMString& /*val*/) throw (DOMException);\r
+    void setValueAsString(const DOMString& /*val*/) throw(DOMException);\r
 \r
 \r
     /**\r
@@ -7736,41 +3439,41 @@ public:
     /**\r
      *\r
      */\r
-    void clear() throw (DOMException);\r
+    void clear() throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
     SVGLength initialize(const SVGLength &newItem)\r
-                    throw (DOMException, SVGException);\r
+                    throw(DOMException, SVGException);\r
 \r
     /**\r
      *\r
      */\r
-    SVGLength getItem(unsigned long index) throw (DOMException);\r
+    SVGLength getItem(unsigned long index) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
     SVGLength insertItemBefore(const SVGLength &newItem, unsigned long index)\r
-                                   throw (DOMException, SVGException);\r
+                                   throw(DOMException, SVGException);\r
 \r
     /**\r
      *\r
      */\r
     SVGLength replaceItem(const SVGLength &newItem, unsigned long index)\r
-                               throw (DOMException, SVGException);\r
+                               throw(DOMException, SVGException);\r
 \r
     /**\r
      *\r
      */\r
-    SVGLength removeItem(unsigned long index) throw (DOMException);\r
+    SVGLength removeItem(unsigned long index) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
     SVGLength appendItem(const SVGLength &newItem)\r
-                    throw (DOMException, SVGException);\r
+                    throw(DOMException, SVGException);\r
 \r
     //####################################################################\r
     //# SVGLocatable                \r
@@ -7805,7 +3508,7 @@ public:
      *\r
      */\r
     SVGMatrix getTransformToElement(const SVGElement &/*element*/)\r
-                                    throw (SVGException);\r
+                                    throw(SVGException);\r
 \r
     //####################################################################\r
     //# SVGNumber                   \r
@@ -7819,7 +3522,7 @@ public:
     /**\r
      *\r
      */\r
-    void setValue(double val) throw (DOMException);\r
+    void setValue(double val) throw(DOMException);\r
 \r
     //####################################################################\r
     //# SVGNumberList               \r
@@ -7834,41 +3537,41 @@ public:
     /**\r
      *\r
      */\r
-    void clear() throw (DOMException);\r
+    void clear() throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
     SVGNumber initialize(const SVGNumber &newItem)\r
-                    throw (DOMException, SVGException);\r
+                    throw(DOMException, SVGException);\r
 \r
     /**\r
      *\r
      */\r
-    SVGNumber getItem(unsigned long index) throw (DOMException);\r
+    SVGNumber getItem(unsigned long index) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
     SVGNumber insertItemBefore(const SVGNumber &newItem, unsigned long index)\r
-                                         throw (DOMException, SVGException);\r
+                                         throw(DOMException, SVGException);\r
 \r
     /**\r
      *\r
      */\r
     SVGNumber replaceItem(const SVGNumber &newItem, unsigned long index)\r
-                          throw (DOMException, SVGException);\r
+                          throw(DOMException, SVGException);\r
 \r
     /**\r
      *\r
      */\r
-    SVGNumber removeItem(unsigned long index) throw (DOMException);\r
+    SVGNumber removeItem(unsigned long index) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
     SVGNumber appendItem(const SVGNumber &newItem)\r
-                                   throw (DOMException, SVGException);\r
+                                   throw(DOMException, SVGException);\r
 \r
     //####################################################################\r
     //# SVGRect                     \r
@@ -7882,7 +3585,7 @@ public:
     /**\r
      *\r
      */\r
-    void setX(double val) throw (DOMException);\r
+    void setX(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
@@ -7892,7 +3595,7 @@ public:
     /**\r
      *\r
      */\r
-    void setY(double val) throw (DOMException);\r
+    void setY(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
@@ -7902,7 +3605,7 @@ public:
     /**\r
      *\r
      */\r
-    void setWidth(double val) throw (DOMException);\r
+    void setWidth(double val) throw(DOMException);\r
 \r
     /**\r
      *\r
@@ -7912,7 +3615,7 @@ public:
     /**\r
      *\r
      */\r
-    void setHeight(double val) throw (DOMException);\r
+    void setHeight(double val) throw(DOMException);\r
 \r
     //####################################################################\r
     //# SVGRenderingIntent          \r
@@ -7930,41 +3633,41 @@ public:
     /**\r
      *\r
      */\r
-    void clear() throw (DOMException);\r
+    void clear() throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
     DOMString initialize(const DOMString& newItem)\r
-                    throw (DOMException, SVGException);\r
+                    throw(DOMException, SVGException);\r
 \r
     /**\r
      *\r
      */\r
-    DOMString getItem(unsigned long index) throw (DOMException);\r
+    DOMString getItem(unsigned long index) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
     DOMString insertItemBefore(const DOMString& newItem, unsigned long index)\r
-                               throw (DOMException, SVGException);\r
+                               throw(DOMException, SVGException);\r
 \r
     /**\r
      *\r
      */\r
     DOMString replaceItem(const DOMString& newItem, unsigned long index)\r
-                                throw (DOMException, SVGException);\r
+                                throw(DOMException, SVGException);\r
 \r
     /**\r
      *\r
      */\r
-    DOMString removeItem(unsigned long index) throw (DOMException);\r
+    DOMString removeItem(unsigned long index) throw(DOMException);\r
 \r
     /**\r
      *\r
      */\r
     DOMString appendItem(const DOMString& newItem)\r
-                    throw (DOMException, SVGException);\r
+                    throw(DOMException, SVGException);\r
 \r
     //####################################################################\r
     //# SVGStylable                 \r
@@ -8077,7 +3780,7 @@ public:
     /**\r
      *\r
      */\r
-    void setZoomAndPan(unsigned short val) throw (DOMException);\r
+    void setZoomAndPan(unsigned short val) throw(DOMException);\r
 \r
     //####################################################################\r
     //####################################################################\r
@@ -8110,7 +3813,7 @@ public:
     /**\r
      * Set the attribute glyphRef on the given element.\r
      */\r
-    void setGlyphRef(const DOMString &val) throw (DOMException);\r
+    void setGlyphRef(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * Get the attribute format on the given element.\r
@@ -8120,7 +3823,7 @@ public:
     /**\r
      * Set the attribute format on the given element.\r
      */\r
-    void setFormat(const DOMString &val) throw (DOMException);\r
+    void setFormat(const DOMString &val) throw(DOMException);\r
 \r
 \r
     //####################################################################\r
@@ -8174,7 +3877,7 @@ public:
     /**\r
      *\r
      */\r
-    double getSimpleDuration() throw (DOMException);\r
+    double getSimpleDuration() throw(DOMException);\r
 \r
 \r
 \r
@@ -8223,7 +3926,7 @@ public:
     /**\r
      * Set the attribute local on the given element.\r
      */\r
-    void setLocal(const DOMString &val) throw (DOMException);\r
+    void setLocal(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * Get the attribute name on the given element.\r
@@ -8233,7 +3936,7 @@ public:
     /**\r
      * Set the attribute name on the given element.\r
      */\r
-    void setName(const DOMString &val) throw (DOMException);\r
+    void setName(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * Set the attribute rendering-intent on the given element.\r
@@ -8245,7 +3948,7 @@ public:
     /**\r
      * Get the attribute rendering-intent on the given element.\r
      */\r
-    void setRenderingIntent(unsigned short val) throw (DOMException);\r
+    void setRenderingIntent(unsigned short val) throw(DOMException);\r
 \r
 \r
     //####################################################################\r
@@ -9074,7 +4777,7 @@ public:
     /**\r
      * Set the attribute glyphRef on the given element.\r
      */\r
-    void setGlyphRef(const DOMString &val) throw (DOMException);\r
+    void setGlyphRef(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * Get the attribute format on the given element.\r
@@ -9084,7 +4787,7 @@ public:
     /**\r
      * Set the attribute format on the given element.\r
      */\r
-    void setFormat(const DOMString &val) throw (DOMException);\r
+    void setFormat(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * Get the attribute x on the given element.\r
@@ -9094,7 +4797,7 @@ public:
     /**\r
      * Set the attribute x on the given element.\r
      */\r
-    void setX(double val) throw (DOMException);\r
+    void setX(double val) throw(DOMException);\r
 \r
     /**\r
      * Get the attribute y on the given element.\r
@@ -9104,7 +4807,7 @@ public:
     /**\r
      * Set the attribute y on the given element.\r
      */\r
-    void setY(double val) throw (DOMException);\r
+    void setY(double val) throw(DOMException);\r
 \r
     /**\r
      * Get the attribute dx on the given element.\r
@@ -9114,7 +4817,7 @@ public:
     /**\r
      * Set the attribute dx on the given element.\r
      */\r
-    void setDx(double val) throw (DOMException);\r
+    void setDx(double val) throw(DOMException);\r
 \r
     /**\r
      * Get the attribute dy on the given element.\r
@@ -9124,7 +4827,7 @@ public:
     /**\r
      * Set the attribute dy on the given element.\r
      */\r
-    void setDy(double val) throw (DOMException);\r
+    void setDy(double val) throw(DOMException);\r
 \r
 \r
     //####################################################################\r
@@ -9367,65 +5070,12 @@ public:
     //####################################################################\r
 \r
     //####################################################################\r
-    //# SVGMPathElement\r
-    //####################################################################\r
-\r
-    //####################################################################\r
-    //# SVGPathElement\r
-    //####################################################################\r
-\r
-    //####################################################################\r
-    //# SVGPatternElement\r
-    //####################################################################\r
-\r
-    /**\r
-     * Corresponds to attribute patternUnits on the given 'pattern' element.\r
-     * Takes one of the constants defined in SVGUnitTypes.\r
-     */\r
-    SVGAnimatedEnumeration getPatternUnits();\r
-\r
-    /**\r
-     * Corresponds to attribute patternContentUnits on the given 'pattern'\r
-     *      element. Takes one of the constants defined in SVGUnitTypes.\r
-     */\r
-    SVGAnimatedEnumeration getPatternContentUnits();\r
-\r
-    /**\r
-     * Corresponds to attribute patternTransform on the given 'pattern' element.\r
-     */\r
-    SVGAnimatedTransformList getPatternTransform();\r
-\r
-    /**\r
-     * Corresponds to attribute x on the given 'pattern' element.\r
-     */\r
-    SVGAnimatedLength getX();\r
-\r
-    /**\r
-     *\r
-     */\r
-    SVGAnimatedLength getY();\r
-\r
-    /**\r
-     * Corresponds to attribute width on the given 'pattern' element.\r
-     */\r
-    SVGAnimatedLength getWidth();\r
-\r
-    /**\r
-     * Corresponds to attribute height on the given 'pattern' element.\r
-     */\r
-    SVGAnimatedLength getHeight();\r
-\r
-\r
-    //####################################################################\r
-    //# SVGPolyLineElement\r
+    //# SVGMissingGlyphElement\r
     //####################################################################\r
 \r
-    //####################################################################\r
-    //# SVGPolygonElement\r
-    //####################################################################\r
 \r
     //####################################################################\r
-    //# SVGMissingGlyphElement\r
+    //# SVGMPathElement\r
     //####################################################################\r
 \r
     /**\r
@@ -9455,130 +5105,164 @@ public:
     /**\r
      * Returns a stand-alone, parentless SVGPathSegClosePath object.\r
      */\r
-    SVGPathSegClosePath\r
-              createSVGPathSegClosePath();\r
+    SVGPathSeg createSVGPathSegClosePath();\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegMovetoAbs object.\r
      */\r
-    SVGPathSegMovetoAbs\r
-              createSVGPathSegMovetoAbs(double x, double y);\r
+    SVGPathSeg createSVGPathSegMovetoAbs(double x, double y);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegMovetoRel object.\r
      */\r
-    SVGPathSegMovetoRel\r
-              createSVGPathSegMovetoRel(double x, double y);\r
+    SVGPathSeg createSVGPathSegMovetoRel(double x, double y);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegLinetoAbs object.\r
      */\r
-    SVGPathSegLinetoAbs\r
-              createSVGPathSegLinetoAbs(double x, double y);\r
+    SVGPathSeg createSVGPathSegLinetoAbs(double x, double y);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegLinetoRel object.\r
      */\r
-    SVGPathSegLinetoRel\r
-              createSVGPathSegLinetoRel(double x, double y);\r
+    SVGPathSeg createSVGPathSegLinetoRel(double x, double y);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object.\r
      */\r
-    SVGPathSegCurvetoCubicAbs\r
-              createSVGPathSegCurvetoCubicAbs(double x, double y,\r
+    SVGPathSeg createSVGPathSegCurvetoCubicAbs(double x, double y,\r
                         double x1, double y1, double x2, double y2);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegCurvetoCubicRel object.\r
      */\r
-    SVGPathSegCurvetoCubicRel\r
-              createSVGPathSegCurvetoCubicRel(double x, double y,\r
+    SVGPathSeg createSVGPathSegCurvetoCubicRel(double x, double y,\r
                         double x1, double y1, double x2, double y2);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object.\r
      */\r
-    SVGPathSegCurvetoQuadraticAbs\r
-              createSVGPathSegCurvetoQuadraticAbs(double x, double y,\r
+    SVGPathSeg createSVGPathSegCurvetoQuadraticAbs(double x, double y,\r
                          double x1, double y1);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object.\r
      */\r
-    SVGPathSegCurvetoQuadraticRel\r
-              createSVGPathSegCurvetoQuadraticRel(double x, double y,\r
+    SVGPathSeg createSVGPathSegCurvetoQuadraticRel(double x, double y,\r
                          double x1, double y1);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegArcAbs object.\r
      */\r
-    SVGPathSegArcAbs\r
-              createSVGPathSegArcAbs(double x, double y,\r
+    SVGPathSeg createSVGPathSegArcAbs(double x, double y,\r
                          double r1, double r2, double angle,\r
                          bool largeArcFlag, bool sweepFlag);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegArcRel object.\r
      */\r
-    SVGPathSegArcRel\r
-              createSVGPathSegArcRel(double x, double y, double r1,\r
+    SVGPathSeg createSVGPathSegArcRel(double x, double y, double r1,\r
                          double r2, double angle, bool largeArcFlag,\r
                          bool sweepFlag);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalAbs object.\r
      */\r
-    SVGPathSegLinetoHorizontalAbs\r
-              createSVGPathSegLinetoHorizontalAbs(double x);\r
+    SVGPathSeg createSVGPathSegLinetoHorizontalAbs(double x);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object.\r
      */\r
-    SVGPathSegLinetoHorizontalRel\r
-              createSVGPathSegLinetoHorizontalRel(double x);\r
+    SVGPathSeg createSVGPathSegLinetoHorizontalRel(double x);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object.\r
      */\r
-    SVGPathSegLinetoVerticalAbs\r
-              createSVGPathSegLinetoVerticalAbs(double y);\r
+    SVGPathSeg createSVGPathSegLinetoVerticalAbs(double y);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object.\r
      */\r
-    SVGPathSegLinetoVerticalRel\r
-              createSVGPathSegLinetoVerticalRel(double y);\r
+    SVGPathSeg createSVGPathSegLinetoVerticalRel(double y);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object.\r
      */\r
-    SVGPathSegCurvetoCubicSmoothAbs\r
-              createSVGPathSegCurvetoCubicSmoothAbs(double x, double y,\r
+    SVGPathSeg createSVGPathSegCurvetoCubicSmoothAbs(double x, double y,\r
                                              double x2, double y2);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object.\r
      */\r
-    SVGPathSegCurvetoCubicSmoothRel\r
-              createSVGPathSegCurvetoCubicSmoothRel(double x, double y,\r
+    SVGPathSeg createSVGPathSegCurvetoCubicSmoothRel(double x, double y,\r
                                                       double x2, double y2);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs\r
      *      object.\r
      */\r
-    SVGPathSegCurvetoQuadraticSmoothAbs\r
-              createSVGPathSegCurvetoQuadraticSmoothAbs(double x, double y);\r
+    SVGPathSeg createSVGPathSegCurvetoQuadraticSmoothAbs(double x, double y);\r
 \r
     /**\r
      * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel\r
      *      object.\r
      */\r
-    SVGPathSegCurvetoQuadraticSmoothRel\r
-              createSVGPathSegCurvetoQuadraticSmoothRel(double x, double y);\r
+    SVGPathSeg createSVGPathSegCurvetoQuadraticSmoothRel(double x, double y);\r
+\r
+    //####################################################################\r
+    //# SVGPathElement\r
+    //####################################################################\r
+\r
+    //####################################################################\r
+    //# SVGPatternElement\r
+    //####################################################################\r
+\r
+    /**\r
+     * Corresponds to attribute patternUnits on the given 'pattern' element.\r
+     * Takes one of the constants defined in SVGUnitTypes.\r
+     */\r
+    SVGAnimatedEnumeration getPatternUnits();\r
+\r
+    /**\r
+     * Corresponds to attribute patternContentUnits on the given 'pattern'\r
+     *      element. Takes one of the constants defined in SVGUnitTypes.\r
+     */\r
+    SVGAnimatedEnumeration getPatternContentUnits();\r
+\r
+    /**\r
+     * Corresponds to attribute patternTransform on the given 'pattern' element.\r
+     */\r
+    SVGAnimatedTransformList getPatternTransform();\r
+\r
+    /**\r
+     * Corresponds to attribute x on the given 'pattern' element.\r
+     */\r
+    SVGAnimatedLength getX();\r
+\r
+    /**\r
+     *\r
+     */\r
+    SVGAnimatedLength getY();\r
+\r
+    /**\r
+     * Corresponds to attribute width on the given 'pattern' element.\r
+     */\r
+    SVGAnimatedLength getWidth();\r
+\r
+    /**\r
+     * Corresponds to attribute height on the given 'pattern' element.\r
+     */\r
+    SVGAnimatedLength getHeight();\r
 \r
 \r
+    //####################################################################\r
+    //# SVGPolyLineElement\r
+    //####################################################################\r
+\r
+    //####################################################################\r
+    //# SVGPolygonElement\r
+    //####################################################################\r
+\r
     //####################################################################\r
     //# SVGRadialGradientElement\r
     //####################################################################\r
@@ -9662,7 +5346,7 @@ public:
     /**\r
      *\r
      */\r
-    void setType(const DOMString &val) throw (DOMException);\r
+    void setType(const DOMString &val) throw(DOMException);\r
 \r
     //####################################################################\r
     //# SVGSetElement\r
@@ -9691,7 +5375,7 @@ public:
     /**\r
      * Set the attribute xml:space on the given element.\r
      */\r
-    void setXmlspace(const DOMString &val) throw (DOMException);\r
+    void setXmlspace(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * Get the attribute type on the given 'style' element.\r
@@ -9701,7 +5385,7 @@ public:
     /**\r
      * Set the attribute type on the given 'style' element.\r
      */\r
-    void setType(const DOMString &val) throw (DOMException);\r
+    void setType(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * Get the attribute media on the given 'style' element.\r
@@ -9711,7 +5395,7 @@ public:
     /**\r
      * Set the attribute media on the given 'style' element.\r
      */\r
-    void setMedia(const DOMString &val) throw (DOMException);\r
+    void setMedia(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * Get the attribute title on the given 'style' element.\r
@@ -9721,7 +5405,7 @@ public:
     /**\r
      * Set the attribute title on the given 'style' element.\r
      */\r
-    void setTitle(const DOMString &val) throw (DOMException);\r
+    void setTitle(const DOMString &val) throw(DOMException);\r
 \r
     //####################################################################\r
     //# SVGSymbolElement\r
@@ -9759,7 +5443,7 @@ public:
     /**\r
      * Set the attribute contentScriptType on the given 'svg' element.\r
      */\r
-    void setContentScriptType(const DOMString &val) throw (DOMException);\r
+    void setContentScriptType(const DOMString &val) throw(DOMException);\r
 \r
 \r
     /**\r
@@ -9770,7 +5454,7 @@ public:
     /**\r
      * Set the attribute contentStyleType on the given 'svg' element.\r
      */\r
-    void setContentStyleType(const DOMString &val) throw (DOMException);\r
+    void setContentStyleType(const DOMString &val) throw(DOMException);\r
 \r
     /**\r
      * The position and size of the viewport(implicit or explicit) that corresponds\r
@@ -9830,7 +5514,7 @@ public:
     /**\r
      * Set the value above\r
      */\r
-    void setUseCurrentView(bool val) throw (DOMException);\r
+    void setUseCurrentView(bool val) throw(DOMException);\r
 \r
     /**\r
      * The definition of the initial view(i.e., before magnification and panning) of\r
@@ -9879,7 +5563,7 @@ public:
     /**\r
      *  Set the value above.\r
      */\r
-    void setCurrentScale(double val) throw (DOMException);\r
+    void setCurrentScale(double val) throw(DOMException);\r
 \r
     /**\r
      * The corresponding translation factor that takes into account\r
@@ -9907,7 +5591,7 @@ public:
     /**\r
      * Cancels a specified suspendRedraw() by providing a unique suspend_handle_id.\r
      */\r
-    void unsuspendRedraw(unsigned long suspend_handle_id) throw (DOMException);\r
+    void unsuspendRedraw(unsigned long suspend_handle_id) throw(DOMException);\r
 \r
     /**\r
      * Cancels all currently active suspendRedraw() method calls. This method is most\r
@@ -10029,14 +5713,14 @@ public:
     /**\r
      * Creates an SVGTransform object outside of any document trees.\r
      * The object is initialized to an identity matrix transform\r
-     *     (SVG_TRANSFORM_MATRIX).\r
+     *    (SVG_TRANSFORM_MATRIX).\r
      */\r
     SVGTransform createSVGTransform();\r
 \r
     /**\r
      * Creates an SVGTransform object outside of any document trees.\r
      * The object is initialized to the given matrix transform\r
-     *     (i.e., SVG_TRANSFORM_MATRIX).\r
+     *    (i.e., SVG_TRANSFORM_MATRIX).\r
      */\r
     SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix);\r
 \r
@@ -10108,7 +5792,7 @@ public:
      * assumptions about glyph metrics.\r
      */\r
     double getSubStringLength(unsigned long charnum, unsigned long nchars)\r
-                                     throw (DOMException);\r
+                                     throw(DOMException);\r
 \r
     /**\r
      * Returns the current text position before rendering the character in the user\r
@@ -10120,7 +5804,7 @@ public:
      * a single glyph or a sequence of glyphs), then each of the inseparable\r
      * characters will return the start position for the first glyph.\r
      */\r
-    SVGPoint getStartPositionOfChar(unsigned long charnum) throw (DOMException);\r
+    SVGPoint getStartPositionOfChar(unsigned long charnum) throw(DOMException);\r
 \r
     /**\r
      * Returns the current text position after rendering the character in the user\r
@@ -10132,7 +5816,7 @@ public:
      * inseparably(e.g., as a single glyph or a sequence of glyphs), then each of\r
      * the inseparable characters will return the end position for the last glyph.\r
      */\r
-    SVGPoint getEndPositionOfChar(unsigned long charnum) throw (DOMException);\r
+    SVGPoint getEndPositionOfChar(unsigned long charnum) throw(DOMException);\r
 \r
     /**\r
      * Returns a tightest rectangle which defines the minimum and maximum X and Y\r
@@ -10142,7 +5826,7 @@ public:
      * characters are rendered inseparably(e.g., as a single glyph or a sequence of\r
      * glyphs), then each of the inseparable characters will return the same extent.\r
      */\r
-    SVGRect getExtentOfChar(unsigned long charnum) throw (DOMException);\r
+    SVGRect getExtentOfChar(unsigned long charnum) throw(DOMException);\r
 \r
     /**\r
      * Returns the rotation value relative to the current user coordinate system used\r
@@ -10158,7 +5842,7 @@ public:
      *(e.g., as a single glyph or a sequence of glyphs), then each of the\r
      * inseparable characters will return the same rotation value.\r
      */\r
-    double getRotationOfChar(unsigned long charnum) throw (DOMException);\r
+    double getRotationOfChar(unsigned long charnum) throw(DOMException);\r
 \r
     /**\r
      * Returns the index of the character whose corresponding glyph cell bounding box\r
@@ -10179,7 +5863,7 @@ public:
      *      selected the substring interactively.\r
      */\r
     void selectSubString(unsigned long charnum, unsigned long nchars)\r
-                                  throw (DOMException);\r
+                                  throw(DOMException);\r
 \r
 \r
 \r
@@ -10444,7 +6128,7 @@ public:
      * Returns the SVGDocument  object for the referenced SVG document.\r
      */\r
     SVGDocumentPtr getSVGDocument()\r
-                    throw (DOMException);\r
+                    throw(DOMException);\r
 \r
     //##################\r
     //# Non-API methods\r
diff --git a/src/dom/work/svg2.cpp b/src/dom/work/svg2.cpp
new file mode 100644 (file)
index 0000000..acbdf2a
--- /dev/null
@@ -0,0 +1,7049 @@
+/**\r
+ * Phoebe DOM Implementation.\r
+ *\r
+ * This is a C++ approximation of the W3C DOM model, which follows\r
+ * fairly closely the specifications in the various .idl files, copies of\r
+ * which are provided for reference.  Most important is this one:\r
+ *\r
+ * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html\r
+ *\r
+ * Authors:\r
+ *   Bob Jamison\r
+ *\r
+ * Copyright(C) 2005-2008 Bob Jamison\r
+ *\r
+ *  This library is free software; you can redistribute it and/or\r
+ *  modify it under the terms of the GNU Lesser General Public\r
+ *  License as published by the Free Software Foundation; either\r
+ *  version 2.1 of the License, or(at your option) any later version.\r
+ *\r
+ *  This library is distributed in the hope that it will be useful,\r
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+ *  Lesser General Public License for more details.\r
+ *\r
+ *  You should have received a copy of the GNU Lesser General Public\r
+ *  License along with this library; if not, write to the Free Software\r
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
+ *\r
+ * =======================================================================\r
+ * NOTES\r
+ *\r
+ * This API follows:\r
+ * http://www.w3.org/TR/SVG11/svgdom.html\r
+ *\r
+ * This file defines the main SVG-DOM Node types.  Other non-Node types are\r
+ * defined in svgtypes.h.\r
+ *    \r
+ */\r
+\r
+#include "svg.h"\r
+\r
+#include <math.h>\r
+\r
+\r
+namespace org\r
+{\r
+namespace w3c\r
+{\r
+namespace dom\r
+{\r
+namespace svg\r
+{\r
+\r
+\r
+\r
+//########################################################################\r
+//########################################################################\r
+//########################################################################\r
+//#   I N T E R F A C E S\r
+//########################################################################\r
+//########################################################################\r
+//########################################################################\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGMatrix\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGMatrix::getA()\r
+{ \r
+    return a;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGMatrix::setA(double val) throw (DOMException)\r
+{ \r
+    a = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGMatrix::getB()\r
+{\r
+    return b;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGMatrix::setB(double val) throw (DOMException)\r
+{\r
+    b = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGMatrix::getC()\r
+{\r
+    return c;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGMatrix::setC(double val) throw (DOMException)\r
+{\r
+    c = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGMatrix::getD()\r
+{\r
+    return d;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGMatrix::setD(double val) throw (DOMException)\r
+{\r
+    d = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGMatrix::getE()\r
+{\r
+    return e;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGMatrix::setE(double val) throw (DOMException)\r
+{\r
+    e = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGMatrix::getF()\r
+{\r
+    return f;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGMatrix::setF(double val) throw (DOMException)\r
+{\r
+    f = val;\r
+}\r
+\r
+\r
+/**\r
+ * Return the result of postmultiplying this matrix with another.\r
+ */\r
+SVGMatrix SVGMatrix::multiply(const SVGMatrix &other)\r
+{\r
+    SVGMatrix result;\r
+    result.a = a * other.a  +  c * other.b;\r
+    result.b = b * other.a  +  d * other.b;\r
+    result.c = a * other.c  +  c * other.d;\r
+    result.d = b * other.c  +  d * other.d;\r
+    result.e = a * other.e  +  c * other.f  +  e;\r
+    result.f = b * other.e  +  d * other.f  +  f;\r
+    return result;\r
+}\r
+\r
+/**\r
+ *  Calculate the inverse of this matrix\r
+ *\r
+ */\r
+SVGMatrix SVGMatrix::inverse() throw (SVGException)\r
+{\r
+    /*###########################################\r
+    The determinant of a 3x3 matrix E\r
+       (let's use our own notation for a bit)\r
+\r
+        A  B  C\r
+        D  E  F\r
+        G  H  I\r
+    is\r
+        AEI - AFH - BDI + BFG + CDH - CEG\r
+\r
+    Since in our affine transforms, G and H==0 and I==1,\r
+    this reduces to:\r
+        AE - BD\r
+    In SVG's naming scheme, that is:  a * d - c * b .  SIMPLE!\r
+\r
+    In a similar method of attack, SVG's adjunct matrix is:\r
+\r
+       d  -c   cf-ed\r
+      -b   a   eb-af\r
+       0   0   ad-cb\r
+\r
+    To get the inverse matrix, we divide the adjunct matrix by\r
+    the determinant.  Notice that (ad-cb)/(ad-cb)==1.  Very cool.\r
+    So what we end up with is this:\r
+\r
+       a =  d/(ad-cb)  c = -c/(ad-cb)   e = (cf-ed)/(ad-cb)\r
+       b = -b/(ad-cb)  d =  a/(ad-cb)   f = (eb-af)/(ad-cb)\r
+\r
+    (Since this would be in all SVG-DOM implementations,\r
+     somebody needed to document this!  ^^)\r
+    #############################################*/\r
+\r
+    SVGMatrix result;\r
+    double determinant = a * d  -  c * b;\r
+    if (determinant < 1.0e-18)//invertible?\r
+        {\r
+        result.identity();//cop out\r
+        return result;\r
+        }\r
+\r
+    double idet = 1.0 / determinant;\r
+    result.a =   d * idet;\r
+    result.b =  -b * idet;\r
+    result.c =  -c * idet;\r
+    result.d =   a * idet;\r
+    result.e =  (c*f - e*d) * idet;\r
+    result.f =  (e*b - a*f) * idet;\r
+    return result;\r
+}\r
+\r
+/**\r
+ * Equivalent to multiplying by:\r
+ *  | 1  0  x |\r
+ *  | 0  1  y |\r
+ *  | 0  0  1 |\r
+ *\r
+ */\r
+SVGMatrix SVGMatrix::translate(double x, double y)\r
+{\r
+    SVGMatrix result;\r
+    result.a = a;\r
+    result.b = b;\r
+    result.c = c;\r
+    result.d = d;\r
+    result.e = a * x  +  c * y  +  e;\r
+    result.f = b * x  +  d * y  +  f;\r
+    return result;\r
+}\r
+\r
+/**\r
+ * Equivalent to multiplying by:\r
+ *  | scale  0      0 |\r
+ *  | 0      scale  0 |\r
+ *  | 0      0      1 |\r
+ *\r
+ */\r
+:SVGMatrix SVGMatrix:scale(double scale)\r
+{\r
+    SVGMatrix result;\r
+    result.a = a * scale;\r
+    result.b = b * scale;\r
+    result.c = c * scale;\r
+    result.d = d * scale;\r
+    result.e = e;\r
+    result.f = f;\r
+    return result;\r
+}\r
+\r
+/**\r
+ * Equivalent to multiplying by:\r
+ *  | scaleX  0       0 |\r
+ *  | 0       scaleY  0 |\r
+ *  | 0       0       1 |\r
+ *\r
+ */\r
+SVGMatrix SVGMatrix::scaleNonUniform(double scaleX,\r
+                                  double scaleY)\r
+{\r
+    SVGMatrix result;\r
+    result.a = a * scaleX;\r
+    result.b = b * scaleX;\r
+    result.c = c * scaleY;\r
+    result.d = d * scaleY;\r
+    result.e = e;\r
+    result.f = f;\r
+    return result;\r
+}\r
+\r
+/**\r
+ * Equivalent to multiplying by:\r
+ *  | cos(a) -sin(a)   0 |\r
+ *  | sin(a)  cos(a)   0 |\r
+ *  | 0       0        1 |\r
+ *\r
+ */\r
+SVGMatrix SVGMatrix::rotate (double angle)\r
+{\r
+    double sina  = sin(angle);\r
+    double msina = -sina;\r
+    double cosa  = cos(angle);\r
+    SVGMatrix result;\r
+    result.a = a * cosa   +  c * sina;\r
+    result.b = b * cosa   +  d + sina;\r
+    result.c = a * msina  +  c * cosa;\r
+    result.d = b * msina  +  d * cosa;\r
+    result.e = e;\r
+    result.f = f;\r
+    return result;\r
+}\r
+\r
+/**\r
+ * Equivalent to multiplying by:\r
+ *  | cos(a) -sin(a)   0 |\r
+ *  | sin(a)  cos(a)   0 |\r
+ *  | 0       0        1 |\r
+ *  In this case, angle 'a' is computed as the artangent\r
+ *  of the slope y/x .  It is negative if the slope is negative.\r
+ */\r
+SVGMatrix SVGMatrix::rotateFromVector(double x, double y)\r
+                                  throw (SVGException)\r
+{\r
+    double angle = atan(y / x);\r
+    if (y < 0.0)\r
+        angle = -angle;\r
+    SVGMatrix result;\r
+    double sina  = sin(angle);\r
+    double msina = -sina;\r
+    double cosa  = cos(angle);\r
+    result.a = a * cosa   +  c * sina;\r
+    result.b = b * cosa   +  d + sina;\r
+    result.c = a * msina  +  c * cosa;\r
+    result.d = b * msina  +  d * cosa;\r
+    result.e = e;\r
+    result.f = f;\r
+    return result;\r
+}\r
+\r
+/**\r
+ * Equivalent to multiplying by:\r
+ *  | -1   0   0 |\r
+ *  | 0    1   0 |\r
+ *  | 0    0   1 |\r
+ *\r
+ */\r
+SVGMatrix SVGMatrix::flipX()\r
+{\r
+    SVGMatrix result;\r
+    result.a = -a;\r
+    result.b = -b;\r
+    result.c =  c;\r
+    result.d =  d;\r
+    result.e =  e;\r
+    result.f =  f;\r
+    return result;\r
+}\r
+\r
+/**\r
+ * Equivalent to multiplying by:\r
+ *  | 1   0   0 |\r
+ *  | 0  -1   0 |\r
+ *  | 0   0   1 |\r
+ *\r
+ */\r
+SVGMatrix SVGMatrix::flipY()\r
+{\r
+    SVGMatrix result;\r
+    result.a =  a;\r
+    result.b =  b;\r
+    result.c = -c;\r
+    result.d = -d;\r
+    result.e =  e;\r
+    result.f =  f;\r
+    return result;\r
+}\r
+\r
+/**\r
+ *  | 1   tan(a)  0 |\r
+ *  | 0   1       0 |\r
+ *  | 0   0       1 |\r
+ *\r
+ */\r
+SVGMatrix SVGMatrix::skewX(double angle)\r
+{\r
+    double tana = tan(angle);\r
+    SVGMatrix result;\r
+    result.a =  a;\r
+    result.b =  b;\r
+    result.c =  a * tana + c;\r
+    result.d =  b * tana + d;\r
+    result.e =  e;\r
+    result.f =  f;\r
+    return result;\r
+}\r
+\r
+/**\r
+ * Equivalent to multiplying by:\r
+ *  | 1       0   0 |\r
+ *  | tan(a)  1   0 |\r
+ *  | 0       0   1 |\r
+ *\r
+ */\r
+SVGMatrix::SVGMatrix SVGMatrix::skewY(double angle)\r
+{\r
+    double tana = tan(angle);\r
+    SVGMatrix result;\r
+    result.a =  a + c * tana;\r
+    result.b =  b + d * tana;\r
+    result.c =  c;\r
+    result.d =  d;\r
+    result.e =  e;\r
+    result.f =  f;\r
+    return result;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGMatrix::SVGMatrix()\r
+{\r
+    identity();\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGMatrix::SVGMatrix(double aArg, double bArg, double cArg,\r
+          double dArg, double eArg, double fArg)\r
+{\r
+    a = aArg; b = bArg; c = cArg;\r
+    d = dArg; e = eArg; f = fArg;\r
+}\r
+\r
+/**\r
+ * Copy constructor\r
+ */\r
+SVGMatrix::SVGMatrix(const SVGMatrix &other)\r
+{\r
+    a = other.a;\r
+    b = other.b;\r
+    c = other.c;\r
+    d = other.d;\r
+    e = other.e;\r
+    f = other.f;\r
+}\r
+\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGMatrix::~SVGMatrix()\r
+{\r
+}\r
+\r
+/*\r
+ * Set to the identity matrix\r
+ */\r
+void SVGMatrix::identity()\r
+{\r
+    a = 1.0;\r
+    b = 0.0;\r
+    c = 0.0;\r
+    d = 1.0;\r
+    e = 0.0;\r
+    f = 0.0;\r
+}\r
+\r
+\r
+/*#########################################################################\r
+## SVGTransform\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short SVGTransform::getType()\r
+{\r
+    return type;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGMatrix SVGTransform::getMatrix()\r
+{\r
+    return matrix;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGTransform::getAngle()\r
+{\r
+    return angle;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGTransform::setMatrix(const SVGMatrix &matrixArg)\r
+{\r
+    type = SVG_TRANSFORM_MATRIX;\r
+    matrix = matrixArg;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGTransform::setTranslate(double tx, double ty)\r
+{\r
+    type = SVG_TRANSFORM_TRANSLATE;\r
+    matrix.setA(1.0);\r
+    matrix.setB(0.0);\r
+    matrix.setC(0.0);\r
+    matrix.setD(1.0);\r
+    matrix.setE(tx);\r
+    matrix.setF(ty);\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGTransform::setScale(double sx, double sy)\r
+{\r
+    type = SVG_TRANSFORM_SCALE;\r
+    matrix.setA(sx);\r
+    matrix.setB(0.0);\r
+    matrix.setC(0.0);\r
+    matrix.setD(sy);\r
+    matrix.setE(0.0);\r
+    matrix.setF(0.0);\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGTransform::setRotate(double angleArg, double cx, double cy)\r
+{\r
+    angle = angleArg;\r
+    setTranslate(cx, cy);\r
+    type = SVG_TRANSFORM_ROTATE;\r
+    matrix.rotate(angle);\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGTransform::setSkewX(double angleArg)\r
+{\r
+    angle = angleArg;\r
+    type = SVG_TRANSFORM_SKEWX;\r
+    matrix.identity();\r
+    matrix.skewX(angle);\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGTransform::setSkewY(double angleArg)\r
+{\r
+    angle = angleArg;\r
+    type = SVG_TRANSFORM_SKEWY;\r
+    matrix.identity();\r
+    matrix.skewY(angle);\r
+}\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGTransform::SVGTransform()\r
+{\r
+    type = SVG_TRANSFORM_UNKNOWN;\r
+    angle = 0.0;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGTransform::SVGTransform(const SVGTransform &other)\r
+{\r
+    type   = other.type;\r
+    angle  = other.angle;\r
+    matrix = other.matrix;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+~SVGTransform::SVGTransform()\r
+{\r
+}\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGNumber\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGNumber::getValue()\r
+{\r
+    return value;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGNumber::setValue(double val) throw (DOMException)\r
+{\r
+    value = val;\r
+}\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGNumber::SVGNumber()\r
+{\r
+    value = 0.0;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGNumber::SVGNumber(const SVGNumber &other)\r
+{\r
+    value = other.value;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGNumber::~SVGNumber()\r
+{\r
+}\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGLength\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short SVGLength::getUnitType()\r
+{\r
+    return unitType;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGLength::getValue()\r
+{\r
+    return value;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGLength::setValue(double val) throw (DOMException)\r
+{\r
+    value = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGLength::getValueInSpecifiedUnits()\r
+{\r
+    double result = 0.0;\r
+    //fill this in\r
+    return result;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGLength::setValueInSpecifiedUnits(double /*val*/)\r
+                                       throw (DOMException)\r
+{\r
+    //fill this in\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGLength::getValueAsString()\r
+{\r
+    DOMString ret;\r
+    char buf[32];\r
+    snprintf(buf, 31, "%f", value);\r
+    ret.append(buf);\r
+    return ret;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGLength::setValueAsString(const DOMString& /*val*/)\r
+                               throw (DOMException)\r
+{\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGLength::newValueSpecifiedUnits (unsigned short /*unitType*/, double /*val*/)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGLength::convertToSpecifiedUnits (unsigned short /*unitType*/)\r
+{\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGLength::SVGLength()\r
+{\r
+    unitType = SVG_LENGTHTYPE_UNKNOWN;\r
+    value    = 0.0;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGLength::SVGLength(const SVGLength &other)\r
+{\r
+    unitType  = other.unitType;\r
+    value     = other.value;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGLength::~SVGLength()\r
+{\r
+}\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGAngle\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short SVGAngle::getUnitType()\r
+{\r
+    return unitType;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGAngle::getValue()\r
+{\r
+    return value;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGAngle::setValue(double val) throw (DOMException)\r
+{\r
+    value = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGAngle::getValueInSpecifiedUnits()\r
+{\r
+    double result = 0.0;\r
+    //convert here\r
+    return result;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGAngle::setValueInSpecifiedUnits(double /*val*/)\r
+                                        throw (DOMException)\r
+{\r
+    //do conversion\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGAngle::getValueAsString()\r
+{\r
+    DOMString result;\r
+    char buf[32];\r
+    snprintf(buf, 31, "%f", value);\r
+    result.append(buf);\r
+    return result;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGAngle::setValueAsString(const DOMString &/*val*/)\r
+                                throw (DOMException)\r
+{\r
+    //convert here\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGAngle::newValueSpecifiedUnits (unsigned short /*unitType*/,\r
+                                       double /*valueInSpecifiedUnits*/)\r
+{\r
+    //convert here\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGAngle::convertToSpecifiedUnits (unsigned short /*unitType*/)\r
+{\r
+    //convert here\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAngle::SVGAngle()\r
+{\r
+    unitType = SVG_ANGLETYPE_UNKNOWN;\r
+    value    = 0.0;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAngle::SVGAngle(const SVGAngle &other)\r
+{\r
+    unitType = other.unitType;\r
+    value    = other.value;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAngle::~SVGAngle()\r
+{\r
+}\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGICCColor\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGICCColor::getColorProfile()\r
+{\r
+    return colorProfile;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGICCColor::setColorProfile(const DOMString &val) throw (DOMException)\r
+{\r
+    colorProfile = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGNumberList &SVGICCColor::getColors()\r
+{\r
+    return colors;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGICCColor::SVGICCColor()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGICCColor::SVGICCColor(const SVGICCColor &other)\r
+{\r
+    colorProfile = other.colorProfile;\r
+    colors       = other.colors;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGICCColor::~SVGICCColor()\r
+{\r
+}\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGColor\r
+#########################################################################*/\r
+\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short SVGColor::getColorType()\r
+{\r
+    return colorType;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+css::RGBColor SVGColor::getRgbColor()\r
+{\r
+    css::RGBColor col;\r
+    return col;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGICCColor SVGColor::getIccColor()\r
+{\r
+    SVGICCColor col;\r
+    return col;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGColor::setRGBColor(const DOMString& /*rgbColor*/)\r
+                           throw (SVGException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGColor::setRGBColorICCColor(const DOMString& /*rgbColor*/,\r
+                                   const DOMString& /*iccColor*/)\r
+                                   throw (SVGException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGColor::setColor (unsigned short /*colorType*/,\r
+                         const DOMString& /*rgbColor*/,\r
+                         const DOMString& /*iccColor*/)\r
+                         throw (SVGException)\r
+{\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGColor::SVGColor()\r
+{\r
+    colorType = SVG_COLORTYPE_UNKNOWN;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGColor::SVGColor(const SVGColor &other) : css::CSSValue(other)\r
+{\r
+    colorType = other.colorType;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGColor::~SVGColor()\r
+{\r
+}\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGRect\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGRect::getX()\r
+{\r
+    return x;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGRect::setX(double val) throw (DOMException)\r
+{\r
+    x = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGRect::getY()\r
+{\r
+    return y;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGRect::setY(double val) throw (DOMException)\r
+{\r
+    y = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGRect::getWidth()\r
+{\r
+    return width;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGRect::setWidth(double val) throw (DOMException)\r
+{\r
+    width = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGRect::getHeight()\r
+{\r
+    return height;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGRect::setHeight(double val) throw (DOMException)\r
+{\r
+    height = val;\r
+}\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGRect::SVGRect()\r
+{\r
+    x = y = width = height = 0.0;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGRect::SVGRect(const SVGRect &other)\r
+{\r
+    x = other.x;\r
+    y = other.y;\r
+    width = other.width;\r
+    height = other.height;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGRect::~SVGRect()\r
+{\r
+}\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGPoint\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGPoint::getX()\r
+{\r
+    return x;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPoint::setX(double val) throw (DOMException)\r
+{\r
+    x = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGPoint::getY()\r
+{\r
+    return y;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPoint::setY(double val) throw (DOMException)\r
+{\r
+    y = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPoint SVGPoint::matrixTransform(const SVGMatrix &/*matrix*/)\r
+{\r
+    SVGPoint point;\r
+    return point;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPoint::SVGPoint()\r
+{\r
+    x = y = 0;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPoint::SVGPoint(const SVGPoint &other)\r
+{\r
+    x = other.x;\r
+    y = other.y;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPoint::~SVGPoint()\r
+{\r
+}\r
+\r
+\r
+/*#########################################################################\r
+## SVGUnitTypes\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+SVGUnitTypes::SVGUnitTypes()\r
+{\r
+}\r
+\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGUnitTypes::~SVGUnitTypes()\r
+{\r
+}\r
+\r
+\r
+/*#########################################################################\r
+## SVGStylable\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString SVGStylable::getClassName()\r
+{\r
+    return className;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+css::CSSStyleDeclaration SVGStylable::getStyle()\r
+{\r
+    return style;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+css::CSSValue SVGStylable::getPresentationAttribute(const DOMString& /*name*/)\r
+{\r
+    css::CSSValue val;\r
+    //perform a lookup\r
+    return val;\r
+}\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGStylable::SVGStylable()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGStylable::SVGStylable(const SVGStylable &other)\r
+{\r
+    className = other.className;\r
+    style     = other.style;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGStylable::~SVGStylable()\r
+{\r
+}\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGLocatable\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementPtr SVGLocatable::getNearestViewportElement()\r
+{\r
+    SVGElementPtr result;\r
+    return result;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementPtr SVGLocatable::getFarthestViewportElement()\r
+{\r
+    SVGElementPtr result;\r
+    return result;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGRect SVGLocatable::getBBox ()\r
+{\r
+    return bbox;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGMatrix SVGLocatable::getCTM ()\r
+{\r
+    return ctm;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGMatrix SVGLocatable::getScreenCTM ()\r
+{\r
+    return screenCtm;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGMatrix SVGLocatable::getTransformToElement (const SVGElement &/*element*/)\r
+                throw (SVGException)\r
+{\r
+    SVGMatrix result;\r
+    //do calculations\r
+    return result;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGLocatable::SVGLocatable()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGLocatable::SVGLocatable(const SVGLocatable &/*other*/)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGLocatable::~SVGLocatable()\r
+{\r
+}\r
+\r
+\r
+/*#########################################################################\r
+## SVGTransformable\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedTransformList &SVGTransformable::getTransform()\r
+{\r
+    return transforms;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGTransformable::SVGTransformable() {}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGTransformable::SVGTransformable(const SVGTransformable &other) : SVGLocatable(other)\r
+{\r
+    transforms = other.transforms;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGTransformable::~SVGTransformable()\r
+{\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGTests\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGStringList &SVGTests::getRequiredFeatures()\r
+{\r
+    return requiredFeatures;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGStringList &SVGTests::getRequiredExtensions()\r
+{\r
+    return requiredExtensions;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGStringList &SVGTests::getSystemLanguage()\r
+{\r
+    return systemLanguage;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+bool SVGTests::hasExtension (const DOMString& /*extension*/)\r
+{\r
+    return false;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGTests::SVGTests()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGTests::SVGTests(const SVGTests &other)\r
+{\r
+    requiredFeatures   = other.requiredFeatures;\r
+    requiredExtensions = other.requiredExtensions;\r
+    systemLanguage     = other.systemLanguage;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGTests::~SVGTests()\r
+{\r
+}\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGLangSpace\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGLangSpace::getXmllang()\r
+{\r
+    return xmlLang;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGLangSpace::setXmllang(const DOMString &val) throw (DOMException)\r
+{\r
+    xmlLang = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGLangSpace::getXmlspace()\r
+{\r
+    return xmlSpace;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGLangSpace::setXmlspace(const DOMString &val)\r
+                                 throw (DOMException)\r
+{\r
+    xmlSpace = val;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGLangSpace::SVGLangSpace()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGLangSpace::SVGLangSpace(const SVGLangSpace &other)\r
+{\r
+    xmlLang  = other.xmlLang;\r
+    xmlSpace = other.xmlSpace;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGLangSpace::~SVGLangSpace()\r
+{\r
+}\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGExternalResourcesRequired\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedBoolean SVGExternalResourcesRequired::getExternalResourcesRequired()\r
+{\r
+    return required;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGExternalResourcesRequired::SVGExternalResourcesRequired()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGExternalResourcesRequired::SVGExternalResourcesRequired(\r
+               const SVGExternalResourcesRequired &other)\r
+{\r
+    required = other.required;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGExternalResourcesRequired::~SVGExternalResourcesRequired() {}\r
+\r
+\r
+/*#########################################################################\r
+## SVGPreserveAspectRatio\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short SVGPreserveAspectRatio::getAlign()\r
+{\r
+    return align;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPreserveAspectRatio::setAlign(unsigned short val) throw (DOMException)\r
+{\r
+    align = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short SVGPreserveAspectRatio::getMeetOrSlice()\r
+{\r
+    return meetOrSlice;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPreserveAspectRatio::setMeetOrSlice(unsigned short val) throw (DOMException)\r
+{\r
+    meetOrSlice = val;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPreserveAspectRatio::SVGPreserveAspectRatio()\r
+{\r
+    align       = SVG_PRESERVEASPECTRATIO_UNKNOWN;\r
+    meetOrSlice = SVG_MEETORSLICE_UNKNOWN;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPreserveAspectRatio::SVGPreserveAspectRatio(const SVGPreserveAspectRatio &other)\r
+{\r
+    align       = other.align;\r
+    meetOrSlice = other.meetOrSlice;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPreserveAspectRatio::~SVGPreserveAspectRatio()\r
+{\r
+}\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGFitToViewBox\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedRect SVGFitToViewBox::getViewBox()\r
+{\r
+    return viewBox;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedPreserveAspectRatio SVGFitToViewBox::getPreserveAspectRatio()\r
+{\r
+    return preserveAspectRatio;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGFitToViewBox::SVGFitToViewBox()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+\r
+SVGFitToViewBox::SVGFitToViewBox(const SVGFitToViewBox &other)\r
+{\r
+    viewBox = other.viewBox;\r
+    preserveAspectRatio = other.preserveAspectRatio;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGFitToViewBox::~SVGFitToViewBox()\r
+{\r
+}\r
+\r
+/*#########################################################################\r
+## SVGZoomAndPan\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short SVGZoomAndPan::getZoomAndPan()\r
+{\r
+    return zoomAndPan;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGZoomAndPan::setZoomAndPan(unsigned short val) throw (DOMException)\r
+{\r
+    zoomAndPan = val;\r
+}\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGZoomAndPan::SVGZoomAndPan()\r
+{\r
+    zoomAndPan = SVG_ZOOMANDPAN_UNKNOWN;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGZoomAndPan::SVGZoomAndPan(const SVGZoomAndPan &other)\r
+{\r
+    zoomAndPan = other.zoomAndPan;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGZoomAndPan::~SVGZoomAndPan()\r
+{\r
+}\r
+\r
+\r
+/*#########################################################################\r
+## SVGViewSpec\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+SVGTransformList SVGViewSpec::getTransform()\r
+{\r
+    return transform;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementPtr SVGViewSpec::getViewTarget()\r
+{\r
+    return viewTarget;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGViewSpec::getViewBoxString()\r
+{\r
+    DOMString ret;\r
+    return ret;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGViewSpec::getPreserveAspectRatioString()\r
+{\r
+    DOMString ret;\r
+    return ret;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGViewSpec::getTransformString()\r
+{\r
+    DOMString ret;\r
+    return ret;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGViewSpec::getViewTargetString()\r
+{\r
+    DOMString ret;\r
+    return ret;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGViewSpec::SVGViewSpec()\r
+{\r
+    viewTarget = NULL;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGViewSpec::SVGViewSpec(const SVGViewSpec &other) : SVGZoomAndPan(other), SVGFitToViewBox(other)\r
+{\r
+    viewTarget = other.viewTarget;\r
+    transform  = other.transform;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGViewSpec::~SVGViewSpec()\r
+{\r
+}\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGURIReference\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString SVGURIReference::getHref()\r
+{\r
+    return href;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGURIReference::SVGURIReference()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGURIReference::SVGURIReference(const SVGURIReference &other)\r
+{\r
+    href = other.href;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGURIReference::~SVGURIReference()\r
+{\r
+}\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGCSSRule\r
+#########################################################################*/\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGRenderingIntent\r
+#########################################################################*/\r
+\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGPathSeg\r
+#########################################################################*/\r
+\r
+static const char *pathSegLetters[] =\r
+{\r
+    '@', // PATHSEG_UNKNOWN,\r
+    'z', // PATHSEG_CLOSEPATH\r
+    'M', // PATHSEG_MOVETO_ABS\r
+    'm', // PATHSEG_MOVETO_REL,\r
+    'L', // PATHSEG_LINETO_ABS\r
+    'l', // PATHSEG_LINETO_REL\r
+    'C', // PATHSEG_CURVETO_CUBIC_ABS\r
+    'c', // PATHSEG_CURVETO_CUBIC_REL\r
+    'Q', // PATHSEG_CURVETO_QUADRATIC_ABS,\r
+    'q', // PATHSEG_CURVETO_QUADRATIC_REL\r
+    'A', // PATHSEG_ARC_ABS\r
+    'a', // PATHSEG_ARC_REL,\r
+    'H', // PATHSEG_LINETO_HORIZONTAL_ABS,\r
+    'h', // PATHSEG_LINETO_HORIZONTAL_REL\r
+    'V', // PATHSEG_LINETO_VERTICAL_ABS\r
+    'v', // PATHSEG_LINETO_VERTICAL_REL\r
+    'S', // PATHSEG_CURVETO_CUBIC_SMOOTH_ABS\r
+    's', // PATHSEG_CURVETO_CUBIC_SMOOTH_REL\r
+    'T', // PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS\r
+    't'  // PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL\r
+};\r
+\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short getPathSegType()\r
+{\r
+    return type;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getPathSegTypeAsLetter()\r
+{\r
+    int typ = type;\r
+    if (typ<0 || typ>PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL)\r
+        typ = PATHSEG_UNKNOWN;\r
+    char const ch = pathSegLetters[typ];\r
+    DOMString letter = ch;\r
+    return letter;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short getPathSegType()\r
+{\r
+    return type;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getPathSegTypeAsLetter()\r
+{\r
+    int typ = type;\r
+    if (typ<0 || typ>PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL)\r
+        typ = PATHSEG_UNKNOWN;\r
+    char const *ch = pathSegLetters[typ];\r
+    DOMString letter = ch;\r
+    return letter;\r
+}\r
+\r
+/**\r
+ * From the various subclasses\r
+ */\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGPathSeg::getX()\r
+{\r
+    return x;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::setX(double val) throw (DOMException)\r
+{\r
+    x = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGPathSeg::getX1()\r
+{\r
+    return x;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::setX1(double val) throw (DOMException)\r
+{\r
+    x = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGPathSeg::getX2()\r
+{\r
+    return x;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::setX2(double val) throw (DOMException)\r
+{\r
+    x = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGPathSeg::getY()\r
+{\r
+    return y;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::setY(double val) throw (DOMException)\r
+{\r
+    y = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGPathSeg::getY1()\r
+{\r
+    return y;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::setY1(double val) throw (DOMException)\r
+{\r
+    y = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGPathSeg::getY2()\r
+{\r
+    return y;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::setY2(double val) throw (DOMException)\r
+{\r
+    y = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGPathSeg::getR1()\r
+{\r
+    return r1;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::setR1(double val) throw (DOMException)\r
+{\r
+    r1 = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGPathSeg::getR2()\r
+{\r
+    return r2;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::setR2(double val) throw (DOMException)\r
+{\r
+    r2 = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGPathSeg::getAngle()\r
+{\r
+    return angle;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::setAngle(double val) throw (DOMException)\r
+{\r
+    angle = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+bool SVGPathSeg::getLargeArcFlag()\r
+{\r
+    return largeArcFlag;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::setLargeArcFlag(bool val) throw (DOMException)\r
+{\r
+    largeArcFlag = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+bool SVGPathSeg::getSweepFlag()\r
+{\r
+    return sweepFlag;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::setSweepFlag(bool val) throw (DOMException)\r
+{\r
+    sweepFlag = val;\r
+}\r
+\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPathSeg::SVGPathSeg()\r
+{\r
+    init();\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPathSeg::SVGPathSeg(const SVGPathSeg &other)\r
+{\r
+    assign(other);\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPathSeg &operator=(const SVGPathSeg &other)\r
+{\r
+    assign(other);\r
+    return *this;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::init()\r
+{\r
+    type = PATHSEG_UNKNOWN;\r
+    x = y = x1 = y1 = x2 = y2 = 0.0;\r
+    r1 = r2 = 0.0;\r
+    angle = 0.0;\r
+    largeArcFlag = false;\r
+    sweepFlag    = false;\r
+}\r
+    \r
+/**\r
+ *\r
+ */\r
+void SVGPathSeg::assign(const SVGPathSeg &other)\r
+{\r
+    type         = other.type;\r
+    x            = other.x;\r
+    y            = other.y;\r
+    x1           = other.x1;\r
+    y1           = other.y1;\r
+    x2           = other.x2;\r
+    y2           = other.y2;\r
+    r1           = other.r1;\r
+    r2           = other.r2;\r
+    angle        = other.angle;\r
+    largeArcFlag = other.largeArcFlag;\r
+    sweepFlag    = other.sweepFlag;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPathSeg::~SVGPathSeg()\r
+{\r
+}\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGPaint\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short SVGPaint::getPaintType()\r
+{ return paintType; }\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGPaint::getUri()\r
+{ return uri; }\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPaint::setUri(const DOMString& uriArg)\r
+{\r
+    uri = uriArg;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGPaint::setPaint (unsigned short paintTypeArg,\r
+                         const DOMString& uriArg,\r
+                         const DOMString& /*rgbColor*/,\r
+                         const DOMString& /*iccColor*/)\r
+                         throw (SVGException)\r
+{\r
+    paintType = paintTypeArg;\r
+    uri       = uriArg;\r
+    //do something with rgbColor\r
+    //do something with iccColor;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPaint::SVGPaint()\r
+{\r
+    uri       = "";\r
+    paintType = SVG_PAINTTYPE_UNKNOWN;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPaint::SVGPaint(const SVGPaint &other) : css::CSSValue(other), SVGColor(other)\r
+{\r
+    uri       = "";\r
+    paintType = SVG_PAINTTYPE_UNKNOWN;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPaint::~SVGPaint() {}\r
+\r
+\r
+/*#########################################################################\r
+## SVGColorProfileRule\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGColorProfileRule::getSrc()\r
+{ return src; }\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGColorProfileRule::setSrc(const DOMString &val) throw (DOMException)\r
+{ src = val; }\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString SVGColorProfileRule::getName()\r
+{ return name; }\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGColorProfileRule::setName(const DOMString &val) throw (DOMException)\r
+{ name = val; }\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short SVGColorProfileRule::getRenderingIntent()\r
+{ return renderingIntent; }\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGColorProfileRule::setRenderingIntent(unsigned short val) throw (DOMException)\r
+{ renderingIntent = val; }\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGColorProfileRule::SVGColorProfileRule()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGColorProfileRule::SVGColorProfileRule(const SVGColorProfileRule &other)\r
+           : SVGCSSRule(other), SVGRenderingIntent(other)\r
+{\r
+    renderingIntent = other.renderingIntent;\r
+    src             = other.src;\r
+    name            = other.name;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGColorProfileRule::~SVGColorProfileRule()\r
+{\r
+}\r
+\r
+\r
+/*#########################################################################\r
+## SVGFilterPrimitiveStandardAttributes\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength SVGFilterPrimitiveStandardAttributes::getX()\r
+{ return x; }\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength SVGFilterPrimitiveStandardAttributes::getY()\r
+{ return y; }\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength SVGFilterPrimitiveStandardAttributes::getWidth()\r
+{ return width; }\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength SVGFilterPrimitiveStandardAttributes::getHeight()\r
+{ return height; }\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString SVGFilterPrimitiveStandardAttributes::getResult()\r
+{ return result; }\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes(\r
+                   const SVGFilterPrimitiveStandardAttributes &other)\r
+                             : SVGStylable(other)\r
+{\r
+    x      = other.x;\r
+    y      = other.y;\r
+    width  = other.width;\r
+    height = other.height;\r
+    result = other.result;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGFilterPrimitiveStandardAttributes::~SVGFilterPrimitiveStandardAttributes()\r
+{\r
+}\r
+\r
+\r
+/*#########################################################################\r
+## SVGEvent\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+SVGEvent:SVGEvent()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGEvent:SVGEvent(const SVGEvent &other) : events::Event(other)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGEvent::~SVGEvent()\r
+{\r
+}\r
+\r
+\r
+/*#########################################################################\r
+## SVGZoomEvent\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+SVGRect SVGZoomEvent::getZoomRectScreen()\r
+{\r
+    return zoomRectScreen;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGZoomEvent::getPreviousScale()\r
+{\r
+    return previousScale;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPoint SVGZoomEvent::getPreviousTranslate()\r
+{\r
+    return previousTranslate;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double SVGZoomEvent::getNewScale()\r
+{\r
+    return newScale;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGPoint SVGZoomEvent::getNewTranslate()\r
+{\r
+    return newTranslate;\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGZoomEvent::SVGZoomEvent()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGZoomEvent::SVGZoomEvent(const SVGZoomEvent &other) :\r
+                        events::Event(other), events::UIEvent(other)\r
+{\r
+    zoomRectScreen    = other.zoomRectScreen;\r
+    previousScale     = other.previousScale;\r
+    previousTranslate = other.previousTranslate;\r
+    newScale          = other.newScale;\r
+    newTranslate      = other.newTranslate;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGZoomEvent::~SVGZoomEvent()\r
+{\r
+}\r
+\r
+\r
+/*#########################################################################\r
+## SVGElementInstance\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementPtr SVGElementInstance::getCorrespondingElement()\r
+{\r
+    return correspondingElement;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGUseElementPtr SVGElementInstance::getCorrespondingUseElement()\r
+{\r
+    return correspondingUseElement;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstance SVGElementInstance::getParentNode()\r
+{\r
+    SVGElementInstance ret;\r
+    return ret;\r
+}\r
+\r
+/**\r
+ *  Since we are using stack types and this is a circular definition,\r
+ *  we will instead implement this as a global function below:\r
+ *   SVGElementInstanceList getChildNodes(const SVGElementInstance instance);\r
+ */\r
+//SVGElementInstanceList getChildNodes();\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstance SVGElementInstance::getFirstChild()\r
+{\r
+    SVGElementInstance ret;\r
+    return ret;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstance SVGElementInstance::getLastChild()\r
+{\r
+    SVGElementInstance ret;\r
+    return ret;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstance SVGElementInstance::getPreviousSibling()\r
+{\r
+    SVGElementInstance ret;\r
+    return ret;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstance SVGElementInstance::getNextSibling()\r
+{\r
+    SVGElementInstance ret;\r
+    return ret;\r
+}\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstance::SVGElementInstance()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstance::SVGElementInstance(const SVGElementInstance &other)\r
+                    : events::EventTarget(other)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstance::~SVGElementInstance()\r
+{\r
+}\r
+\r
+\r
+/*#########################################################################\r
+## SVGElementInstanceList\r
+#########################################################################*/\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned long SVGElementInstanceList::getLength()\r
+{ return items.size(); }\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstance SVGElementInstanceList::item(unsigned long index)\r
+{\r
+    if (index >= items.size())\r
+        {\r
+        SVGElementInstance ret;\r
+        return ret;\r
+        }\r
+    return items[index];\r
+}\r
+\r
+/**\r
+ *  This static method replaces the circular definition of:\r
+ *        SVGElementInstanceList SVGElementInstance::getChildNodes()\r
+ *\r
+ */\r
+static SVGElementInstanceList SVGElementInstanceList::getChildNodes(const SVGElementInstance &/*instance*/)\r
+{\r
+    SVGElementInstanceList list;\r
+    return list;\r
+}\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstanceList::SVGElementInstanceList()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstanceList::SVGElementInstanceList(const SVGElementInstanceList &other)\r
+{\r
+    items = other.items;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementInstanceList::~SVGElementInstanceList()\r
+{\r
+}\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGValue\r
+#########################################################################*/\r
+\r
+/**\r
+ * Constructor\r
+ */\r
+SVGValue()\r
+{\r
+    init();\r
+}\r
+\r
+/**\r
+ * Copy constructor\r
+ */\r
+SVGValue(const SVGValue &other)\r
+{\r
+    assign(other);\r
+}\r
+\r
+/**\r
+ * Assignment\r
+ */\r
+SVGValue &operator=(const SVGValue &other)\r
+{\r
+    assign(other);\r
+    return *this;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+~SVGValue()\r
+{\r
+}\r
+\r
+//###########################\r
+//  TYPES\r
+//###########################\r
+\r
+/**\r
+ *  Angle\r
+ */\r
+SVGValue::SVGValue(const SVGAngle &v)\r
+{\r
+   type = SVG_ANGLE;\r
+   angleval = v;\r
+}\r
+\r
+SVGAngle SVGValue::angleValue()\r
+{\r
+    return algleval;\r
+}\r
+\r
+/**\r
+ * Boolean\r
+ */\r
+SVGValue::SVGValue(bool v)\r
+{\r
+   type = SVG_BOOLEAN;\r
+   bval = v;\r
+}\r
+\r
+bool SVGValue::booleanValue()\r
+{\r
+    return bval;\r
+}\r
+\r
+\r
+/**\r
+ * Enumeration\r
+ */\r
+SVGValue::SVGValue(short v)\r
+{\r
+   type = SVG_ENUMERATION;\r
+   eval = v;\r
+}\r
+\r
+short SVGValue::enumerationValue()\r
+{\r
+    return eval;\r
+}\r
+\r
+/**\r
+ * Integer\r
+ */\r
+SVGValue::SVGValue(long v)\r
+{\r
+   type = SVG_INTEGER;\r
+   ival = v;\r
+}\r
+\r
+long SVGValue::integerValue()\r
+{\r
+    return ival;\r
+}\r
+\r
+/**\r
+ * Length\r
+ */\r
+SVGValue::SVGValue(const SVGLength &v)\r
+{\r
+   type = SVG_LENGTH;\r
+   lengthval = v;\r
+}\r
+\r
+SVGLength SVGValue::lengthValue()\r
+{\r
+    return lengthval;\r
+}\r
+\r
+/**\r
+ * Number\r
+ */\r
+SVGValue::SVGValue(double v)\r
+{\r
+   type = SVG_NUMBER;\r
+   dval = v;\r
+}\r
+\r
+double SVGValue::numberValue()\r
+{\r
+    return dval;\r
+}\r
+\r
+/**\r
+ * Points\r
+ */\r
+SVGValue::SVGValue(const SVGPointList &v)\r
+{\r
+   type = SVG_POINTS;\r
+   plistval = v;\r
+}\r
+\r
+SVGPointList SVGValue::pointListValue()\r
+{\r
+    return plistval;\r
+}\r
+\r
+\r
+/**\r
+ * PreserveAspectRatio\r
+ */\r
+SVGValue::SVGValue(const SVGPreserveAspectRatio &v)\r
+{\r
+   type = SVG_PRESERVE_ASPECT_RATIO;\r
+   parval = v;\r
+}\r
+\r
+SVGPreserveAspectRatio SVGValue::preserveAspectRatioValue()\r
+{\r
+   return parval;\r
+}\r
+\r
+/**\r
+ * Rect\r
+ */\r
+SVGValue::SVGValue(const SVGRect &v)\r
+{\r
+   type = SVG_RECT;\r
+   rectval = v;\r
+}\r
+\r
+SVGRect SVGValue::rectValue()\r
+{\r
+    return rectval;\r
+}\r
+\r
+/**\r
+ * String\r
+ */\r
+SVGValue::SVGValue(const DOMString &v)\r
+{\r
+   type = SVG_STRING;\r
+   sval = v;\r
+}\r
+\r
+DOMString SVGValue::stringValue()\r
+{\r
+    return sval;\r
+}\r
+\r
+\r
+void SVGValue::init()\r
+{\r
+    type    = SVG_NUMBER;\r
+    bval    = false;          \r
+    eval    = 0;          \r
+    ival    = 0;          \r
+    dval    = 0.0;          \r
+}\r
+\r
+void SVGValue::assign(const SVGValue &other)\r
+{\r
+    type           = other.type; \r
+    angleval       = other.angleval;      \r
+    bval           = other.bval;          \r
+    eval           = other.eval;          \r
+    ival           = other.ival;          \r
+    lengthval      = other.lengthval;     \r
+    dval           = other.dval;          \r
+    parval         = other.parval;        \r
+    rval           = other.rval;          \r
+    sval           = other.sval;          \r
+}\r
+\r
+\r
+/*#########################################################################\r
+## SVGTransformList\r
+#########################################################################*/\r
+\r
+\r
+/*#########################################################################\r
+## SVGStringList\r
+#########################################################################*/\r
+\r
+\r
+/*#########################################################################\r
+## SVGNumberList\r
+#########################################################################*/\r
+\r
+\r
+/*#########################################################################\r
+## SVGLengthList\r
+#########################################################################*/\r
+\r
+\r
+/*#########################################################################\r
+## SVGPointList\r
+#########################################################################*/\r
+\r
+/*#########################################################################\r
+## SVGPathSegList\r
+#########################################################################*/\r
+\r
+/*#########################################################################\r
+## SVGValueList\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned long SVGValueList::getNumberOfItems()\r
+{\r
+    return items.size();\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGValueList::clear() throw (DOMException)\r
+{\r
+    items.clear();\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGValueList::initialize(const SVGValue& newItem)\r
+                throw (DOMException, SVGException)\r
+{\r
+    items.clear();\r
+    items.push_back(newItem);\r
+    return newItem;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGValueList::getItem(unsigned long index) throw (DOMException)\r
+{\r
+    if (index >= items.size())\r
+        return "";\r
+    return items[index];\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGValueList::insertItemBefore(const SVGValue& newItem,\r
+                                          unsigned long index)\r
+                                          throw (DOMException, SVGException)\r
+{\r
+    if (index>=items.size())\r
+        {\r
+        items.push_back(newItem);\r
+        }\r
+    else\r
+        {\r
+        std::vector<SVGValue>::iterator iter = items.begin() + index;\r
+        items.insert(iter, newItem);\r
+        }\r
+    return newItem;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGValueList::replaceItem (const SVGValue& newItem,\r
+                                unsigned long index)\r
+                            throw (DOMException, SVGException)\r
+{\r
+    if (index>=items.size())\r
+        return "";\r
+    std::vector<SVGValue>::iterator iter = items.begin() + index;\r
+    *iter = newItem;\r
+    return newItem;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGValueList::removeItem (unsigned long index)\r
+                throw (DOMException)\r
+{\r
+    if (index>=items.size())\r
+        return "";\r
+    std::vector<SVGValue>::iterator iter = items.begin() + index;\r
+    SVGValue oldval = *iter;\r
+    items.erase(iter);\r
+    return oldval;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGValueList::appendItem (const SVGValue& newItem)\r
+                throw (DOMException, SVGException)\r
+{\r
+    items.push_back(newItem);\r
+    return newItem;\r
+}\r
+\r
+\r
+/**\r
+ * Matrix\r
+ */\r
+SVGValue SVGValueList::createSVGTransformFromMatrix(const SVGValue &matrix)\r
+{\r
+}\r
+\r
+/**\r
+ * Matrix\r
+ */\r
+SVGValue SVGValueList::consolidate()\r
+{\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValueList::SVGValueList()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValueList::SVGValueList(const SVGValueList &other)\r
+{\r
+    items = other.items;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValueList::~SVGValueList()\r
+{\r
+}\r
+\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGAnimatedValue\r
+#########################################################################*/\r
+\r
+\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue &SVGAnimatedValue::getBaseVal()\r
+{\r
+    return baseVal;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGAnimatedValue::setBaseVal(const SVGValue &val) throw (DOMException)\r
+{\r
+   baseVal = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue &SVGAnimatedValue::getAnimVal()\r
+{\r
+    return animVal;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedValue::SVGAnimatedValue()\r
+{\r
+    init();\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedValue::SVGAnimatedValue(const SVGValue &v)\r
+{\r
+    init();\r
+    baseVal = v;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedValue::SVGAnimatedValue(const SVGValue &bv, const SVGValue &av)\r
+{\r
+    init();\r
+    baseVal = bv;\r
+    animVal = av;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedValue::SVGAnimatedValue(const SVGAnimatedValue &other)\r
+{\r
+    assign(other);\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedValue &SVGAnimatedValue::operator=(const SVGAnimatedValue &other)\r
+{\r
+    assign(other);\r
+    return *this;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedValue &SVGAnimatedValue::operator=(const SVGValue &bv)\r
+{\r
+    init();\r
+    baseVal = bv;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedValue::~SVGAnimatedValue()\r
+{\r
+}\r
+\r
+\r
+\r
+void SVGAnimatedValue::init()\r
+{\r
+}\r
+\r
+\r
+void SVGAnimatedValue::assign(const SVGAnimatedValue &other)\r
+{\r
+    baseVal = other.baseVal;\r
+    animVal = other.animVal;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+//########################################################################\r
+//########################################################################\r
+//########################################################################\r
+//#   D O M\r
+//########################################################################\r
+//########################################################################\r
+//########################################################################\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGElement\r
+#########################################################################*/\r
+\r
+\r
+//####################################################################\r
+//# BASE METHODS FOR SVGElement\r
+//####################################################################\r
+\r
+/**\r
+ * Get the value of the id attribute on the given element.\r
+ */\r
+DOMString getId()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the value of the id attribute on the given element.\r
+ */\r
+void setId(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute xml:base on the given element.\r
+ */\r
+DOMString getXmlBase()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute xml:base on the given element.\r
+ */\r
+void setXmlBase(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * The nearest ancestor 'svg' element. Null if the given element is the\r
+ *      outermost 'svg' element.\r
+ */\r
+SVGElementPtr getOwnerSVGElement()\r
+{\r
+}\r
+\r
+/**\r
+ * The element which established the current viewport. Often, the nearest\r
+ * ancestor 'svg' element. Null if the given element is the outermost 'svg'\r
+ * element.\r
+ */\r
+SVGElementPtr getViewportElement()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//####################################################################\r
+//# I N T E R F A C E S\r
+//####################################################################\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGAngle                    \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short getUnitType()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double getValue()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setValue(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double getValueInSpecifiedUnits()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setValueInSpecifiedUnits(double /*val*/) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getValueAsString()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setValueAsString(const DOMString &/*val*/) throw (DOMException)\r
+{\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void newValueSpecifiedUnits(unsigned short /*unitType*/,\r
+                            double /*valueInSpecifiedUnits*/)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void convertToSpecifiedUnits(unsigned short /*unitType*/)\r
+{\r
+}\r
+\r
+//####################################################################\r
+//## The following animated types are rolled up into a single\r
+//## SVGAnimatedValue interface\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedAngle\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedBoolean\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedEnumeration\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedInteger\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedLength\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedLengthList\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedNumber\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedNumberList\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedPathData\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedPoints\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedPreserveAspectRatio\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedRect\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedString\r
+//####################################################################\r
+\r
+//####################################################################\r
+//## SVGAnimatedTransformList\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGAnimatedValue          \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue &getBaseVal()\r
+{\r
+    return baseVal();\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setBaseVal(const SVGValue &val) throw (DOMException)\r
+{\r
+    baseVal = val;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue &getAnimVal()\r
+{\r
+    return animVal;\r
+}\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGColor                    \r
+//####################################################################\r
+\r
+/**\r
+ * From CSSValue \r
+ * A code defining the type of the value as defined above.\r
+ */\r
+unsigned short getCssValueType()\r
+{\r
+}\r
+\r
+/**\r
+ * From CSSValue \r
+ * A string representation of the current value.\r
+ */\r
+DOMString getCssText()\r
+{\r
+}\r
+\r
+/**\r
+ * From CSSValue \r
+ * A string representation of the current value.\r
+ * Note that setting implies parsing.     \r
+ */\r
+void setCssText(const DOMString &val) throw (dom::DOMException)\r
+{\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short getColorType()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+css::RGBColor getRgbColor()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGICCColor getIccColor()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void setRGBColor(const DOMString& /*rgbColor*/) throw (SVGException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setRGBColorICCColor(const DOMString& /*rgbColor*/,\r
+                         const DOMString& /*iccColor*/)\r
+                         throw (SVGException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setColor(unsigned short /*colorType*/,\r
+                       const DOMString& /*rgbColor*/,\r
+                       const DOMString& /*iccColor*/)\r
+                       throw (SVGException)\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGCSSRule                  \r
+//####################################################################\r
+\r
+/**\r
+ * From CSSRule    \r
+ * The type of the rule, as defined above. The expectation is that \r
+ * binding-specific casting methods can be used to cast down from an instance of \r
+ * the CSSRule interface to the specific derived interface implied by the type.\r
+ */\r
+unsigned short getType()\r
+{\r
+}\r
+\r
+/**\r
+ * From CSSRule    \r
+ * The parsable textual representation of the rule. This reflects the current \r
+ * state of the rule and not its initial value.\r
+ */\r
+DOMString getCssText()\r
+{\r
+}\r
+\r
+/**\r
+ * From CSSRule    \r
+ * The parsable textual representation of the rule. This reflects the current \r
+ * state of the rule and not its initial value.\r
+ * Note that setting involves reparsing.     \r
+ */\r
+void setCssText(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * From CSSRule    \r
+ * The style sheet that contains this rule.\r
+ */\r
+css::CSSStyleSheet *getParentStyleSheet()\r
+{\r
+}\r
+\r
+/**\r
+ * From CSSRule    \r
+ * If this rule is contained inside another rule(e.g. a style rule inside an \r
+ * @media block), this is the containing rule. If this rule is not nested inside \r
+ * any other rules, this returns null.\r
+ */\r
+css::CSSRule *getParentRule()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGExternalResourcesRequired\r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedBoolean getExternalResourcesRequired()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGFitToViewBox             \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedRect getViewBox()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGICCColor                 \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getColorProfile()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setColorProfile(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGNumberList &getColors()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGLangSpace                \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getXmllang()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setXmllang(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getXmlspace()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setXmlspace(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGLength                   \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short getUnitType()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double getValue()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setValue(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double getValueInSpecifiedUnits()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setValueInSpecifiedUnits(double /*val*/) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getValueAsString()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setValueAsString(const DOMString& /*val*/) throw (DOMException)\r
+{\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void newValueSpecifiedUnits(unsigned short /*unitType*/, double /*val*/)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void convertToSpecifiedUnits(unsigned short /*unitType*/)\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//## SVGLengthList - see SVGValueList\r
+//####################################################################\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGLocatable                \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementPtr getNearestViewportElement()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElement *getFarthestViewportElement()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGRect getBBox()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGMatrix getCTM()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGMatrix getScreenCTM()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGMatrix getTransformToElement(const SVGElement &/*element*/)\r
+                                throw (SVGException)\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGNumber                   \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+double getValue()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setValue(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGNumberList - see SVGValueList      \r
+//####################################################################\r
+\r
+\r
+//####################################################################\r
+//# SVGRect                     \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+double getX()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setX(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double getY()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setY(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double getWidth()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setWidth(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double getHeight()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setHeight(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGRenderingIntent          \r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGStringList - see SVGValueList\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGStylable                 \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString getClassName()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+css::CSSStyleDeclaration getStyle()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+css::CSSValue getPresentationAttribute(const DOMString& /*name*/)\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGTests                    \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValueList &getRequiredFeatures()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValueList &getRequiredExtensions()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValueList &getSystemLanguage()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+bool hasExtension(const DOMString& /*extension*/)\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGTransformable            \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedList &getTransform()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGUnitTypes                \r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGURIReference             \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedValue getHref()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//## SVGValueList - consolidation of other lists\r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned long SVGElement::getNumberOfItems()\r
+{\r
+    return items.size();\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void SVGElement::clear() throw (DOMException)\r
+{\r
+    items.clear();\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGElement::initialize(const SVGValue& newItem)\r
+                throw (DOMException, SVGException)\r
+{\r
+    items.clear();\r
+    items.push_back(newItem);\r
+    return newItem;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGElement::getItem(unsigned long index) throw (DOMException)\r
+{\r
+    if (index >= items.size())\r
+        return "";\r
+    return items[index];\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGElement::insertItemBefore(const SVGValue& newItem,\r
+                                          unsigned long index)\r
+                                          throw (DOMException, SVGException)\r
+{\r
+    if (index>=items.size())\r
+        {\r
+        items.push_back(newItem);\r
+        }\r
+    else\r
+        {\r
+        std::vector<SVGValue>::iterator iter = items.begin() + index;\r
+        items.insert(iter, newItem);\r
+        }\r
+    return newItem;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGElement::replaceItem (const SVGValue& newItem,\r
+                                unsigned long index)\r
+                            throw (DOMException, SVGException)\r
+{\r
+    if (index>=items.size())\r
+        return "";\r
+    std::vector<SVGValue>::iterator iter = items.begin() + index;\r
+    *iter = newItem;\r
+    return newItem;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGElement::removeItem (unsigned long index)\r
+                throw (DOMException)\r
+{\r
+    if (index>=items.size())\r
+        return "";\r
+    std::vector<SVGValue>::iterator iter = items.begin() + index;\r
+    SVGValue oldval = *iter;\r
+    items.erase(iter);\r
+    return oldval;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGValue SVGElement::appendItem (const SVGValue& newItem)\r
+                throw (DOMException, SVGException)\r
+{\r
+    items.push_back(newItem);\r
+    return newItem;\r
+}\r
+\r
+\r
+/**\r
+ * Matrix\r
+ */\r
+SVGValue SVGElement::createSVGTransformFromMatrix(const SVGValue &matrix)\r
+{\r
+}\r
+\r
+/**\r
+ * Matrix\r
+ */\r
+SVGValue SVGElement::consolidate()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGViewSpec                 \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+//SVGTransformList getTransform()\r
+//{\r
+//}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementPtr getViewTarget()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getViewBoxString()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getPreserveAspectRatioString()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getTransformString()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getViewTargetString()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGZoomAndPan               \r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned short getZoomAndPan()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setZoomAndPan(unsigned short val) throw (DOMException)\r
+{\r
+}\r
+\r
+//####################################################################\r
+//####################################################################\r
+//# E L E M E N T S\r
+//####################################################################\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGAElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString getTarget()\r
+{\r
+}\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGAltGlyphElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Get the attribute glyphRef on the given element.\r
+ */\r
+DOMString getGlyphRef()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute glyphRef on the given element.\r
+ */\r
+void setGlyphRef(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute format on the given element.\r
+ */\r
+DOMString getFormat()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute format on the given element.\r
+ */\r
+void setFormat(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGAltGlyphDefElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGAltGlyphItemElement\r
+//####################################################################\r
+\r
+\r
+//####################################################################\r
+//# SVGAnimateElement\r
+//####################################################################\r
+\r
+\r
+//####################################################################\r
+//# SVGAnimateColorElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGAnimateMotionElement\r
+//####################################################################\r
+\r
+\r
+//####################################################################\r
+//# SVGAnimateTransformElement\r
+//####################################################################\r
+\r
+\r
+//####################################################################\r
+//# SVGAnimationElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElementPtr getTargetElement()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double getStartTime()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double getCurrentTime()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+double getSimpleDuration() throw (DOMException)\r
+{\r
+}\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGCircleElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute cx on the given 'circle' element.\r
+ */\r
+SVGAnimatedLength getCx()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute cy on the given 'circle' element.\r
+ */\r
+SVGAnimatedLength getCy()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute r on the given 'circle' element.\r
+ */\r
+SVGAnimatedLength getR()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGClipPathElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute clipPathUnits on the given 'clipPath' element.\r
+ *      Takes one of the constants defined in SVGUnitTypes.\r
+ */\r
+SVGAnimatedEnumeration getClipPathUnits()\r
+{\r
+}\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGColorProfileElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Get the attribute local on the given element.\r
+ */\r
+DOMString getLocal()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute local on the given element.\r
+ */\r
+void setLocal(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute name on the given element.\r
+ */\r
+DOMString getName()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute name on the given element.\r
+ */\r
+void setName(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute rendering-intent on the given element.\r
+ * The type of rendering intent, identified by one of the\r
+ *      SVGRenderingIntent constants.\r
+ */\r
+unsigned short getRenderingIntent()\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute rendering-intent on the given element.\r
+ */\r
+void setRenderingIntent(unsigned short val) throw (DOMException)\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGComponentTransferFunctionElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute type on the given element. Takes one\r
+ *      of the Component Transfer Types.\r
+ */\r
+SVGAnimatedEnumeration getType()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute tableValues on the given element.\r
+ */\r
+SVGAnimatedNumberList getTableValues()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute slope on the given element.\r
+ */\r
+SVGAnimatedNumber getSlope()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute intercept on the given element.\r
+ */\r
+SVGAnimatedNumber getIntercept()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute amplitude on the given element.\r
+ */\r
+SVGAnimatedNumber getAmplitude()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute exponent on the given element.\r
+ */\r
+SVGAnimatedNumber getExponent()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute offset on the given element.\r
+ */\r
+SVGAnimatedNumber getOffset()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGCursorElement\r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getX()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getY()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGDefinitionSrcElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGDefsElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGDescElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGEllipseElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute cx on the given 'ellipse' element.\r
+ */\r
+SVGAnimatedLength getCx()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute cy on the given 'ellipse' element.\r
+ */\r
+SVGAnimatedLength getCy()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute rx on the given 'ellipse' element.\r
+ */\r
+SVGAnimatedLength getRx()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute ry on the given 'ellipse' element.\r
+ */\r
+SVGAnimatedLength getRy()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFEBlendElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute in on the given 'feBlend' element.\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute in2 on the given 'feBlend' element.\r
+ */\r
+SVGAnimatedString getIn2()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute mode on the given 'feBlend' element.\r
+ *      Takes one of the Blend Mode Types.\r
+ */\r
+SVGAnimatedEnumeration getMode()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFEColorMatrixElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute in on the given 'feColorMatrix' element.\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute type on the given 'feColorMatrix' element.\r
+ *      Takes one of the Color Matrix Types.\r
+ */\r
+SVGAnimatedEnumeration getType()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute values on the given 'feColorMatrix' element.\r
+ * Provides access to the contents of the values attribute.\r
+ */\r
+SVGAnimatedNumberList getValues()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFEComponentTransferElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute in on the given 'feComponentTransfer'  element.\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGFECompositeElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute in on the given 'feComposite' element.\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute in2 on the given 'feComposite' element.\r
+ */\r
+SVGAnimatedString getIn2()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute operator on the given 'feComposite' element.\r
+ *      Takes one of the Composite Operators.\r
+ */\r
+SVGAnimatedEnumeration getOperator()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute k1 on the given 'feComposite' element.\r
+ */\r
+SVGAnimatedNumber getK1()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute k2 on the given 'feComposite' element.\r
+ */\r
+SVGAnimatedNumber getK2()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute k3 on the given 'feComposite' element.\r
+ */\r
+SVGAnimatedNumber getK3()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute k4 on the given 'feComposite' element.\r
+ */\r
+SVGAnimatedNumber getK4()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFEConvolveMatrixElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute order on the given 'feConvolveMatrix'  element.\r
+ */\r
+SVGAnimatedInteger getOrderX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute order on the given 'feConvolveMatrix'  element.\r
+ */\r
+SVGAnimatedInteger getOrderY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute kernelMatrix on the given element.\r
+ */\r
+SVGAnimatedNumberList getKernelMatrix()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute divisor on the given 'feConvolveMatrix' element.\r
+ */\r
+SVGAnimatedNumber getDivisor()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute bias on the given 'feConvolveMatrix'  element.\r
+ */\r
+SVGAnimatedNumber getBias()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute targetX on the given 'feConvolveMatrix'  element.\r
+ */\r
+SVGAnimatedInteger getTargetX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute targetY on the given 'feConvolveMatrix'  element.\r
+ */\r
+SVGAnimatedInteger getTargetY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute edgeMode on the given 'feConvolveMatrix'\r
+ *      element. Takes one of the Edge Mode Types.\r
+ */\r
+SVGAnimatedEnumeration getEdgeMode()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute kernelUnitLength on the\r
+ *      given 'feConvolveMatrix'  element.\r
+ */\r
+SVGAnimatedLength getKernelUnitLengthX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute kernelUnitLength on the given\r
+ *      'feConvolveMatrix'  element.\r
+ */\r
+SVGAnimatedLength getKernelUnitLengthY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute preserveAlpha on the\r
+ *      given 'feConvolveMatrix'  element.\r
+ */\r
+SVGAnimatedBoolean getPreserveAlpha()\r
+{\r
+}\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGFEDiffuseLightingElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute in on the given 'feDiffuseLighting'  element.\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute surfaceScale on the given\r
+ *      'feDiffuseLighting'  element.\r
+ */\r
+SVGAnimatedNumber getSurfaceScale()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute diffuseConstant on the given\r
+ *      'feDiffuseLighting'  element.\r
+ */\r
+SVGAnimatedNumber getDiffuseConstant()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute kernelUnitLength on the given\r
+ *      'feDiffuseLighting'  element.\r
+ */\r
+SVGAnimatedNumber getKernelUnitLengthX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute kernelUnitLength on the given\r
+ *      'feDiffuseLighting'  element.\r
+ */\r
+SVGAnimatedNumber getKernelUnitLengthY()\r
+{\r
+}\r
+\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGFEDisplacementMapElement\r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString getIn2()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedNumber getScale()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedEnumeration getXChannelSelector()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedEnumeration getYChannelSelector()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGFEDistantLightElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute azimuth on the given 'feDistantLight'  element.\r
+ */\r
+SVGAnimatedNumber getAzimuth()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute elevation on the given 'feDistantLight'\r
+ *    element\r
+ */\r
+SVGAnimatedNumber getElevation()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFEFloodElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFEFuncAElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGFEFuncBElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGFEFuncGElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGFEFuncRElement\r
+//####################################################################\r
+\r
+\r
+//####################################################################\r
+//# SVGFEGaussianBlurElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedNumber getStdDeviationX()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedNumber getStdDeviationY()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void setStdDeviation(double stdDeviationX, double stdDeviationY)\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFEImageElement\r
+//####################################################################\r
+\r
+\r
+//####################################################################\r
+//# SVGFEMergeElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGFEMergeNodeElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGFEMorphologyElement\r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedEnumeration getOperator()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getRadiusX()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getRadiusY()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGFEOffsetElement\r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getDx()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getDy()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFEPointLightElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute x on the given 'fePointLight' element.\r
+ */\r
+SVGAnimatedNumber getX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y on the given 'fePointLight' element.\r
+ */\r
+SVGAnimatedNumber getY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute z on the given 'fePointLight' element.\r
+ */\r
+SVGAnimatedNumber getZ()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGFESpecularLightingElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedNumber getSurfaceScale()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedNumber getSpecularConstant()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedNumber getSpecularExponent()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFESpotLightElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute x on the given 'feSpotLight' element.\r
+ */\r
+SVGAnimatedNumber getX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y on the given 'feSpotLight' element.\r
+ */\r
+SVGAnimatedNumber getY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute z on the given 'feSpotLight' element.\r
+ */\r
+SVGAnimatedNumber getZ()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute pointsAtX on the given 'feSpotLight' element.\r
+ */\r
+SVGAnimatedNumber getPointsAtX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute pointsAtY on the given 'feSpotLight' element.\r
+ */\r
+SVGAnimatedNumber getPointsAtY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute pointsAtZ on the given 'feSpotLight' element.\r
+ */\r
+SVGAnimatedNumber getPointsAtZ()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute specularExponent on the\r
+ *      given 'feSpotLight'  element.\r
+ */\r
+SVGAnimatedNumber getSpecularExponent()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute limitingConeAngle on the\r
+ *      given 'feSpotLight'  element.\r
+ */\r
+SVGAnimatedNumber getLimitingConeAngle()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFETileElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedString getIn1()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFETurbulenceElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedNumber getBaseFrequencyX()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedNumber getBaseFrequencyY()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedInteger getNumOctaves()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedNumber getSeed()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedEnumeration getStitchTiles()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedEnumeration getType()\r
+{\r
+}\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGFilterElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute filterUnits on the given 'filter' element. Takes one\r
+ * of the constants defined in SVGUnitTypes.\r
+ */\r
+SVGAnimatedEnumeration getFilterUnits()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute primitiveUnits on the given 'filter' element. Takes\r
+ * one of the constants defined in SVGUnitTypes.\r
+ */\r
+SVGAnimatedEnumeration getPrimitiveUnits()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute x on the given 'filter' element.\r
+ */\r
+SVGAnimatedLength getY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y on the given 'filter' element.\r
+ */\r
+SVGAnimatedLength getWidth()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute height on the given 'filter' element.\r
+ */\r
+SVGAnimatedLength getHeight()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute filterRes on the given 'filter' element.\r
+ *      Contains the X component of attribute filterRes.\r
+ */\r
+SVGAnimatedInteger getFilterResX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute filterRes on the given 'filter' element.\r
+ * Contains the Y component(possibly computed automatically)\r
+ *      of attribute filterRes.\r
+ */\r
+SVGAnimatedInteger getFilterResY()\r
+{\r
+}\r
+\r
+/**\r
+ * Sets the values for attribute filterRes.\r
+ */\r
+void setFilterRes(unsigned long filterResX, unsigned long filterResY)\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGFontElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGFontFaceElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGFontFaceFormatElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGFontFaceNameElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGFontFaceSrcElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGFontFaceUriElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGForeignObjectElement\r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getX()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getY()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getWidth()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getHeight()\r
+{\r
+}\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGGlyphRefElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Get the attribute glyphRef on the given element.\r
+ */\r
+DOMString getGlyphRef()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute glyphRef on the given element.\r
+ */\r
+void setGlyphRef(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute format on the given element.\r
+ */\r
+DOMString getFormat()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute format on the given element.\r
+ */\r
+void setFormat(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute x on the given element.\r
+ */\r
+double getX()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute x on the given element.\r
+ */\r
+void setX(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute y on the given element.\r
+ */\r
+double getY()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute y on the given element.\r
+ */\r
+void setY(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute dx on the given element.\r
+ */\r
+double getDx()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute dx on the given element.\r
+ */\r
+void setDx(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute dy on the given element.\r
+ */\r
+double getDy()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute dy on the given element.\r
+ */\r
+void setDy(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGGradientElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute gradientUnits on the given element.\r
+ *      Takes one of the constants defined in SVGUnitTypes.\r
+ */\r
+SVGAnimatedEnumeration getGradientUnits()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute gradientTransform on the given element.\r
+ */\r
+SVGAnimatedTransformList getGradientTransform()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute spreadMethod on the given element.\r
+ *      One of the Spread Method Types.\r
+ */\r
+SVGAnimatedEnumeration getSpreadMethod()\r
+{\r
+}\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGHKernElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGImageElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute x on the given 'image' element.\r
+ */\r
+SVGAnimatedLength getX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y on the given 'image' element.\r
+ */\r
+SVGAnimatedLength getY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute width on the given 'image' element.\r
+ */\r
+SVGAnimatedLength getWidth()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute height on the given 'image' element.\r
+ */\r
+SVGAnimatedLength getHeight()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute preserveAspectRatio on the given element.\r
+ */\r
+SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGLinearGradientElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute x1 on the given 'linearGradient'  element.\r
+ */\r
+SVGAnimatedLength getX1()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y1 on the given 'linearGradient'  element.\r
+ */\r
+SVGAnimatedLength getY1()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute x2 on the given 'linearGradient'  element.\r
+ */\r
+SVGAnimatedLength getX2()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y2 on the given 'linearGradient'  element.\r
+ */\r
+SVGAnimatedLength getY2()\r
+{\r
+}\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGLineElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute x1 on the given 'line' element.\r
+ */\r
+SVGAnimatedLength getX1()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y1 on the given 'line' element.\r
+ */\r
+SVGAnimatedLength getY1()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute x2 on the given 'line' element.\r
+ */\r
+SVGAnimatedLength getX2()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y2 on the given 'line' element.\r
+ */\r
+SVGAnimatedLength getY2()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGMarkerElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute refX on the given 'marker' element.\r
+ */\r
+SVGAnimatedLength getRefX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute refY on the given 'marker' element.\r
+ */\r
+SVGAnimatedLength getRefY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute markerUnits on the given 'marker' element.\r
+ *      One of the Marker Units Types defined above.\r
+ */\r
+SVGAnimatedEnumeration getMarkerUnits()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute markerWidth on the given 'marker' element.\r
+ */\r
+SVGAnimatedLength getMarkerWidth()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute markerHeight on the given 'marker' element.\r
+ */\r
+SVGAnimatedLength getMarkerHeight()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute orient on the given 'marker' element.\r
+ *      One of the Marker Orientation Types defined above.\r
+ */\r
+SVGAnimatedEnumeration getOrientType()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute orient on the given 'marker' element.\r
+ * If markerUnits is SVG_MARKER_ORIENT_ANGLE, the angle value for\r
+ * attribute orient ; otherwise, it will be set to zero.\r
+ */\r
+SVGAnimatedAngle getOrientAngle()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Sets the value of attribute orient to 'auto'.\r
+ */\r
+void setOrientToAuto()\r
+{\r
+}\r
+\r
+/**\r
+ * Sets the value of attribute orient to the given angle.\r
+ */\r
+void setOrientToAngle(const SVGAngle &angle)\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGMaskElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute maskUnits on the given 'mask' element. Takes one of\r
+ * the constants defined in SVGUnitTypes.\r
+ */\r
+SVGAnimatedEnumeration getMaskUnits()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute maskContentUnits on the given 'mask' element. Takes\r
+ * one of the constants defined in SVGUnitTypes.\r
+ */\r
+SVGAnimatedEnumeration getMaskContentUnits()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute x on the given 'mask' element.\r
+ */\r
+SVGAnimatedLength getX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y on the given 'mask' element.\r
+ */\r
+SVGAnimatedLength getY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute width on the given 'mask' element.\r
+ */\r
+SVGAnimatedLength getWidth()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute height on the given 'mask' element.\r
+ */\r
+SVGAnimatedLength getHeight()\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGMetadataElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGMissingGlyphElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGMPathElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGPathElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute pathLength on the given 'path' element.\r
+ */\r
+SVGAnimatedNumber getPathLength()\r
+{\r
+}\r
+\r
+/**\r
+ * Returns the user agent's computed value for the total length of the path using\r
+ * the user agent's distance-along-a-path algorithm, as a distance in the current\r
+ * user coordinate system.\r
+ */\r
+double getTotalLength()\r
+{\r
+}\r
+\r
+/**\r
+ * Returns the(x,y) coordinate in user space which is distance units along the\r
+ * path, utilizing the user agent's distance-along-a-path algorithm.\r
+ */\r
+SVGPoint getPointAtLength(double distance)\r
+{\r
+}\r
+\r
+/**\r
+ * Returns the index into pathSegList which is distance units along the path,\r
+ * utilizing the user agent's distance-along-a-path algorithm.\r
+ */\r
+unsigned long getPathSegAtLength(double distance)\r
+{\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegClosePath object.\r
+ */\r
+SVGPathSeg createSVGPathSegClosePath()\r
+{\r
+    SVGPathSeg seg(PATHSEG_CLOSEPATH);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegMovetoAbs object.\r
+ */\r
+SVGPathSeg createSVGPathSegMovetoAbs(double x, double y)\r
+{\r
+    SVGPathSeg seg(PATHSEG_MOVETO_ABS);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegMovetoRel object.\r
+ */\r
+SVGPathSeg createSVGPathSegMovetoRel(double x, double y)\r
+{\r
+    SVGPathSeg seg(PATHSEG_MOVETO_REL);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegLinetoAbs object.\r
+ */\r
+SVGPathSeg createSVGPathSegLinetoAbs(double x, double y)\r
+{\r
+    SVGPathSeg seg(PATHSEG_LINETO_ABS);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegLinetoRel object.\r
+ */\r
+SVGPathSeg createSVGPathSegLinetoRel(double x, double y)\r
+{\r
+    SVGPathSeg seg(PATHSEG_LINETO_REL);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object.\r
+ */\r
+SVGPathSeg createSVGPathSegCurvetoCubicAbs(double x, double y,\r
+                    double x1, double y1, double x2, double y2)\r
+{\r
+    SVGPathSeg seg(PATHSEG_CURVETO_CUBIC_ABS);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    seg.setX1(x1);\r
+    seg.setY1(y1);\r
+    seg.setX2(x2);\r
+    seg.setY2(y2);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicRel object.\r
+ */\r
+SVGPathSeg createSVGPathSegCurvetoCubicRel(double x, double y,\r
+                    double x1, double y1, double x2, double y2)\r
+{\r
+    SVGPathSeg seg(PATHSEG_CURVETO_CUBIC_REL);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    seg.setX1(x1);\r
+    seg.setY1(y1);\r
+    seg.setX2(x2);\r
+    seg.setY2(y2);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object.\r
+ */\r
+SVGPathSeg createSVGPathSegCurvetoQuadraticAbs(double x, double y,\r
+                     double x1, double y1)\r
+{\r
+    SVGPathSeg seg(PATHSEG_CURVETO_QUADRATIC_ABS);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    seg.setX1(x1);\r
+    seg.setY1(y1);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object.\r
+ */\r
+SVGPathSeg createSVGPathSegCurvetoQuadraticRel(double x, double y,\r
+                     double x1, double y1)\r
+{\r
+    SVGPathSeg seg(PATHSEG_CURVETO_QUADRATIC_REL);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    seg.setX1(x1);\r
+    seg.setY1(y1);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegArcAbs object.\r
+ */\r
+SVGPathSeg createSVGPathSegArcAbs(double x, double y,\r
+                     double r1, double r2, double angle,\r
+                     bool largeArcFlag, bool sweepFlag)\r
+{\r
+    SVGPathSeg seg(PATHSEG_ARC_ABS);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    seg.setR1(r1);\r
+    seg.setR2(r2);\r
+    seg.setAngle(angle);\r
+    seg.setLargeArcFlag(largeArcFlag);\r
+    seg.setSweepFlag(sweepFlag);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegArcRel object.\r
+ */\r
+SVGPathSeg createSVGPathSegArcRel(double x, double y, double r1,\r
+                     double r2, double angle, bool largeArcFlag,\r
+                     bool sweepFlag)\r
+{\r
+    SVGPathSeg seg(PATHSEG_ARC_REL);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    seg.setR1(r1);\r
+    seg.setR2(r2);\r
+    seg.setAngle(angle);\r
+    seg.setLargeArcFlag(largeArcFlag);\r
+    seg.setSweepFlag(sweepFlag);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalAbs object.\r
+ */\r
+SVGPathSeg createSVGPathSegLinetoHorizontalAbs(double x)\r
+{\r
+    SVGPathSeg seg(PATHSEG_LINETO_HORIZONTAL_ABS);\r
+    seg.setX(x);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object.\r
+ */\r
+SVGPathSeg createSVGPathSegLinetoHorizontalRel(double x)\r
+{\r
+    SVGPathSeg seg(PATHSEG_LINETO_HORIZONTAL_REL);\r
+    seg.setX(x);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object.\r
+ */\r
+SVGPathSeg createSVGPathSegLinetoVerticalAbs(double y)\r
+{\r
+    SVGPathSeg seg(PATHSEG_LINETO_VERTICAL_ABS);\r
+    seg.setY(y);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object.\r
+ */\r
+SVGPathSeg createSVGPathSegLinetoVerticalRel(double y)\r
+{\r
+    SVGPathSeg seg(PATHSEG_LINETO_VERTICAL_REL);\r
+    seg.setY(y);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object.\r
+ */\r
+SVGPathSeg createSVGPathSegCurvetoCubicSmoothAbs(double x, double y,\r
+                                         double x2, double y2)\r
+{\r
+    SVGPathSeg seg(PATHSEG_CURVETO_CUBIC_SMOOTH_ABS);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    seg.setX2(x2);\r
+    seg.setY2(y2);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object.\r
+ */\r
+SVGPathSeg createSVGPathSegCurvetoCubicSmoothRel(double x, double y,\r
+                                                  double x2, double y2)\r
+{\r
+    SVGPathSeg seg(PATHSEG_CURVETO_CUBIC_SMOOTH_REL);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    seg.setX2(x2);\r
+    seg.setY2(y2);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs\r
+ *      object.\r
+ */\r
+SVGPathSeg createSVGPathSegCurvetoQuadraticSmoothAbs(double x, double y)\r
+{\r
+    SVGPathSeg seg(PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    return seg;\r
+}\r
+\r
+/**\r
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel\r
+ *      object.\r
+ */\r
+SVGPathSeg createSVGPathSegCurvetoQuadraticSmoothRel(double x, double y)\r
+{\r
+    SVGPathSeg seg(PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL);\r
+    seg.setX(x);\r
+    seg.setY(y);\r
+    return seg;\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGPatternElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute patternUnits on the given 'pattern' element.\r
+ * Takes one of the constants defined in SVGUnitTypes.\r
+ */\r
+SVGAnimatedEnumeration getPatternUnits()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute patternContentUnits on the given 'pattern'\r
+ *      element. Takes one of the constants defined in SVGUnitTypes.\r
+ */\r
+SVGAnimatedEnumeration getPatternContentUnits()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute patternTransform on the given 'pattern' element.\r
+ */\r
+SVGAnimatedTransformList getPatternTransform()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute x on the given 'pattern' element.\r
+ */\r
+SVGAnimatedLength getX()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+SVGAnimatedLength getY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute width on the given 'pattern' element.\r
+ */\r
+SVGAnimatedLength getWidth()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute height on the given 'pattern' element.\r
+ */\r
+SVGAnimatedLength getHeight()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGPolyLineElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGPolygonElement\r
+//####################################################################\r
+\r
+\r
+//####################################################################\r
+//# SVGRadialGradientElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute cx on the given 'radialGradient'  element.\r
+ */\r
+SVGAnimatedLength getCx()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute cy on the given 'radialGradient'  element.\r
+ */\r
+SVGAnimatedLength getCy()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute r on the given 'radialGradient'  element.\r
+ */\r
+SVGAnimatedLength getR()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute fx on the given 'radialGradient'  element.\r
+ */\r
+SVGAnimatedLength getFx()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute fy on the given 'radialGradient'  element.\r
+ */\r
+SVGAnimatedLength getFy()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGRectElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute x on the given 'rect' element.\r
+ */\r
+SVGAnimatedLength getX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y on the given 'rect' element.\r
+ */\r
+SVGAnimatedLength getY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute width on the given 'rect' element.\r
+ */\r
+SVGAnimatedLength getWidth()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute height on the given 'rect' element.\r
+ */\r
+SVGAnimatedLength getHeight()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute rx on the given 'rect' element.\r
+ */\r
+SVGAnimatedLength getRx()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute ry on the given 'rect' element.\r
+ */\r
+SVGAnimatedLength getRy()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGScriptElement\r
+//####################################################################\r
+\r
+/**\r
+ *\r
+ */\r
+DOMString getType()\r
+{\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void setType(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGSetElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGStopElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute offset on the given 'stop' element.\r
+ */\r
+SVGAnimatedNumber getOffset()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGStyleElement\r
+//####################################################################\r
+\r
+/**\r
+ * Get the attribute xml:space on the given element.\r
+ */\r
+DOMString getXmlspace()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute xml:space on the given element.\r
+ */\r
+void setXmlspace(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute type on the given 'style' element.\r
+ */\r
+DOMString getType()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute type on the given 'style' element.\r
+ */\r
+void setType(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute media on the given 'style' element.\r
+ */\r
+DOMString getMedia()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute media on the given 'style' element.\r
+ */\r
+void setMedia(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute title on the given 'style' element.\r
+ */\r
+DOMString getTitle()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute title on the given 'style' element.\r
+ */\r
+void setTitle(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+//####################################################################\r
+//# SVGSymbolElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGSVGElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute x on the given 'svg' element.\r
+ */\r
+SVGAnimatedLength getX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y on the given 'svg' element.\r
+ */\r
+SVGAnimatedLength getY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute width on the given 'svg' element.\r
+ */\r
+SVGAnimatedLength getWidth()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute height on the given 'svg' element.\r
+ */\r
+SVGAnimatedLength getHeight()\r
+{\r
+}\r
+\r
+/**\r
+ * Get the attribute contentScriptType on the given 'svg' element.\r
+ */\r
+DOMString getContentScriptType()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute contentScriptType on the given 'svg' element.\r
+ */\r
+void setContentScriptType(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Get the attribute contentStyleType on the given 'svg' element.\r
+ */\r
+DOMString getContentStyleType()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the attribute contentStyleType on the given 'svg' element.\r
+ */\r
+void setContentStyleType(const DOMString &val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * The position and size of the viewport(implicit or explicit) that corresponds\r
+ * to this 'svg' element. When the user agent is actually rendering the content,\r
+ * then the position and size values represent the actual values when rendering.\r
+ * The position and size values are unitless values in the coordinate system of\r
+ * the parent element. If no parent element exists(i.e., 'svg' element\r
+ * represents the root of the document tree), if this SVG document is embedded as\r
+ * part of another document(e.g., via the HTML 'object' element), then the\r
+ * position and size are unitless values in the coordinate system of the parent\r
+ * document.(If the parent uses CSS or XSL layout, then unitless values\r
+ * represent pixel units for the current CSS or XSL viewport, as described in the\r
+ * CSS2 specification.) If the parent element does not have a coordinate system,\r
+ * then the user agent should provide reasonable default values for this attribute.\r
+ */\r
+SVGRect getViewport()\r
+{\r
+}\r
+\r
+/**\r
+ * Size of a pixel units(as defined by CSS2) along the x-axis of the viewport,\r
+ * which represents a unit somewhere in the range of 70dpi to 120dpi, and, on\r
+ * systems that support this, might actually match the characteristics of the\r
+ * target medium. On systems where it is impossible to know the size of a pixel,\r
+ * a suitable default pixel size is provided.\r
+ */\r
+double getPixelUnitToMillimeterX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponding size of a pixel unit along the y-axis of the viewport.\r
+ */\r
+double getPixelUnitToMillimeterY()\r
+{\r
+}\r
+\r
+/**\r
+ * User interface(UI) events in DOM Level 2 indicate the screen positions at\r
+ * which the given UI event occurred. When the user agent actually knows the\r
+ * physical size of a "screen unit", this attribute will express that information\r
+{\r
+}\r
+ *  otherwise, user agents will provide a suitable default value such as .28mm.\r
+ */\r
+double getScreenPixelToMillimeterX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponding size of a screen pixel along the y-axis of the viewport.\r
+ */\r
+double getScreenPixelToMillimeterY()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * The initial view(i.e., before magnification and panning) of the current\r
+ * innermost SVG document fragment can be either the "standard" view(i.e., based\r
+ * on attributes on the 'svg' element such as fitBoxToViewport) or to a "custom"\r
+ * view(i.e., a hyperlink into a particular 'view' or other element - see\r
+ * Linking into SVG content: URI fragments and SVG views). If the initial view is\r
+ * the "standard" view, then this attribute is false. If the initial view is a\r
+ * "custom" view, then this attribute is true.\r
+ */\r
+bool getUseCurrentView()\r
+{\r
+}\r
+\r
+/**\r
+ * Set the value above\r
+ */\r
+void setUseCurrentView(bool val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * The definition of the initial view(i.e., before magnification and panning) of\r
+ * the current innermost SVG document fragment. The meaning depends on the\r
+ * situation:\r
+ * \r
+ *    * If the initial view was a "standard" view, then:\r
+ *      o the values for viewBox, preserveAspectRatio and zoomAndPan within\r
+ *        currentView will match the values for the corresponding DOM attributes that\r
+ *        are on SVGSVGElement directly\r
+ *      o the values for transform and viewTarget within currentView will be null\r
+ *    * If the initial view was a link into a 'view' element, then:\r
+ *      o the values for viewBox, preserveAspectRatio and zoomAndPan within\r
+ *        currentView will correspond to the corresponding attributes for the given\r
+ *        'view' element\r
+ *      o the values for transform and viewTarget within currentView will be null\r
+ *    * If the initial view was a link into another element(i.e., other than a\r
+ *      'view'), then:\r
+ *      o the values for viewBox, preserveAspectRatio and zoomAndPan within\r
+ *        currentView will match the values for the corresponding DOM attributes that\r
+ *        are on SVGSVGElement directly for the closest ancestor 'svg' element\r
+ *      o the values for transform within currentView will be null\r
+ *      o the viewTarget within currentView will represent the target of the link\r
+ *    * If the initial view was a link into the SVG document fragment using an SVG\r
+ *      view specification fragment identifier(i.e., #svgView(...)), then:\r
+ *      o the values for viewBox, preserveAspectRatio, zoomAndPan, transform and\r
+ *        viewTarget within currentView will correspond to the values from the SVG view\r
+ *        specification fragment identifier\r
+ * \r
+ */\r
+SVGViewSpec getCurrentView()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * This attribute indicates the current scale factor relative to the initial view\r
+ * to take into account user magnification and panning operations, as described\r
+ * under Magnification and panning. DOM attributes currentScale and\r
+ * currentTranslate are equivalent to the 2x3 matrix [a b c d e f] =\r
+ * [currentScale 0 0 currentScale currentTranslate.x currentTranslate.y]. If\r
+ * "magnification" is enabled(i.e., zoomAndPan="magnify"), then the effect is as\r
+ * if an extra transformation were placed at the outermost level on the SVG\r
+ * document fragment(i.e., outside the outermost 'svg' element).\r
+ */\r
+double getCurrentScale()\r
+{\r
+}\r
+\r
+/**\r
+ *  Set the value above.\r
+ */\r
+void setCurrentScale(double val) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * The corresponding translation factor that takes into account\r
+ *      user "magnification".\r
+ */\r
+SVGPoint getCurrentTranslate()\r
+{\r
+}\r
+\r
+/**\r
+ * Takes a time-out value which indicates that redraw shall not occur until:(a)\r
+ * the corresponding unsuspendRedraw(suspend_handle_id) call has been made,(b)\r
+ * an unsuspendRedrawAll() call has been made, or(c) its timer has timed out. In\r
+ * environments that do not support interactivity(e.g., print media), then\r
+ * redraw shall not be suspended. suspend_handle_id =\r
+ * suspendRedraw(max_wait_milliseconds) and unsuspendRedraw(suspend_handle_id)\r
+ * must be packaged as balanced pairs. When you want to suspend redraw actions as\r
+ * a collection of SVG DOM changes occur, then precede the changes to the SVG DOM\r
+ * with a method call similar to suspend_handle_id =\r
+ * suspendRedraw(max_wait_milliseconds) and follow the changes with a method call\r
+ * similar to unsuspendRedraw(suspend_handle_id). Note that multiple\r
+ * suspendRedraw calls can be used at once and that each such method call is\r
+ * treated independently of the other suspendRedraw method calls.\r
+ */\r
+unsigned long suspendRedraw(unsigned long max_wait_milliseconds)\r
+{\r
+}\r
+\r
+/**\r
+ * Cancels a specified suspendRedraw() by providing a unique suspend_handle_id.\r
+ */\r
+void unsuspendRedraw(unsigned long suspend_handle_id) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Cancels all currently active suspendRedraw() method calls. This method is most\r
+ * useful at the very end of a set of SVG DOM calls to ensure that all pending\r
+ * suspendRedraw() method calls have been cancelled.\r
+ */\r
+void unsuspendRedrawAll()\r
+{\r
+}\r
+\r
+/**\r
+ * In rendering environments supporting interactivity, forces the user agent to\r
+ * immediately redraw all regions of the viewport that require updating.\r
+ */\r
+void forceRedraw()\r
+{\r
+}\r
+\r
+/**\r
+ * Suspends(i.e., pauses) all currently running animations that are defined\r
+ * within the SVG document fragment corresponding to this 'svg' element, causing\r
+ * the animation clock corresponding to this document fragment to stand still\r
+ * until it is unpaused.\r
+ */\r
+void pauseAnimations()\r
+{\r
+}\r
+\r
+/**\r
+ * Unsuspends(i.e., unpauses) currently running animations that are defined\r
+ * within the SVG document fragment, causing the animation clock to continue from\r
+ * the time at which it was suspended.\r
+ */\r
+void unpauseAnimations()\r
+{\r
+}\r
+\r
+/**\r
+ * Returns true if this SVG document fragment is in a paused state.\r
+ */\r
+bool animationsPaused()\r
+{\r
+}\r
+\r
+/**\r
+ * Returns the current time in seconds relative to the start time for\r
+ *      the current SVG document fragment.\r
+ */\r
+double getCurrentTime()\r
+{\r
+}\r
+\r
+/**\r
+ * Adjusts the clock for this SVG document fragment, establishing\r
+ *      a new current time.\r
+ */\r
+void setCurrentTime(double seconds)\r
+{\r
+}\r
+\r
+/**\r
+ * Returns the list of graphics elements whose rendered content intersects the\r
+ * supplied rectangle, honoring the 'pointer-events' property value on each\r
+ * candidate graphics element.\r
+ */\r
+NodeList getIntersectionList(const SVGRect &rect,\r
+                             const SVGElementPtr referenceElement)\r
+{\r
+}\r
+\r
+/**\r
+ * Returns the list of graphics elements whose rendered content is entirely\r
+ * contained within the supplied rectangle, honoring the 'pointer-events'\r
+ * property value on each candidate graphics element.\r
+ */\r
+NodeList getEnclosureList(const SVGRect &rect,\r
+                          const SVGElementPtr referenceElement)\r
+{\r
+}\r
+\r
+/**\r
+ * Returns true if the rendered content of the given element intersects the\r
+ * supplied rectangle, honoring the 'pointer-events' property value on each\r
+ * candidate graphics element.\r
+ */\r
+bool checkIntersection(const SVGElementPtr element, const SVGRect &rect)\r
+{\r
+}\r
+\r
+/**\r
+ * Returns true if the rendered content of the given element is entirely\r
+ * contained within the supplied rectangle, honoring the 'pointer-events'\r
+ * property value on each candidate graphics element.\r
+ */\r
+bool checkEnclosure(const SVGElementPtr element, const SVGRect &rect)\r
+{\r
+}\r
+\r
+/**\r
+ * Unselects any selected objects, including any selections of text\r
+ *      strings and type-in bars.\r
+ */\r
+void deselectAll()\r
+{\r
+}\r
+\r
+/**\r
+ * Creates an SVGNumber object outside of any document trees. The object\r
+ *      is initialized to a value of zero.\r
+ */\r
+SVGNumber createSVGNumber()\r
+{\r
+}\r
+\r
+/**\r
+ * Creates an SVGLength object outside of any document trees. The object\r
+ *      is initialized to the value of 0 user units.\r
+ */\r
+SVGLength createSVGLength()\r
+{\r
+}\r
+\r
+/**\r
+ * Creates an SVGAngle object outside of any document trees. The object\r
+ *      is initialized to the value 0 degrees(unitless).\r
+ */\r
+SVGAngle createSVGAngle()\r
+{\r
+}\r
+\r
+/**\r
+ * Creates an SVGPoint object outside of any document trees. The object\r
+ * is initialized to the point(0,0) in the user coordinate system.\r
+ */\r
+SVGPoint createSVGPoint()\r
+{\r
+}\r
+\r
+/**\r
+ * Creates an SVGMatrix object outside of any document trees. The object\r
+ *      is initialized to the identity matrix.\r
+ */\r
+SVGMatrix createSVGMatrix()\r
+{\r
+}\r
+\r
+/**\r
+ * Creates an SVGRect object outside of any document trees. The object\r
+ *      is initialized such that all values are set to 0 user units.\r
+ */\r
+SVGRect createSVGRect()\r
+{\r
+}\r
+\r
+/**\r
+ * Creates an SVGTransform object outside of any document trees.\r
+ * The object is initialized to an identity matrix transform\r
+ *     (SVG_TRANSFORM_MATRIX).\r
+ */\r
+SVGTransform createSVGTransform()\r
+{\r
+}\r
+\r
+/**\r
+ * Creates an SVGTransform object outside of any document trees.\r
+ * The object is initialized to the given matrix transform\r
+ *     (i.e., SVG_TRANSFORM_MATRIX).\r
+ */\r
+SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix)\r
+{\r
+}\r
+\r
+/**\r
+ * Searches this SVG document fragment(i.e., the search is restricted to a\r
+ * subset of the document tree) for an Element whose id is given by elementId. If\r
+ * an Element is found, that Element is returned. If no such element exists,\r
+ * returns null. Behavior is not defined if more than one element has this id.\r
+ */\r
+ElementPtr getElementById(const DOMString& elementId)\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGTextElement\r
+//####################################################################\r
+\r
+\r
+//####################################################################\r
+//# SVGTextContentElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute textLength on the given element.\r
+ */\r
+SVGAnimatedLength getTextLength()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute lengthAdjust on the given element. The value must be\r
+ * one of the length adjust constants specified above.\r
+ */\r
+SVGAnimatedEnumeration getLengthAdjust()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Returns the total number of characters to be rendered within the current\r
+ * element. Includes characters which are included via a 'tref' reference.\r
+ */\r
+long getNumberOfChars()\r
+{\r
+}\r
+\r
+/**\r
+ * The total sum of all of the advance values from rendering all of the\r
+ * characters within this element, including the advance value on the glyphs\r
+ *(horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'\r
+ * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'\r
+ * elements. For non-rendering environments, the user agent shall make reasonable\r
+ * assumptions about glyph metrics.\r
+ */\r
+double getComputedTextLength()\r
+{\r
+}\r
+\r
+/**\r
+ * The total sum of all of the advance values from rendering the specified\r
+ * substring of the characters, including the advance value on the glyphs\r
+ *(horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'\r
+ * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'\r
+ * elements. For non-rendering environments, the user agent shall make reasonable\r
+ * assumptions about glyph metrics.\r
+ */\r
+double getSubStringLength(unsigned long charnum, unsigned long nchars)\r
+                                 throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Returns the current text position before rendering the character in the user\r
+ * coordinate system for rendering the glyph(s) that correspond to the specified\r
+ * character. The current text position has already taken into account the\r
+ * effects of any inter-character adjustments due to properties 'kerning',\r
+ * 'letter-spacing' and 'word-spacing' and adjustments due to attributes x, y, dx\r
+ * and dy. If multiple consecutive characters are rendered inseparably(e.g., as\r
+ * a single glyph or a sequence of glyphs), then each of the inseparable\r
+ * characters will return the start position for the first glyph.\r
+ */\r
+SVGPoint getStartPositionOfChar(unsigned long charnum) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Returns the current text position after rendering the character in the user\r
+ * coordinate system for rendering the glyph(s) that correspond to the specified\r
+ * character. This current text position does not take into account the effects\r
+ * of any inter-character adjustments to prepare for the next character, such as\r
+ * properties 'kerning', 'letter-spacing' and 'word-spacing' and adjustments due\r
+ * to attributes x, y, dx and dy. If multiple consecutive characters are rendered\r
+ * inseparably(e.g., as a single glyph or a sequence of glyphs), then each of\r
+ * the inseparable characters will return the end position for the last glyph.\r
+ */\r
+SVGPoint getEndPositionOfChar(unsigned long charnum) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Returns a tightest rectangle which defines the minimum and maximum X and Y\r
+ * values in the user coordinate system for rendering the glyph(s) that\r
+ * correspond to the specified character. The calculations assume that all glyphs\r
+ * occupy the full standard glyph cell for the font. If multiple consecutive\r
+ * characters are rendered inseparably(e.g., as a single glyph or a sequence of\r
+ * glyphs), then each of the inseparable characters will return the same extent.\r
+ */\r
+SVGRect getExtentOfChar(unsigned long charnum) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Returns the rotation value relative to the current user coordinate system used\r
+ * to render the glyph(s) corresponding to the specified character. If multiple\r
+ * glyph(s) are used to render the given character and the glyphs each have\r
+ * different rotations(e.g., due to text-on-a-path), the user agent shall return\r
+ * an average value(e.g., the rotation angle at the midpoint along the path for\r
+ * all glyphs used to render this character). The rotation value represents the\r
+ * rotation that is supplemental to any rotation due to properties\r
+ * 'glyph-orientation-horizontal' and 'glyph-orientation-vertical'; thus, any\r
+ * glyph rotations due to these properties are not included into the returned\r
+ * rotation value. If multiple consecutive characters are rendered inseparably\r
+ *(e.g., as a single glyph or a sequence of glyphs), then each of the\r
+ * inseparable characters will return the same rotation value.\r
+ */\r
+double getRotationOfChar(unsigned long charnum) throw (DOMException)\r
+{\r
+}\r
+\r
+/**\r
+ * Returns the index of the character whose corresponding glyph cell bounding box\r
+ * contains the specified point. The calculations assume that all glyphs occupy\r
+ * the full standard glyph cell for the font. If no such character exists, a\r
+ * value of -1 is returned. If multiple such characters exist, the character\r
+ * within the element whose glyphs were rendered last(i.e., take into account\r
+ * any reordering such as for bidirectional text) is used. If multiple\r
+ * consecutive characters are rendered inseparably(e.g., as a single glyph or a\r
+ * sequence of glyphs), then the user agent shall allocate an equal percentage of\r
+ * the text advance amount to each of the contributing characters in determining\r
+ * which of the characters is chosen.\r
+ */\r
+long getCharNumAtPosition(const SVGPoint &point)\r
+{\r
+}\r
+\r
+/**\r
+ * Causes the specified substring to be selected just as if the user\r
+ *      selected the substring interactively.\r
+ */\r
+void selectSubString(unsigned long charnum, unsigned long nchars)\r
+                              throw (DOMException)\r
+{\r
+}\r
+\r
+\r
+\r
+\r
+\r
+//####################################################################\r
+//# SVGTextPathElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute startOffset on the given 'textPath' element.\r
+ */\r
+SVGAnimatedLength getStartOffset()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute method on the given 'textPath' element. The value\r
+ * must be one of the method type constants specified above.\r
+ */\r
+SVGAnimatedEnumeration getMethod()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute spacing on the given 'textPath' element.\r
+ *  The value must be one of the spacing type constants specified above.\r
+ */\r
+SVGAnimatedEnumeration getSpacing()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGTextPositioningElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ * Corresponds to attribute x on the given element.\r
+ */\r
+SVGAnimatedLength getX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y on the given element.\r
+ */\r
+SVGAnimatedLength getY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute dx on the given element.\r
+ */\r
+SVGAnimatedLength getDx()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute dy on the given element.\r
+ */\r
+SVGAnimatedLength getDy()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Corresponds to attribute rotate on the given element.\r
+ */\r
+SVGAnimatedNumberList getRotate()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGTitleElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGTRefElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGTSpanElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGSwitchElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGUseElement\r
+//####################################################################\r
+\r
+/**\r
+ * Corresponds to attribute x on the given 'use' element.\r
+ */\r
+SVGAnimatedLength getX()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute y on the given 'use' element.\r
+ */\r
+SVGAnimatedLength getY()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute width on the given 'use' element.\r
+ */\r
+SVGAnimatedLength getWidth()\r
+{\r
+}\r
+\r
+/**\r
+ * Corresponds to attribute height on the given 'use' element.\r
+ */\r
+SVGAnimatedLength getHeight()\r
+{\r
+}\r
+\r
+/**\r
+ * The root of the "instance tree". See description of SVGElementInstance for\r
+ * a discussion on the instance tree.\r
+ *      */\r
+SVGElementInstance getInstanceRoot()\r
+{\r
+}\r
+\r
+/**\r
+ * If the 'href' attribute is being animated, contains the current animated root\r
+ * of the "instance tree". If the 'href' attribute is not currently being\r
+ * animated, contains the same value as 'instanceRoot'. The root of the "instance\r
+ * tree". See description of SVGElementInstance for a discussion on the instance\r
+ * tree.\r
+ */\r
+SVGElementInstance getAnimatedInstanceRoot()\r
+{\r
+}\r
+\r
+\r
+//####################################################################\r
+//# SVGVKernElement\r
+//####################################################################\r
+\r
+//####################################################################\r
+//# SVGViewElement\r
+//####################################################################\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGStringList getViewTarget();\r
+\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+SVGElement::~SVGElement()\r
+{\r
+}\r
+\r
+\r
+\r
+\r
+/*#########################################################################\r
+## SVGDocument\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ * The title of a document as specified by the title sub-element of the 'svg'\r
+ * root element(i.e., <svg><title>Here is the title</title>...</svg>)\r
+ */\r
+DOMString SVGDocument::getTitle()\r
+{\r
+}\r
+\r
+/**\r
+ * Returns the URI of the page that linked to this page. The value is an empty\r
+ * string if the user navigated to the page directly(not through a link, but,\r
+ * for example, via a bookmark).\r
+ */\r
+DOMString SVGDocument::getReferrer()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * The domain name of the server that served the document, or a null string if\r
+ * the server cannot be identified by a domain name.\r
+ */\r
+DOMString SVGDocument::getDomain()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * The complete URI of the document.\r
+ */\r
+DOMString SVGDocument::getURL()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * The root 'svg'  element in the document hierarchy.\r
+ */\r
+SVGElementPtr SVGDocument::getRootElement()\r
+{\r
+}\r
+\r
+\r
+/**\r
+ * Overloaded from Document\r
+ * \r
+ */\r
+ElementPtr SVGDocument::createElement(const DOMString &tagName)\r
+{\r
+    ElementPtr ptr;\r
+    return ptr;\r
+}\r
+\r
+\r
+/**\r
+ * Overloaded from Document\r
+ * \r
+ */\r
+ElementPtr SVGDocument::createElementNS(const DOMString &tagName,\r
+                                        const DOMString &namespaceURI)\r
+{\r
+    ElementPtr ptr;\r
+    return ptr;\r
+}\r
+\r
+\r
+/**\r
+ * The root 'svg'  element in the document hierarchy.\r
+ */\r
+SVGElementPtr SVGDocument::getRootElement()\r
+{\r
+}\r
+\r
+\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+SVGDocument::~SVGDocument()\r
+{\r
+}\r
+\r
+\r
+\r
+/*#########################################################################\r
+## GetSVGDocument\r
+#########################################################################*/\r
+\r
+\r
+/**\r
+ * Returns the SVGDocument  object for the referenced SVG document.\r
+ */\r
+SVGDocumentPtr GetSVGDocument::getSVGDocument()\r
+                throw (DOMException)\r
+{\r
+    SVGDocumentPtr ptr;\r
+    return ptr;\r
+}\r
+\r
+//##################\r
+//# Non-API methods\r
+//##################\r
+\r
+/**\r
+ *\r
+ */\r
+GetSVGDocument::~GetSVGDocument()\r
+{\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+}  //namespace svg\r
+}  //namespace dom\r
+}  //namespace w3c\r
+}  //namespace org\r
+\r
+#endif // __SVG_H__\r
+/*#########################################################################\r
+## E N D    O F    F I L E\r
+#########################################################################*/\r
+\r