Code

Raise SVG c++ files to main dom directory. They belong there nos.
authorishmal <ishmal@users.sourceforge.net>
Tue, 18 Mar 2008 20:57:50 +0000 (20:57 +0000)
committerishmal <ishmal@users.sourceforge.net>
Tue, 18 Mar 2008 20:57:50 +0000 (20:57 +0000)
16 files changed:
src/dom/Makefile.mingw
src/dom/Makefile_insert
src/dom/svg.h [new file with mode: 0644]
src/dom/svg/svg.h [deleted file]
src/dom/svg/svg.idl [deleted file]
src/dom/svg/svgimpl.cpp [deleted file]
src/dom/svg/svgimpl.h [deleted file]
src/dom/svg/svgparser.cpp [deleted file]
src/dom/svg/svgparser.h [deleted file]
src/dom/svg/svgtypes.h [deleted file]
src/dom/svgimpl.cpp [new file with mode: 0644]
src/dom/svgimpl.h [new file with mode: 0644]
src/dom/svgparser.cpp [new file with mode: 0644]
src/dom/svgparser.h [new file with mode: 0644]
src/dom/svgtypes.h [new file with mode: 0644]
src/dom/work/svg.idl [new file with mode: 0644]

index 987a668af299e5f0368a6c5449e94d17b73ea606..1266bb71cc5ef288f9de543306cf695f2e328c03 100644 (file)
@@ -161,131 +161,12 @@ io/stringstream.o \
 io/uristream.o    \
 io/socket.o       \
 odf/odfdocument.o \
-svg/svgimpl.o     \
-svg/svgparser.o   \
+svgimpl.o         \
+svgparser.o       \
 ucd.o             \
 util/thread.o     \
 util/ziptool.o
 
-JSOBJ = \
-js/js.o \
-js/jsapi.o \
-js/jsarena.o \
-js/jsarray.o \
-js/jsatom.o \
-js/jsbool.o \
-js/jscntxt.o \
-js/jscpucfg.o \
-js/jsdate.o \
-js/jsdbgapi.o \
-js/jsdhash.o \
-js/jsdtoa.o \
-js/jsemit.o \
-js/jsexn.o \
-js/jsfile.o \
-js/jsfun.o \
-js/jsgc.o \
-js/jshash.o \
-js/jsinterp.o \
-js/jslock.o \
-js/jslog2.o \
-js/jslong.o \
-js/jsmath.o \
-js/jsnum.o \
-js/jsobj.o \
-js/jsopcode.o \
-js/jsparse.o \
-js/jsprf.o \
-js/jsregexp.o \
-js/jsscan.o \
-js/jsscope.o \
-js/jsscript.o \
-js/jsstr.o \
-js/jsutil.o \
-js/jsxdrapi.o \
-js/jsxml.o \
-js/prmjtime.o \
-js/fdlibm/e_acos.o \
-js/fdlibm/e_acosh.o \
-js/fdlibm/e_asin.o \
-js/fdlibm/e_atan2.o \
-js/fdlibm/e_atanh.o \
-js/fdlibm/e_cosh.o \
-js/fdlibm/e_exp.o \
-js/fdlibm/e_fmod.o \
-js/fdlibm/e_gamma.o \
-js/fdlibm/e_gamma_r.o \
-js/fdlibm/e_hypot.o \
-js/fdlibm/e_j0.o \
-js/fdlibm/e_j1.o \
-js/fdlibm/e_jn.o \
-js/fdlibm/e_lgamma.o \
-js/fdlibm/e_lgamma_r.o \
-js/fdlibm/e_log.o \
-js/fdlibm/e_log10.o \
-js/fdlibm/e_pow.o \
-js/fdlibm/e_remainder.o \
-js/fdlibm/e_rem_pio2.o \
-js/fdlibm/e_scalb.o \
-js/fdlibm/e_sinh.o \
-js/fdlibm/e_sqrt.o \
-js/fdlibm/k_cos.o \
-js/fdlibm/k_rem_pio2.o \
-js/fdlibm/k_sin.o \
-js/fdlibm/k_standard.o \
-js/fdlibm/k_tan.o \
-js/fdlibm/s_asinh.o \
-js/fdlibm/s_atan.o \
-js/fdlibm/s_cbrt.o \
-js/fdlibm/s_ceil.o \
-js/fdlibm/s_copysign.o \
-js/fdlibm/s_cos.o \
-js/fdlibm/s_erf.o \
-js/fdlibm/s_expm1.o \
-js/fdlibm/s_fabs.o \
-js/fdlibm/s_finite.o \
-js/fdlibm/s_floor.o \
-js/fdlibm/s_frexp.o \
-js/fdlibm/s_ilogb.o \
-js/fdlibm/s_isnan.o \
-js/fdlibm/s_ldexp.o \
-js/fdlibm/s_lib_version.o \
-js/fdlibm/s_log1p.o \
-js/fdlibm/s_logb.o \
-js/fdlibm/s_matherr.o \
-js/fdlibm/s_modf.o \
-js/fdlibm/s_nextafter.o \
-js/fdlibm/s_rint.o \
-js/fdlibm/s_scalbn.o \
-js/fdlibm/s_signgam.o \
-js/fdlibm/s_significand.o \
-js/fdlibm/s_sin.o \
-js/fdlibm/s_tan.o \
-js/fdlibm/s_tanh.o \
-js/fdlibm/w_acos.o \
-js/fdlibm/w_acosh.o \
-js/fdlibm/w_asin.o \
-js/fdlibm/w_atan2.o \
-js/fdlibm/w_atanh.o \
-js/fdlibm/w_cosh.o \
-js/fdlibm/w_exp.o \
-js/fdlibm/w_fmod.o \
-js/fdlibm/w_gamma.o \
-js/fdlibm/w_gamma_r.o \
-js/fdlibm/w_hypot.o \
-js/fdlibm/w_j0.o \
-js/fdlibm/w_j1.o \
-js/fdlibm/w_jn.o \
-js/fdlibm/w_lgamma.o \
-js/fdlibm/w_lgamma_r.o \
-js/fdlibm/w_log.o \
-js/fdlibm/w_log10.o \
-js/fdlibm/w_pow.o \
-js/fdlibm/w_remainder.o \
-js/fdlibm/w_scalb.o \
-js/fdlibm/w_sinh.o \
-js/fdlibm/w_sqrt.o
-
 
 
 TESTOBJ = \
@@ -296,7 +177,7 @@ work/testuri.o   \
 work/testxpath.o \
 work/testzip.o
 
-OBJ = $(DOMOBJ) $(JSOBJ)
+OBJ = $(DOMOBJ)
 
 all: testdom.exe testhttp.exe testjs.exe \
 testsvg.exe testuri.exe testxpath.exe testzip.exe
index da748b2b86928d9c0899dfa72ed7da5d97307aef..730b2d44a9db8d1034eb64ab7ab329938985bf5d 100644 (file)
@@ -29,6 +29,12 @@ dom_libdom_a_SOURCES =       \
     dom/smilimpl.cpp         \
     dom/smilimpl.h           \
        dom/stylesheets.h        \
+       dom/svg.h                \
+       dom/svgimpl.cpp          \
+       dom/svgimpl.h            \
+       dom/svgparser.cpp        \
+       dom/svgparser.h          \
+       dom/svgtypes.h           \
        dom/traversal.h          \
        dom/ucd.cpp              \
        dom/ucd.h                \
@@ -63,12 +69,6 @@ dom_libdom_a_SOURCES =       \
        dom/io/uristream.h       \
     dom/odf/odfdocument.cpp  \
     dom/odf/odfdocument.h    \
-       dom/svg/svg.h            \
-       dom/svg/svgimpl.cpp      \
-       dom/svg/svgimpl.h        \
-       dom/svg/svgparser.cpp    \
-       dom/svg/svgparser.h      \
-       dom/svg/svgtypes.h       \
     dom/util/digest.h        \
     dom/util/digest.cpp      \
     dom/util/thread.h        \
diff --git a/src/dom/svg.h b/src/dom/svg.h
new file mode 100644 (file)
index 0000000..c5f3309
--- /dev/null
@@ -0,0 +1,4481 @@
+#ifndef __SVG_H__
+#define __SVG_H__
+
+/**
+ * Phoebe DOM Implementation.
+ *
+ * This is a C++ approximation of the W3C DOM model, which follows
+ * fairly closely the specifications in the various .idl files, copies of
+ * which are provided for reference.  Most important is this one:
+ *
+ * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
+ *
+ * Authors:
+ *   Bob Jamison
+ *
+ * Copyright (C) 2005 Bob Jamison
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+
+// For access to DOM2 core
+#include "dom/dom.h"
+
+// For access to DOM2 events
+#include "dom/events.h"
+
+// For access to those parts from DOM2 CSS OM used by SVG DOM.
+#include "dom/css.h"
+
+// For access to those parts from DOM2 Views OM used by SVG DOM.
+#include "dom/views.h"
+
+// For access to the SMIL OM used by SVG DOM.
+#include "dom/smil.h"
+
+
+
+#include "svgtypes.h"
+
+#include <math.h>
+
+
+
+namespace org
+{
+namespace w3c
+{
+namespace dom
+{
+namespace svg
+{
+
+
+//local definitions
+typedef dom::DOMString DOMString;
+typedef dom::DOMException DOMException;
+typedef dom::Element Element;
+typedef dom::ElementPtr ElementPtr;
+typedef dom::Document Document;
+typedef dom::DocumentPtr DocumentPtr;
+typedef dom::NodeList NodeList;
+
+
+
+
+class SVGElement;
+typedef Ptr<SVGElement> SVGElementPtr;
+class SVGSVGElement;
+typedef Ptr<SVGSVGElement> SVGSVGElementPtr;
+class SVGDocument;
+typedef Ptr<SVGDocument> SVGDocumentPtr;
+
+
+/*#########################################################################
+## SVGElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGElement : virtual public Element
+{
+public:
+
+    /**
+     *
+     */
+    virtual DOMString getId() =0;
+
+    /**
+     *
+     */
+    virtual void setId(const DOMString &val)
+                       throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual DOMString getXmlBase() = 0;
+
+    /**
+     *
+     */
+    virtual void setXmlBase(const DOMString &val)
+                            throw (DOMException) = 0;
+
+    /**
+     *
+     */
+    virtual SVGSVGElementPtr getOwnerSVGElement() = 0;
+
+    /**
+     *
+     */
+    virtual SVGElementPtr getViewportElement() = 0;
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    virtual ~SVGElement() {}
+
+
+};
+
+
+
+/*#########################################################################
+## SVGDocument
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGDocument : virtual public Document,
+                    virtual public events::DocumentEvent
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual DOMString getTitle() =0;
+
+    /**
+     *
+     */
+    virtual DOMString getReferrer() =0;
+
+    /**
+     *
+     */
+    virtual DOMString getDomain() =0;
+
+    /**
+     *
+     */
+    virtual DOMString getURL() =0;
+
+    /**
+     *
+     */
+    virtual SVGSVGElementPtr getRootElement() =0;
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGDocument() {}
+
+};
+
+
+
+/*#########################################################################
+## SVGSVGElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGSVGElement : virtual public SVGElement,
+                      public SVGTests,
+                      public SVGLangSpace,
+                      public SVGExternalResourcesRequired,
+                      public SVGStylable,
+                      public SVGLocatable,
+                      public SVGFitToViewBox,
+                      public SVGZoomAndPan,
+                      public events::EventTarget,
+                      public events::DocumentEvent,
+                      public css::ViewCSS,
+                      public css::DocumentCSS
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight() =0;
+
+    /**
+     *
+     */
+    virtual DOMString getContentScriptType() =0;
+
+    /**
+     *
+     */
+    virtual void setContentScriptType(const DOMString &val)
+                                     throw (DOMException) =0;
+
+
+    /**
+     *
+     */
+    virtual DOMString getContentStyleType() =0;
+
+    /**
+     *
+     */
+    virtual void setContentStyleType(const DOMString &val)
+                                     throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual SVGRect getViewport() =0;
+
+    /**
+     *
+     */
+    virtual double getPixelUnitToMillimeterX() =0;
+
+    /**
+     *
+     */
+    virtual double getPixelUnitToMillimeterY() =0;
+
+    /**
+     *
+     */
+    virtual double getScreenPixelToMillimeterX() =0;
+
+    /**
+     *
+     */
+    virtual double getScreenPixelToMillimeterY() =0;
+
+
+    /**
+     *
+     */
+    virtual bool getUseCurrentView() =0;
+
+    /**
+     *
+     */
+    virtual void setUseCurrentView(bool val) throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual SVGViewSpec getCurrentView() =0;
+
+
+    /**
+     *
+     */
+    virtual double getCurrentScale() =0;
+
+    /**
+     *
+     */
+    virtual void setCurrentScale(double val)
+                                 throw (DOMException) =0;
+
+
+    /**
+     *
+     */
+    virtual SVGPoint getCurrentTranslate() =0;
+
+
+    /**
+     *
+     */
+    virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds ) =0;
+
+    /**
+     *
+     */
+    virtual void unsuspendRedraw (unsigned long suspend_handle_id )
+                                  throw( DOMException ) =0;
+
+    /**
+     *
+     */
+    virtual void unsuspendRedrawAll (  ) =0;
+
+    /**
+     *
+     */
+    virtual void forceRedraw (  ) =0;
+
+    /**
+     *
+     */
+    virtual void pauseAnimations (  ) =0;
+
+    /**
+     *
+     */
+    virtual void unpauseAnimations (  ) =0;
+
+    /**
+     *
+     */
+    virtual bool animationsPaused (  ) =0;
+
+    /**
+     *
+     */
+    virtual double getCurrentTime (  ) =0;
+
+    /**
+     *
+     */
+    virtual void setCurrentTime (double seconds ) =0;
+
+    /**
+     *
+     */
+    virtual NodeList getIntersectionList(const SVGRect &rect,
+                                         const SVGElementPtr referenceElement ) =0;
+
+    /**
+     *
+     */
+    virtual NodeList getEnclosureList (const SVGRect &rect,
+                                       const SVGElementPtr referenceElement ) =0;
+
+    /**
+     *
+     */
+    virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect ) =0;
+
+    /**
+     *
+     */
+    virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect ) =0;
+
+    /**
+     *
+     */
+    virtual void deselectAll (  ) =0;
+
+    /**
+     *
+     */
+    virtual SVGNumber createSVGNumber (  ) =0;
+
+    /**
+     *
+     */
+    virtual SVGLength createSVGLength (  ) =0;
+
+    /**
+     *
+     */
+    virtual SVGAngle createSVGAngle (  ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPoint createSVGPoint (  ) =0;
+
+    /**
+     *
+     */
+    virtual SVGMatrix createSVGMatrix (  ) =0;
+
+    /**
+     *
+     */
+    virtual SVGRect createSVGRect (  ) =0;
+
+    /**
+     *
+     */
+    virtual SVGTransform createSVGTransform (  ) =0;
+
+    /**
+     *
+     */
+    virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix ) =0;
+
+    /**
+     *
+     */
+    virtual ElementPtr getElementById (const DOMString& elementId ) =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGSVGElement() {}
+
+};
+
+
+
+/*#########################################################################
+## SVGGElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGGElement : virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGGElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGDefsElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGDefsElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGDefsElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGDescElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGDescElement :
+                    virtual public SVGElement,
+                    public SVGLangSpace,
+                    public SVGStylable
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGDescElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGTitleElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTitleElement :
+                    virtual public SVGElement,
+                    public SVGLangSpace,
+                    public SVGStylable
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTitleElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGSymbolElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGSymbolElement :
+                    virtual public SVGElement,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGFitToViewBox,
+                    public events::EventTarget
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGSymbolElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGUseElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGUseElement :
+                    virtual public SVGElement,
+                    public SVGURIReference,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget
+{
+public:
+
+
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight() =0;
+
+    /**
+     *
+     */
+    virtual SVGElementInstance getInstanceRoot() =0;
+
+    /**
+     *
+     */
+    virtual SVGElementInstance getAnimatedInstanceRoot() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGUseElement() {}
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGImageElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGImageElement :
+                    virtual public SVGElement,
+                    public SVGURIReference,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGImageElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGSwitchElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGSwitchElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGSwitchElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## GetSVGDocument
+#########################################################################*/
+
+/**
+ *
+ */
+class GetSVGDocument
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGDocumentPtr getSVGDocument (  )
+                    throw( DOMException ) =0;
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~GetSVGDocument() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGStyleElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGStyleElement : virtual public SVGElement
+{
+public:
+
+    /**
+     *
+     */
+    virtual DOMString getXmlspace() = 0;
+
+    /**
+     *
+     */
+    virtual void setXmlspace(const DOMString &val)
+                             throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual DOMString getType() = 0;
+
+    /**
+     *
+     */
+    virtual void setType(const DOMString &val)
+                         throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual DOMString getMedia() = 0;
+
+    /**
+     *
+     */
+    virtual void setMedia(const DOMString &val)
+                          throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual DOMString getTitle() = 0;
+
+    /**
+     *
+     */
+    virtual void setTitle(const DOMString &val)
+                          throw (DOMException) =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGStyleElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget,
+                    public SVGAnimatedPathData
+{
+public:
+
+
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getPathLength() =0;
+
+    /**
+     *
+     */
+    virtual double getTotalLength (  ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPoint getPointAtLength (double distance ) =0;
+
+    /**
+     *
+     */
+    virtual unsigned long getPathSegAtLength (double distance ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegClosePath
+              createSVGPathSegClosePath (  ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegMovetoAbs
+              createSVGPathSegMovetoAbs (double x, double y ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegMovetoRel
+              createSVGPathSegMovetoRel (double x, double y ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoAbs
+              createSVGPathSegLinetoAbs (double x, double y ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoRel
+              createSVGPathSegLinetoRel (double x, double y ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoCubicAbs
+              createSVGPathSegCurvetoCubicAbs (double x, double y,
+                        double x1, double y1, double x2, double y2 ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoCubicRel
+              createSVGPathSegCurvetoCubicRel (double x, double y,
+                        double x1, double y1, double x2, double y2 ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoQuadraticAbs
+              createSVGPathSegCurvetoQuadraticAbs (double x, double y,
+                         double x1, double y1 ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoQuadraticRel
+              createSVGPathSegCurvetoQuadraticRel (double x, double y,
+                         double x1, double y1 ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegArcAbs
+              createSVGPathSegArcAbs (double x, double y,
+                         double r1, double r2, double angle,
+                         bool largeArcFlag, bool sweepFlag ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegArcRel
+              createSVGPathSegArcRel (double x, double y, double r1,
+                         double r2, double angle, bool largeArcFlag,
+                         bool sweepFlag ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoHorizontalAbs
+              createSVGPathSegLinetoHorizontalAbs (double x ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoHorizontalRel
+              createSVGPathSegLinetoHorizontalRel (double x ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoVerticalAbs
+              createSVGPathSegLinetoVerticalAbs (double y ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoVerticalRel
+              createSVGPathSegLinetoVerticalRel (double y ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoCubicSmoothAbs
+              createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
+                                             double x2, double y2 ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoCubicSmoothRel
+              createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
+                                                      double x2, double y2 ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoQuadraticSmoothAbs
+              createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoQuadraticSmoothRel
+              createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y ) =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGPathElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGRectElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGRectElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRx() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRy() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGRectElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGCircleElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGCircleElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCx() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCy() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getR() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGCircleElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGEllipseElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGEllipseElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCx() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCy() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRx() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRy() =0;
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGEllipseElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGLineElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGLineElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX2() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY2() =0;
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGLineElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGPolylineElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPolylineElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget,
+                    public SVGAnimatedPoints
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGPolylineElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGPolygonElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPolygonElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget,
+                    public SVGAnimatedPoints
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGPolygonElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGTextContentElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTextContentElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public events::EventTarget
+{
+public:
+
+
+
+    /**
+     * lengthAdjust Types
+     */
+    typedef enum
+        {
+        LENGTHADJUST_UNKNOWN          = 0,
+        LENGTHADJUST_SPACING          = 1,
+        LENGTHADJUST_SPACINGANDGLYPHS = 2
+        } LengthAdjustType;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getTextLength() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getLengthAdjust() =0;
+
+
+    /**
+     *
+     */
+    virtual long getNumberOfChars (  ) =0;
+
+    /**
+     *
+     */
+    virtual double getComputedTextLength (  ) =0;
+
+    /**
+     *
+     */
+    virtual double getSubStringLength (unsigned long charnum, unsigned long nchars )
+                                     throw( DOMException ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPoint getStartPositionOfChar (unsigned long charnum )
+                                              throw( DOMException ) =0;
+
+    /**
+     *
+     */
+    virtual SVGPoint getEndPositionOfChar (unsigned long charnum )
+                                           throw( DOMException ) =0;
+
+    /**
+     *
+     */
+    virtual SVGRect getExtentOfChar (unsigned long charnum )
+                                      throw( DOMException ) =0;
+
+    /**
+     *
+     */
+    virtual double getRotationOfChar (unsigned long charnum )
+                                     throw( DOMException ) =0;
+
+    /**
+     *
+     */
+    virtual long getCharNumAtPosition (const SVGPoint &point ) =0;
+
+    /**
+     *
+     */
+    virtual void selectSubString (unsigned long charnum, unsigned long nchars )
+                                  throw( DOMException ) =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTextContentElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGTextPositioningElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTextPositioningElement : virtual public SVGTextContentElement
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getDx() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getDy() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumberList getRotate() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTextPositioningElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGTextElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTextElement : virtual public SVGTextPositioningElement,
+                       public SVGTransformable
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTextElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGTSpanElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTSpanElement : virtual public SVGTextPositioningElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTSpanElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGTRefElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTRefElement :
+                    virtual public SVGTextPositioningElement,
+                    public SVGURIReference
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTRefElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGTextPathElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTextPathElement :
+                    virtual public SVGTextContentElement,
+                    public SVGURIReference
+{
+public:
+
+
+
+    /**
+     * textPath Method Types
+     */
+    typedef enum
+        {
+        TEXTPATH_METHODTYPE_UNKNOWN   = 0,
+        TEXTPATH_METHODTYPE_ALIGN     = 1,
+        TEXTPATH_METHODTYPE_STRETCH   = 2
+        } TextPathMethodType;
+
+    /**
+     * textPath Spacing Types
+     */
+    typedef enum
+        {
+        TEXTPATH_SPACINGTYPE_UNKNOWN  = 0,
+        TEXTPATH_SPACINGTYPE_AUTO     = 1,
+        TEXTPATH_SPACINGTYPE_EXACT    = 2
+        } TextPathSpacingType;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getStartOffset() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getMethod() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getSpacing() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTextPathElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAltGlyphElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAltGlyphElement :
+                    virtual public SVGTextPositioningElement,
+                    public SVGURIReference
+{
+public:
+
+    /**
+     *
+     */
+    virtual DOMString getGlyphRef() =0;
+
+    /**
+     *
+     */
+    virtual void setGlyphRef(const DOMString &val)
+                                     throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual DOMString getFormat() =0;
+
+    /**
+     *
+     */
+    virtual void setFormat(const DOMString &val)
+                                     throw (DOMException) =0;
+
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAltGlyphElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAltGlyphDefElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAltGlyphDefElement : virtual public SVGElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAltGlyphDefElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGAltGlyphItemElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAltGlyphItemElement : virtual public SVGElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAltGlyphItemElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGGlyphRefElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGGlyphRefElement : virtual public SVGElement,
+                           public SVGURIReference,
+                           public SVGStylable
+{
+public:
+    /**
+     *
+     */
+    virtual DOMString getGlyphRef() =0;
+
+    /**
+     *
+     */
+    virtual void setGlyphRef(const DOMString &val)
+                             throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual DOMString getFormat() =0;
+
+    /**
+     *
+     */
+    virtual void setFormat(const DOMString &val)
+                           throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual double getX() = 0;
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual double getY() = 0;
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual double getDx() = 0;
+
+    /**
+     *
+     */
+    virtual void setDx(double val) throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual double getDy() = 0;
+
+    /**
+     *
+     */
+    virtual void setDy(double val) throw (DOMException) =0;
+
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGGlyphRefElement() {}
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGMarkerElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGMarkerElement :
+                    virtual public SVGElement,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGFitToViewBox
+{
+public:
+
+
+
+    /**
+     * Marker Unit Types
+     */
+    typedef enum
+        {
+        SVG_MARKERUNITS_UNKNOWN        = 0,
+        SVG_MARKERUNITS_USERSPACEONUSE = 1,
+        SVG_MARKERUNITS_STROKEWIDTH    = 2
+        } MarkerUnitType;
+
+    /**
+     * Marker Orientation Types
+     */
+    typedef enum
+        {
+        SVG_MARKER_ORIENT_UNKNOWN      = 0,
+        SVG_MARKER_ORIENT_AUTO         = 1,
+        SVG_MARKER_ORIENT_ANGLE        = 2
+        } MarkerOrientationType;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRefX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRefY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getMarkerUnits() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getMarkerWidth() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getMarkerHeight() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getOrientType() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedAngle getOrientAngle() =0;
+
+
+    /**
+     *
+     */
+    virtual void setOrientToAuto (  ) =0;
+
+    /**
+     *
+     */
+    virtual void setOrientToAngle (const SVGAngle &angle) =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGMarkerElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGColorProfileElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGColorProfileElement :
+                    virtual public SVGElement,
+                    public SVGURIReference,
+                    public SVGRenderingIntent
+{
+public:
+    /**
+     *
+     */
+    virtual DOMString getLocal() =0;
+
+    /**
+     *
+     */
+    virtual void setLocal(const DOMString &val)
+                          throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual DOMString getName() =0;
+
+    /**
+     *
+     */
+    virtual void setName(const DOMString &val)
+                         throw (DOMException) =0;
+
+    /**
+     *
+     */
+    virtual unsigned short getRenderingIntent() =0;
+
+    /**
+     *
+     */
+    virtual void setRenderingIntent(unsigned short val)
+                                    throw (DOMException) =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGColorProfileElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGGradientElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGGradientElement :
+                    virtual public SVGElement,
+                    public SVGURIReference,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGUnitTypes
+{
+public:
+
+
+
+    /**
+     * Spread Method Types
+     */
+    typedef enum
+        {
+        SVG_SPREADMETHOD_UNKNOWN = 0,
+        SVG_SPREADMETHOD_PAD     = 1,
+        SVG_SPREADMETHOD_REFLECT = 2,
+        SVG_SPREADMETHOD_REPEAT  = 3
+        } SpreadMethodType;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getGradientUnits() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedTransformList getGradientTransform() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getSpreadMethod() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGGradientElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGLinearGradientElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGLinearGradientElement : virtual public SVGGradientElement
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX2() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY2() =0;
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGLinearGradientElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGRadialGradientElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGRadialGradientElement : virtual public SVGGradientElement
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCx() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCy() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getR() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getFx() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getFy() =0;
+
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGRadialGradientElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGStopElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGStopElement :
+                    virtual public SVGElement,
+                    public SVGStylable
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getOffset() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGStopElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPatternElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPatternElement :
+                    virtual public SVGElement,
+                    public SVGURIReference,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGFitToViewBox,
+                    public SVGUnitTypes
+{
+public:
+
+
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getPatternUnits() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getPatternContentUnits() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedTransformList getPatternTransform() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGPatternElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGClipPathElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGClipPathElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public SVGUnitTypes
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getClipPathUnits() =0;
+
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGClipPathElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGMaskElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGMaskElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGUnitTypes
+{
+public:
+
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getMaskUnits() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getMaskContentUnits() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight() =0;
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGMaskElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFilterElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFilterElement :
+                    virtual public SVGElement,
+                    public SVGURIReference,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGUnitTypes
+{
+public:
+
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getFilterUnits() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getPrimitiveUnits() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getFilterResX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getFilterResY() =0;
+
+    /**
+     *
+     */
+    virtual void setFilterRes (unsigned long filterResX,
+                               unsigned long filterResY ) =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFilterElement() {}
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFEBlendElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEBlendElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+
+    /**
+     * Blend Mode Types
+     */
+    typedef enum
+        {
+        SVG_FEBLEND_MODE_UNKNOWN  = 0,
+        SVG_FEBLEND_MODE_NORMAL   = 1,
+        SVG_FEBLEND_MODE_MULTIPLY = 2,
+        SVG_FEBLEND_MODE_SCREEN   = 3,
+        SVG_FEBLEND_MODE_DARKEN   = 4,
+        SVG_FEBLEND_MODE_LIGHTEN  = 5
+        } BlendModeType;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn2() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getMode() =0;
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEBlendElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEColorMatrixElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEColorMatrixElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+
+
+    /**
+     * Color Matrix Types
+     */
+    typedef enum
+        {
+        SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0,
+        SVG_FECOLORMATRIX_TYPE_MATRIX           = 1,
+        SVG_FECOLORMATRIX_TYPE_SATURATE         = 2,
+        SVG_FECOLORMATRIX_TYPE_HUEROTATE        = 3,
+        SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
+        } ColorMatrixType;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getType() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumberList getValues() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEColorMatrixElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEComponentTransferElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEComponentTransferElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEComponentTransferElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGComponentTransferFunctionElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGComponentTransferFunctionElement : virtual public SVGElement
+{
+public:
+
+
+    /**
+     * Component Transfer Types
+     */
+    typedef enum
+        {
+        SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN  = 0,
+        SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
+        SVG_FECOMPONENTTRANSFER_TYPE_TABLE    = 2,
+        SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
+        SVG_FECOMPONENTTRANSFER_TYPE_LINEAR   = 4,
+        SVG_FECOMPONENTTRANSFER_TYPE_GAMMA    = 5
+        } ComponentTransferType;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getType() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumberList getTableValues() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSlope() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getIntercept() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getAmplitude() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getExponent() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getOffset() =0;
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGComponentTransferFunctionElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEFuncRElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEFuncRElement : virtual public SVGComponentTransferFunctionElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEFuncRElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFEFuncGElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEFuncGElement : public virtual SVGComponentTransferFunctionElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEFuncGElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFEFuncBElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEFuncBElement : virtual public SVGComponentTransferFunctionElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEFuncBElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFEFuncAElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEFuncAElement : virtual public SVGComponentTransferFunctionElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEFuncAElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFECompositeElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFECompositeElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+
+
+    /**
+     *  Composite Operators
+     */
+    typedef enum
+        {
+        SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0,
+        SVG_FECOMPOSITE_OPERATOR_OVER       = 1,
+        SVG_FECOMPOSITE_OPERATOR_IN         = 2,
+        SVG_FECOMPOSITE_OPERATOR_OUT        = 3,
+        SVG_FECOMPOSITE_OPERATOR_ATOP       = 4,
+        SVG_FECOMPOSITE_OPERATOR_XOR        = 5,
+        SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
+        } CompositeOperatorType;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn2() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getOperator() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getK1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getK2() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getK3() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getK4() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFECompositeElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEConvolveMatrixElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEConvolveMatrixElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+
+
+    /**
+     * Edge Mode Values
+     */
+    typedef enum
+        {
+        SVG_EDGEMODE_UNKNOWN   = 0,
+        SVG_EDGEMODE_DUPLICATE = 1,
+        SVG_EDGEMODE_WRAP      = 2,
+        SVG_EDGEMODE_NONE      = 3
+        } EdgeModeType;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getOrderX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getOrderY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumberList getKernelMatrix() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getDivisor() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getBias() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getTargetX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getTargetY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getEdgeMode() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getKernelUnitLengthX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getKernelUnitLengthY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedBoolean getPreserveAlpha() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEConvolveMatrixElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEDiffuseLightingElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEDiffuseLightingElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSurfaceScale() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getDiffuseConstant() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEDiffuseLightingElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEDistantLightElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEDistantLightElement : virtual public SVGElement
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getAzimuth() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getElevation() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEDistantLightElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEPointLightElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEPointLightElement : virtual public SVGElement
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getX() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getZ() =0;
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEPointLightElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFESpotLightElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFESpotLightElement : virtual public SVGElement
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getX() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getZ() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getPointsAtX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getPointsAtY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getPointsAtZ() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSpecularExponent() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getLimitingConeAngle() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFESpotLightElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEDisplacementMapElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEDisplacementMapElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+
+
+    /**
+     *  Channel Selectors
+     */
+    typedef enum
+        {
+        SVG_CHANNEL_UNKNOWN = 0,
+        SVG_CHANNEL_R       = 1,
+        SVG_CHANNEL_G       = 2,
+        SVG_CHANNEL_B       = 3,
+        SVG_CHANNEL_A       = 4
+        } ChannelSelector;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn2() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getScale() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getXChannelSelector() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getYChannelSelector() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEDisplacementMapElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEFloodElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEFloodElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEFloodElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEGaussianBlurElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEGaussianBlurElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getStdDeviationX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getStdDeviationY() =0;
+
+
+    /**
+     *
+     */
+    virtual void setStdDeviation (double stdDeviationX, double stdDeviationY ) =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEGaussianBlurElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEImageElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEImageElement :
+                    virtual public SVGElement,
+                    public SVGURIReference,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEImageElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFEMergeElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEMergeElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEMergeElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFEMergeNodeElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEMergeNodeElement : virtual public SVGElement
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEMergeNodeElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEMorphologyElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEMorphologyElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+
+
+    /**
+     *  Morphology Operators
+     */
+    typedef enum
+        {
+        SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,
+        SVG_MORPHOLOGY_OPERATOR_ERODE   = 1,
+        SVG_MORPHOLOGY_OPERATOR_DILATE  = 2
+        } MorphologyOperatorType;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getOperator() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRadiusX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRadiusY() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEMorphologyElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEOffsetElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEOffsetElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getDx() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getDy() =0;
+
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEOffsetElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFESpecularLightingElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFESpecularLightingElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSurfaceScale() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSpecularConstant() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSpecularExponent() =0;
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFESpecularLightingElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFETileElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFETileElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFETileElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFETurbulenceElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFETurbulenceElement :
+                    virtual public SVGElement,
+                    public SVGFilterPrimitiveStandardAttributes
+{
+public:
+
+
+
+    /**
+     *  Turbulence Types
+     */
+    typedef enum
+        {
+        SVG_TURBULENCE_TYPE_UNKNOWN      = 0,
+        SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
+        SVG_TURBULENCE_TYPE_TURBULENCE   = 2
+        } TurbulenceType;
+
+    /**
+     *  Stitch Options
+     */
+    typedef enum
+        {
+        SVG_STITCHTYPE_UNKNOWN  = 0,
+        SVG_STITCHTYPE_STITCH   = 1,
+        SVG_STITCHTYPE_NOSTITCH = 2
+        } StitchOption;
+
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getBaseFrequencyX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getBaseFrequencyY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getNumOctaves() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSeed() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getStitchTiles() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getType() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFETurbulenceElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGCursorElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGCursorElement :
+                    virtual public SVGElement,
+                    public SVGURIReference,
+                    public SVGTests,
+                    public SVGExternalResourcesRequired
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY() =0;
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGCursorElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAElement : virtual public SVGElement,
+                    public SVGURIReference,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getTarget() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGViewElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGViewElement : virtual public SVGElement,
+                       public SVGExternalResourcesRequired,
+                       public SVGFitToViewBox,
+                       public SVGZoomAndPan
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGStringList getViewTarget() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGViewElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGScriptElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGScriptElement :
+                    virtual public SVGElement,
+                    public SVGURIReference,
+                    public SVGExternalResourcesRequired
+{
+public:
+
+    /**
+     *
+     */
+    virtual DOMString getType() =0;
+
+    /**
+     *
+     */
+    virtual void setType(const DOMString &val)
+                               throw (DOMException) =0;
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGScriptElement() {}
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGAnimationElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimationElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGExternalResourcesRequired,
+                    public smil::ElementTimeControl,
+                    public events::EventTarget
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGElementPtr getTargetElement() =0;
+
+
+    /**
+     *
+     */
+    virtual double getStartTime (  ) =0;
+
+    /**
+     *
+     */
+    virtual double getCurrentTime (  ) =0;
+
+    /**
+     *
+     */
+    virtual double getSimpleDuration (  )
+                    throw( DOMException ) =0;
+;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAnimationElement() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimateElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimateElement : virtual public SVGAnimationElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAnimateElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGSetElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGSetElement : virtual public SVGAnimationElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGSetElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGAnimateMotionElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimateMotionElement : virtual public SVGAnimationElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAnimateMotionElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGMPathElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGMPathElement :
+                    virtual public SVGElement,
+                    public SVGURIReference,
+                    public SVGExternalResourcesRequired
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGMPathElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGAnimateColorElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimateColorElement : virtual public SVGAnimationElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAnimateColorElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGAnimateTransformElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimateTransformElement : virtual public SVGAnimationElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAnimateTransformElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFontElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontElement :  virtual public SVGElement,
+                        public SVGExternalResourcesRequired,
+                        public SVGStylable
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGGlyphElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGGlyphElement :  virtual public SVGElement,
+                         public SVGStylable
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGGlyphElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGMissingGlyphElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGMissingGlyphElement :
+                    virtual public SVGElement,
+                    public SVGStylable
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGMissingGlyphElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGHKernElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGHKernElement : virtual public SVGElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGHKernElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGVKernElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGVKernElement : public virtual SVGElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGVKernElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFontFaceElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontFaceElement : virtual public SVGElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontFaceElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFontFaceSrcElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontFaceSrcElement : virtual public SVGElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontFaceSrcElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFontFaceUriElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontFaceUriElement : virtual public SVGElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontFaceUriElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFontFaceFormatElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontFaceFormatElement : virtual public SVGElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontFaceFormatElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFontFaceNameElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontFaceNameElement : virtual public SVGElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontFaceNameElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGDefinitionSrcElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGDefinitionSrcElement : virtual public SVGElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGDefinitionSrcElement() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGMetadataElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGMetadataElement : virtual public SVGElement
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGMetadataElement() {}
+
+};
+
+
+
+/*#########################################################################
+## SVGForeignObjectElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGForeignObjectElement :
+                    virtual public SVGElement,
+                    public SVGTests,
+                    public SVGLangSpace,
+                    public SVGExternalResourcesRequired,
+                    public SVGStylable,
+                    public SVGTransformable,
+                    public events::EventTarget
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth() =0;
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight() =0;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    virtual ~SVGForeignObjectElement() {}
+
+};
+
+
+
+
+
+}  //namespace svg
+}  //namespace dom
+}  //namespace w3c
+}  //namespace org
+
+#endif // __SVG_H__
+/*#########################################################################
+## E N D    O F    F I L E
+#########################################################################*/
+
diff --git a/src/dom/svg/svg.h b/src/dom/svg/svg.h
deleted file mode 100644 (file)
index c5f3309..0000000
+++ /dev/null
@@ -1,4481 +0,0 @@
-#ifndef __SVG_H__
-#define __SVG_H__
-
-/**
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference.  Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- *   Bob Jamison
- *
- * Copyright (C) 2005 Bob Jamison
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public
- *  License as published by the Free Software Foundation; either
- *  version 2.1 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this library; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-// For access to DOM2 core
-#include "dom/dom.h"
-
-// For access to DOM2 events
-#include "dom/events.h"
-
-// For access to those parts from DOM2 CSS OM used by SVG DOM.
-#include "dom/css.h"
-
-// For access to those parts from DOM2 Views OM used by SVG DOM.
-#include "dom/views.h"
-
-// For access to the SMIL OM used by SVG DOM.
-#include "dom/smil.h"
-
-
-
-#include "svgtypes.h"
-
-#include <math.h>
-
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace svg
-{
-
-
-//local definitions
-typedef dom::DOMString DOMString;
-typedef dom::DOMException DOMException;
-typedef dom::Element Element;
-typedef dom::ElementPtr ElementPtr;
-typedef dom::Document Document;
-typedef dom::DocumentPtr DocumentPtr;
-typedef dom::NodeList NodeList;
-
-
-
-
-class SVGElement;
-typedef Ptr<SVGElement> SVGElementPtr;
-class SVGSVGElement;
-typedef Ptr<SVGSVGElement> SVGSVGElementPtr;
-class SVGDocument;
-typedef Ptr<SVGDocument> SVGDocumentPtr;
-
-
-/*#########################################################################
-## SVGElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGElement : virtual public Element
-{
-public:
-
-    /**
-     *
-     */
-    virtual DOMString getId() =0;
-
-    /**
-     *
-     */
-    virtual void setId(const DOMString &val)
-                       throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual DOMString getXmlBase() = 0;
-
-    /**
-     *
-     */
-    virtual void setXmlBase(const DOMString &val)
-                            throw (DOMException) = 0;
-
-    /**
-     *
-     */
-    virtual SVGSVGElementPtr getOwnerSVGElement() = 0;
-
-    /**
-     *
-     */
-    virtual SVGElementPtr getViewportElement() = 0;
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    virtual ~SVGElement() {}
-
-
-};
-
-
-
-/*#########################################################################
-## SVGDocument
-#########################################################################*/
-
-/**
- *
- */
-class SVGDocument : virtual public Document,
-                    virtual public events::DocumentEvent
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual DOMString getTitle() =0;
-
-    /**
-     *
-     */
-    virtual DOMString getReferrer() =0;
-
-    /**
-     *
-     */
-    virtual DOMString getDomain() =0;
-
-    /**
-     *
-     */
-    virtual DOMString getURL() =0;
-
-    /**
-     *
-     */
-    virtual SVGSVGElementPtr getRootElement() =0;
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGDocument() {}
-
-};
-
-
-
-/*#########################################################################
-## SVGSVGElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGSVGElement : virtual public SVGElement,
-                      public SVGTests,
-                      public SVGLangSpace,
-                      public SVGExternalResourcesRequired,
-                      public SVGStylable,
-                      public SVGLocatable,
-                      public SVGFitToViewBox,
-                      public SVGZoomAndPan,
-                      public events::EventTarget,
-                      public events::DocumentEvent,
-                      public css::ViewCSS,
-                      public css::DocumentCSS
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight() =0;
-
-    /**
-     *
-     */
-    virtual DOMString getContentScriptType() =0;
-
-    /**
-     *
-     */
-    virtual void setContentScriptType(const DOMString &val)
-                                     throw (DOMException) =0;
-
-
-    /**
-     *
-     */
-    virtual DOMString getContentStyleType() =0;
-
-    /**
-     *
-     */
-    virtual void setContentStyleType(const DOMString &val)
-                                     throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual SVGRect getViewport() =0;
-
-    /**
-     *
-     */
-    virtual double getPixelUnitToMillimeterX() =0;
-
-    /**
-     *
-     */
-    virtual double getPixelUnitToMillimeterY() =0;
-
-    /**
-     *
-     */
-    virtual double getScreenPixelToMillimeterX() =0;
-
-    /**
-     *
-     */
-    virtual double getScreenPixelToMillimeterY() =0;
-
-
-    /**
-     *
-     */
-    virtual bool getUseCurrentView() =0;
-
-    /**
-     *
-     */
-    virtual void setUseCurrentView(bool val) throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual SVGViewSpec getCurrentView() =0;
-
-
-    /**
-     *
-     */
-    virtual double getCurrentScale() =0;
-
-    /**
-     *
-     */
-    virtual void setCurrentScale(double val)
-                                 throw (DOMException) =0;
-
-
-    /**
-     *
-     */
-    virtual SVGPoint getCurrentTranslate() =0;
-
-
-    /**
-     *
-     */
-    virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds ) =0;
-
-    /**
-     *
-     */
-    virtual void unsuspendRedraw (unsigned long suspend_handle_id )
-                                  throw( DOMException ) =0;
-
-    /**
-     *
-     */
-    virtual void unsuspendRedrawAll (  ) =0;
-
-    /**
-     *
-     */
-    virtual void forceRedraw (  ) =0;
-
-    /**
-     *
-     */
-    virtual void pauseAnimations (  ) =0;
-
-    /**
-     *
-     */
-    virtual void unpauseAnimations (  ) =0;
-
-    /**
-     *
-     */
-    virtual bool animationsPaused (  ) =0;
-
-    /**
-     *
-     */
-    virtual double getCurrentTime (  ) =0;
-
-    /**
-     *
-     */
-    virtual void setCurrentTime (double seconds ) =0;
-
-    /**
-     *
-     */
-    virtual NodeList getIntersectionList(const SVGRect &rect,
-                                         const SVGElementPtr referenceElement ) =0;
-
-    /**
-     *
-     */
-    virtual NodeList getEnclosureList (const SVGRect &rect,
-                                       const SVGElementPtr referenceElement ) =0;
-
-    /**
-     *
-     */
-    virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect ) =0;
-
-    /**
-     *
-     */
-    virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect ) =0;
-
-    /**
-     *
-     */
-    virtual void deselectAll (  ) =0;
-
-    /**
-     *
-     */
-    virtual SVGNumber createSVGNumber (  ) =0;
-
-    /**
-     *
-     */
-    virtual SVGLength createSVGLength (  ) =0;
-
-    /**
-     *
-     */
-    virtual SVGAngle createSVGAngle (  ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPoint createSVGPoint (  ) =0;
-
-    /**
-     *
-     */
-    virtual SVGMatrix createSVGMatrix (  ) =0;
-
-    /**
-     *
-     */
-    virtual SVGRect createSVGRect (  ) =0;
-
-    /**
-     *
-     */
-    virtual SVGTransform createSVGTransform (  ) =0;
-
-    /**
-     *
-     */
-    virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix ) =0;
-
-    /**
-     *
-     */
-    virtual ElementPtr getElementById (const DOMString& elementId ) =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGSVGElement() {}
-
-};
-
-
-
-/*#########################################################################
-## SVGGElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGGElement : virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGGElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGDefsElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGDefsElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGDefsElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGDescElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGDescElement :
-                    virtual public SVGElement,
-                    public SVGLangSpace,
-                    public SVGStylable
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGDescElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGTitleElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTitleElement :
-                    virtual public SVGElement,
-                    public SVGLangSpace,
-                    public SVGStylable
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTitleElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGSymbolElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGSymbolElement :
-                    virtual public SVGElement,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGFitToViewBox,
-                    public events::EventTarget
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGSymbolElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGUseElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGUseElement :
-                    virtual public SVGElement,
-                    public SVGURIReference,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget
-{
-public:
-
-
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight() =0;
-
-    /**
-     *
-     */
-    virtual SVGElementInstance getInstanceRoot() =0;
-
-    /**
-     *
-     */
-    virtual SVGElementInstance getAnimatedInstanceRoot() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGUseElement() {}
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGImageElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGImageElement :
-                    virtual public SVGElement,
-                    public SVGURIReference,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGImageElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGSwitchElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGSwitchElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGSwitchElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## GetSVGDocument
-#########################################################################*/
-
-/**
- *
- */
-class GetSVGDocument
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGDocumentPtr getSVGDocument (  )
-                    throw( DOMException ) =0;
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~GetSVGDocument() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGStyleElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGStyleElement : virtual public SVGElement
-{
-public:
-
-    /**
-     *
-     */
-    virtual DOMString getXmlspace() = 0;
-
-    /**
-     *
-     */
-    virtual void setXmlspace(const DOMString &val)
-                             throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual DOMString getType() = 0;
-
-    /**
-     *
-     */
-    virtual void setType(const DOMString &val)
-                         throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual DOMString getMedia() = 0;
-
-    /**
-     *
-     */
-    virtual void setMedia(const DOMString &val)
-                          throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual DOMString getTitle() = 0;
-
-    /**
-     *
-     */
-    virtual void setTitle(const DOMString &val)
-                          throw (DOMException) =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGStyleElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget,
-                    public SVGAnimatedPathData
-{
-public:
-
-
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getPathLength() =0;
-
-    /**
-     *
-     */
-    virtual double getTotalLength (  ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPoint getPointAtLength (double distance ) =0;
-
-    /**
-     *
-     */
-    virtual unsigned long getPathSegAtLength (double distance ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegClosePath
-              createSVGPathSegClosePath (  ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegMovetoAbs
-              createSVGPathSegMovetoAbs (double x, double y ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegMovetoRel
-              createSVGPathSegMovetoRel (double x, double y ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoAbs
-              createSVGPathSegLinetoAbs (double x, double y ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoRel
-              createSVGPathSegLinetoRel (double x, double y ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoCubicAbs
-              createSVGPathSegCurvetoCubicAbs (double x, double y,
-                        double x1, double y1, double x2, double y2 ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoCubicRel
-              createSVGPathSegCurvetoCubicRel (double x, double y,
-                        double x1, double y1, double x2, double y2 ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoQuadraticAbs
-              createSVGPathSegCurvetoQuadraticAbs (double x, double y,
-                         double x1, double y1 ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoQuadraticRel
-              createSVGPathSegCurvetoQuadraticRel (double x, double y,
-                         double x1, double y1 ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegArcAbs
-              createSVGPathSegArcAbs (double x, double y,
-                         double r1, double r2, double angle,
-                         bool largeArcFlag, bool sweepFlag ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegArcRel
-              createSVGPathSegArcRel (double x, double y, double r1,
-                         double r2, double angle, bool largeArcFlag,
-                         bool sweepFlag ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoHorizontalAbs
-              createSVGPathSegLinetoHorizontalAbs (double x ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoHorizontalRel
-              createSVGPathSegLinetoHorizontalRel (double x ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoVerticalAbs
-              createSVGPathSegLinetoVerticalAbs (double y ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoVerticalRel
-              createSVGPathSegLinetoVerticalRel (double y ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoCubicSmoothAbs
-              createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
-                                             double x2, double y2 ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoCubicSmoothRel
-              createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
-                                                      double x2, double y2 ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoQuadraticSmoothAbs
-              createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoQuadraticSmoothRel
-              createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y ) =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGPathElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGRectElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGRectElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRx() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRy() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGRectElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGCircleElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGCircleElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCx() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCy() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getR() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGCircleElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGEllipseElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGEllipseElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCx() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCy() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRx() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRy() =0;
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGEllipseElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLineElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGLineElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX2() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY2() =0;
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGLineElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGPolylineElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGPolylineElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget,
-                    public SVGAnimatedPoints
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGPolylineElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGPolygonElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGPolygonElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget,
-                    public SVGAnimatedPoints
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGPolygonElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGTextContentElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextContentElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public events::EventTarget
-{
-public:
-
-
-
-    /**
-     * lengthAdjust Types
-     */
-    typedef enum
-        {
-        LENGTHADJUST_UNKNOWN          = 0,
-        LENGTHADJUST_SPACING          = 1,
-        LENGTHADJUST_SPACINGANDGLYPHS = 2
-        } LengthAdjustType;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getTextLength() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getLengthAdjust() =0;
-
-
-    /**
-     *
-     */
-    virtual long getNumberOfChars (  ) =0;
-
-    /**
-     *
-     */
-    virtual double getComputedTextLength (  ) =0;
-
-    /**
-     *
-     */
-    virtual double getSubStringLength (unsigned long charnum, unsigned long nchars )
-                                     throw( DOMException ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPoint getStartPositionOfChar (unsigned long charnum )
-                                              throw( DOMException ) =0;
-
-    /**
-     *
-     */
-    virtual SVGPoint getEndPositionOfChar (unsigned long charnum )
-                                           throw( DOMException ) =0;
-
-    /**
-     *
-     */
-    virtual SVGRect getExtentOfChar (unsigned long charnum )
-                                      throw( DOMException ) =0;
-
-    /**
-     *
-     */
-    virtual double getRotationOfChar (unsigned long charnum )
-                                     throw( DOMException ) =0;
-
-    /**
-     *
-     */
-    virtual long getCharNumAtPosition (const SVGPoint &point ) =0;
-
-    /**
-     *
-     */
-    virtual void selectSubString (unsigned long charnum, unsigned long nchars )
-                                  throw( DOMException ) =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTextContentElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextPositioningElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextPositioningElement : virtual public SVGTextContentElement
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getDx() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getDy() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumberList getRotate() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTextPositioningElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextElement : virtual public SVGTextPositioningElement,
-                       public SVGTransformable
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTextElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGTSpanElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTSpanElement : virtual public SVGTextPositioningElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTSpanElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGTRefElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTRefElement :
-                    virtual public SVGTextPositioningElement,
-                    public SVGURIReference
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTRefElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGTextPathElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextPathElement :
-                    virtual public SVGTextContentElement,
-                    public SVGURIReference
-{
-public:
-
-
-
-    /**
-     * textPath Method Types
-     */
-    typedef enum
-        {
-        TEXTPATH_METHODTYPE_UNKNOWN   = 0,
-        TEXTPATH_METHODTYPE_ALIGN     = 1,
-        TEXTPATH_METHODTYPE_STRETCH   = 2
-        } TextPathMethodType;
-
-    /**
-     * textPath Spacing Types
-     */
-    typedef enum
-        {
-        TEXTPATH_SPACINGTYPE_UNKNOWN  = 0,
-        TEXTPATH_SPACINGTYPE_AUTO     = 1,
-        TEXTPATH_SPACINGTYPE_EXACT    = 2
-        } TextPathSpacingType;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getStartOffset() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getMethod() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getSpacing() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTextPathElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAltGlyphElement :
-                    virtual public SVGTextPositioningElement,
-                    public SVGURIReference
-{
-public:
-
-    /**
-     *
-     */
-    virtual DOMString getGlyphRef() =0;
-
-    /**
-     *
-     */
-    virtual void setGlyphRef(const DOMString &val)
-                                     throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual DOMString getFormat() =0;
-
-    /**
-     *
-     */
-    virtual void setFormat(const DOMString &val)
-                                     throw (DOMException) =0;
-
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAltGlyphElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphDefElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAltGlyphDefElement : virtual public SVGElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAltGlyphDefElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphItemElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAltGlyphItemElement : virtual public SVGElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAltGlyphItemElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGGlyphRefElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGGlyphRefElement : virtual public SVGElement,
-                           public SVGURIReference,
-                           public SVGStylable
-{
-public:
-    /**
-     *
-     */
-    virtual DOMString getGlyphRef() =0;
-
-    /**
-     *
-     */
-    virtual void setGlyphRef(const DOMString &val)
-                             throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual DOMString getFormat() =0;
-
-    /**
-     *
-     */
-    virtual void setFormat(const DOMString &val)
-                           throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual double getX() = 0;
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual double getY() = 0;
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual double getDx() = 0;
-
-    /**
-     *
-     */
-    virtual void setDx(double val) throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual double getDy() = 0;
-
-    /**
-     *
-     */
-    virtual void setDy(double val) throw (DOMException) =0;
-
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGGlyphRefElement() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGMarkerElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGMarkerElement :
-                    virtual public SVGElement,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGFitToViewBox
-{
-public:
-
-
-
-    /**
-     * Marker Unit Types
-     */
-    typedef enum
-        {
-        SVG_MARKERUNITS_UNKNOWN        = 0,
-        SVG_MARKERUNITS_USERSPACEONUSE = 1,
-        SVG_MARKERUNITS_STROKEWIDTH    = 2
-        } MarkerUnitType;
-
-    /**
-     * Marker Orientation Types
-     */
-    typedef enum
-        {
-        SVG_MARKER_ORIENT_UNKNOWN      = 0,
-        SVG_MARKER_ORIENT_AUTO         = 1,
-        SVG_MARKER_ORIENT_ANGLE        = 2
-        } MarkerOrientationType;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRefX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRefY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getMarkerUnits() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getMarkerWidth() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getMarkerHeight() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getOrientType() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedAngle getOrientAngle() =0;
-
-
-    /**
-     *
-     */
-    virtual void setOrientToAuto (  ) =0;
-
-    /**
-     *
-     */
-    virtual void setOrientToAngle (const SVGAngle &angle) =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGMarkerElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGColorProfileElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGColorProfileElement :
-                    virtual public SVGElement,
-                    public SVGURIReference,
-                    public SVGRenderingIntent
-{
-public:
-    /**
-     *
-     */
-    virtual DOMString getLocal() =0;
-
-    /**
-     *
-     */
-    virtual void setLocal(const DOMString &val)
-                          throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual DOMString getName() =0;
-
-    /**
-     *
-     */
-    virtual void setName(const DOMString &val)
-                         throw (DOMException) =0;
-
-    /**
-     *
-     */
-    virtual unsigned short getRenderingIntent() =0;
-
-    /**
-     *
-     */
-    virtual void setRenderingIntent(unsigned short val)
-                                    throw (DOMException) =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGColorProfileElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGGradientElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGGradientElement :
-                    virtual public SVGElement,
-                    public SVGURIReference,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGUnitTypes
-{
-public:
-
-
-
-    /**
-     * Spread Method Types
-     */
-    typedef enum
-        {
-        SVG_SPREADMETHOD_UNKNOWN = 0,
-        SVG_SPREADMETHOD_PAD     = 1,
-        SVG_SPREADMETHOD_REFLECT = 2,
-        SVG_SPREADMETHOD_REPEAT  = 3
-        } SpreadMethodType;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getGradientUnits() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedTransformList getGradientTransform() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getSpreadMethod() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGGradientElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLinearGradientElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGLinearGradientElement : virtual public SVGGradientElement
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX2() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY2() =0;
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGLinearGradientElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGRadialGradientElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGRadialGradientElement : virtual public SVGGradientElement
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCx() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCy() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getR() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getFx() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getFy() =0;
-
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGRadialGradientElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGStopElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGStopElement :
-                    virtual public SVGElement,
-                    public SVGStylable
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getOffset() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGStopElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPatternElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGPatternElement :
-                    virtual public SVGElement,
-                    public SVGURIReference,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGFitToViewBox,
-                    public SVGUnitTypes
-{
-public:
-
-
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getPatternUnits() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getPatternContentUnits() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedTransformList getPatternTransform() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGPatternElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGClipPathElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGClipPathElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public SVGUnitTypes
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getClipPathUnits() =0;
-
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGClipPathElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGMaskElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGMaskElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGUnitTypes
-{
-public:
-
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getMaskUnits() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getMaskContentUnits() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight() =0;
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGMaskElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFilterElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFilterElement :
-                    virtual public SVGElement,
-                    public SVGURIReference,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGUnitTypes
-{
-public:
-
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getFilterUnits() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getPrimitiveUnits() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getFilterResX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getFilterResY() =0;
-
-    /**
-     *
-     */
-    virtual void setFilterRes (unsigned long filterResX,
-                               unsigned long filterResY ) =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFilterElement() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEBlendElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEBlendElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-    /**
-     * Blend Mode Types
-     */
-    typedef enum
-        {
-        SVG_FEBLEND_MODE_UNKNOWN  = 0,
-        SVG_FEBLEND_MODE_NORMAL   = 1,
-        SVG_FEBLEND_MODE_MULTIPLY = 2,
-        SVG_FEBLEND_MODE_SCREEN   = 3,
-        SVG_FEBLEND_MODE_DARKEN   = 4,
-        SVG_FEBLEND_MODE_LIGHTEN  = 5
-        } BlendModeType;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn2() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getMode() =0;
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEBlendElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEColorMatrixElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEColorMatrixElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
-    /**
-     * Color Matrix Types
-     */
-    typedef enum
-        {
-        SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0,
-        SVG_FECOLORMATRIX_TYPE_MATRIX           = 1,
-        SVG_FECOLORMATRIX_TYPE_SATURATE         = 2,
-        SVG_FECOLORMATRIX_TYPE_HUEROTATE        = 3,
-        SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
-        } ColorMatrixType;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getType() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumberList getValues() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEColorMatrixElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEComponentTransferElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEComponentTransferElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEComponentTransferElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGComponentTransferFunctionElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGComponentTransferFunctionElement : virtual public SVGElement
-{
-public:
-
-
-    /**
-     * Component Transfer Types
-     */
-    typedef enum
-        {
-        SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN  = 0,
-        SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
-        SVG_FECOMPONENTTRANSFER_TYPE_TABLE    = 2,
-        SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
-        SVG_FECOMPONENTTRANSFER_TYPE_LINEAR   = 4,
-        SVG_FECOMPONENTTRANSFER_TYPE_GAMMA    = 5
-        } ComponentTransferType;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getType() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumberList getTableValues() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSlope() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getIntercept() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getAmplitude() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getExponent() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getOffset() =0;
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGComponentTransferFunctionElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncRElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncRElement : virtual public SVGComponentTransferFunctionElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEFuncRElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFEFuncGElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncGElement : public virtual SVGComponentTransferFunctionElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEFuncGElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFEFuncBElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncBElement : virtual public SVGComponentTransferFunctionElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEFuncBElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFEFuncAElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncAElement : virtual public SVGComponentTransferFunctionElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEFuncAElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFECompositeElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFECompositeElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
-    /**
-     *  Composite Operators
-     */
-    typedef enum
-        {
-        SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0,
-        SVG_FECOMPOSITE_OPERATOR_OVER       = 1,
-        SVG_FECOMPOSITE_OPERATOR_IN         = 2,
-        SVG_FECOMPOSITE_OPERATOR_OUT        = 3,
-        SVG_FECOMPOSITE_OPERATOR_ATOP       = 4,
-        SVG_FECOMPOSITE_OPERATOR_XOR        = 5,
-        SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
-        } CompositeOperatorType;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn2() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getOperator() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getK1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getK2() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getK3() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getK4() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFECompositeElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEConvolveMatrixElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEConvolveMatrixElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
-    /**
-     * Edge Mode Values
-     */
-    typedef enum
-        {
-        SVG_EDGEMODE_UNKNOWN   = 0,
-        SVG_EDGEMODE_DUPLICATE = 1,
-        SVG_EDGEMODE_WRAP      = 2,
-        SVG_EDGEMODE_NONE      = 3
-        } EdgeModeType;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getOrderX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getOrderY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumberList getKernelMatrix() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getDivisor() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getBias() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getTargetX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getTargetY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getEdgeMode() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getKernelUnitLengthX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getKernelUnitLengthY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedBoolean getPreserveAlpha() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEConvolveMatrixElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDiffuseLightingElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEDiffuseLightingElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSurfaceScale() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getDiffuseConstant() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEDiffuseLightingElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDistantLightElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEDistantLightElement : virtual public SVGElement
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getAzimuth() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getElevation() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEDistantLightElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEPointLightElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEPointLightElement : virtual public SVGElement
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getX() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getZ() =0;
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEPointLightElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpotLightElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFESpotLightElement : virtual public SVGElement
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getX() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getZ() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getPointsAtX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getPointsAtY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getPointsAtZ() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSpecularExponent() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getLimitingConeAngle() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFESpotLightElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDisplacementMapElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEDisplacementMapElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
-    /**
-     *  Channel Selectors
-     */
-    typedef enum
-        {
-        SVG_CHANNEL_UNKNOWN = 0,
-        SVG_CHANNEL_R       = 1,
-        SVG_CHANNEL_G       = 2,
-        SVG_CHANNEL_B       = 3,
-        SVG_CHANNEL_A       = 4
-        } ChannelSelector;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn2() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getScale() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getXChannelSelector() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getYChannelSelector() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEDisplacementMapElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFloodElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFloodElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEFloodElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEGaussianBlurElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEGaussianBlurElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getStdDeviationX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getStdDeviationY() =0;
-
-
-    /**
-     *
-     */
-    virtual void setStdDeviation (double stdDeviationX, double stdDeviationY ) =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEGaussianBlurElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEImageElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEImageElement :
-                    virtual public SVGElement,
-                    public SVGURIReference,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEImageElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFEMergeElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMergeElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEMergeElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFEMergeNodeElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMergeNodeElement : virtual public SVGElement
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEMergeNodeElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEMorphologyElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMorphologyElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
-    /**
-     *  Morphology Operators
-     */
-    typedef enum
-        {
-        SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,
-        SVG_MORPHOLOGY_OPERATOR_ERODE   = 1,
-        SVG_MORPHOLOGY_OPERATOR_DILATE  = 2
-        } MorphologyOperatorType;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getOperator() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRadiusX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRadiusY() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEMorphologyElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEOffsetElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEOffsetElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getDx() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getDy() =0;
-
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEOffsetElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpecularLightingElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFESpecularLightingElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSurfaceScale() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSpecularConstant() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSpecularExponent() =0;
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFESpecularLightingElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETileElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFETileElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFETileElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETurbulenceElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFETurbulenceElement :
-                    virtual public SVGElement,
-                    public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
-    /**
-     *  Turbulence Types
-     */
-    typedef enum
-        {
-        SVG_TURBULENCE_TYPE_UNKNOWN      = 0,
-        SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
-        SVG_TURBULENCE_TYPE_TURBULENCE   = 2
-        } TurbulenceType;
-
-    /**
-     *  Stitch Options
-     */
-    typedef enum
-        {
-        SVG_STITCHTYPE_UNKNOWN  = 0,
-        SVG_STITCHTYPE_STITCH   = 1,
-        SVG_STITCHTYPE_NOSTITCH = 2
-        } StitchOption;
-
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getBaseFrequencyX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getBaseFrequencyY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getNumOctaves() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSeed() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getStitchTiles() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getType() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFETurbulenceElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGCursorElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGCursorElement :
-                    virtual public SVGElement,
-                    public SVGURIReference,
-                    public SVGTests,
-                    public SVGExternalResourcesRequired
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY() =0;
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGCursorElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAElement : virtual public SVGElement,
-                    public SVGURIReference,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getTarget() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGViewElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGViewElement : virtual public SVGElement,
-                       public SVGExternalResourcesRequired,
-                       public SVGFitToViewBox,
-                       public SVGZoomAndPan
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGStringList getViewTarget() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGViewElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGScriptElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGScriptElement :
-                    virtual public SVGElement,
-                    public SVGURIReference,
-                    public SVGExternalResourcesRequired
-{
-public:
-
-    /**
-     *
-     */
-    virtual DOMString getType() =0;
-
-    /**
-     *
-     */
-    virtual void setType(const DOMString &val)
-                               throw (DOMException) =0;
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGScriptElement() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimationElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimationElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGExternalResourcesRequired,
-                    public smil::ElementTimeControl,
-                    public events::EventTarget
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGElementPtr getTargetElement() =0;
-
-
-    /**
-     *
-     */
-    virtual double getStartTime (  ) =0;
-
-    /**
-     *
-     */
-    virtual double getCurrentTime (  ) =0;
-
-    /**
-     *
-     */
-    virtual double getSimpleDuration (  )
-                    throw( DOMException ) =0;
-;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAnimationElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateElement : virtual public SVGAnimationElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAnimateElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGSetElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGSetElement : virtual public SVGAnimationElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGSetElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAnimateMotionElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateMotionElement : virtual public SVGAnimationElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAnimateMotionElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGMPathElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGMPathElement :
-                    virtual public SVGElement,
-                    public SVGURIReference,
-                    public SVGExternalResourcesRequired
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGMPathElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAnimateColorElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateColorElement : virtual public SVGAnimationElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAnimateColorElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAnimateTransformElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateTransformElement : virtual public SVGAnimationElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAnimateTransformElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontElement :  virtual public SVGElement,
-                        public SVGExternalResourcesRequired,
-                        public SVGStylable
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGGlyphElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGGlyphElement :  virtual public SVGElement,
-                         public SVGStylable
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGGlyphElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGMissingGlyphElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGMissingGlyphElement :
-                    virtual public SVGElement,
-                    public SVGStylable
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGMissingGlyphElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGHKernElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGHKernElement : virtual public SVGElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGHKernElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGVKernElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGVKernElement : public virtual SVGElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGVKernElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontFaceElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceElement : virtual public SVGElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontFaceElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontFaceSrcElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceSrcElement : virtual public SVGElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontFaceSrcElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontFaceUriElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceUriElement : virtual public SVGElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontFaceUriElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontFaceFormatElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceFormatElement : virtual public SVGElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontFaceFormatElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontFaceNameElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceNameElement : virtual public SVGElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontFaceNameElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGDefinitionSrcElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGDefinitionSrcElement : virtual public SVGElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGDefinitionSrcElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGMetadataElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGMetadataElement : virtual public SVGElement
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGMetadataElement() {}
-
-};
-
-
-
-/*#########################################################################
-## SVGForeignObjectElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGForeignObjectElement :
-                    virtual public SVGElement,
-                    public SVGTests,
-                    public SVGLangSpace,
-                    public SVGExternalResourcesRequired,
-                    public SVGStylable,
-                    public SVGTransformable,
-                    public events::EventTarget
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth() =0;
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight() =0;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    virtual ~SVGForeignObjectElement() {}
-
-};
-
-
-
-
-
-}  //namespace svg
-}  //namespace dom
-}  //namespace w3c
-}  //namespace org
-
-#endif // __SVG_H__
-/*#########################################################################
-## E N D    O F    F I L E
-#########################################################################*/
-
diff --git a/src/dom/svg/svg.idl b/src/dom/svg/svg.idl
deleted file mode 100644 (file)
index 1a30dd3..0000000
+++ /dev/null
@@ -1,1751 +0,0 @@
-// File: svg.idl\r
-#ifndef _SVG_IDL_\r
-#define _SVG_IDL_\r
-\r
-\r
-// For access to DOM2 core\r
-#include "dom.idl"\r
-\r
-// For access to DOM2 events\r
-#include "events.idl"\r
-\r
-// For access to those parts from DOM2 CSS OM used by SVG DOM.\r
-#include "css.idl"\r
-\r
-// For access to those parts from DOM2 Views OM used by SVG DOM.\r
-#include "views.idl"\r
-\r
-// For access to the SMIL OM used by SVG DOM.\r
-#include "smil.idl"\r
-\r
-#pragma prefix "dom.w3c.org"\r
-#pragma javaPackage "org.w3c.dom"\r
-module svg\r
-{\r
-  typedef dom::DOMString DOMString;\r
-  typedef dom::DOMException DOMException;\r
-  typedef dom::Element Element;\r
-  typedef dom::Document Document;\r
-  typedef dom::NodeList NodeList;\r
-\r
-  // Predeclarations\r
-  interface SVGElement;\r
-  interface SVGLangSpace;\r
-  interface SVGExternalResourcesRequired;\r
-  interface SVGTests;\r
-  interface SVGFitToViewBox;\r
-  interface SVGZoomAndPan;\r
-  interface SVGViewSpec;\r
-  interface SVGURIReference;\r
-  interface SVGPoint;\r
-  interface SVGMatrix;\r
-  interface SVGPreserveAspectRatio;\r
-  interface SVGAnimatedPreserveAspectRatio;\r
-  interface SVGTransformList;\r
-  interface SVGAnimatedTransformList;\r
-  interface SVGTransform;\r
-  interface SVGICCColor;\r
-  interface SVGColor;\r
-  interface SVGPaint;\r
-  interface SVGTransformable;\r
-  interface SVGDocument;\r
-  interface SVGSVGElement;\r
-  interface SVGElementInstance;\r
-  interface SVGElementInstanceList;\r
-\r
-\r
-  exception SVGException {\r
-    unsigned short   code;\r
-  };\r
-\r
-  // SVGExceptionCode\r
-  const unsigned short SVG_WRONG_TYPE_ERR           = 0;\r
-  const unsigned short SVG_INVALID_VALUE_ERR        = 1;\r
-  const unsigned short SVG_MATRIX_NOT_INVERTABLE    = 2;\r
-\r
-  interface SVGElement : Element { \r
-             attribute DOMString id;\r
-                         // raises DOMException on setting\r
-             attribute DOMString xmlbase;\r
-                         // raises DOMException on setting\r
-    readonly attribute SVGSVGElement ownerSVGElement;\r
-    readonly attribute SVGElement viewportElement;\r
-  };\r
-\r
-  interface SVGAnimatedBoolean { \r
-\r
-             attribute boolean baseVal;\r
-                         // raises DOMException on setting\r
-    readonly attribute boolean animVal;\r
-  };\r
-\r
-  interface SVGAnimatedString { \r
-\r
-             attribute DOMString baseVal;\r
-                         // raises DOMException on setting\r
-    readonly attribute DOMString animVal;\r
-  };\r
-\r
-  interface SVGStringList { \r
-\r
-    readonly attribute unsigned long numberOfItems;\r
-\r
-    void   clear (  )\r
-                    raises( DOMException );\r
-    DOMString initialize ( in DOMString newItem )\r
-                    raises( DOMException, SVGException );\r
-    DOMString getItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    DOMString insertItemBefore ( in DOMString newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    DOMString replaceItem ( in DOMString newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    DOMString removeItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    DOMString appendItem ( in DOMString newItem )\r
-                    raises( DOMException, SVGException );\r
-  };\r
-\r
-  interface SVGAnimatedEnumeration { \r
-\r
-             attribute unsigned short baseVal;\r
-                         // raises DOMException on setting\r
-    readonly attribute unsigned short animVal;\r
-  };\r
-\r
-  interface SVGAnimatedInteger { \r
-\r
-             attribute long baseVal;\r
-                         // raises DOMException on setting\r
-    readonly attribute long animVal;\r
-  };\r
-\r
-  interface SVGNumber { \r
-\r
-             attribute float value;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGAnimatedNumber { \r
-\r
-             attribute float baseVal;\r
-                         // raises DOMException on setting\r
-    readonly attribute float animVal;\r
-  };\r
-\r
-  interface SVGNumberList { \r
-\r
-    readonly attribute unsigned long numberOfItems;\r
-\r
-    void   clear (  )\r
-                    raises( DOMException );\r
-    SVGNumber initialize ( in SVGNumber newItem )\r
-                    raises( DOMException, SVGException );\r
-    SVGNumber getItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    SVGNumber insertItemBefore ( in SVGNumber newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    SVGNumber replaceItem ( in SVGNumber newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    SVGNumber removeItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    SVGNumber appendItem ( in SVGNumber newItem )\r
-                    raises( DOMException, SVGException );\r
-  };\r
-\r
-  interface SVGAnimatedNumberList { \r
-\r
-    readonly attribute SVGNumberList baseVal;\r
-    readonly attribute SVGNumberList animVal;\r
-  };\r
-\r
-  interface SVGLength { \r
-\r
-    // Length Unit Types\r
-    const unsigned short SVG_LENGTHTYPE_UNKNOWN    = 0;\r
-    const unsigned short SVG_LENGTHTYPE_NUMBER     = 1;\r
-    const unsigned short SVG_LENGTHTYPE_PERCENTAGE = 2;\r
-    const unsigned short SVG_LENGTHTYPE_EMS        = 3;\r
-    const unsigned short SVG_LENGTHTYPE_EXS        = 4;\r
-    const unsigned short SVG_LENGTHTYPE_PX         = 5;\r
-    const unsigned short SVG_LENGTHTYPE_CM         = 6;\r
-    const unsigned short SVG_LENGTHTYPE_MM         = 7;\r
-    const unsigned short SVG_LENGTHTYPE_IN         = 8;\r
-    const unsigned short SVG_LENGTHTYPE_PT         = 9;\r
-    const unsigned short SVG_LENGTHTYPE_PC         = 10;\r
-\r
-    readonly attribute unsigned short unitType;\r
-             attribute float          value;\r
-                         // raises DOMException on setting\r
-             attribute float          valueInSpecifiedUnits;\r
-                         // raises DOMException on setting\r
-             attribute DOMString      valueAsString;\r
-                         // raises DOMException on setting\r
-\r
-    void newValueSpecifiedUnits ( in unsigned short unitType, in float valueInSpecifiedUnits );\r
-    void convertToSpecifiedUnits ( in unsigned short unitType );\r
-  };\r
-\r
-  interface SVGAnimatedLength { \r
-\r
-    readonly attribute SVGLength baseVal;\r
-    readonly attribute SVGLength animVal;\r
-  };\r
-\r
-  interface SVGLengthList { \r
-\r
-    readonly attribute unsigned long numberOfItems;\r
-\r
-    void   clear (  )\r
-                    raises( DOMException );\r
-    SVGLength initialize ( in SVGLength newItem )\r
-                    raises( DOMException, SVGException );\r
-    SVGLength getItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    SVGLength insertItemBefore ( in SVGLength newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    SVGLength replaceItem ( in SVGLength newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    SVGLength removeItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    SVGLength appendItem ( in SVGLength newItem )\r
-                    raises( DOMException, SVGException );\r
-  };\r
-\r
-  interface SVGAnimatedLengthList { \r
-\r
-    readonly attribute SVGLengthList baseVal;\r
-    readonly attribute SVGLengthList animVal;\r
-  };\r
-\r
-  interface SVGAngle { \r
-\r
-    // Angle Unit Types\r
-    const unsigned short SVG_ANGLETYPE_UNKNOWN     = 0;\r
-    const unsigned short SVG_ANGLETYPE_UNSPECIFIED = 1;\r
-    const unsigned short SVG_ANGLETYPE_DEG         = 2;\r
-    const unsigned short SVG_ANGLETYPE_RAD         = 3;\r
-    const unsigned short SVG_ANGLETYPE_GRAD        = 4;\r
-\r
-    readonly attribute unsigned short unitType;\r
-             attribute float          value;\r
-                         // raises DOMException on setting\r
-             attribute float          valueInSpecifiedUnits;\r
-                         // raises DOMException on setting\r
-             attribute DOMString      valueAsString;\r
-                         // raises DOMException on setting\r
-\r
-    void newValueSpecifiedUnits ( in unsigned short unitType, in float valueInSpecifiedUnits );\r
-    void convertToSpecifiedUnits ( in unsigned short unitType );\r
-  };\r
-\r
-  interface SVGAnimatedAngle { \r
-\r
-    readonly attribute SVGAngle baseVal;\r
-    readonly attribute SVGAngle animVal;\r
-  };\r
-\r
-  interface SVGColor : css::CSSValue { \r
-    // Color Types\r
-    const unsigned short SVG_COLORTYPE_UNKNOWN           = 0;\r
-    const unsigned short SVG_COLORTYPE_RGBCOLOR          = 1;\r
-    const unsigned short SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2;\r
-    const unsigned short SVG_COLORTYPE_CURRENTCOLOR      = 3;\r
-\r
-    readonly attribute unsigned short colorType;\r
-    readonly attribute css::RGBColor  rgbColor;\r
-    readonly attribute SVGICCColor    iccColor;\r
-\r
-    void        setRGBColor ( in DOMString rgbColor )\r
-                    raises( SVGException );\r
-    void        setRGBColorICCColor ( in DOMString rgbColor, in DOMString iccColor )\r
-                    raises( SVGException );\r
-    void        setColor ( in unsigned short colorType, in DOMString rgbColor, in DOMString iccColor )\r
-                    raises( SVGException );\r
-  };\r
-\r
-  interface SVGICCColor { \r
-\r
-             attribute DOMString      colorProfile;\r
-                         // raises DOMException on setting\r
-    readonly attribute SVGNumberList colors;\r
-  };\r
-\r
-  interface SVGRect { \r
-\r
-             attribute float x;\r
-                         // raises DOMException on setting\r
-             attribute float y;\r
-                         // raises DOMException on setting\r
-             attribute float width;\r
-                         // raises DOMException on setting\r
-             attribute float height;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGAnimatedRect { \r
-\r
-    readonly attribute SVGRect baseVal;\r
-    readonly attribute SVGRect animVal;\r
-  };\r
-\r
-  interface SVGUnitTypes { \r
-\r
-    // Unit Types\r
-    const unsigned short SVG_UNIT_TYPE_UNKNOWN           = 0;\r
-    const unsigned short SVG_UNIT_TYPE_USERSPACEONUSE    = 1;\r
-    const unsigned short SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;\r
-  };\r
-\r
-  interface SVGStylable { \r
-\r
-    readonly attribute SVGAnimatedString className;\r
-    readonly attribute css::CSSStyleDeclaration style;\r
-\r
-    css::CSSValue getPresentationAttribute ( in DOMString name );\r
-  };\r
-\r
-  interface SVGLocatable { \r
-\r
-    readonly attribute SVGElement              nearestViewportElement;\r
-    readonly attribute SVGElement              farthestViewportElement;\r
-\r
-    SVGRect   getBBox (  );\r
-    SVGMatrix getCTM (  );\r
-    SVGMatrix getScreenCTM (  );\r
-    SVGMatrix getTransformToElement ( in SVGElement element )\r
-                    raises( SVGException );\r
-  };\r
-\r
-  interface SVGTransformable : SVGLocatable { \r
-    readonly attribute SVGAnimatedTransformList transform;\r
-  };\r
-\r
-  interface SVGTests { \r
-\r
-    readonly attribute SVGStringList requiredFeatures;\r
-    readonly attribute SVGStringList requiredExtensions;\r
-    readonly attribute SVGStringList systemLanguage;\r
-\r
-    boolean hasExtension ( in DOMString extension );\r
-  };\r
-\r
-  interface SVGLangSpace { \r
-\r
-             attribute DOMString xmllang;\r
-                         // raises DOMException on setting\r
-             attribute DOMString xmlspace;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGExternalResourcesRequired { \r
-\r
-    readonly attribute SVGAnimatedBoolean externalResourcesRequired;\r
-  };\r
-\r
-  interface SVGFitToViewBox { \r
-\r
-    readonly attribute SVGAnimatedRect                viewBox;\r
-    readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;\r
-  };\r
-\r
-  interface SVGZoomAndPan { \r
-\r
-    // Zoom and Pan Types\r
-    const unsigned short SVG_ZOOMANDPAN_UNKNOWN   = 0;\r
-    const unsigned short SVG_ZOOMANDPAN_DISABLE = 1;\r
-    const unsigned short SVG_ZOOMANDPAN_MAGNIFY = 2;\r
-\r
-             attribute unsigned short zoomAndPan;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGViewSpec : \r
-                SVGZoomAndPan,\r
-                SVGFitToViewBox { \r
-\r
-    readonly attribute SVGTransformList transform;\r
-    readonly attribute SVGElement       viewTarget;\r
-    readonly attribute DOMString        viewBoxString;\r
-    readonly attribute DOMString        preserveAspectRatioString;\r
-    readonly attribute DOMString        transformString;\r
-    readonly attribute DOMString        viewTargetString;\r
-  };\r
-\r
-  interface SVGURIReference { \r
-\r
-    readonly attribute SVGAnimatedString href;\r
-  };\r
-\r
-  interface SVGCSSRule : css::CSSRule { \r
-    // Additional CSS RuleType to support ICC color specifications\r
-    const unsigned short COLOR_PROFILE_RULE = 7;\r
-  };\r
-\r
-  interface SVGRenderingIntent { \r
-\r
-    // Rendering Intent Types\r
-    const unsigned short RENDERING_INTENT_UNKNOWN               = 0;\r
-    const unsigned short RENDERING_INTENT_AUTO                  = 1;\r
-    const unsigned short RENDERING_INTENT_PERCEPTUAL            = 2;\r
-    const unsigned short RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3;\r
-    const unsigned short RENDERING_INTENT_SATURATION            = 4;\r
-    const unsigned short RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5;\r
-  };\r
-\r
-  interface SVGDocument : \r
-                Document,\r
-                events::DocumentEvent { \r
-\r
-    readonly attribute DOMString    title;\r
-    readonly attribute DOMString     referrer;\r
-    readonly attribute DOMString      domain;\r
-    readonly attribute DOMString      URL;\r
-    readonly attribute SVGSVGElement rootElement;\r
-  };\r
-\r
-  interface SVGSVGElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGLocatable,\r
-                SVGFitToViewBox,\r
-                SVGZoomAndPan,\r
-                events::EventTarget,\r
-                events::DocumentEvent,\r
-                css::ViewCSS,\r
-                css::DocumentCSS { \r
-\r
-    readonly attribute SVGAnimatedLength x;\r
-    readonly attribute SVGAnimatedLength y;\r
-    readonly attribute SVGAnimatedLength width;\r
-    readonly attribute SVGAnimatedLength height;\r
-             attribute DOMString         contentScriptType;\r
-                         // raises DOMException on setting\r
-             attribute DOMString         contentStyleType;\r
-                         // raises DOMException on setting\r
-    readonly attribute SVGRect           viewport;\r
-    readonly attribute float pixelUnitToMillimeterX;\r
-    readonly attribute float pixelUnitToMillimeterY;\r
-    readonly attribute float screenPixelToMillimeterX;\r
-    readonly attribute float screenPixelToMillimeterY;\r
-             attribute boolean useCurrentView;\r
-                         // raises DOMException on setting\r
-    readonly attribute SVGViewSpec currentView;\r
-             attribute float currentScale;\r
-                         // raises DOMException on setting\r
-    readonly attribute SVGPoint currentTranslate;\r
-\r
-    unsigned long suspendRedraw ( in unsigned long max_wait_milliseconds );\r
-    void          unsuspendRedraw ( in unsigned long suspend_handle_id )\r
-                    raises( DOMException );\r
-    void          unsuspendRedrawAll (  );\r
-    void          forceRedraw (  );\r
-    void          pauseAnimations (  );\r
-    void          unpauseAnimations (  );\r
-    boolean       animationsPaused (  );\r
-    float         getCurrentTime (  );\r
-    void          setCurrentTime ( in float seconds );\r
-    NodeList      getIntersectionList ( in SVGRect rect, in SVGElement referenceElement );\r
-    NodeList      getEnclosureList ( in SVGRect rect, in SVGElement referenceElement );\r
-    boolean       checkIntersection ( in SVGElement element, in SVGRect rect );\r
-    boolean       checkEnclosure ( in SVGElement element, in SVGRect rect );\r
-    void          deselectAll (  );\r
-    SVGNumber              createSVGNumber (  );\r
-    SVGLength              createSVGLength (  );\r
-    SVGAngle               createSVGAngle (  );\r
-    SVGPoint               createSVGPoint (  );\r
-    SVGMatrix              createSVGMatrix (  );\r
-    SVGRect                createSVGRect (  );\r
-    SVGTransform           createSVGTransform (  );\r
-    SVGTransform     createSVGTransformFromMatrix ( in SVGMatrix matrix );\r
-    Element         getElementById ( in DOMString elementId );\r
-  };\r
-\r
-  interface SVGGElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget {};\r
-\r
-  interface SVGDefsElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget {};\r
-\r
-  interface SVGDescElement : \r
-                SVGElement,\r
-                SVGLangSpace,\r
-                SVGStylable {};\r
-\r
-  interface SVGTitleElement : \r
-                SVGElement,\r
-                SVGLangSpace,\r
-                SVGStylable {};\r
-\r
-  interface SVGSymbolElement : \r
-                SVGElement,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGFitToViewBox,\r
-                events::EventTarget {};\r
-\r
-  interface SVGUseElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget { \r
-\r
-    readonly attribute SVGAnimatedLength   x;\r
-    readonly attribute SVGAnimatedLength   y;\r
-    readonly attribute SVGAnimatedLength   width;\r
-    readonly attribute SVGAnimatedLength   height;\r
-    readonly attribute SVGElementInstance instanceRoot;\r
-    readonly attribute SVGElementInstance animatedInstanceRoot;\r
-  };\r
-\r
-  interface SVGElementInstance : events::EventTarget { \r
-    readonly attribute SVGElement correspondingElement;\r
-    readonly attribute SVGUseElement correspondingUseElement;\r
-    readonly attribute SVGElementInstance parentNode;\r
-    readonly attribute SVGElementInstanceList childNodes;\r
-    readonly attribute SVGElementInstance firstChild;\r
-    readonly attribute SVGElementInstance lastChild;\r
-    readonly attribute SVGElementInstance previousSibling;\r
-    readonly attribute SVGElementInstance nextSibling;\r
-  };\r
-\r
-  interface SVGElementInstanceList { \r
-\r
-    readonly attribute unsigned long length;\r
-\r
-    SVGElementInstance item ( in unsigned long index );\r
-  };\r
-\r
-  interface SVGImageElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget { \r
-\r
-    readonly attribute SVGAnimatedLength x;\r
-    readonly attribute SVGAnimatedLength y;\r
-    readonly attribute SVGAnimatedLength width;\r
-    readonly attribute SVGAnimatedLength height;\r
-    readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;\r
-  };\r
-\r
-  interface SVGSwitchElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget {};\r
-\r
-  interface GetSVGDocument { \r
-\r
-    SVGDocument getSVGDocument (  )\r
-                    raises( DOMException );\r
-  };\r
-\r
-  interface SVGStyleElement : SVGElement { \r
-             attribute DOMString xmlspace;\r
-                         // raises DOMException on setting\r
-             attribute DOMString type;\r
-                         // raises DOMException on setting\r
-             attribute DOMString media;\r
-                         // raises DOMException on setting\r
-             attribute DOMString title;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPoint { \r
-\r
-             attribute float x;\r
-                         // raises DOMException on setting\r
-             attribute float y;\r
-                         // raises DOMException on setting\r
-\r
-    SVGPoint matrixTransform ( in SVGMatrix matrix );\r
-  };\r
-\r
-  interface SVGPointList { \r
-\r
-    readonly attribute unsigned long numberOfItems;\r
-\r
-    void   clear (  )\r
-                    raises( DOMException );\r
-    SVGPoint initialize ( in SVGPoint newItem )\r
-                    raises( DOMException, SVGException );\r
-    SVGPoint getItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    SVGPoint insertItemBefore ( in SVGPoint newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    SVGPoint replaceItem ( in SVGPoint newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    SVGPoint removeItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    SVGPoint appendItem ( in SVGPoint newItem )\r
-                    raises( DOMException, SVGException );\r
-  };\r
-\r
-  interface SVGMatrix { \r
-\r
-             attribute float a;\r
-                         // raises DOMException on setting\r
-             attribute float b;\r
-                         // raises DOMException on setting\r
-             attribute float c;\r
-                         // raises DOMException on setting\r
-             attribute float d;\r
-                         // raises DOMException on setting\r
-             attribute float e;\r
-                         // raises DOMException on setting\r
-             attribute float f;\r
-                         // raises DOMException on setting\r
-\r
-    SVGMatrix multiply ( in SVGMatrix secondMatrix );\r
-    SVGMatrix inverse (  )\r
-                    raises( SVGException );\r
-    SVGMatrix translate ( in float x, in float y );\r
-    SVGMatrix scale ( in float scaleFactor );\r
-    SVGMatrix scaleNonUniform ( in float scaleFactorX, in float scaleFactorY );\r
-    SVGMatrix rotate ( in float angle );\r
-    SVGMatrix rotateFromVector ( in float x, in float y )\r
-                    raises( SVGException );\r
-    SVGMatrix flipX (  );\r
-    SVGMatrix flipY (  );\r
-    SVGMatrix skewX ( in float angle );\r
-    SVGMatrix skewY ( in float angle );\r
-  };\r
-\r
-  interface SVGTransform { \r
-\r
-    // Transform Types\r
-    const unsigned short SVG_TRANSFORM_UNKNOWN   = 0;\r
-    const unsigned short SVG_TRANSFORM_MATRIX    = 1;\r
-    const unsigned short SVG_TRANSFORM_TRANSLATE = 2;\r
-    const unsigned short SVG_TRANSFORM_SCALE     = 3;\r
-    const unsigned short SVG_TRANSFORM_ROTATE    = 4;\r
-    const unsigned short SVG_TRANSFORM_SKEWX     = 5;\r
-    const unsigned short SVG_TRANSFORM_SKEWY     = 6;\r
-\r
-    readonly attribute unsigned short type;\r
-    readonly attribute SVGMatrix matrix;\r
-    readonly attribute float angle;\r
-\r
-    void setMatrix ( in SVGMatrix matrix );\r
-    void setTranslate ( in float tx, in float ty );\r
-    void setScale ( in float sx, in float sy );\r
-    void setRotate ( in float angle, in float cx, in float cy );\r
-    void setSkewX ( in float angle );\r
-    void setSkewY ( in float angle );\r
-  };\r
-\r
-  interface SVGTransformList { \r
-\r
-    readonly attribute unsigned long numberOfItems;\r
-\r
-    void   clear (  )\r
-                    raises( DOMException );\r
-    SVGTransform initialize ( in SVGTransform newItem )\r
-                    raises( DOMException, SVGException );\r
-    SVGTransform getItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    SVGTransform insertItemBefore ( in SVGTransform newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    SVGTransform replaceItem ( in SVGTransform newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    SVGTransform removeItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    SVGTransform appendItem ( in SVGTransform newItem )\r
-                    raises( DOMException, SVGException );\r
-    SVGTransform createSVGTransformFromMatrix ( in SVGMatrix matrix );\r
-    SVGTransform consolidate (  );\r
-  };\r
-\r
-  interface SVGAnimatedTransformList { \r
-\r
-    readonly attribute SVGTransformList baseVal;\r
-    readonly attribute SVGTransformList animVal;\r
-  };\r
-\r
-  interface SVGPreserveAspectRatio { \r
-\r
-    // Alignment Types\r
-    const unsigned short SVG_PRESERVEASPECTRATIO_UNKNOWN   = 0;\r
-    const unsigned short SVG_PRESERVEASPECTRATIO_NONE     = 1;\r
-    const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;\r
-    const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;\r
-    const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;\r
-    const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMID = 5;\r
-    const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;\r
-    const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;\r
-    const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;\r
-    const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;\r
-    const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;\r
-    // Meet-or-slice Types\r
-    const unsigned short SVG_MEETORSLICE_UNKNOWN   = 0;\r
-    const unsigned short SVG_MEETORSLICE_MEET  = 1;\r
-    const unsigned short SVG_MEETORSLICE_SLICE = 2;\r
-\r
-             attribute unsigned short align;\r
-                         // raises DOMException on setting\r
-             attribute unsigned short meetOrSlice;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGAnimatedPreserveAspectRatio { \r
-\r
-    readonly attribute SVGPreserveAspectRatio baseVal;\r
-    readonly attribute SVGPreserveAspectRatio animVal;\r
-  };\r
-\r
-  interface SVGPathSeg { \r
-\r
-    // Path Segment Types\r
-    const unsigned short PATHSEG_UNKNOWN                      = 0;\r
-    const unsigned short PATHSEG_CLOSEPATH                    = 1;\r
-    const unsigned short PATHSEG_MOVETO_ABS                   = 2;\r
-    const unsigned short PATHSEG_MOVETO_REL                   = 3;\r
-    const unsigned short PATHSEG_LINETO_ABS                   = 4;\r
-    const unsigned short PATHSEG_LINETO_REL                   = 5;\r
-    const unsigned short PATHSEG_CURVETO_CUBIC_ABS            = 6;\r
-    const unsigned short PATHSEG_CURVETO_CUBIC_REL            = 7;\r
-    const unsigned short PATHSEG_CURVETO_QUADRATIC_ABS        = 8;\r
-    const unsigned short PATHSEG_CURVETO_QUADRATIC_REL        = 9;\r
-    const unsigned short PATHSEG_ARC_ABS                      = 10;\r
-    const unsigned short PATHSEG_ARC_REL                      = 11;\r
-    const unsigned short PATHSEG_LINETO_HORIZONTAL_ABS        = 12;\r
-    const unsigned short PATHSEG_LINETO_HORIZONTAL_REL        = 13;\r
-    const unsigned short PATHSEG_LINETO_VERTICAL_ABS          = 14;\r
-    const unsigned short PATHSEG_LINETO_VERTICAL_REL          = 15;\r
-    const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_ABS     = 16;\r
-    const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_REL     = 17;\r
-    const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\r
-    const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\r
-\r
-    readonly attribute unsigned short pathSegType;\r
-    readonly attribute DOMString      pathSegTypeAsLetter;\r
-  };\r
-\r
-  interface SVGPathSegClosePath : SVGPathSeg {};\r
-\r
-  interface SVGPathSegMovetoAbs : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegMovetoRel : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegLinetoAbs : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegLinetoRel : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegCurvetoCubicAbs : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-             attribute float   x1;\r
-                         // raises DOMException on setting\r
-             attribute float   y1;\r
-                         // raises DOMException on setting\r
-             attribute float   x2;\r
-                         // raises DOMException on setting\r
-             attribute float   y2;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegCurvetoCubicRel : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-             attribute float   x1;\r
-                         // raises DOMException on setting\r
-             attribute float   y1;\r
-                         // raises DOMException on setting\r
-             attribute float   x2;\r
-                         // raises DOMException on setting\r
-             attribute float   y2;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegCurvetoQuadraticAbs : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-             attribute float   x1;\r
-                         // raises DOMException on setting\r
-             attribute float   y1;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegCurvetoQuadraticRel : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-             attribute float   x1;\r
-                         // raises DOMException on setting\r
-             attribute float   y1;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegArcAbs : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-             attribute float   r1;\r
-                         // raises DOMException on setting\r
-             attribute float   r2;\r
-                         // raises DOMException on setting\r
-             attribute float   angle;\r
-                         // raises DOMException on setting\r
-             attribute boolean largeArcFlag;\r
-                         // raises DOMException on setting\r
-             attribute boolean sweepFlag;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegArcRel : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-             attribute float   r1;\r
-                         // raises DOMException on setting\r
-             attribute float   r2;\r
-                         // raises DOMException on setting\r
-             attribute float   angle;\r
-                         // raises DOMException on setting\r
-             attribute boolean largeArcFlag;\r
-                         // raises DOMException on setting\r
-             attribute boolean sweepFlag;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegLinetoHorizontalAbs : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegLinetoHorizontalRel : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegLinetoVerticalAbs : SVGPathSeg { \r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegLinetoVerticalRel : SVGPathSeg { \r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-             attribute float   x2;\r
-                         // raises DOMException on setting\r
-             attribute float   y2;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-             attribute float   x2;\r
-                         // raises DOMException on setting\r
-             attribute float   y2;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg { \r
-             attribute float   x;\r
-                         // raises DOMException on setting\r
-             attribute float   y;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPathSegList { \r
-\r
-    readonly attribute unsigned long numberOfItems;\r
-\r
-    void   clear (  )\r
-                    raises( DOMException );\r
-    SVGPathSeg initialize ( in SVGPathSeg newItem )\r
-                    raises( DOMException, SVGException );\r
-    SVGPathSeg getItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    SVGPathSeg insertItemBefore ( in SVGPathSeg newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    SVGPathSeg replaceItem ( in SVGPathSeg newItem, in unsigned long index )\r
-                    raises( DOMException, SVGException );\r
-    SVGPathSeg removeItem ( in unsigned long index )\r
-                    raises( DOMException );\r
-    SVGPathSeg appendItem ( in SVGPathSeg newItem )\r
-                    raises( DOMException, SVGException );\r
-  };\r
-\r
-  interface SVGAnimatedPathData { \r
-\r
-    readonly attribute SVGPathSegList   pathSegList;\r
-    readonly attribute SVGPathSegList   normalizedPathSegList;\r
-    readonly attribute SVGPathSegList   animatedPathSegList;\r
-    readonly attribute SVGPathSegList   animatedNormalizedPathSegList;\r
-  };\r
-\r
-  interface SVGPathElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget,\r
-                SVGAnimatedPathData { \r
-\r
-    readonly attribute SVGAnimatedNumber pathLength;\r
-\r
-    float         getTotalLength (  );\r
-    SVGPoint      getPointAtLength ( in float distance );\r
-    unsigned long getPathSegAtLength ( in float distance );\r
-    SVGPathSegClosePath    createSVGPathSegClosePath (  );\r
-    SVGPathSegMovetoAbs    createSVGPathSegMovetoAbs ( in float x, in float y );\r
-    SVGPathSegMovetoRel    createSVGPathSegMovetoRel ( in float x, in float y );\r
-    SVGPathSegLinetoAbs    createSVGPathSegLinetoAbs ( in float x, in float y );\r
-    SVGPathSegLinetoRel    createSVGPathSegLinetoRel ( in float x, in float y );\r
-    SVGPathSegCurvetoCubicAbs    createSVGPathSegCurvetoCubicAbs ( in float x, in float y, in float x1, in float y1, in float x2, in float y2 );\r
-    SVGPathSegCurvetoCubicRel    createSVGPathSegCurvetoCubicRel ( in float x, in float y, in float x1, in float y1, in float x2, in float y2 );\r
-    SVGPathSegCurvetoQuadraticAbs    createSVGPathSegCurvetoQuadraticAbs ( in float x, in float y, in float x1, in float y1 );\r
-    SVGPathSegCurvetoQuadraticRel    createSVGPathSegCurvetoQuadraticRel ( in float x, in float y, in float x1, in float y1 );\r
-    SVGPathSegArcAbs    createSVGPathSegArcAbs ( in float x, in float y, in float r1, in float r2, in float angle, in boolean largeArcFlag, in boolean sweepFlag );\r
-    SVGPathSegArcRel    createSVGPathSegArcRel ( in float x, in float y, in float r1, in float r2, in float angle, in boolean largeArcFlag, in boolean sweepFlag );\r
-    SVGPathSegLinetoHorizontalAbs    createSVGPathSegLinetoHorizontalAbs ( in float x );\r
-    SVGPathSegLinetoHorizontalRel    createSVGPathSegLinetoHorizontalRel ( in float x );\r
-    SVGPathSegLinetoVerticalAbs    createSVGPathSegLinetoVerticalAbs ( in float y );\r
-    SVGPathSegLinetoVerticalRel    createSVGPathSegLinetoVerticalRel ( in float y );\r
-    SVGPathSegCurvetoCubicSmoothAbs    createSVGPathSegCurvetoCubicSmoothAbs ( in float x, in float y, in float x2, in float y2 );\r
-    SVGPathSegCurvetoCubicSmoothRel    createSVGPathSegCurvetoCubicSmoothRel ( in float x, in float y, in float x2, in float y2 );\r
-    SVGPathSegCurvetoQuadraticSmoothAbs    createSVGPathSegCurvetoQuadraticSmoothAbs ( in float x, in float y );\r
-    SVGPathSegCurvetoQuadraticSmoothRel    createSVGPathSegCurvetoQuadraticSmoothRel ( in float x, in float y );\r
-  };\r
-\r
-  interface SVGRectElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget { \r
-\r
-    readonly attribute SVGAnimatedLength x;\r
-    readonly attribute SVGAnimatedLength y;\r
-    readonly attribute SVGAnimatedLength width;\r
-    readonly attribute SVGAnimatedLength height;\r
-    readonly attribute SVGAnimatedLength rx;\r
-    readonly attribute SVGAnimatedLength ry;\r
-  };\r
-\r
-  interface SVGCircleElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget { \r
-\r
-    readonly attribute SVGAnimatedLength cx;\r
-    readonly attribute SVGAnimatedLength cy;\r
-    readonly attribute SVGAnimatedLength r;\r
-  };\r
-\r
-  interface SVGEllipseElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget { \r
-\r
-    readonly attribute SVGAnimatedLength cx;\r
-    readonly attribute SVGAnimatedLength cy;\r
-    readonly attribute SVGAnimatedLength rx;\r
-    readonly attribute SVGAnimatedLength ry;\r
-  };\r
-\r
-  interface SVGLineElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget { \r
-\r
-    readonly attribute SVGAnimatedLength x1;\r
-    readonly attribute SVGAnimatedLength y1;\r
-    readonly attribute SVGAnimatedLength x2;\r
-    readonly attribute SVGAnimatedLength y2;\r
-  };\r
-\r
-  interface SVGAnimatedPoints { \r
-\r
-    readonly attribute SVGPointList   points;\r
-    readonly attribute SVGPointList   animatedPoints;\r
-  };\r
-\r
-  interface SVGPolylineElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget,\r
-                SVGAnimatedPoints {};\r
-\r
-  interface SVGPolygonElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget,\r
-                SVGAnimatedPoints {};\r
-\r
-  interface SVGTextContentElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                events::EventTarget { \r
-\r
-    // lengthAdjust Types\r
-    const unsigned short LENGTHADJUST_UNKNOWN   = 0;\r
-    const unsigned short LENGTHADJUST_SPACING     = 1;\r
-    const unsigned short LENGTHADJUST_SPACINGANDGLYPHS     = 2;\r
-\r
-    readonly attribute SVGAnimatedLength      textLength;\r
-    readonly attribute SVGAnimatedEnumeration lengthAdjust;\r
-\r
-    long     getNumberOfChars (  );\r
-    float    getComputedTextLength (  );\r
-    float    getSubStringLength ( in unsigned long charnum, in unsigned long nchars )\r
-                    raises( DOMException );\r
-    SVGPoint getStartPositionOfChar ( in unsigned long charnum )\r
-                    raises( DOMException );\r
-    SVGPoint getEndPositionOfChar ( in unsigned long charnum )\r
-                    raises( DOMException );\r
-    SVGRect  getExtentOfChar ( in unsigned long charnum )\r
-                    raises( DOMException );\r
-    float    getRotationOfChar ( in unsigned long charnum )\r
-                    raises( DOMException );\r
-    long     getCharNumAtPosition ( in SVGPoint point );\r
-    void     selectSubString ( in unsigned long charnum, in unsigned long nchars )\r
-                    raises( DOMException );\r
-  };\r
-\r
-  interface SVGTextPositioningElement : SVGTextContentElement { \r
-    readonly attribute SVGAnimatedLengthList x;\r
-    readonly attribute SVGAnimatedLengthList y;\r
-    readonly attribute SVGAnimatedLengthList dx;\r
-    readonly attribute SVGAnimatedLengthList dy;\r
-    readonly attribute SVGAnimatedNumberList rotate;\r
-  };\r
-\r
-  interface SVGTextElement : \r
-                SVGTextPositioningElement,\r
-                SVGTransformable {};\r
-\r
-  interface SVGTSpanElement : SVGTextPositioningElement {};\r
-\r
-  interface SVGTRefElement : \r
-                SVGTextPositioningElement,\r
-                SVGURIReference {};\r
-\r
-  interface SVGTextPathElement : \r
-                SVGTextContentElement,\r
-                SVGURIReference { \r
-\r
-    // textPath Method Types\r
-    const unsigned short TEXTPATH_METHODTYPE_UNKNOWN   = 0;\r
-    const unsigned short TEXTPATH_METHODTYPE_ALIGN     = 1;\r
-    const unsigned short TEXTPATH_METHODTYPE_STRETCH     = 2;\r
-    // textPath Spacing Types\r
-    const unsigned short TEXTPATH_SPACINGTYPE_UNKNOWN   = 0;\r
-    const unsigned short TEXTPATH_SPACINGTYPE_AUTO     = 1;\r
-    const unsigned short TEXTPATH_SPACINGTYPE_EXACT     = 2;\r
-\r
-    readonly attribute SVGAnimatedLength              startOffset;\r
-    readonly attribute SVGAnimatedEnumeration method;\r
-    readonly attribute SVGAnimatedEnumeration spacing;\r
-  };\r
-\r
-  interface SVGAltGlyphElement : \r
-                SVGTextPositioningElement,\r
-                SVGURIReference { \r
-\r
-             attribute DOMString glyphRef;\r
-                         // raises DOMException on setting\r
-             attribute DOMString format;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGAltGlyphDefElement : SVGElement {};\r
-\r
-  interface SVGAltGlyphItemElement : SVGElement {};\r
-\r
-  interface SVGGlyphRefElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGStylable { \r
-\r
-             attribute DOMString glyphRef;\r
-                         // raises DOMException on setting\r
-             attribute DOMString format;\r
-                         // raises DOMException on setting\r
-             attribute float    x;\r
-                         // raises DOMException on setting\r
-             attribute float    y;\r
-                         // raises DOMException on setting\r
-             attribute float    dx;\r
-                         // raises DOMException on setting\r
-             attribute float    dy;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGPaint : SVGColor { \r
-    // Paint Types\r
-    const unsigned short SVG_PAINTTYPE_UNKNOWN               = 0;\r
-    const unsigned short SVG_PAINTTYPE_RGBCOLOR              = 1;\r
-    const unsigned short SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR     = 2;\r
-    const unsigned short SVG_PAINTTYPE_NONE                  = 101;\r
-    const unsigned short SVG_PAINTTYPE_CURRENTCOLOR          = 102;\r
-    const unsigned short SVG_PAINTTYPE_URI_NONE              = 103;\r
-    const unsigned short SVG_PAINTTYPE_URI_CURRENTCOLOR      = 104;\r
-    const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR          = 105;\r
-    const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106;\r
-    const unsigned short SVG_PAINTTYPE_URI                   = 107;\r
-\r
-    readonly attribute unsigned short paintType;\r
-    readonly attribute DOMString      uri;\r
-\r
-    void setUri ( in DOMString uri );\r
-    void setPaint ( in unsigned short paintType, in DOMString uri, in DOMString rgbColor, in DOMString iccColor )\r
-                    raises( SVGException );\r
-  };\r
-\r
-  interface SVGMarkerElement : \r
-                SVGElement,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGFitToViewBox { \r
-\r
-    // Marker Unit Types\r
-    const unsigned short SVG_MARKERUNITS_UNKNOWN        = 0;\r
-    const unsigned short SVG_MARKERUNITS_USERSPACEONUSE = 1;\r
-    const unsigned short SVG_MARKERUNITS_STROKEWIDTH    = 2;\r
-    // Marker Orientation Types\r
-    const unsigned short SVG_MARKER_ORIENT_UNKNOWN      = 0;\r
-    const unsigned short SVG_MARKER_ORIENT_AUTO         = 1;\r
-    const unsigned short SVG_MARKER_ORIENT_ANGLE        = 2;\r
-\r
-    readonly attribute SVGAnimatedLength      refX;\r
-    readonly attribute SVGAnimatedLength      refY;\r
-    readonly attribute SVGAnimatedEnumeration markerUnits;\r
-    readonly attribute SVGAnimatedLength      markerWidth;\r
-    readonly attribute SVGAnimatedLength      markerHeight;\r
-    readonly attribute SVGAnimatedEnumeration orientType;\r
-    readonly attribute SVGAnimatedAngle      orientAngle;\r
-\r
-    void setOrientToAuto (  );\r
-    void setOrientToAngle ( in SVGAngle angle );\r
-  };\r
-\r
-  interface SVGColorProfileElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGRenderingIntent { \r
-\r
-             attribute DOMString      local;\r
-                         // raises DOMException on setting\r
-             attribute DOMString      name;\r
-                         // raises DOMException on setting\r
-             attribute unsigned short renderingIntent;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGColorProfileRule : \r
-                SVGCSSRule,\r
-                SVGRenderingIntent { \r
-\r
-             attribute DOMString      src;\r
-                         // raises DOMException on setting\r
-             attribute DOMString      name;\r
-                         // raises DOMException on setting\r
-             attribute unsigned short renderingIntent;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGGradientElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGUnitTypes { \r
-\r
-    // Spread Method Types\r
-    const unsigned short SVG_SPREADMETHOD_UNKNOWN = 0;\r
-    const unsigned short SVG_SPREADMETHOD_PAD     = 1;\r
-    const unsigned short SVG_SPREADMETHOD_REFLECT = 2;\r
-    const unsigned short SVG_SPREADMETHOD_REPEAT  = 3;\r
-\r
-    readonly attribute SVGAnimatedEnumeration   gradientUnits;\r
-    readonly attribute SVGAnimatedTransformList gradientTransform;\r
-    readonly attribute SVGAnimatedEnumeration   spreadMethod;\r
-  };\r
-\r
-  interface SVGLinearGradientElement : SVGGradientElement { \r
-    readonly attribute SVGAnimatedLength x1;\r
-    readonly attribute SVGAnimatedLength y1;\r
-    readonly attribute SVGAnimatedLength x2;\r
-    readonly attribute SVGAnimatedLength y2;\r
-  };\r
-\r
-  interface SVGRadialGradientElement : SVGGradientElement { \r
-    readonly attribute SVGAnimatedLength cx;\r
-    readonly attribute SVGAnimatedLength cy;\r
-    readonly attribute SVGAnimatedLength r;\r
-    readonly attribute SVGAnimatedLength fx;\r
-    readonly attribute SVGAnimatedLength fy;\r
-  };\r
-\r
-  interface SVGStopElement : \r
-                SVGElement,\r
-                SVGStylable { \r
-\r
-    readonly attribute SVGAnimatedNumber offset;\r
-  };\r
-\r
-  interface SVGPatternElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGFitToViewBox,\r
-                SVGUnitTypes { \r
-\r
-    readonly attribute SVGAnimatedEnumeration   patternUnits;\r
-    readonly attribute SVGAnimatedEnumeration   patternContentUnits;\r
-    readonly attribute SVGAnimatedTransformList patternTransform;\r
-    readonly attribute SVGAnimatedLength        x;\r
-    readonly attribute SVGAnimatedLength        y;\r
-    readonly attribute SVGAnimatedLength        width;\r
-    readonly attribute SVGAnimatedLength        height;\r
-  };\r
-\r
-  interface SVGClipPathElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                SVGUnitTypes { \r
-\r
-    readonly attribute SVGAnimatedEnumeration clipPathUnits;\r
-  };\r
-\r
-  interface SVGMaskElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGUnitTypes { \r
-\r
-    readonly attribute SVGAnimatedEnumeration maskUnits;\r
-    readonly attribute SVGAnimatedEnumeration maskContentUnits;\r
-    readonly attribute SVGAnimatedLength      x;\r
-    readonly attribute SVGAnimatedLength      y;\r
-    readonly attribute SVGAnimatedLength      width;\r
-    readonly attribute SVGAnimatedLength      height;\r
-  };\r
-\r
-  interface SVGFilterElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGUnitTypes { \r
-\r
-    readonly attribute SVGAnimatedEnumeration filterUnits;\r
-    readonly attribute SVGAnimatedEnumeration primitiveUnits;\r
-    readonly attribute SVGAnimatedLength      x;\r
-    readonly attribute SVGAnimatedLength      y;\r
-    readonly attribute SVGAnimatedLength      width;\r
-    readonly attribute SVGAnimatedLength      height;\r
-    readonly attribute SVGAnimatedInteger    filterResX;\r
-    readonly attribute SVGAnimatedInteger    filterResY;\r
-\r
-    void setFilterRes ( in unsigned long filterResX, in unsigned long filterResY );\r
-  };\r
-\r
-  interface SVGFilterPrimitiveStandardAttributes : SVGStylable { \r
-    readonly attribute SVGAnimatedLength x;\r
-    readonly attribute SVGAnimatedLength y;\r
-    readonly attribute SVGAnimatedLength width;\r
-    readonly attribute SVGAnimatedLength height;\r
-    readonly attribute SVGAnimatedString result;\r
-  };\r
-\r
-  interface SVGFEBlendElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    // Blend Mode Types\r
-    const unsigned short SVG_FEBLEND_MODE_UNKNOWN  = 0;\r
-    const unsigned short SVG_FEBLEND_MODE_NORMAL   = 1;\r
-    const unsigned short SVG_FEBLEND_MODE_MULTIPLY = 2;\r
-    const unsigned short SVG_FEBLEND_MODE_SCREEN   = 3;\r
-    const unsigned short SVG_FEBLEND_MODE_DARKEN   = 4;\r
-    const unsigned short SVG_FEBLEND_MODE_LIGHTEN  = 5;\r
-\r
-    readonly attribute SVGAnimatedString      in1;\r
-    readonly attribute SVGAnimatedString      in2;\r
-    readonly attribute SVGAnimatedEnumeration mode;\r
-  };\r
-\r
-  interface SVGFEColorMatrixElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    // Color Matrix Types\r
-    const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0;\r
-    const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX           = 1;\r
-    const unsigned short SVG_FECOLORMATRIX_TYPE_SATURATE         = 2;\r
-    const unsigned short SVG_FECOLORMATRIX_TYPE_HUEROTATE        = 3;\r
-    const unsigned short SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;\r
-\r
-    readonly attribute SVGAnimatedString      in1;\r
-    readonly attribute SVGAnimatedEnumeration type;\r
-    readonly attribute SVGAnimatedNumberList  values;\r
-  };\r
-\r
-  interface SVGFEComponentTransferElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    readonly attribute SVGAnimatedString in1;\r
-  };\r
-\r
-  interface SVGComponentTransferFunctionElement : SVGElement { \r
-    // Component Transfer Types\r
-    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN  = 0;\r
-    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1;\r
-    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_TABLE    = 2;\r
-    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE    = 3;\r
-    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_LINEAR   = 4;\r
-    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_GAMMA    = 5;\r
-\r
-    readonly attribute SVGAnimatedEnumeration type;\r
-    readonly attribute SVGAnimatedNumberList  tableValues;\r
-    readonly attribute SVGAnimatedNumber      slope;\r
-    readonly attribute SVGAnimatedNumber      intercept;\r
-    readonly attribute SVGAnimatedNumber      amplitude;\r
-    readonly attribute SVGAnimatedNumber      exponent;\r
-    readonly attribute SVGAnimatedNumber      offset;\r
-  };\r
-\r
-  interface SVGFEFuncRElement : SVGComponentTransferFunctionElement {};\r
-\r
-  interface SVGFEFuncGElement : SVGComponentTransferFunctionElement {};\r
-\r
-  interface SVGFEFuncBElement : SVGComponentTransferFunctionElement {};\r
-\r
-  interface SVGFEFuncAElement : SVGComponentTransferFunctionElement {};\r
-\r
-  interface SVGFECompositeElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    // Composite Operators\r
-    const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0;\r
-    const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER       = 1;\r
-    const unsigned short SVG_FECOMPOSITE_OPERATOR_IN         = 2;\r
-    const unsigned short SVG_FECOMPOSITE_OPERATOR_OUT        = 3;\r
-    const unsigned short SVG_FECOMPOSITE_OPERATOR_ATOP       = 4;\r
-    const unsigned short SVG_FECOMPOSITE_OPERATOR_XOR        = 5;\r
-    const unsigned short SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;\r
-\r
-    readonly attribute SVGAnimatedString      in1;\r
-    readonly attribute SVGAnimatedString      in2;\r
-    readonly attribute SVGAnimatedEnumeration operator;\r
-    readonly attribute SVGAnimatedNumber      k1;\r
-    readonly attribute SVGAnimatedNumber      k2;\r
-    readonly attribute SVGAnimatedNumber      k3;\r
-    readonly attribute SVGAnimatedNumber      k4;\r
-  };\r
-\r
-  interface SVGFEConvolveMatrixElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    // Edge Mode Values\r
-    const unsigned short SVG_EDGEMODE_UNKNOWN   = 0;\r
-    const unsigned short SVG_EDGEMODE_DUPLICATE = 1;\r
-    const unsigned short SVG_EDGEMODE_WRAP      = 2;\r
-    const unsigned short SVG_EDGEMODE_NONE      = 3;\r
-\r
-    readonly attribute SVGAnimatedInteger     orderX;\r
-    readonly attribute SVGAnimatedInteger     orderY;\r
-    readonly attribute SVGAnimatedNumberList  kernelMatrix;\r
-    readonly attribute SVGAnimatedNumber      divisor;\r
-    readonly attribute SVGAnimatedNumber      bias;\r
-    readonly attribute SVGAnimatedInteger     targetX;\r
-    readonly attribute SVGAnimatedInteger     targetY;\r
-    readonly attribute SVGAnimatedEnumeration edgeMode;\r
-    readonly attribute SVGAnimatedLength      kernelUnitLengthX;\r
-    readonly attribute SVGAnimatedLength      kernelUnitLengthY;\r
-    readonly attribute SVGAnimatedBoolean     preserveAlpha;\r
-  };\r
-\r
-  interface SVGFEDiffuseLightingElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    readonly attribute SVGAnimatedString in1;\r
-    readonly attribute SVGAnimatedNumber surfaceScale;\r
-    readonly attribute SVGAnimatedNumber diffuseConstant;\r
-  };\r
-\r
-  interface SVGFEDistantLightElement : SVGElement { \r
-    readonly attribute SVGAnimatedNumber azimuth;\r
-    readonly attribute SVGAnimatedNumber elevation;\r
-  };\r
-\r
-  interface SVGFEPointLightElement : SVGElement { \r
-    readonly attribute SVGAnimatedNumber x;\r
-    readonly attribute SVGAnimatedNumber y;\r
-    readonly attribute SVGAnimatedNumber z;\r
-  };\r
-\r
-  interface SVGFESpotLightElement : SVGElement { \r
-    readonly attribute SVGAnimatedNumber x;\r
-    readonly attribute SVGAnimatedNumber y;\r
-    readonly attribute SVGAnimatedNumber z;\r
-    readonly attribute SVGAnimatedNumber pointsAtX;\r
-    readonly attribute SVGAnimatedNumber pointsAtY;\r
-    readonly attribute SVGAnimatedNumber pointsAtZ;\r
-    readonly attribute SVGAnimatedNumber specularExponent;\r
-    readonly attribute SVGAnimatedNumber limitingConeAngle;\r
-  };\r
-\r
-  interface SVGFEDisplacementMapElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    // Channel Selectors\r
-    const unsigned short SVG_CHANNEL_UNKNOWN = 0;\r
-    const unsigned short SVG_CHANNEL_R       = 1;\r
-    const unsigned short SVG_CHANNEL_G       = 2;\r
-    const unsigned short SVG_CHANNEL_B       = 3;\r
-    const unsigned short SVG_CHANNEL_A       = 4;\r
-\r
-    readonly attribute SVGAnimatedString      in1;\r
-    readonly attribute SVGAnimatedString      in2;\r
-    readonly attribute SVGAnimatedNumber      scale;\r
-    readonly attribute SVGAnimatedEnumeration xChannelSelector;\r
-    readonly attribute SVGAnimatedEnumeration yChannelSelector;\r
-  };\r
-\r
-  interface SVGFEFloodElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    readonly attribute SVGAnimatedString      in1;\r
-  };\r
-\r
-  interface SVGFEGaussianBlurElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    readonly attribute SVGAnimatedString in1;\r
-    readonly attribute SVGAnimatedNumber stdDeviationX;\r
-    readonly attribute SVGAnimatedNumber stdDeviationY;\r
-\r
-    void setStdDeviation ( in float stdDeviationX, in float stdDeviationY );\r
-  };\r
-\r
-  interface SVGFEImageElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGFilterPrimitiveStandardAttributes {};\r
-\r
-  interface SVGFEMergeElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes {};\r
-\r
-  interface SVGFEMergeNodeElement : SVGElement { \r
-    readonly attribute SVGAnimatedString in1;\r
-  };\r
-\r
-  interface SVGFEMorphologyElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    // Morphology Operators\r
-    const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;\r
-    const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE   = 1;\r
-    const unsigned short SVG_MORPHOLOGY_OPERATOR_DILATE  = 2;\r
-\r
-    readonly attribute SVGAnimatedString      in1;\r
-    readonly attribute SVGAnimatedEnumeration operator;\r
-    readonly attribute SVGAnimatedLength      radiusX;\r
-    readonly attribute SVGAnimatedLength      radiusY;\r
-  };\r
-\r
-  interface SVGFEOffsetElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    readonly attribute SVGAnimatedString in1;\r
-    readonly attribute SVGAnimatedNumber dx;\r
-    readonly attribute SVGAnimatedNumber dy;\r
-  };\r
-\r
-  interface SVGFESpecularLightingElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    readonly attribute SVGAnimatedString in1;\r
-    readonly attribute SVGAnimatedNumber surfaceScale;\r
-    readonly attribute SVGAnimatedNumber specularConstant;\r
-    readonly attribute SVGAnimatedNumber specularExponent;\r
-  };\r
-\r
-  interface SVGFETileElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    readonly attribute SVGAnimatedString in1;\r
-  };\r
-\r
-  interface SVGFETurbulenceElement : \r
-                SVGElement,\r
-                SVGFilterPrimitiveStandardAttributes { \r
-\r
-    // Turbulence Types\r
-    const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN      = 0;\r
-    const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;\r
-    const unsigned short SVG_TURBULENCE_TYPE_TURBULENCE   = 2;\r
-    // Stitch Options\r
-    const unsigned short SVG_STITCHTYPE_UNKNOWN  = 0;\r
-    const unsigned short SVG_STITCHTYPE_STITCH   = 1;\r
-    const unsigned short SVG_STITCHTYPE_NOSTITCH = 2;\r
-\r
-    readonly attribute SVGAnimatedNumber      baseFrequencyX;\r
-    readonly attribute SVGAnimatedNumber      baseFrequencyY;\r
-    readonly attribute SVGAnimatedInteger     numOctaves;\r
-    readonly attribute SVGAnimatedNumber      seed;\r
-    readonly attribute SVGAnimatedEnumeration stitchTiles;\r
-    readonly attribute SVGAnimatedEnumeration type;\r
-  };\r
-\r
-  interface SVGCursorElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGTests,\r
-                SVGExternalResourcesRequired { \r
-\r
-    readonly attribute SVGAnimatedLength x;\r
-    readonly attribute SVGAnimatedLength y;\r
-  };\r
-\r
-  interface SVGAElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget { \r
-\r
-    readonly attribute SVGAnimatedString target;\r
-  };\r
-\r
-  interface SVGViewElement : \r
-                SVGElement,\r
-                SVGExternalResourcesRequired,\r
-                SVGFitToViewBox,\r
-                SVGZoomAndPan { \r
-\r
-    readonly attribute SVGStringList viewTarget;\r
-  };\r
-\r
-  interface SVGScriptElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGExternalResourcesRequired { \r
-\r
-             attribute DOMString type;\r
-                         // raises DOMException on setting\r
-  };\r
-\r
-  interface SVGEvent : events::Event {};\r
-\r
-  interface SVGZoomEvent : events::UIEvent { \r
-    readonly attribute SVGRect zoomRectScreen;\r
-    readonly attribute float previousScale;\r
-    readonly attribute SVGPoint previousTranslate;\r
-    readonly attribute float newScale;\r
-    readonly attribute SVGPoint newTranslate;\r
-  };\r
-\r
-  interface SVGAnimationElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGExternalResourcesRequired,\r
-                smil::ElementTimeControl,\r
-                events::EventTarget { \r
-\r
-    readonly attribute SVGElement targetElement;\r
-\r
-    float getStartTime (  );\r
-    float getCurrentTime (  );\r
-    float getSimpleDuration (  )\r
-                    raises( DOMException );\r
-  };\r
-\r
-  interface SVGAnimateElement : SVGAnimationElement {};\r
-\r
-  interface SVGSetElement : SVGAnimationElement {};\r
-\r
-  interface SVGAnimateMotionElement : SVGAnimationElement {};\r
-\r
-  interface SVGMPathElement : \r
-                SVGElement,\r
-                SVGURIReference,\r
-                SVGExternalResourcesRequired {};\r
-\r
-  interface SVGAnimateColorElement : SVGAnimationElement {};\r
-\r
-  interface SVGAnimateTransformElement : SVGAnimationElement {};\r
-\r
-  interface SVGFontElement : \r
-                SVGElement,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable {};\r
-\r
-  interface SVGGlyphElement : \r
-                SVGElement,\r
-                SVGStylable {};\r
-\r
-  interface SVGMissingGlyphElement : \r
-                SVGElement,\r
-                SVGStylable {};\r
-\r
-  interface SVGHKernElement : SVGElement {};\r
-\r
-  interface SVGVKernElement : SVGElement {};\r
-\r
-  interface SVGFontFaceElement : SVGElement {};\r
-\r
-  interface SVGFontFaceSrcElement : SVGElement {};\r
-\r
-  interface SVGFontFaceUriElement : SVGElement {};\r
-\r
-  interface SVGFontFaceFormatElement : SVGElement {};\r
-\r
-  interface SVGFontFaceNameElement : SVGElement {};\r
-\r
-  interface SVGDefinitionSrcElement : SVGElement {};\r
-\r
-  interface SVGMetadataElement : SVGElement {};\r
-\r
-  interface SVGForeignObjectElement : \r
-                SVGElement,\r
-                SVGTests,\r
-                SVGLangSpace,\r
-                SVGExternalResourcesRequired,\r
-                SVGStylable,\r
-                SVGTransformable,\r
-                events::EventTarget { \r
-\r
-    readonly attribute SVGAnimatedLength x;\r
-    readonly attribute SVGAnimatedLength y;\r
-    readonly attribute SVGAnimatedLength width;\r
-    readonly attribute SVGAnimatedLength height;\r
-  };\r
-\r
-\r
-};\r
-\r
-#endif // _SVG_IDL_
\ No newline at end of file
diff --git a/src/dom/svg/svgimpl.cpp b/src/dom/svg/svgimpl.cpp
deleted file mode 100644 (file)
index 03d42e5..0000000
+++ /dev/null
@@ -1,1870 +0,0 @@
-/**
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference.  Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- *   Bob Jamison
- *
- * Copyright (C) 2005 Bob Jamison
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public
- *  License as published by the Free Software Foundation; either
- *  version 2.1 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this library; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include "svgimpl.h"
-
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace svg
-{
-
-
-/*#########################################################################
-## SVGElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-/*#########################################################################
-## SVGDocumentImpl
-#########################################################################*/
-
-
-
-//####################################################
-//# Overload some createXXX() methods from DocumentImpl,
-//# To create our SVG-DOM types
-//####################################################
-
-/**
- *
- */
-ElementPtr SVGDocumentImpl::createElement(const DOMString& tagName)
-                           throw(DOMException)
-{
-    SVGElementPtr elem = new SVGElementImpl(this, tagName);
-    return elem;
-}
-
-
-/**
- *
- */
-ElementPtr SVGDocumentImpl::createElementNS(const DOMString& namespaceURI,
-                             const DOMString& qualifiedName)
-                             throw(DOMException)
-{
-    SVGElementPtr elem = new SVGElementImpl(this, namespaceURI, qualifiedName);
-    return elem;
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGSVGElementImpl
-#########################################################################*/
-
-
-/**
- *
- */
-unsigned long SVGSVGElementImpl::suspendRedraw(unsigned long max_wait_milliseconds )
-{
-    return 0L;
-}
-
-/**
- *
- */
-void SVGSVGElementImpl::unsuspendRedraw(unsigned long suspend_handle_id )
-                                  throw ( DOMException )
-{
-}
-
-
-/**
- *
- */
-void SVGSVGElementImpl::unsuspendRedrawAll(  )
-{
-}
-
-/**
- *
- */
-void SVGSVGElementImpl::forceRedraw(  )
-{
-}
-
-/**
- *
- */
-void SVGSVGElementImpl::pauseAnimations(  )
-{
-}
-
-/**
- *
- */
-void SVGSVGElementImpl::unpauseAnimations(  )
-{
-}
-
-/**
- *
- */
-bool SVGSVGElementImpl::animationsPaused(  )
-{
-    return false;
-}
-
-
-/**
- *
- */
-NodeList SVGSVGElementImpl::getIntersectionList(const SVGRect &rect,
-                                           const SVGElementPtr referenceElement )
-{
-    NodeList list;
-    return list;
-}
-
-/**
- *
- */
-NodeList SVGSVGElementImpl::getEnclosureList(const SVGRect &rect,
-                                        const SVGElementPtr referenceElement )
-{
-    NodeList list;
-    return list;
-}
-
-/**
- *
- */
-bool SVGSVGElementImpl::checkIntersection(const SVGElementPtr element,
-                                          const SVGRect &rect )
-{
-    return false;
-}
-
-/**
- *
- */
-bool SVGSVGElementImpl::checkEnclosure(const SVGElementPtr element,
-                                       const SVGRect &rect )
-{
-    return false;
-}
-
-/**
- *
- */
-void SVGSVGElementImpl::deselectAll(  )
-{
-}
-
-/**
- *
- */
-ElementPtr SVGSVGElementImpl::getElementById(const DOMString& elementId )
-{
-    return NULL;
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-/*#########################################################################
-## SVGGElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGDefsElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGDescElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGTitleElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-/*#########################################################################
-## SVGSymbolElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGUseElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGImageElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGSwitchElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## GetSVGDocumentImpl
-#########################################################################*/
-
-/**
- *
- */
-SVGDocumentPtr GetSVGDocumentImpl::getSVGDocument(  )
-                    throw ( DOMException )
-{
-    return NULL;
-}
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGStyleElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-/*#########################################################################
-## SVGPathElementImpl
-#########################################################################*/
-
-/**
- *
- */
-SVGAnimatedNumber SVGPathElementImpl::getPathLength()
-{
-    SVGAnimatedNumber ret;
-    return ret;
-}
-
-/**
- *
- */
-double SVGPathElementImpl::getTotalLength(  )
-{
-    return 0.0;
-}
-
-/**
- *
- */
-SVGPoint SVGPathElementImpl::getPointAtLength(double distance )
-{
-    SVGPoint ret;
-    return ret;
-}
-
-/**
- *
- */
-unsigned long SVGPathElementImpl::getPathSegAtLength(double distance )
-{
-    return 0L;
-}
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGRectElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGCircleElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGEllipseElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGLineElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGPolylineElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGPolygonElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextContentElementImpl
-#########################################################################*/
-
-/**
- *
- */
-SVGAnimatedLength SVGTextContentElementImpl::getTextLength()
-{
-    SVGAnimatedLength ret;
-    return ret;
-}
-
-
-/**
- *
- */
-SVGAnimatedEnumeration SVGTextContentElementImpl::getLengthAdjust()
-{
-    SVGAnimatedEnumeration ret;
-    return ret;
-}
-
-
-/**
- *
- */
-long SVGTextContentElementImpl::getNumberOfChars(  )
-{
-    return 0L;
-}
-
-/**
- *
- */
-double SVGTextContentElementImpl::getComputedTextLength(  )
-{
-    return 0.0;
-}
-
-/**
- *
- */
-double SVGTextContentElementImpl::getSubStringLength(unsigned long charnum, unsigned long nchars )
-                                     throw ( DOMException )
-{
-    return 0.0;
-}
-
-/**
- *
- */
-SVGPoint SVGTextContentElementImpl::getStartPositionOfChar(unsigned long charnum )
-                                              throw ( DOMException )
-{
-    SVGPoint ret;
-    return ret;
-}
-
-/**
- *
- */
-SVGPoint SVGTextContentElementImpl::getEndPositionOfChar(unsigned long charnum )
-                                           throw ( DOMException )
-{
-    SVGPoint ret;
-    return ret;
-}
-
-/**
- *
- */
-SVGRect SVGTextContentElementImpl::getExtentOfChar(unsigned long charnum )
-                                      throw ( DOMException )
-{
-    SVGRect ret;
-    return ret;
-}
-
-/**
- *
- */
-double SVGTextContentElementImpl::getRotationOfChar(unsigned long charnum )
-                                     throw ( DOMException )
-{
-    return 0.0;
-}
-
-/**
- *
- */
-long SVGTextContentElementImpl::getCharNumAtPosition(const SVGPoint &point )
-{
-    return 0L;
-}
-
-/**
- *
- */
-void SVGTextContentElementImpl::selectSubString(unsigned long charnum,
-                                                unsigned long nchars )
-                                                throw ( DOMException )
-{
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextPositioningElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTSpanElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGTRefElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextPathElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphDefElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphItemElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGGlyphRefElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMarkerElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGColorProfileElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGGradientElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGLinearGradientElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGRadialGradientElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGStopElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGPatternElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGClipPathElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMaskElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFilterElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEBlendElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEColorMatrixElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEComponentTransferElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGComponentTransferFunctionElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncRElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncGElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncBElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncAElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFECompositeElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEConvolveMatrixElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDiffuseLightingElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-/*#########################################################################
-## SVGFEDistantLightElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEPointLightElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpotLightElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDisplacementMapElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFloodElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEGaussianBlurElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEImageElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEMergeElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEMergeNodeElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEMorphologyElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEOffsetElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpecularLightingElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETileElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETurbulenceElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGCursorElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGViewElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGScriptElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimationElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGSetElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateMotionElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMPathElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateColorElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateTransformElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFontElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGGlyphElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMissingGlyphElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGHKernElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGVKernElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceSrcElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceUriElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceFormatElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceNameElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGDefinitionSrcElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMetadataElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-/*#########################################################################
-## SVGForeignObjectElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-
-
-
-}  //namespace svg
-}  //namespace dom
-}  //namespace w3c
-}  //namespace org
-
-
-/*#########################################################################
-## E N D    O F    F I L E
-#########################################################################*/
-
diff --git a/src/dom/svg/svgimpl.h b/src/dom/svg/svgimpl.h
deleted file mode 100644 (file)
index 5c2e78f..0000000
+++ /dev/null
@@ -1,5112 +0,0 @@
-#ifndef __SVGIMPL_H__
-#define __SVGIMPL_H__
-
-/**
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference.  Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- *   Bob Jamison
- *
- * Copyright (C) 2006 Bob Jamison
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public
- *  License as published by the Free Software Foundation; either
- *  version 2.1 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this library; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include "svg.h"
-#include "dom/domimpl.h"
-#include "dom/smilimpl.h"
-
-#include <math.h>
-
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace svg
-{
-
-
-//local definitions
-typedef dom::DOMString DOMString;
-typedef dom::DOMException DOMException;
-typedef dom::Element Element;
-typedef dom::Document Document;
-typedef dom::NodeList NodeList;
-
-
-
-class SVGSVGElementImpl;
-typedef Ptr<SVGSVGElementImpl> SVGSVGElementImplPtr;
-class SVGElementImpl;
-typedef Ptr<SVGElementImpl> SVGElementImplPtr;
-class SVGDocumentImpl;
-typedef Ptr<SVGDocumentImpl> SVGDocumentImplPtr;
-
-/*#########################################################################
-## SVGDocumentImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGDocumentImpl : virtual public SVGDocument, public DocumentImpl
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual DOMString getTitle()
-        { return title; }
-
-    /**
-     *
-     */
-    virtual DOMString getReferrer()
-        { return referrer; }
-
-    /**
-     *
-     */
-    virtual DOMString getDomain()
-        { return domain; }
-
-    /**
-     *
-     */
-    virtual DOMString getURL()
-        { return url; }
-
-    /**
-     *
-     */
-    virtual SVGSVGElementPtr getRootElement()
-        { return rootElement; }
-
-
-    //####################################################
-    //# Overload some createXXX() methods from DocumentImpl,
-    //# To create our SVG-DOM types (in .cpp)
-    //####################################################
-
-    /**
-     *
-     */
-    virtual ElementPtr createElement(const DOMString& tagName)
-                           throw(DOMException);
-
-
-    /**
-     *
-     */
-    virtual ElementPtr createElementNS(const DOMString& namespaceURI,
-                                       const DOMString& qualifiedName)
-                                       throw(DOMException);
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    SVGDocumentImpl(const DOMImplementation *domImpl,
-                    const DOMString         &namespaceURI,
-                    const DOMString         &qualifiedName,
-                    const DocumentTypePtr   doctype)
-                    : DocumentImpl(domImpl, namespaceURI,
-                          qualifiedName, doctype)
-        {
-        init();
-        }
-
-
-    /**
-     *
-     */
-    virtual ~SVGDocumentImpl()
-        {
-        }
-
-protected:
-
-friend class SvgParser;
-
-    void init()
-        {
-        title       = "";
-        referrer    = "";
-        domain      = "";
-        rootElement = NULL;
-        }
-
-    DOMString title;
-    DOMString referrer;
-    DOMString domain;
-    DOMString url;
-    SVGSVGElementPtr rootElement;
-};
-
-
-
-/*#########################################################################
-## SVGElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGElementImpl : virtual public SVGElement,
-                       public ElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual DOMString getId()
-        { return id; }
-
-    /**
-     *
-     */
-    virtual void setId(const DOMString &val)
-                       throw (DOMException)
-        { id = val; }
-
-    /**
-     *
-     */
-    virtual DOMString getXmlBase()
-        { return xmlBase; }
-
-    /**
-     *
-     */
-    virtual void setXmlBase(const DOMString &val)
-                            throw (DOMException)
-        { xmlBase = val; }
-
-    /**
-     *
-     */
-    virtual SVGSVGElementPtr getOwnerSVGElement()
-        { return ownerSvgElement; }
-
-    /**
-     *
-     */
-    virtual SVGElementPtr getViewportElement()
-        { return viewportElement; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    SVGElementImpl()
-        {}
-
-    /**
-     *
-     */
-    SVGElementImpl(SVGDocumentImplPtr owner, const DOMString &tagName)
-                    : ElementImpl(owner, tagName)
-        { init(); }
-
-    /**
-     *
-     */
-    SVGElementImpl(SVGDocumentImplPtr owner,
-                   const DOMString &namespaceURI,
-                   const DOMString &tagName)
-                   : ElementImpl(owner, namespaceURI, tagName)
-        { init(); }
-
-
-    /**
-     *
-     */
-    virtual ~SVGElementImpl()
-        {}
-
-protected:
-
-    void init()
-        {
-        id              = "";
-        xmlBase         = "";
-        ownerSvgElement = NULL;
-        viewportElement = NULL;
-        }
-
-    DOMString        id;
-    DOMString        xmlBase;
-    SVGSVGElementPtr ownerSvgElement;
-    SVGElementPtr    viewportElement;
-
-};
-
-
-
-/*#########################################################################
-## SVGSVGElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGSVGElementImpl : virtual public SVGSVGElement,
-                          public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth()
-        { return width; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight()
-        { return height; }
-
-    /**
-     *
-     */
-    virtual DOMString getContentScriptType()
-        { return contentScriptType; }
-
-    /**
-     *
-     */
-    virtual void setContentScriptType(const DOMString &val)
-                                     throw (DOMException)
-        { contentScriptType = val; }
-
-
-    /**
-     *
-     */
-    virtual DOMString getContentStyleType()
-        { return contentStyleType; }
-
-    /**
-     *
-     */
-    virtual void setContentStyleType(const DOMString &val)
-                                     throw (DOMException)
-        { contentStyleType = val; }
-
-    /**
-     *
-     */
-    virtual SVGRect getViewport()
-        { return viewport; }
-
-    /**
-     *
-     */
-    virtual double getPixelUnitToMillimeterX()
-        { return pixelUnitToMillimeterX; }
-
-    /**
-     *
-     */
-    virtual double getPixelUnitToMillimeterY()
-        { return pixelUnitToMillimeterY; }
-
-    /**
-     *
-     */
-    virtual double getScreenPixelToMillimeterX()
-        { return screenPixelToMillimeterX; }
-
-    /**
-     *
-     */
-    virtual double getScreenPixelToMillimeterY()
-        { return screenPixelToMillimeterY; }
-
-
-    /**
-     *
-     */
-    virtual bool getUseCurrentView()
-        { return useCurrentView; }
-
-    /**
-     *
-     */
-    virtual void setUseCurrentView(bool val) throw (DOMException)
-        { useCurrentView = val; }
-
-    /**
-     *
-     */
-    virtual SVGViewSpec getCurrentView()
-        { return currentView; }
-
-
-    /**
-     *
-     */
-    virtual double getCurrentScale()
-        { return currentScale; }
-
-    /**
-     *
-     */
-    virtual void setCurrentScale(double val) throw (DOMException)
-        { currentScale = val; }
-
-
-    /**
-     *
-     */
-    virtual SVGPoint getCurrentTranslate()
-        { return currentTranslate; }
-
-
-    /**
-     *
-     */
-    virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds );
-
-    /**
-     *
-     */
-    virtual void unsuspendRedraw (unsigned long suspend_handle_id )
-                                  throw( DOMException );
-
-    /**
-     *
-     */
-    virtual void unsuspendRedrawAll (  );
-
-    /**
-     *
-     */
-    virtual void forceRedraw (  );
-
-    /**
-     *
-     */
-    virtual void pauseAnimations (  );
-
-    /**
-     *
-     */
-    virtual void unpauseAnimations (  );
-
-    /**
-     *
-     */
-    virtual bool animationsPaused (  );
-
-    /**
-     *
-     */
-    virtual double getCurrentTime (  )
-        { return currentTime; }
-
-    /**
-     *
-     */
-    virtual void setCurrentTime (double seconds )
-        { currentTime = seconds; }
-
-    /**
-     *
-     */
-    virtual NodeList getIntersectionList (const SVGRect &rect,
-                                          const SVGElementPtr referenceElement );
-
-    /**
-     *
-     */
-    virtual NodeList getEnclosureList (const SVGRect &rect,
-                                       const SVGElementPtr referenceElement );
-
-    /**
-     *
-     */
-    virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect );
-
-    /**
-     *
-     */
-    virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect );
-
-    /**
-     *
-     */
-    virtual void deselectAll (  );
-
-    /**
-     *
-     */
-    virtual SVGNumber createSVGNumber (  )
-        {
-        SVGNumber ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual SVGLength createSVGLength (  )
-        {
-        SVGLength ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual SVGAngle createSVGAngle (  )
-        {
-        SVGAngle ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPoint createSVGPoint (  )
-        {
-        SVGPoint ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual SVGMatrix createSVGMatrix (  )
-        {
-        SVGMatrix ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual SVGRect createSVGRect (  )
-        {
-        SVGRect ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual SVGTransform createSVGTransform (  )
-        {
-        SVGTransform ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix )
-        {
-        SVGTransform ret;
-        ret.setMatrix(matrix);
-        return ret;
-        }
-
-
-    /**
-     *
-     */
-    virtual ElementPtr getElementById (const DOMString& elementId );
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGSVGElementImpl() : SVGElementImpl()
-        {}
-
-
-
-    /**
-     *
-     */
-    virtual ~SVGSVGElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength x;
-    SVGAnimatedLength y;
-    SVGAnimatedLength width;
-    SVGAnimatedLength height;
-    DOMString         contentScriptType;
-    DOMString         contentStyleType;
-    SVGRect           viewport;
-    double            pixelUnitToMillimeterX;
-    double            pixelUnitToMillimeterY;
-    double            screenPixelToMillimeterX;
-    double            screenPixelToMillimeterY;
-    bool              useCurrentView;
-    SVGViewSpec       currentView;
-    double            currentScale;
-    SVGPoint          currentTranslate;
-
-    double currentTime;
-
-};
-
-
-
-/*#########################################################################
-## SVGGElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGGElementImpl : virtual public SVGGElement, public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGGElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGGElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-/*#########################################################################
-## SVGDefsElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGDefsElementImpl : virtual public SVGDefsElement,
-                           public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGDefsElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGDefsElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGDescElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGDescElementImpl :  virtual public SVGDescElement,
-                            public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGDescElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGDescElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGTitleElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGTitleElementImpl : virtual public SVGTitleElement,
-                            public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGTitleElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGTitleElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGSymbolElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGSymbolElementImpl : virtual public SVGSymbolElement,
-                             public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGSymbolElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGSymbolElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGUseElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGUseElementImpl : public SVGElementImpl
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth()
-        { return width; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight()
-        { return height; }
-
-    /**
-     *
-     */
-    virtual SVGElementInstance getInstanceRoot()
-        { return instanceRoot; }
-
-    /**
-     *
-     */
-    virtual SVGElementInstance getAnimatedInstanceRoot()
-        { return animatedInstanceRoot; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGUseElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGUseElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength x;
-    SVGAnimatedLength y;
-    SVGAnimatedLength width;
-    SVGAnimatedLength height;
-    SVGElementInstance instanceRoot;
-    SVGElementInstance animatedInstanceRoot;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGImageElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGImageElementImpl : virtual public SVGImageElement,
-                            public SVGElementImpl
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth()
-        { return width; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight()
-        { return height; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()
-        { return preserveAspectRatio; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGImageElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGImageElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength x;
-    SVGAnimatedLength y;
-    SVGAnimatedLength width;
-    SVGAnimatedLength height;
-    SVGAnimatedPreserveAspectRatio preserveAspectRatio;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGSwitchElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGSwitchElementImpl : virtual public SVGSwitchElement,
-                             public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGSwitchElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGSwitchElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## GetSVGDocumentImpl
-#########################################################################*/
-
-/**
- *
- */
-class GetSVGDocumentImpl : public virtual GetSVGDocument
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGDocumentPtr getSVGDocument (  )
-                    throw( DOMException );
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    GetSVGDocumentImpl() {}
-
-    /**
-     *
-     */
-    virtual ~GetSVGDocumentImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGStyleElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGStyleElementImpl : virtual public SVGStyleElement,
-                            public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual DOMString getXmlspace()
-        { return xmlSpace; }
-
-    /**
-     *
-     */
-    virtual void setXmlspace(const DOMString &val)
-                             throw (DOMException)
-        { xmlSpace = val; }
-
-    /**
-     *
-     */
-    virtual DOMString getType()
-        { return type; }
-
-    /**
-     *
-     */
-    virtual void setType(const DOMString &val)
-                         throw (DOMException)
-        { type = val; }
-
-    /**
-     *
-     */
-    virtual DOMString getMedia()
-        { return media; }
-
-    /**
-     *
-     */
-    virtual void setMedia(const DOMString &val)
-                          throw (DOMException)
-        { media = val; }
-
-    /**
-     *
-     */
-    virtual DOMString getTitle()
-        { return title; }
-
-    /**
-     *
-     */
-    virtual void setTitle(const DOMString &val)
-                          throw (DOMException)
-        { title = val; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGStyleElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGStyleElementImpl() {}
-
-protected:
-
-    DOMString xmlSpace;
-    DOMString type;
-    DOMString media;
-    DOMString title;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathElementImpl : virtual public SVGPathElement,
-                           public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getPathLength();
-
-    /**
-     *
-     */
-    virtual double getTotalLength (  );
-
-    /**
-     *
-     */
-    virtual SVGPoint getPointAtLength (double distance );
-
-    /**
-     *
-     */
-    virtual unsigned long getPathSegAtLength (double distance );
-
-    /**
-     *
-     */
-    virtual SVGPathSegClosePath
-              createSVGPathSegClosePath (  )
-         {
-         SVGPathSegClosePath ret;
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegMovetoAbs
-              createSVGPathSegMovetoAbs (double x, double y )
-         {
-         SVGPathSegMovetoAbs ret(x, y);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegMovetoRel
-              createSVGPathSegMovetoRel (double x, double y )
-         {
-         SVGPathSegMovetoRel ret(x, y);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoAbs
-              createSVGPathSegLinetoAbs (double x, double y )
-         {
-         SVGPathSegLinetoAbs ret(x, y);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoRel
-              createSVGPathSegLinetoRel (double x, double y )
-         {
-         SVGPathSegLinetoRel ret(x, y);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoCubicAbs
-              createSVGPathSegCurvetoCubicAbs (double x, double y,
-                        double x1, double y1, double x2, double y2 )
-         {
-         SVGPathSegCurvetoCubicAbs ret(x, y, x1, y1, x2, y2);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoCubicRel
-              createSVGPathSegCurvetoCubicRel (double x, double y,
-                        double x1, double y1, double x2, double y2 )
-         {
-         SVGPathSegCurvetoCubicRel ret(x, y, x1, y1, x2, y2);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoQuadraticAbs
-              createSVGPathSegCurvetoQuadraticAbs (double x, double y,
-                         double x1, double y1 )
-         {
-         SVGPathSegCurvetoQuadraticAbs ret(x, y, x1, y1);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoQuadraticRel
-              createSVGPathSegCurvetoQuadraticRel (double x, double y,
-                         double x1, double y1 )
-         {
-         SVGPathSegCurvetoQuadraticRel ret(x, y, x1, y1);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegArcAbs
-              createSVGPathSegArcAbs (double x, double y,
-                         double r1, double r2, double angle,
-                         bool largeArcFlag, bool sweepFlag )
-         {
-         SVGPathSegArcAbs ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegArcRel
-              createSVGPathSegArcRel (double x, double y, double r1,
-                         double r2, double angle, bool largeArcFlag,
-                         bool sweepFlag )
-         {
-         SVGPathSegArcRel ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoHorizontalAbs
-              createSVGPathSegLinetoHorizontalAbs (double x )
-         {
-         SVGPathSegLinetoHorizontalAbs ret(x);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoHorizontalRel
-              createSVGPathSegLinetoHorizontalRel (double x )
-         {
-         SVGPathSegLinetoHorizontalRel ret(x);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoVerticalAbs
-              createSVGPathSegLinetoVerticalAbs (double y )
-         {
-         SVGPathSegLinetoVerticalAbs ret(y);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegLinetoVerticalRel
-              createSVGPathSegLinetoVerticalRel (double y )
-         {
-         SVGPathSegLinetoVerticalRel ret(y);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoCubicSmoothAbs
-              createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
-                                             double x2, double y2 )
-         {
-         SVGPathSegCurvetoCubicSmoothAbs ret(x, y, x2, y2);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoCubicSmoothRel
-              createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
-                                                     double x2, double y2 )
-         {
-         SVGPathSegCurvetoCubicSmoothRel ret(x, y, x2, y2);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoQuadraticSmoothAbs
-              createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y )
-         {
-         SVGPathSegCurvetoQuadraticSmoothAbs ret(x, y);
-         return ret;
-         }
-
-    /**
-     *
-     */
-    virtual SVGPathSegCurvetoQuadraticSmoothRel
-              createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y )
-         {
-         SVGPathSegCurvetoQuadraticSmoothRel ret(x, y);
-         return ret;
-         }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathElementImpl() {}
-
-
-    /**
-     *
-     */
-    virtual ~SVGPathElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGRectElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGRectElementImpl : virtual public SVGRectElement,
-                           public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth()
-        { return width; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight()
-        { return height; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRx()
-        { return rx; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRy()
-        { return ry; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGRectElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGRectElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength x;
-    SVGAnimatedLength y;
-    SVGAnimatedLength width;
-    SVGAnimatedLength height;
-    SVGAnimatedLength rx;
-    SVGAnimatedLength ry;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGCircleElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGCircleElementImpl : virtual public SVGCircleElement,
-                             public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCx()
-        { return cx; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCy()
-        { return cy; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getR()
-        { return r; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGCircleElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGCircleElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength cx;
-    SVGAnimatedLength cy;
-    SVGAnimatedLength r;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGEllipseElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGEllipseElementImpl : virtual public SVGEllipseElement,
-                              public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCx()
-        { return cx; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCy()
-        { return cy; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRx()
-        { return rx; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRy()
-        { return ry; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGEllipseElementImpl() {}
-
-    /**
-     *
-     */
-    virtual ~SVGEllipseElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength cx;
-    SVGAnimatedLength cy;
-    SVGAnimatedLength rx;
-    SVGAnimatedLength ry;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLineElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGLineElementImpl : virtual public SVGLineElement,
-                           public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX1()
-        { return x1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY1()
-        { return y1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX2()
-        { return x2; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY2()
-        { return y2; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGLineElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength x1;
-    SVGAnimatedLength x2;
-    SVGAnimatedLength y1;
-    SVGAnimatedLength y2;
-};
-
-
-
-
-/*#########################################################################
-## SVGPolylineElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGPolylineElementImpl : virtual public SVGPolylineElement,
-                               public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGPolylineElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGPolygonElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGPolygonElementImpl : virtual public SVGPolygonElement,
-                              public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGPolygonElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGTextContentElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextContentElementImpl : virtual public SVGTextContentElement,
-                                  public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getTextLength();
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getLengthAdjust();
-
-
-    /**
-     *
-     */
-    virtual long getNumberOfChars(  );
-
-    /**
-     *
-     */
-    virtual double getComputedTextLength(  );
-
-    /**
-     *
-     */
-    virtual double getSubStringLength(unsigned long charnum,
-                                         unsigned long nchars )
-                                      throw( DOMException );
-
-    /**
-     *
-     */
-    virtual SVGPoint getStartPositionOfChar(unsigned long charnum )
-                                            throw( DOMException );
-
-    /**
-     *
-     */
-    virtual SVGPoint getEndPositionOfChar(unsigned long charnum )
-                                          throw( DOMException );
-
-    /**
-     *
-     */
-    virtual SVGRect getExtentOfChar(unsigned long charnum )
-                                    throw( DOMException );
-
-    /**
-     *
-     */
-    virtual double getRotationOfChar(unsigned long charnum )
-                                     throw( DOMException );
-
-    /**
-     *
-     */
-    virtual long getCharNumAtPosition(const SVGPoint &point );
-
-    /**
-     *
-     */
-    virtual void selectSubString(unsigned long charnum, unsigned long nchars )
-                                 throw( DOMException );
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTextContentElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextPositioningElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextPositioningElementImpl : virtual public SVGTextPositioningElement,
-                                      public SVGTextContentElementImpl
-{
-public:
-
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getDx()
-        { return dx; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getDy()
-        { return dy; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumberList getRotate()
-        { return rotate; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTextPositioningElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength x;
-    SVGAnimatedLength y;
-    SVGAnimatedLength dx;
-    SVGAnimatedLength dy;
-    SVGAnimatedNumberList rotate;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextElementImpl : virtual public SVGTextElement,
-                           public SVGTextPositioningElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTextElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGTSpanElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTSpanElementImpl : virtual public SVGTSpanElement,
-                            public SVGTextPositioningElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTSpanElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGTRefElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTRefElementImpl : virtual public SVGTRefElement,
-                           public SVGTextPositioningElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTRefElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGTextPathElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextPathElementImpl : virtual public SVGTextPathElement,
-                               public SVGTextContentElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getStartOffset()
-        { return startOffset; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getMethod()
-        { return method; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getSpacing()
-        { return spacing; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGTextPathElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength startOffset;
-    SVGAnimatedEnumeration method;
-    SVGAnimatedEnumeration spacing;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAltGlyphElementImpl : virtual public SVGAltGlyphElement,
-                               public SVGTextPositioningElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual DOMString getGlyphRef()
-        { return glyphRef; }
-
-    /**
-     *
-     */
-    virtual void setGlyphRef(const DOMString &val)
-                             throw (DOMException)
-        { glyphRef = val; }
-
-    /**
-     *
-     */
-    virtual DOMString getFormat()
-        { return format; }
-
-    /**
-     *
-     */
-    virtual void setFormat(const DOMString &val)
-                           throw (DOMException)
-        { format = val; }
-
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAltGlyphElementImpl() {}
-
-protected:
-
-    DOMString glyphRef;
-    DOMString format;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphDefElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAltGlyphDefElementImpl : virtual public SVGAltGlyphDefElement,
-                                  public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAltGlyphDefElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphItemElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAltGlyphItemElementImpl : virtual public SVGAltGlyphItemElement,
-                                   public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAltGlyphItemElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGGlyphRefElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGGlyphRefElementImpl : virtual public SVGGlyphRefElement,
-                               public SVGElementImpl
-{
-public:
-    /**
-     *
-     */
-    virtual DOMString getGlyphRef()
-        { return glyphRef; }
-
-    /**
-     *
-     */
-    virtual void setGlyphRef(const DOMString &val) throw (DOMException)
-        { glyphRef = val; }
-
-    /**
-     *
-     */
-    virtual DOMString getFormat()
-        { return format; }
-
-    /**
-     *
-     */
-    virtual void setFormat(const DOMString &val) throw (DOMException)
-        { format = val; }
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    /**
-     *
-     */
-    virtual double getDx()
-        { return dx; }
-
-    /**
-     *
-     */
-    virtual void setDx(double val) throw (DOMException)
-        { dx = val; }
-
-    /**
-     *
-     */
-    virtual double getDy()
-        { return dy; }
-
-    /**
-     *
-     */
-    virtual void setDy(double val) throw (DOMException)
-        { dy = val; }
-
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGGlyphRefElementImpl() {}
-
-protected:
-
-    DOMString glyphRef;
-    DOMString format;
-    double x, y, dx, dy;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGMarkerElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGMarkerElementImpl : virtual public SVGMarkerElement,
-                             public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRefX()
-        { return refX; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRefY()
-        { return refY; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getMarkerUnits()
-        { return markerUnits; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getMarkerWidth()
-        { return markerWidth; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getMarkerHeight()
-        { return markerHeight; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getOrientType()
-        { return orientType; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedAngle getOrientAngle()
-        { return orientAngle; }
-
-
-    /**
-     *
-     */
-    virtual void setOrientToAuto (  )
-        { orientAuto = true; }
-
-    /**
-     *
-     */
-    virtual void setOrientToAngle (const SVGAngle &angle)
-        {
-        orientAuto = false;
-        orientAngle = SVGAnimatedAngle(angle);
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGMarkerElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength      refX;
-    SVGAnimatedLength      refY;
-    SVGAnimatedEnumeration markerUnits;
-    SVGAnimatedLength      markerWidth;
-    SVGAnimatedLength      markerHeight;
-    SVGAnimatedEnumeration orientType;
-    SVGAnimatedAngle       orientAngle;
-    bool                   orientAuto;
-
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGColorProfileElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGColorProfileElementImpl : virtual public SVGColorProfileElement,
-                                   public SVGElementImpl
-{
-public:
-    /**
-     *
-     */
-    virtual DOMString getLocal()
-        { return local; }
-
-    /**
-     *
-     */
-    virtual void setLocal(const DOMString &val) throw (DOMException)
-        { local = val; }
-
-    /**
-     *
-     */
-    virtual DOMString getName()
-        { return name; }
-
-    /**
-     *
-     */
-    virtual void setName(const DOMString &val) throw (DOMException)
-       { name = val; }
-
-    /**
-     *
-     */
-    virtual unsigned short getRenderingIntent()
-        { return renderingIntent; }
-
-    /**
-     *
-     */
-    virtual void setRenderingIntent(unsigned short val) throw (DOMException)
-       { renderingIntent = val; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGColorProfileElementImpl() {}
-
-protected:
-
-    DOMString local;
-    DOMString name;
-    unsigned short renderingIntent;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGGradientElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGGradientElementImpl : virtual public SVGGradientElement,
-                               public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getGradientUnits()
-        { return gradientUnits; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedTransformList getGradientTransform()
-        { return gradientTransform; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getSpreadMethod()
-        { return spreadMethod; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGGradientElementImpl() {}
-
-protected:
-
-
-    SVGAnimatedEnumeration   gradientUnits;
-    SVGAnimatedTransformList gradientTransform;
-    SVGAnimatedEnumeration   spreadMethod;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGLinearGradientElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGLinearGradientElementImpl : virtual public SVGLinearGradientElement,
-                                     public SVGGradientElementImpl
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX1()
-        { return x1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY1()
-        { return y1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX2()
-        { return x2; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY2()
-        { return y2; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGLinearGradientElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength x1, x2, y1, y2;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGRadialGradientElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGRadialGradientElementImpl : virtual public SVGRadialGradientElement,
-                                     public SVGGradientElementImpl
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCx()
-        { return cx; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getCy()
-        { return cy; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getR()
-        { return r; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getFx()
-        { return fx; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getFy()
-        { return fy; }
-
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGRadialGradientElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength cx, cy, r, fx, fy;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGStopElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGStopElementImpl : virtual public SVGStopElement,
-                           public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getOffset()
-        { return offset; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGStopElementImpl() {}
-
-protected:
-
-    SVGAnimatedNumber offset;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGPatternElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGPatternElementImpl : virtual public SVGPatternElement,
-                              public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getPatternUnits()
-        { return patternUnits; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getPatternContentUnits()
-        { return patternContentUnits; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedTransformList getPatternTransform()
-        { return patternTransform; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth()
-        { return width; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight()
-        { return height; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGPatternElementImpl() {}
-
-protected:
-
-
-    SVGAnimatedEnumeration   patternUnits;
-    SVGAnimatedEnumeration   patternContentUnits;
-    SVGAnimatedTransformList patternTransform;
-    SVGAnimatedLength        x;
-    SVGAnimatedLength        y;
-    SVGAnimatedLength        width;
-    SVGAnimatedLength        height;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGClipPathElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGClipPathElementImpl : virtual public SVGClipPathElement,
-                               public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getClipPathUnits()
-        { return clipPathUnits; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGClipPathElementImpl() {}
-
-protected:
-
-    SVGAnimatedEnumeration clipPathUnits;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMaskElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGMaskElementImpl : virtual public SVGMaskElement,
-                           public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getMaskUnits()
-        { return maskUnits; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getMaskContentUnits()
-        { return maskContentUnits; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth()
-        { return width; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight()
-        { return height; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGMaskElementImpl() {}
-
-protected:
-
-
-    SVGAnimatedEnumeration maskUnits;
-    SVGAnimatedEnumeration maskContentUnits;
-    SVGAnimatedLength      x;
-    SVGAnimatedLength      y;
-    SVGAnimatedLength      width;
-    SVGAnimatedLength      height;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFilterElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFilterElementImpl : virtual public SVGFilterElement,
-                             public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getFilterUnits()
-        { return filterUnits; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getPrimitiveUnits()
-        { return filterUnits; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth()
-        { return width; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight()
-        { return height; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getFilterResX()
-        { return filterResX; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getFilterResY()
-        { return filterResY; }
-
-    /**
-     *
-     */
-    virtual void setFilterRes (unsigned long filterResXArg,
-                               unsigned long filterResYArg )
-        {
-        filterResX = filterResXArg;
-        filterResY = filterResYArg;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFilterElementImpl() {}
-
-protected:
-
-    SVGAnimatedEnumeration filterUnits;
-    SVGAnimatedEnumeration primitiveUnits;
-    SVGAnimatedLength      x;
-    SVGAnimatedLength      y;
-    SVGAnimatedLength      width;
-    SVGAnimatedLength      height;
-    SVGAnimatedInteger     filterResX;
-    SVGAnimatedInteger     filterResY;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEBlendElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEBlendElementImpl : virtual public SVGFEBlendElement,
-                              public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn2()
-        { return in2; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getMode()
-        { return mode; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEBlendElementImpl() {}
-
-protected:
-
-    SVGAnimatedString in1, in2;
-    SVGAnimatedEnumeration mode;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEColorMatrixElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEColorMatrixElementImpl : virtual public SVGFEColorMatrixElement,
-                                    public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getType()
-        { return type; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumberList getValues()
-        { return values; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEColorMatrixElementImpl() {}
-
-protected:
-
-    SVGAnimatedString in1;
-    SVGAnimatedEnumeration type;
-    SVGAnimatedNumberList values;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEComponentTransferElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEComponentTransferElementImpl :
-                        virtual public SVGFEComponentTransferElement,
-                        public SVGElementImpl
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEComponentTransferElementImpl() {}
-
-protected:
-
-    SVGAnimatedString in1;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGComponentTransferFunctionElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGComponentTransferFunctionElementImpl :
-                            virtual public SVGComponentTransferFunctionElement,
-                            public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getType()
-        { return type; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumberList getTableValues()
-        { return tableValues; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSlope()
-        { return slope; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getIntercept()
-        { return intercept; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getAmplitude()
-        { return amplitude; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getExponent()
-        { return exponent; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getOffset()
-        { return offset; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGComponentTransferFunctionElementImpl() {}
-
-protected:
-
-    SVGAnimatedEnumeration type;
-    SVGAnimatedNumberList  tableValues;
-    SVGAnimatedNumber      slope;
-    SVGAnimatedNumber      intercept;
-    SVGAnimatedNumber      amplitude;
-    SVGAnimatedNumber      exponent;
-    SVGAnimatedNumber      offset;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncRElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncRElementImpl :
-                       virtual public SVGFEFuncRElement,
-                       public SVGComponentTransferFunctionElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEFuncRElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncGElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncGElementImpl : virtual public SVGFEFuncGElement,
-                              public SVGComponentTransferFunctionElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEFuncGElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncBElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncBElementImpl : virtual public SVGFEFuncBElement,
-                              public SVGComponentTransferFunctionElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEFuncBElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncAElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncAElementImpl : virtual public SVGFEFuncAElement,
-                              public SVGComponentTransferFunctionElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEFuncAElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFECompositeElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFECompositeElementImpl : virtual public SVGFECompositeElement,
-                                  public SVGElementImpl
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn2()
-        { return in2; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getOperator()
-        { return ae_operator; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getK1()
-        { return k1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getK2()
-        { return k2; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getK3()
-        { return k3; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getK4()
-        { return k4; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFECompositeElementImpl() {}
-
-protected:
-
-
-    SVGAnimatedString      in1;
-    SVGAnimatedString      in2;
-    SVGAnimatedEnumeration ae_operator;
-    SVGAnimatedNumber      k1;
-    SVGAnimatedNumber      k2;
-    SVGAnimatedNumber      k3;
-    SVGAnimatedNumber      k4;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEConvolveMatrixElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEConvolveMatrixElementImpl : virtual public SVGFEConvolveMatrixElement,
-                                       public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getOrderX()
-        { return orderX; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getOrderY()
-        { return orderY; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumberList getKernelMatrix()
-        { return kernelMatrix; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getDivisor()
-        { return divisor; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getBias()
-        { return bias; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getTargetX()
-        { return targetX; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getTargetY()
-        { return targetY; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getEdgeMode()
-        { return edgeMode; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getKernelUnitLengthX()
-        { return kernelUnitLengthX; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getKernelUnitLengthY()
-        { return kernelUnitLengthY; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedBoolean getPreserveAlpha()
-        { return preserveAlpha; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEConvolveMatrixElementImpl() {}
-
-protected:
-
-    SVGAnimatedInteger     orderX;
-    SVGAnimatedInteger     orderY;
-    SVGAnimatedNumberList  kernelMatrix;
-    SVGAnimatedNumber      divisor;
-    SVGAnimatedNumber      bias;
-    SVGAnimatedInteger     targetX;
-    SVGAnimatedInteger     targetY;
-    SVGAnimatedEnumeration edgeMode;
-    SVGAnimatedLength      kernelUnitLengthX;
-    SVGAnimatedLength      kernelUnitLengthY;
-    SVGAnimatedBoolean     preserveAlpha;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDiffuseLightingElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEDiffuseLightingElementImpl : virtual public SVGFEDiffuseLightingElement,
-                                        public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSurfaceScale()
-        { return surfaceScale; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getDiffuseConstant()
-        { return diffuseConstant; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEDiffuseLightingElementImpl() {}
-
-protected:
-
-    SVGAnimatedString in1;
-    SVGAnimatedNumber surfaceScale;
-    SVGAnimatedNumber diffuseConstant;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDistantLightElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEDistantLightElementImpl : virtual public SVGFEDistantLightElement,
-                                     public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getAzimuth()
-        { return azimuth; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getElevation()
-        { return elevation; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEDistantLightElementImpl() {}
-
-protected:
-
-    SVGAnimatedNumber azimuth;
-    SVGAnimatedNumber elevation;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEPointLightElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEPointLightElementImpl : public virtual SVGFEPointLightElement,
-                                   public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getX()
-        { return x; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getZ()
-        { return z; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEPointLightElementImpl() {}
-
-protected:
-
-    SVGAnimatedNumber x, y, z;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpotLightElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFESpotLightElementImpl : virtual public SVGFESpotLightElement,
-                                  public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getX()
-        { return x; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getZ()
-        { return z; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getPointsAtX()
-        { return pointsAtX; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getPointsAtY()
-        { return pointsAtY; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getPointsAtZ()
-        { return pointsAtZ; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSpecularExponent()
-        { return specularExponent; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getLimitingConeAngle()
-        { return limitingConeAngle; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFESpotLightElementImpl() {}
-
-protected:
-
-    SVGAnimatedNumber x, y, z;
-    SVGAnimatedNumber pointsAtX, pointsAtY, pointsAtZ;
-    SVGAnimatedNumber specularExponent;
-    SVGAnimatedNumber limitingConeAngle;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDisplacementMapElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEDisplacementMapElementImpl : virtual public SVGFEDisplacementMapElement,
-                                        public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn2()
-        { return in2; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getScale()
-        { return scale; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getXChannelSelector()
-        { return xChannelSelector; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getYChannelSelector()
-        { return yChannelSelector; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEDisplacementMapElementImpl() {}
-
-protected:
-
-    SVGAnimatedString      in1;
-    SVGAnimatedString      in2;
-    SVGAnimatedNumber      scale;
-    SVGAnimatedEnumeration xChannelSelector;
-    SVGAnimatedEnumeration yChannelSelector;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFloodElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFloodElementImpl : virtual public SVGFEFloodElement,
-                              public SVGElementImpl
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEFloodElementImpl() {}
-
-protected:
-
-    SVGAnimatedString in1;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEGaussianBlurElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEGaussianBlurElementImpl : virtual public SVGFEGaussianBlurElement,
-                                     public SVGElementImpl
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getStdDeviationX()
-        { return stdDeviationX; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getStdDeviationY()
-        { return stdDeviationY; }
-
-
-    /**
-     *
-     */
-    virtual void setStdDeviation (double stdDeviationXArg, double stdDeviationYArg )
-        {
-        stdDeviationX = stdDeviationXArg;
-        stdDeviationY = stdDeviationYArg;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEGaussianBlurElementImpl() {}
-
-protected:
-
-    SVGAnimatedString in1;
-    SVGAnimatedNumber stdDeviationX, stdDeviationY;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEImageElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEImageElementImpl : virtual public SVGFEImageElement,
-                              public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEImageElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEMergeElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMergeElementImpl : virtual public SVGFEMergeElement,
-                              public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEMergeElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEMergeNodeElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMergeNodeElementImpl : virtual public SVGFEMergeNodeElement,
-                                  public SVGElementImpl
-{
-public:
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEMergeNodeElementImpl() {}
-
-protected:
-
-    SVGAnimatedString in1;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEMorphologyElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMorphologyElementImpl : virtual public SVGFEMorphologyElement,
-                                   public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getOperator()
-        { return me_operator; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRadiusX()
-        { return radiusX; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getRadiusY()
-        { return radiusY; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEMorphologyElementImpl() {}
-
-protected:
-
-    SVGAnimatedString      in1;
-    SVGAnimatedEnumeration me_operator;
-    SVGAnimatedLength      radiusX;
-    SVGAnimatedLength      radiusY;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEOffsetElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEOffsetElementImpl : virtual public SVGFEOffsetElement,
-                               public SVGElementImpl
-{
-public:
-
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getDx()
-        { return dx; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getDy()
-        { return dy; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFEOffsetElementImpl() {}
-
-protected:
-
-    SVGAnimatedString in1;
-    SVGAnimatedLength dx, dy;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpecularLightingElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFESpecularLightingElementImpl :
-                       virtual public SVGFESpecularLightingElement,
-                       public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSurfaceScale()
-        { return surfaceScale; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSpecularConstant()
-        { return specularConstant; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSpecularExponent()
-        { return specularExponent; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFESpecularLightingElementImpl() {}
-
-protected:
-
-    SVGAnimatedString in1;
-    SVGAnimatedNumber surfaceScale;
-    SVGAnimatedNumber specularConstant;
-    SVGAnimatedNumber specularExponent;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETileElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFETileElementImpl : virtual public SVGFETileElement,
-                             public SVGElementImpl
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getIn1()
-        { return in1; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFETileElementImpl() {}
-
-protected:
-
-    SVGAnimatedString in1;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETurbulenceElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFETurbulenceElementImpl : virtual public SVGFETurbulenceElement,
-                                   public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getBaseFrequencyX()
-        { return baseFrequencyX; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getBaseFrequencyY()
-        { return baseFrequencyY; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedInteger getNumOctaves()
-        { return numOctaves; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedNumber getSeed()
-        { return seed; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getStitchTiles()
-        { return stitchTiles; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedEnumeration getType()
-        { return type; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFETurbulenceElementImpl() {}
-
-protected:
-
-    SVGAnimatedNumber      baseFrequencyX;
-    SVGAnimatedNumber      baseFrequencyY;
-    SVGAnimatedInteger     numOctaves;
-    SVGAnimatedNumber      seed;
-    SVGAnimatedEnumeration stitchTiles;
-    SVGAnimatedEnumeration type;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGCursorElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGCursorElementImpl : virtual public SVGCursorElement,
-                             public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY()
-        { return x; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGCursorElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength x, y;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAElementImpl : virtual public SVGAElement,
-                        public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getTarget()
-        { return target; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAElementImpl() {}
-
-protected:
-
-    SVGAnimatedString target;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGViewElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGViewElementImpl : virtual public SVGViewElement,
-                           public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGStringList getViewTarget()
-        { return viewTarget; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGViewElementImpl() {}
-
-protected:
-
-    SVGStringList viewTarget;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGScriptElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGScriptElementImpl : virtual public SVGScriptElement,
-                             public SVGElementImpl
-{
-public:
-
-    /**
-     *
-     */
-    virtual DOMString getType()
-        { return type; }
-
-    /**
-     *
-     */
-    virtual void setType(const DOMString &val) throw (DOMException)
-        { type = val; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGScriptElementImpl() {}
-
-protected:
-
-    DOMString type;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimationElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimationElementImpl : virtual public SVGAnimationElement,
-                                public SVGElementImpl
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGElementPtr getTargetElement()
-        { return targetElement; }
-
-
-    /**
-     *
-     */
-    virtual double getStartTime (  )
-        { return startTime; }
-
-    /**
-     *
-     */
-    virtual double getCurrentTime (  )
-        { return currentTime; }
-
-    /**
-     *
-     */
-    virtual double getSimpleDuration (  ) throw( DOMException )
-        { return simpleDuration; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAnimationElementImpl() {}
-
-protected:
-
-    SVGElementPtr targetElement;
-    double startTime, currentTime, simpleDuration;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateElementImpl : virtual public SVGAnimateElement,
-                              public SVGAnimationElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAnimateElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGSetElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGSetElementImpl : virtual public SVGSetElement,
-                          public SVGAnimationElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGSetElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateMotionElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateMotionElementImpl : virtual public SVGAnimateMotionElement,
-                                    public SVGAnimationElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAnimateMotionElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGMPathElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGMPathElementImpl : virtual public SVGMPathElement,
-                            public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGMPathElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateColorElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateColorElementImpl : virtual public SVGAnimateColorElement,
-                                   public SVGAnimationElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAnimateColorElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateTransformElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateTransformElementImpl : virtual public SVGAnimateTransformElement,
-                                       public SVGAnimationElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGAnimateTransformElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontElementImpl :  virtual public SVGFontElement,
-                            public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGGlyphElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGGlyphElementImpl : virtual public SVGGlyphElement,
-                            public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGGlyphElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGMissingGlyphElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGMissingGlyphElementImpl : virtual public SVGMissingGlyphElement,
-                                   public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGMissingGlyphElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGHKernElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGHKernElementImpl : virtual public SVGHKernElement,
-                            public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGHKernElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGVKernElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGVKernElementImpl : virtual public SVGVKernElement,
-                            public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGVKernElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceElementImpl : virtual public SVGFontFaceElement,
-                               public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontFaceElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceSrcElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceSrcElementImpl : virtual public SVGFontFaceSrcElement,
-                                  public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontFaceSrcElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceUriElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceUriElementImpl : virtual public SVGFontFaceUriElement,
-                                  public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontFaceUriElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceFormatElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceFormatElementImpl : virtual public SVGFontFaceFormatElement,
-                                     public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontFaceFormatElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceNameElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceNameElementImpl : virtual public SVGFontFaceNameElement,
-                                   public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGFontFaceNameElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGDefinitionSrcElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGDefinitionSrcElementImpl : virtual public SVGDefinitionSrcElement,
-                                    public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGDefinitionSrcElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGMetadataElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGMetadataElementImpl : virtual public SVGMetadataElement,
-                               public SVGElementImpl
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    virtual ~SVGMetadataElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-/*#########################################################################
-## SVGForeignObjectElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGForeignObjectElementImpl :  virtual public SVGForeignObjectElement,
-                                     public SVGElementImpl
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth()
-        { return width; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight()
-        { return height; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    virtual ~SVGForeignObjectElementImpl() {}
-
-protected:
-
-    SVGAnimatedLength x, y, width, height;
-};
-
-
-
-
-
-
-}  //namespace svg
-}  //namespace dom
-}  //namespace w3c
-}  //namespace org
-
-#endif // __SVG_H__
-/*#########################################################################
-## E N D    O F    F I L E
-#########################################################################*/
-
diff --git a/src/dom/svg/svgparser.cpp b/src/dom/svg/svgparser.cpp
deleted file mode 100644 (file)
index 186fd40..0000000
+++ /dev/null
@@ -1,761 +0,0 @@
-/**
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference.  Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- *   Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public
- *  License as published by the Free Software Foundation; either
- *  version 2.1 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this library; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include "svgparser.h"
-#include "dom/cssparser.h"
-#include "dom/ucd.h"
-
-#include <stdarg.h>
-
-#define SVG_NAMESPACE "http://www.w3.org/2000/svg"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace svg
-{
-
-
-//#########################################################################
-//# M E S S A G E S
-//#########################################################################
-
-
-/**
- *
- */
-void SvgParser::error(char const *fmt, ...)
-{
-    va_list args;
-    fprintf(stderr, "SvgParser:error:");
-    va_start(args, fmt);
-    vfprintf(stderr, fmt, args);
-    va_end(args) ;
-    fprintf(stderr, "\n");
-}
-
-
-
-//#########################################################################
-//# P A R S I N G
-//#########################################################################
-
-/**
- *  Get the character at the position and record the fact
- */
-XMLCh SvgParser::get(int p)
-{
-    if (p >= parselen)
-        return 0;
-    XMLCh ch = parsebuf[p];
-    //printf("%c", ch);
-    lastPosition = p;
-    return ch;
-}
-
-
-
-/**
- *  Test if the given substring exists at the given position
- *  in parsebuf.  Use get() in case of out-of-bounds
- */
-bool SvgParser::match(int pos, char const *str)
-{
-    while (*str)
-       {
-       if (get(pos++) != (XMLCh) *str++)
-           return false;
-       }
-   return true;
-}
-
-/**
- *
- */
-int SvgParser::skipwhite(int p)
-{
-  while (p < parselen)
-    {
-    //# XML COMMENT
-    if (match(p, "<!--"))
-        {
-        p+=4;
-        bool done=false;
-        while (p<parselen)
-            {
-            if (match(p, "-->"))
-                {
-                p+=3;
-                done=true;
-                break;
-                }
-            p++;
-            }
-        lastPosition = p;
-        if (!done)
-            {
-            error("unterminated <!-- .. --> comment");
-            return -1;
-            }
-        }
-    //# C comment
-    else if (match(p, "/*"))
-        {
-        p+=2;
-        bool done=false;
-        while (p<parselen)
-            {
-            if (match(p, "*/"))
-                {
-                p+=2;
-                done=true;
-                break;
-                }
-            p++;
-            }
-        lastPosition = p;
-        if (!done)
-            {
-            error("unterminated /* .. */ comment");
-            return -1;
-            }
-        }
-    else if (!uni_is_space(get(p)))
-        break;
-    else
-        p++;
-    }
-  lastPosition = p;
-  return p;
-}
-
-/**
- * get a word from the buffer
- */
-int SvgParser::getWord(int p, DOMString &result)
-{
-    XMLCh ch = get(p);
-    if (!uni_is_letter(ch))
-        return p;
-    DOMString str;
-    str.push_back(ch);
-    p++;
-
-    while (p < parselen)
-        {
-        ch = get(p);
-        if (uni_is_letter_or_digit(ch) || ch=='-' || ch=='_')
-            {
-            str.push_back(ch);
-            p++;
-            }
-        else if (ch == '\\')
-            {
-            p+=2;
-            }
-        else
-            break;
-        }
-    result = str;
-    return p;
-}
-
-
-# if 0
-/**
- * get a word from the buffer
- */
-int SvgParser::getNumber(int p0, double &result)
-{
-    int p=p0;
-
-    DOMString str;
-
-    //allow sign
-    if (get(p) == '-')
-        {
-        p++;
-        }
-
-    while (p < parselen)
-        {
-        XMLCh ch = get(p);
-        if (ch<'0' || ch>'9')
-            break;
-        str.push_back(ch);
-        p++;
-        }
-    if (get(p) == '.' && get(p+1)>='0' && get(p+1)<='9')
-        {
-        p++;
-        str.push_back('.');
-        while (p < parselen)
-            {
-            XMLCh ch = get(p);
-            if (ch<'0' || ch>'9')
-                break;
-            str.push_back(ch);
-            p++;
-            }
-        }
-    if (p>p0)
-        {
-        char *start = (char *)str.c_str();
-        char *end   = NULL;
-        double val = strtod(start, &end);
-        if (end > start)
-            {
-            result = val;
-            return p;
-            }
-        }
-
-    //not a number
-    return p0;
-}
-#endif
-
-
-/**
- * get a word from the buffer
- */
-int SvgParser::getNumber(int p0, double &result)
-{
-    int p=p0;
-
-    char buf[64];
-
-    int i;
-    for (i=0 ; i<63 && p<parselen ; i++)
-        {
-        buf[i] = (char) get(p++);
-        }
-    buf[i] = '\0';
-
-    char *start = buf;
-    char *end   = NULL;
-    double val = strtod(start, &end);
-    if (end > start)
-        {
-        result = val;
-        int count = (int)(end - start);
-        p = p0 + count;
-        return p;
-        }
-
-    //not a number
-    return p0;
-}
-
-
-bool SvgParser::parseTransform(const DOMString &str)
-{
-    parsebuf = str;
-    parselen = str.size();
-
-    //printf("transform:%s\n", str.c_str());
-
-    SVGTransformList transformList;
-
-    int p = 0;
-
-    while (p < parselen)
-        {
-        p = skipwhite(p);
-        DOMString name;
-        int p2 = getWord(p, name);
-        if (p2<0)
-            return false;
-        if (p2<=p)
-            {
-            error("transform: need transform name");
-            //return false;
-            break;
-            }
-        p = p2;
-        //printf("transform name:%s\n", name.c_str());
-
-        //######### MATRIX
-        if (name == "matrix")
-            {
-            p = skipwhite(p);
-            if (get(p++) != '(')
-                {
-                error("matrix transform needs opening '('");
-                return false;
-                }
-            int nrVals = 0;
-            double vals[6];
-            bool seenBrace = false;
-            while (p < parselen && nrVals < 6)
-                {
-                p = skipwhite(p);
-                double val = 0.0;
-                p2 = getNumber(p, val);
-                if (p2<0)
-                    return false;
-                if (p2<=p)
-                    {
-                    error("matrix() expected number");
-                    return false;
-                    }
-                vals[nrVals++] = val;
-                p = skipwhite(p2);
-                XMLCh ch = get(p);
-                if (ch == ',')
-                    {
-                    p++;
-                    p = skipwhite(p);
-                    ch = get(p);
-                    }
-                if (ch == ')')
-                    {
-                    seenBrace = true;
-                    p++;
-                    break;
-                    }
-                }
-            if (!seenBrace)
-                {
-                error("matrix() needs closing brace");
-                return false;
-                }
-            if (nrVals != 6)
-                {
-                error("matrix() requires exactly 6 arguments");
-                return false;
-                }
-            //We got our arguments
-            //printf("translate: %f %f %f %f %f %f\n",
-            //      vals[0], vals[1], vals[2], vals[3], vals[4], vals[5]);
-            SVGMatrix matrix(vals[0], vals[1], vals[2],
-                             vals[3], vals[4], vals[5]);
-            SVGTransform transform;
-            transform.setMatrix(matrix);
-            transformList.appendItem(transform);
-            }
-
-        //######### TRANSLATE
-        else if (name == "translate")
-            {
-            p = skipwhite(p);
-            if (get(p++) != '(')
-                {
-                error("matrix transform needs opening '('");
-                return false;
-                }
-            p = skipwhite(p);
-            double x = 0.0;
-            p2 = getNumber(p, x);
-            if (p2<0)
-                return false;
-            if (p2<=p)
-                {
-                error("translate() expected 'x' value");
-                return false;
-                }
-            p = skipwhite(p2);
-            if (get(p) == ',')
-                {
-                p++;
-                p = skipwhite(p);
-                }
-            double y = 0.0;
-            p2 = getNumber(p, y);
-            if (p2<0)
-                return false;
-            if (p2<=p) //no y specified. use default
-                y = 0.0;
-            p = skipwhite(p2);
-            if (get(p++) != ')')
-                {
-                error("translate() needs closing ')'");
-                return false;
-                }
-            //printf("translate: %f %f\n", x, y);
-            SVGTransform transform;
-            transform.setTranslate(x, y);
-            transformList.appendItem(transform);
-            }
-
-        //######### SCALE
-        else if (name == "scale")
-            {
-            p = skipwhite(p);
-            if (get(p++) != '(')
-                {
-                error("scale transform needs opening '('");
-                return false;
-                }
-            p = skipwhite(p);
-            double x = 0.0;
-            p2 = getNumber(p, x);
-            if (p2<0)
-                return false;
-            if (p2<=p)
-                {
-                error("scale() expected 'x' value");
-                return false;
-                }
-            p = skipwhite(p2);
-            if (get(p) == ',')
-                {
-                p++;
-                p = skipwhite(p);
-                }
-            double y = 0.0;
-            p2 = getNumber(p, y);
-            if (p2<0)
-                return false;
-            if (p2<=p) //no y specified. use default
-                y = x; // y is same as x.  uniform scaling
-            p = skipwhite(p2);
-            if (get(p++) != ')')
-                {
-                error("scale() needs closing ')'");
-                return false;
-                }
-            //printf("scale: %f %f\n", x, y);
-            SVGTransform transform;
-            transform.setScale(x, y);
-            transformList.appendItem(transform);
-            }
-
-        //######### ROTATE
-        else if (name == "rotate")
-            {
-            p = skipwhite(p);
-            if (get(p++) != '(')
-                {
-                error("rotate transform needs opening '('");
-                return false;
-                }
-            p = skipwhite(p);
-            double angle = 0.0;
-            p2 = getNumber(p, angle);
-            if (p2<0)
-                return false;
-            if (p2<=p)
-                {
-                error("rotate() expected 'angle' value");
-                return false;
-                }
-            p = skipwhite(p2);
-            if (get(p) == ',')
-                {
-                p++;
-                p = skipwhite(p);
-                }
-            double cx = 0.0;
-            double cy = 0.0;
-            p2 = getNumber(p, cx);
-            if (p2>p)
-                {
-                p = skipwhite(p2);
-                if (get(p) == ',')
-                    {
-                    p++;
-                    p = skipwhite(p);
-                    }
-                p2 = getNumber(p, cy);
-                if (p2<0)
-                    return false;
-                if (p2<=p)
-                    {
-                    error("rotate() arguments should be either rotate(angle) or rotate(angle, cx, cy)");
-                    return false;
-                    }
-                p = skipwhite(p2);
-                }
-            if (get(p++) != ')')
-                {
-                error("rotate() needs closing ')'");
-                return false;
-                }
-            //printf("rotate: %f %f %f\n", angle, cx, cy);
-            SVGTransform transform;
-            transform.setRotate(angle, cx, cy);
-            transformList.appendItem(transform);
-            }
-
-        //######### SKEWX
-        else if (name == "skewX")
-            {
-            p = skipwhite(p);
-            if (get(p++) != '(')
-                {
-                error("skewX transform needs opening '('");
-                return false;
-                }
-            p = skipwhite(p);
-            double x = 0.0;
-            p2 = getNumber(p, x);
-            if (p2<0)
-                return false;
-            if (p2<=p)
-                {
-                error("skewX() expected 'x' value");
-                return false;
-                }
-            p = skipwhite(p2);
-            if (get(p++) != ')')
-                {
-                error("skewX() needs closing ')'");
-                return false;
-                }
-            //printf("skewX: %f\n", x);
-            SVGTransform transform;
-            transform.setSkewX(x);
-            transformList.appendItem(transform);
-            }
-
-        //######### SKEWY
-        else if (name == "skewY")
-            {
-            p = skipwhite(p);
-            if (get(p++) != '(')
-                {
-                error("skewY transform needs opening '('");
-                return false;
-                }
-            p = skipwhite(p);
-            double y = 0.0;
-            p2 = getNumber(p, y);
-            if (p2<0)
-                return false;
-            if (p2<=p)
-                {
-                error("skewY() expected 'y' value");
-                return false;
-                }
-            p = skipwhite(p2);
-            if (get(p++) != ')')
-                {
-                error("skewY() needs closing ')'");
-                return false;
-                }
-            //printf("skewY: %f\n", y);
-            SVGTransform transform;
-            transform.setSkewY(y);
-            transformList.appendItem(transform);
-            }
-
-        //### NONE OF THE ABOVE
-        else
-            {
-            error("unknown transform type:'%s'", name.c_str());
-            }
-
-        p = skipwhite(p);
-        XMLCh ch = get(p);
-        if (ch == ',')
-            {
-            p++;
-            p = skipwhite(p);
-            }
-
-        }//WHILE p<parselen
-
-    return true;
-}
-
-
-/**
- *
- */
-bool SvgParser::parseElement(SVGElementImplPtr parent,
-                             ElementImplPtr sourceElem)
-{
-    if (!parent || !sourceElem)
-        {
-        error("NULL source element");
-        return false;
-        }
-
-    DOMString namespaceURI = sourceElem->getNamespaceURI();
-    //printf("namespaceURI:%s\n", namespaceURI.c_str());
-    DOMString tagName      = sourceElem->getTagName();
-    printf("tag name:%s\n", tagName.c_str());
-
-    ElementImplPtr newElement = NULL;
-    if (namespaceURI != SVG_NAMESPACE)
-        {
-        newElement = new SVGSVGElementImpl();
-        newElement->assign(*sourceElem);
-        parent->appendChild(newElement);
-        }
-    else //## SVG!!
-        {
-
-        //####################################################
-        //## ATTRIBUTES
-        //####################################################
-        DOMString style = sourceElem->getAttribute("style");
-        if (style.size() > 0)
-            {
-            css::CssParser parser;
-            style.insert(0, "{");
-            style.append("}");
-            //printf("CSS:%s\n", style.c_str());
-            if (!parser.parse(style))
-                {
-                error("parsing style attribute");
-                }
-            else
-                {
-                //printf("##parsed!\n");
-                }
-            }
-
-        DOMString transform = sourceElem->getAttribute("transform");
-        if (transform.size() > 0)
-            {
-            if (!parseTransform(transform))
-                {
-                error("parsing transform attribute");
-                }
-            else
-                {
-                //printf("##parsed!\n");
-                }
-            }
-
-        //####################################################
-        //## ELEMENT - SPECIFIC
-        //####################################################
-        if (tagName == "svg")
-            {
-            newElement = new SVGSVGElementImpl();
-            newElement->assign(*sourceElem);
-            parent->appendChild(newElement);
-            }
-        else if (tagName == "title")
-            {
-            newElement = new SVGTitleElementImpl();
-            newElement->assign(*sourceElem);
-            parent->appendChild(newElement);
-            }
-        else if (tagName == "desc")
-            {
-            newElement = new SVGDescElementImpl();
-            newElement->assign(*sourceElem);
-            parent->appendChild(newElement);
-            }
-        else if (tagName == "defs")
-            {
-            newElement = new SVGDefsElementImpl();
-            newElement->assign(*sourceElem);
-            parent->appendChild(newElement);
-            }
-        else if (tagName == "style")
-            {
-            newElement = new SVGStyleElementImpl();
-            newElement->assign(*sourceElem);
-            parent->appendChild(newElement);
-            }
-        else if (tagName == "g")
-            {
-            newElement = new SVGGElementImpl();
-            newElement->assign(*sourceElem);
-            parent->appendChild(newElement);
-            }
-        else if (tagName == "path")
-            {
-            newElement = new SVGPathElementImpl();
-            newElement->assign(*sourceElem);
-            parent->appendChild(newElement);
-            }
-        }
-
-    NodeList children = sourceElem->getChildNodes();
-    int nodeCount = children.getLength();
-    for (int i=0 ; i<nodeCount ; i++)
-        {
-        NodePtr child = children.item(i);
-        int typ = child->getNodeType();
-        if (typ == Node::TEXT_NODE)
-            {
-            NodePtr newNode = doc->createTextNode(child->getNodeValue());
-            parent->appendChild(newNode);
-            }
-        else if (typ == Node::CDATA_SECTION_NODE)
-            {
-            NodePtr newNode = doc->createCDATASection(child->getNodeValue());
-            parent->appendChild(newNode);
-            }
-        else if (newElement.get() && typ == Node::ELEMENT_NODE)
-            {
-            //ElementImplPtr childElement = dynamic_cast<ElementImpl *>(child.get());
-            //parseElement(newElement, childElement);
-            }
-        }
-    return true;
-}
-
-
-/**
- *
- */
-SVGDocumentPtr SvgParser::parse(const DocumentPtr src)
-{
-    if (!src)
-        {
-        error("NULL source document");
-        return NULL;
-        }
-
-    DOMImplementationImpl impl;
-    doc = new SVGDocumentImpl(&impl, SVG_NAMESPACE, "svg" , NULL);
-
-    SVGElementImplPtr destElem = dynamic_cast<SVGElementImpl *>(doc->getRootElement().get());
-    ElementImplPtr    srcElem  = dynamic_cast<ElementImpl *>(src->getDocumentElement().get());
-    if (!parseElement(destElem, srcElem))
-        {
-        return NULL;
-        }
-
-    return doc;
-}
-
-
-
-
-}  //namespace svg
-}  //namespace dom
-}  //namespace w3c
-}  //namespace org
-
-/*#########################################################################
-## E N D    O F    F I L E
-#########################################################################*/
-
diff --git a/src/dom/svg/svgparser.h b/src/dom/svg/svgparser.h
deleted file mode 100644 (file)
index cb3ac15..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-#ifndef __SVGPARSER_H__
-#define __SVGPARSER_H__
-
-/**
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference.  Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- *   Bob Jamison
- *
- * Copyright (C) 2005-2007 Bob Jamison
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public
- *  License as published by the Free Software Foundation; either
- *  version 2.1 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this library; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include "svgimpl.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace svg
-{
-
-
-class SvgParser
-{
-public:
-
-    /**
-     *
-     */
-    SvgParser()
-        {
-        }
-
-    /**
-     *
-     */
-    SvgParser(const SvgParser &/*other*/)
-        {
-        }
-
-    /**
-     *
-     */
-    virtual ~SvgParser()
-        {
-        }
-
-    /**
-     *
-     */
-    SVGDocumentPtr parse(const DocumentPtr sourceDoc);
-
-
-
-
-private:
-
-    /**
-     *  Get the next character in the parse buf,  0 if out
-     *  of range
-     */
-    XMLCh get(int p);
-
-    /**
-     *  Test if the given substring exists at the given position
-     *  in parsebuf.  Use get() in case of out-of-bounds
-     */
-    bool match(int pos, char const *str);
-
-    /**
-     *
-     */
-    int skipwhite(int p);
-
-    /**
-     * get a word from the buffer
-     */
-    int getWord(int p, DOMString &result);
-
-    /**
-     * get a word from the buffer
-     */
-    int getNumber(int p0, double &result);
-
-
-    /**
-     *
-     */
-    bool parseTransform(const DOMString &str);
-
-
-    /**
-     *
-     */
-    bool parseElement(SVGElementImplPtr destElem,
-                      ElementImplPtr sourceElem);
-
-
-    /**
-     *
-     */
-    void error(char const *format, ...)
-    #ifdef G_GNUC_PRINTF
-    G_GNUC_PRINTF(2, 3)
-    #endif
-    ;
-
-
-
-    DOMString parsebuf;
-    int parselen;
-    int lastPosition;
-
-    SVGDocumentImplPtr doc;
-
-};
-
-
-
-
-
-}  //namespace svg
-}  //namespace dom
-}  //namespace w3c
-}  //namespace org
-
-#endif /* __SVGPARSER_H__ */
-/*#########################################################################
-## E N D    O F    F I L E
-#########################################################################*/
-
-
-
diff --git a/src/dom/svg/svgtypes.h b/src/dom/svg/svgtypes.h
deleted file mode 100644 (file)
index 36bb1fc..0000000
+++ /dev/null
@@ -1,6889 +0,0 @@
-#ifndef __SVGTYPES_H__
-#define __SVGTYPES_H__
-
-/**
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference.  Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- *   Bob Jamison
- *
- * Copyright (C) 2006 Bob Jamison
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public
- *  License as published by the Free Software Foundation; either
- *  version 2.1 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this library; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-// For access to DOM2 core
-#include "dom/dom.h"
-
-// For access to DOM2 events
-#include "dom/events.h"
-
-// For access to those parts from DOM2 CSS OM used by SVG DOM.
-#include "dom/css.h"
-
-// For access to those parts from DOM2 Views OM used by SVG DOM.
-#include "dom/views.h"
-
-// For access to the SMIL OM used by SVG DOM.
-#include "dom/smil.h"
-
-
-#include <math.h>
-
-
-
-namespace org {
-namespace w3c {
-namespace dom {
-namespace svg {
-
-
-
-
-//local definitions
-typedef dom::DOMString DOMString;
-typedef dom::DOMException DOMException;
-typedef dom::Element Element;
-typedef dom::Document Document;
-typedef dom::NodeList NodeList;
-
-
-class SVGElement;
-class SVGUseElement;
-class SVGAnimatedPreserveAspectRatio;
-
-
-/*#########################################################################
-## SVGException
-#########################################################################*/
-
-/**
- *
- */
-class SVGException
-{
-public:
-    // unsigned short   code;  //inherited
-};
-
-    /**
-     * SVGExceptionCode
-     */
-    typedef enum
-        {
-        SVG_WRONG_TYPE_ERR           = 0,
-        SVG_INVALID_VALUE_ERR        = 1,
-        SVG_MATRIX_NOT_INVERTABLE    = 2
-        } SVGExceptionCode;
-
-
-
-
-
-/*#########################################################################
-## SVGMatrix
-#########################################################################*/
-
-/**
- *  In SVG, a Matrix is defined like this:
- *
- * | a  c  e |
- * | b  d  f |
- * | 0  0  1 |
- *
- */
-class SVGMatrix
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual double getA()
-        { return a; }
-
-    /**
-     *
-     */
-    virtual void setA(double val) throw (DOMException)
-        { a = val; }
-
-    /**
-     *
-     */
-    virtual double getB()
-        { return b; }
-
-    /**
-     *
-     */
-    virtual void setB(double val) throw (DOMException)
-        { b = val; }
-
-    /**
-     *
-     */
-    virtual double getC()
-        { return c; }
-
-    /**
-     *
-     */
-    virtual void setC(double val) throw (DOMException)
-        { c = val; }
-
-    /**
-     *
-     */
-    virtual double getD()
-        { return d; }
-
-    /**
-     *
-     */
-    virtual void setD(double val) throw (DOMException)
-        { d = val; }
-    /**
-     *
-     */
-    virtual double getE()
-        { return e; }
-
-    /**
-     *
-     */
-    virtual void setE(double val) throw (DOMException)
-        { e = val; }
-    /**
-     *
-     */
-    virtual double getF()
-        { return f; }
-
-    /**
-     *
-     */
-    virtual void setF(double val) throw (DOMException)
-        { f = val; }
-
-
-    /**
-     * Return the result of postmultiplying this matrix with another.
-     */
-    virtual SVGMatrix multiply(const SVGMatrix &other)
-        {
-        SVGMatrix result;
-        result.a = a * other.a  +  c * other.b;
-        result.b = b * other.a  +  d * other.b;
-        result.c = a * other.c  +  c * other.d;
-        result.d = b * other.c  +  d * other.d;
-        result.e = a * other.e  +  c * other.f  +  e;
-        result.f = b * other.e  +  d * other.f  +  f;
-        return result;
-        }
-
-    /**
-     *  Calculate the inverse of this matrix
-     *
-     */
-    virtual SVGMatrix inverse(  ) throw( SVGException )
-        {
-        /*###########################################
-        The determinant of a 3x3 matrix E
-           (let's use our own notation for a bit)
-
-            A  B  C
-            D  E  F
-            G  H  I
-        is
-            AEI - AFH - BDI + BFG + CDH - CEG
-
-        Since in our affine transforms, G and H==0 and I==1,
-        this reduces to:
-            AE - BD
-        In SVG's naming scheme, that is:  a * d - c * b .  SIMPLE!
-
-        In a similar method of attack, SVG's adjunct matrix is:
-
-           d  -c   cf-ed
-          -b   a   eb-af
-           0   0   ad-cb
-
-        To get the inverse matrix, we divide the adjunct matrix by
-        the determinant.  Notice that (ad-cb)/(ad-cb)==1.  Very cool.
-        So what we end up with is this:
-
-           a =  d/(ad-cb)  c = -c/(ad-cb)   e = (cf-ed)/(ad-cb)
-           b = -b/(ad-cb)  d =  a/(ad-cb)   f = (eb-af)/(ad-cb)
-
-        (Since this would be in all SVG-DOM implementations,
-         somebody needed to document this!  ^^ )
-        #############################################*/
-
-        SVGMatrix result;
-        double determinant = a * d  -  c * b;
-        if (determinant < 1.0e-18)//invertible?
-            {
-            result.identity();//cop out
-            return result;
-            }
-
-        double idet = 1.0 / determinant;
-        result.a =   d * idet;
-        result.b =  -b * idet;
-        result.c =  -c * idet;
-        result.d =   a * idet;
-        result.e =  (c*f - e*d) * idet;
-        result.f =  (e*b - a*f) * idet;
-        return result;
-        }
-
-    /**
-     * Equivalent to multiplying by:
-     *  | 1  0  x |
-     *  | 0  1  y |
-     *  | 0  0  1 |
-     *
-     */
-    virtual SVGMatrix translate(double x, double y )
-        {
-        SVGMatrix result;
-        result.a = a;
-        result.b = b;
-        result.c = c;
-        result.d = d;
-        result.e = a * x  +  c * y  +  e;
-        result.f = b * x  +  d * y  +  f;
-        return result;
-        }
-
-    /**
-     * Equivalent to multiplying by:
-     *  | scale  0      0 |
-     *  | 0      scale  0 |
-     *  | 0      0      1 |
-     *
-     */
-    virtual SVGMatrix scale(double scale)
-        {
-        SVGMatrix result;
-        result.a = a * scale;
-        result.b = b * scale;
-        result.c = c * scale;
-        result.d = d * scale;
-        result.e = e;
-        result.f = f;
-        return result;
-        }
-
-    /**
-     * Equivalent to multiplying by:
-     *  | scaleX  0       0 |
-     *  | 0       scaleY  0 |
-     *  | 0       0       1 |
-     *
-     */
-    virtual SVGMatrix scaleNonUniform(double scaleX,
-                                      double scaleY )
-        {
-        SVGMatrix result;
-        result.a = a * scaleX;
-        result.b = b * scaleX;
-        result.c = c * scaleY;
-        result.d = d * scaleY;
-        result.e = e;
-        result.f = f;
-        return result;
-        }
-
-    /**
-     * Equivalent to multiplying by:
-     *  | cos(a) -sin(a)   0 |
-     *  | sin(a)  cos(a)   0 |
-     *  | 0       0        1 |
-     *
-     */
-    virtual SVGMatrix rotate (double angle)
-        {
-        double sina  = sin(angle);
-        double msina = -sina;
-        double cosa  = cos(angle);
-        SVGMatrix result;
-        result.a = a * cosa   +  c * sina;
-        result.b = b * cosa   +  d + sina;
-        result.c = a * msina  +  c * cosa;
-        result.d = b * msina  +  d * cosa;
-        result.e = e;
-        result.f = f;
-        return result;
-        }
-
-    /**
-     * Equivalent to multiplying by:
-     *  | cos(a) -sin(a)   0 |
-     *  | sin(a)  cos(a)   0 |
-     *  | 0       0        1 |
-     *  In this case, angle 'a' is computed as the artangent
-     *  of the slope y/x .  It is negative if the slope is negative.
-     */
-    virtual SVGMatrix rotateFromVector(double x, double y)
-                                      throw( SVGException )
-        {
-        double angle = atan(y / x);
-        if (y < 0.0)
-            angle = -angle;
-        SVGMatrix result;
-        double sina  = sin(angle);
-        double msina = -sina;
-        double cosa  = cos(angle);
-        result.a = a * cosa   +  c * sina;
-        result.b = b * cosa   +  d + sina;
-        result.c = a * msina  +  c * cosa;
-        result.d = b * msina  +  d * cosa;
-        result.e = e;
-        result.f = f;
-        return result;
-        }
-
-    /**
-     * Equivalent to multiplying by:
-     *  | -1   0   0 |
-     *  | 0    1   0 |
-     *  | 0    0   1 |
-     *
-     */
-    virtual SVGMatrix flipX(  )
-        {
-        SVGMatrix result;
-        result.a = -a;
-        result.b = -b;
-        result.c =  c;
-        result.d =  d;
-        result.e =  e;
-        result.f =  f;
-        return result;
-        }
-
-    /**
-     * Equivalent to multiplying by:
-     *  | 1   0   0 |
-     *  | 0  -1   0 |
-     *  | 0   0   1 |
-     *
-     */
-    virtual SVGMatrix flipY( )
-        {
-        SVGMatrix result;
-        result.a =  a;
-        result.b =  b;
-        result.c = -c;
-        result.d = -d;
-        result.e =  e;
-        result.f =  f;
-        return result;
-        }
-
-    /**
-     *  | 1   tan(a)  0 |
-     *  | 0   1       0 |
-     *  | 0   0       1 |
-     *
-     */
-    virtual SVGMatrix skewX(double angle)
-        {
-        double tana = tan(angle);
-        SVGMatrix result;
-        result.a =  a;
-        result.b =  b;
-        result.c =  a * tana + c;
-        result.d =  b * tana + d;
-        result.e =  e;
-        result.f =  f;
-        return result;
-        }
-
-    /**
-     * Equivalent to multiplying by:
-     *  | 1       0   0 |
-     *  | tan(a)  1   0 |
-     *  | 0       0   1 |
-     *
-     */
-    virtual SVGMatrix skewY(double angle)
-        {
-        double tana = tan(angle);
-        SVGMatrix result;
-        result.a =  a + c * tana;
-        result.b =  b + d * tana;
-        result.c =  c;
-        result.d =  d;
-        result.e =  e;
-        result.f =  f;
-        return result;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGMatrix()
-        {
-        identity();
-        }
-
-    /**
-     *
-     */
-    SVGMatrix(double aArg, double bArg, double cArg,
-              double dArg, double eArg, double fArg )
-        {
-        a = aArg; b = bArg; c = cArg;
-        d = dArg; e = eArg; f = fArg;
-        }
-
-    /**
-     * Copy constructor
-     */
-    SVGMatrix(const SVGMatrix &other)
-        {
-        a = other.a;
-        b = other.b;
-        c = other.c;
-        d = other.d;
-        e = other.e;
-        f = other.f;
-        }
-
-
-
-    /**
-     *
-     */
-    virtual ~SVGMatrix() {}
-
-protected:
-
-friend class SVGTransform;
-
-    /*
-     * Set to the identify matrix
-     */
-   void identity()
-       {
-       a = 1.0;
-       b = 0.0;
-       c = 0.0;
-       d = 1.0;
-       e = 0.0;
-       f = 0.0;
-       }
-
-    double a, b, c, d, e, f;
-
-};
-
-
-/*#########################################################################
-## SVGTransform
-#########################################################################*/
-
-/**
- *
- */
-class SVGTransform
-{
-public:
-
-    /**
-     * Transform Types
-     */
-    typedef enum
-        {
-        SVG_TRANSFORM_UNKNOWN   = 0,
-        SVG_TRANSFORM_MATRIX    = 1,
-        SVG_TRANSFORM_TRANSLATE = 2,
-        SVG_TRANSFORM_SCALE     = 3,
-        SVG_TRANSFORM_ROTATE    = 4,
-        SVG_TRANSFORM_SKEWX     = 5,
-        SVG_TRANSFORM_SKEWY     = 6,
-        } TransformType;
-
-    /**
-     *
-     */
-    virtual unsigned short getType()
-        { return type; }
-
-
-    /**
-     *
-     */
-    virtual SVGMatrix getMatrix()
-        {
-        return matrix;
-        }
-
-    /**
-     *
-     */
-    virtual double getAngle()
-        {
-        return angle;
-        }
-
-
-    /**
-     *
-     */
-    virtual void setMatrix(const SVGMatrix &matrixArg)
-        {
-        type = SVG_TRANSFORM_MATRIX;
-        matrix = matrixArg;
-        }
-
-    /**
-     *
-     */
-    virtual void setTranslate (double tx, double ty )
-        {
-        type = SVG_TRANSFORM_TRANSLATE;
-        matrix.setA(1.0);
-        matrix.setB(0.0);
-        matrix.setC(0.0);
-        matrix.setD(1.0);
-        matrix.setE(tx);
-        matrix.setF(ty);
-        }
-
-    /**
-     *
-     */
-    virtual void setScale (double sx, double sy )
-        {
-        type = SVG_TRANSFORM_SCALE;
-        matrix.setA(sx);
-        matrix.setB(0.0);
-        matrix.setC(0.0);
-        matrix.setD(sy);
-        matrix.setE(0.0);
-        matrix.setF(0.0);
-        }
-
-    /**
-     *
-     */
-    virtual void setRotate (double angleArg, double cx, double cy)
-        {
-        angle = angleArg;
-        setTranslate(cx, cy);
-        type = SVG_TRANSFORM_ROTATE;
-        matrix.rotate(angle);
-        }
-
-    /**
-     *
-     */
-    virtual void setSkewX (double angleArg)
-        {
-        angle = angleArg;
-        type = SVG_TRANSFORM_SKEWX;
-        matrix.identity();
-        matrix.skewX(angle);
-        }
-
-    /**
-     *
-     */
-    virtual void setSkewY (double angleArg)
-        {
-        angle = angleArg;
-        type = SVG_TRANSFORM_SKEWY;
-        matrix.identity();
-        matrix.skewY(angle);
-        }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGTransform()
-        {
-        type = SVG_TRANSFORM_UNKNOWN;
-        angle = 0.0;
-        }
-
-    /**
-     *
-     */
-    SVGTransform(const SVGTransform &other)
-        {
-        type   = other.type;
-        angle  = other.angle;
-        matrix = other.matrix;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGTransform()
-        {}
-
-protected:
-
-    int type;
-    double angle;
-
-    SVGMatrix matrix;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTransformList
-#########################################################################*/
-
-/**
- *
- */
-class SVGTransformList
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual unsigned long getNumberOfItems()
-        { return items.size(); }
-
-
-    /**
-     *
-     */
-    virtual void clear( ) throw( DOMException )
-        { items.clear(); }
-
-    /**
-     *
-     */
-    virtual SVGTransform initialize (const SVGTransform &newItem)
-                         throw( DOMException, SVGException )
-        {
-        items.clear();
-        items.push_back(newItem);
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGTransform getItem (unsigned long index )
-                    throw( DOMException )
-        {
-        if (index>=items.size())
-            {
-            SVGTransform transform;
-            return transform;
-            }
-        return items[index];
-        }
-
-    /**
-     *
-     */
-    virtual SVGTransform insertItemBefore (const SVGTransform &newItem,
-                                           unsigned long index )
-                                      throw( DOMException, SVGException )
-        {
-        if (index > items.size())
-            items.push_back(newItem);
-        else
-            {
-            std::vector<SVGTransform>::iterator iter = items.begin() + index;
-            items.insert(iter, newItem);
-            }
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGTransform replaceItem (const SVGTransform &newItem,
-                                       unsigned long index )
-                                throw( DOMException, SVGException )
-        {
-        if (index>=items.size())
-            {
-            SVGTransform transform;
-            return transform;
-            }
-        else
-            {
-            std::vector<SVGTransform>::iterator iter = items.begin() + index;
-            *iter = newItem;
-            }
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGTransform removeItem (unsigned long index )
-                                     throw( DOMException )
-        {
-        if (index>=items.size())
-            {
-            SVGTransform transform;
-            return transform;
-            }
-        std::vector<SVGTransform>::iterator iter = items.begin() + index;
-        SVGTransform oldItem = *iter;
-        items.erase(iter);
-        return oldItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGTransform appendItem (const SVGTransform &newItem)
-                                  throw( DOMException, SVGException )
-        {
-        items.push_back(newItem);
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix)
-        {
-        SVGTransform transform;
-        transform.setMatrix(matrix);
-        return transform;
-        }
-
-    /**
-     *
-     */
-    virtual SVGTransform consolidate()
-        {
-        SVGMatrix matrix;
-        for (unsigned int i=0 ; i<items.size() ; i++)
-            matrix = matrix.multiply(items[i].getMatrix());
-        SVGTransform transform;
-        transform.setMatrix(matrix);
-        items.clear();
-        items.push_back(transform);
-        return transform;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGTransformList()
-        {}
-
-    /**
-     *
-     */
-    SVGTransformList(const SVGTransformList &other)
-        {
-        items = other.items;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGTransformList() {}
-
-protected:
-
-    std::vector<SVGTransform> items;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedTransformList
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedTransformList
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGTransformList getBaseVal()
-        { return baseVal; }
-
-    /**
-     *
-     */
-    virtual SVGTransformList getAnimVal()
-        { return animVal; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGAnimatedTransformList()
-        {}
-
-    /**
-     *
-     */
-    SVGAnimatedTransformList(const SVGAnimatedTransformList &other)
-        {
-        baseVal = other.baseVal;
-        animVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedTransformList() {}
-
-protected:
-
-    SVGTransformList baseVal;
-    SVGTransformList animVal;
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAnimatedBoolean
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedBoolean
-{
-public:
-
-    /**
-     *
-     */
-    virtual bool getBaseVal()
-        {
-        return baseVal;
-        }
-
-    /**
-     *
-     */
-    virtual void setBaseVal(bool val) throw (DOMException)
-        {
-        baseVal = val;
-        }
-
-    /**
-     *
-     */
-    virtual bool getAnimVal()
-        {
-        return animVal;
-        }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGAnimatedBoolean()
-        {
-        baseVal = animVal = false;
-        }
-
-    /**
-     *
-     */
-    SVGAnimatedBoolean(const SVGAnimatedBoolean &other)
-        {
-        baseVal = other.baseVal;
-        animVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedBoolean() {}
-
-protected:
-
-    bool baseVal, animVal;
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAnimatedString
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedString
-{
-public:
-
-    /**
-     *
-     */
-    virtual DOMString getBaseVal()
-        {
-        return baseVal;
-        }
-
-    /**
-     *
-     */
-    virtual void setBaseVal(const DOMString &val)
-                            throw (DOMException)
-        {
-        baseVal = val;
-        }
-
-    /**
-     *
-     */
-    virtual DOMString getAnimVal()
-        {
-        return animVal;
-        }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    SVGAnimatedString()
-        {
-        baseVal = "";
-        animVal = "";
-        }
-
-    /**
-     *
-     */
-    SVGAnimatedString(const SVGAnimatedString &other)
-        {
-        baseVal = other.baseVal;
-        animVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedString() {}
-
-protected:
-
-    DOMString baseVal, animVal;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGStringList
-#########################################################################*/
-
-/**
- *
- */
-class SVGStringList
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual unsigned long getNumberOfItems()
-        {
-        return items.size();
-        }
-
-    /**
-     *
-     */
-    virtual void clear () throw( DOMException )
-       {
-       items.clear();
-       }
-
-    /**
-     *
-     */
-    virtual DOMString initialize ( const DOMString& newItem )
-                    throw( DOMException, SVGException )
-        {
-        items.clear();
-        items.push_back(newItem);
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual DOMString getItem ( unsigned long index )
-                    throw( DOMException )
-        {
-        if (index >= items.size())
-            return "";
-        return items[index];
-        }
-
-    /**
-     *
-     */
-    virtual DOMString insertItemBefore ( const DOMString& newItem,
-                                 unsigned long index )
-                               throw( DOMException, SVGException )
-        {
-        if (index>=items.size())
-            {
-            items.push_back(newItem);
-            }
-        else
-            {
-            std::vector<DOMString>::iterator iter = items.begin() + index;
-            items.insert(iter, newItem);
-            }
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual DOMString replaceItem ( const DOMString& newItem,
-                                    unsigned long index )
-                                throw( DOMException, SVGException )
-        {
-        if (index>=items.size())
-            return "";
-        std::vector<DOMString>::iterator iter = items.begin() + index;
-        *iter = newItem;
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual DOMString removeItem ( unsigned long index )
-                    throw( DOMException )
-        {
-        if (index>=items.size())
-            return "";
-        std::vector<DOMString>::iterator iter = items.begin() + index;
-        DOMString oldstr = *iter;
-        items.erase(iter);
-        return oldstr;
-        }
-
-    /**
-     *
-     */
-    virtual DOMString appendItem ( const DOMString& newItem )
-                    throw( DOMException, SVGException )
-        {
-        items.push_back(newItem);
-        return newItem;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGStringList() {}
-
-    /**
-     *
-     */
-   SVGStringList(const SVGStringList &other)
-       {
-       items = other.items;
-       }
-
-    /**
-     *
-     */
-    virtual ~SVGStringList() {}
-
-protected:
-
-    std::vector<DOMString>items;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedEnumeration
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedEnumeration
-{
-public:
-
-    /**
-     *
-     */
-    virtual unsigned short getBaseVal()
-        {
-        return baseVal;
-        }
-
-    /**
-     *
-     */
-    virtual void setBaseVal(unsigned short val)
-                                     throw (DOMException)
-        {
-        baseVal = val;
-        }
-
-    /**
-     *
-     */
-    virtual unsigned short getAnimVal()
-        {
-        return animVal;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    SVGAnimatedEnumeration()
-        {
-        baseVal = animVal = 0;
-        }
-
-    /**
-     *
-     */
-    SVGAnimatedEnumeration(const SVGAnimatedEnumeration &other)
-        {
-        baseVal = other.baseVal;
-        animVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedEnumeration() {}
-
-protected:
-
-    int baseVal, animVal;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedInteger
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedInteger
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual long getBaseVal()
-        {
-        return baseVal;
-        }
-
-    /**
-     *
-     */
-    virtual void setBaseVal(long val) throw (DOMException)
-        {
-        baseVal = val;
-        }
-
-    /**
-     *
-     */
-    virtual long getAnimVal()
-        {
-        return animVal;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    SVGAnimatedInteger()
-        { baseVal = animVal = 0L;}
-
-
-    /**
-     *
-     */
-    SVGAnimatedInteger(long value)
-        {
-        baseVal = value;
-        animVal = 0L;
-        }
-
-    /**
-     *
-     */
-    SVGAnimatedInteger(long baseValArg, long animValArg)
-        {
-        baseVal = baseValArg;
-        animVal = animValArg;
-        }
-
-
-    /**
-     *
-     */
-    SVGAnimatedInteger(const SVGAnimatedInteger &other)
-        {
-        baseVal = other.baseVal;
-        animVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedInteger() {}
-
-protected:
-
-    long baseVal, animVal;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGNumber
-#########################################################################*/
-
-/**
- *
- */
-class SVGNumber
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual double getValue()
-        {
-        return value;
-        }
-
-    /**
-     *
-     */
-    virtual void setValue(double val) throw (DOMException)
-        {
-        value = val;
-        }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGNumber()
-        {
-        value = 0.0;
-        }
-
-    /**
-     *
-     */
-    SVGNumber(const SVGNumber &other)
-        {
-        value = other.value;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGNumber() {}
-
-protected:
-
-    double value;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedNumber
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedNumber
-{
-public:
-
-
-
-    /**
-     *
-     */
-    virtual double getBaseVal()
-        {
-        return baseVal;
-        }
-
-    /**
-     *
-     */
-    virtual void setBaseVal(double val) throw (DOMException)
-        {
-        baseVal = val;
-        }
-
-    /**
-     *
-     */
-    virtual double getAnimVal()
-        {
-        return animVal;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGAnimatedNumber()
-        {
-        baseVal = animVal = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGAnimatedNumber(double val)
-        {
-        baseVal = val;
-        animVal = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGAnimatedNumber(double baseValArg, double animValArg)
-        {
-        baseVal = baseValArg;
-        animVal = animValArg;
-        }
-
-    /**
-     *
-     */
-    SVGAnimatedNumber(const SVGAnimatedNumber &other)
-        {
-        baseVal = other.baseVal;
-        animVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedNumber() {}
-
-protected:
-
-    double baseVal, animVal;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGNumberList
-#########################################################################*/
-
-/**
- *
- */
-class SVGNumberList
-{
-public:
-
-    /**
-     *
-     */
-    virtual unsigned long getNumberOfItems()
-        {
-        return items.size();
-        }
-
-
-    /**
-     *
-     */
-    virtual void clear() throw( DOMException )
-        {
-        items.clear();
-        }
-
-    /**
-     *
-     */
-    virtual SVGNumber initialize (const SVGNumber &newItem)
-                    throw( DOMException, SVGException )
-        {
-        items.clear();
-        items.push_back(newItem);
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGNumber getItem ( unsigned long index )
-                                  throw( DOMException )
-        {
-        if (index>=items.size())
-            {
-            SVGNumber num;
-            return num;
-            }
-        return items[index];
-        }
-
-    /**
-     *
-     */
-    virtual SVGNumber insertItemBefore ( const SVGNumber &newItem,
-                                         unsigned long index )
-                                         throw( DOMException, SVGException )
-        {
-        if (index>=items.size())
-            {
-            items.push_back(newItem);
-            }
-        else
-            {
-            std::vector<SVGNumber>::iterator iter = items.begin() + index;
-            items.insert(iter, newItem);
-            }
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGNumber replaceItem ( const SVGNumber &newItem,
-                                    unsigned long index )
-                                    throw( DOMException, SVGException )
-        {
-        if (index>=items.size())
-            {
-            SVGNumber num;
-            return num;
-            }
-        std::vector<SVGNumber>::iterator iter = items.begin() + index;
-        *iter = newItem;
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGNumber removeItem ( unsigned long index )
-                                  throw( DOMException )
-        {
-        if (index>=items.size())
-            {
-            SVGNumber num;
-            return num;
-            }
-        std::vector<SVGNumber>::iterator iter = items.begin() + index;
-        SVGNumber oldval = *iter;
-        items.erase(iter);
-        return oldval;
-        }
-
-    /**
-     *
-     */
-    virtual SVGNumber appendItem ( const SVGNumber &newItem )
-                                   throw( DOMException, SVGException )
-        {
-        items.push_back(newItem);
-        return newItem;
-        }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGNumberList() {}
-
-    /**
-     *
-     */
-    SVGNumberList(const SVGNumberList &other)
-        {
-        items = other.items;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGNumberList() {}
-
-protected:
-
-    std::vector<SVGNumber>items;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedNumberList
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedNumberList
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGNumberList &getBaseVal()
-        {
-        return baseVal;
-        }
-
-    /**
-     *
-     */
-    virtual SVGNumberList &getAnimVal()
-        {
-        return animVal;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGAnimatedNumberList() {}
-
-    /**
-     *
-     */
-    SVGAnimatedNumberList(const SVGAnimatedNumberList &other)
-        {
-        baseVal = other.baseVal;
-        animVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedNumberList() {}
-
-protected:
-
-    SVGNumberList baseVal;
-    SVGNumberList animVal;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLength
-#########################################################################*/
-
-/**
- *
- */
-class SVGLength
-{
-public:
-
-    /**
-     * Length Unit Types
-     */
-    typedef enum
-        {
-        SVG_LENGTHTYPE_UNKNOWN    = 0,
-        SVG_LENGTHTYPE_NUMBER     = 1,
-        SVG_LENGTHTYPE_PERCENTAGE = 2,
-        SVG_LENGTHTYPE_EMS        = 3,
-        SVG_LENGTHTYPE_EXS        = 4,
-        SVG_LENGTHTYPE_PX         = 5,
-        SVG_LENGTHTYPE_CM         = 6,
-        SVG_LENGTHTYPE_MM         = 7,
-        SVG_LENGTHTYPE_IN         = 8,
-        SVG_LENGTHTYPE_PT         = 9,
-        SVG_LENGTHTYPE_PC         = 10
-        } LengthUnitType;
-
-
-    /**
-     *
-     */
-    virtual unsigned short getUnitType( )
-        {
-        return unitType;
-        }
-
-    /**
-     *
-     */
-    virtual double getValue( )
-        {
-        return value;
-        }
-
-    /**
-     *
-     */
-    virtual void setValue( double val )  throw (DOMException)
-        {
-        value = val;
-        }
-
-    /**
-     *
-     */
-    virtual double getValueInSpecifiedUnits( )
-        {
-        double result = 0.0;
-        //fill this in
-        return result;
-        }
-
-    /**
-     *
-     */
-    virtual void setValueInSpecifiedUnits( double /*val*/ )
-                                           throw (DOMException)
-        {
-        //fill this in
-        }
-
-    /**
-     *
-     */
-    virtual DOMString getValueAsString( )
-        {
-        DOMString ret;
-        char buf[32];
-        snprintf(buf, 31, "%f", value);
-        ret.append(buf);
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual void setValueAsString( const DOMString& /*val*/ )
-                                   throw (DOMException)
-        {
-        }
-
-
-    /**
-     *
-     */
-    virtual void newValueSpecifiedUnits ( unsigned short /*unitType*/, double /*val*/ )
-        {
-        }
-
-    /**
-     *
-     */
-    virtual void convertToSpecifiedUnits ( unsigned short /*unitType*/ )
-        {
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGLength()
-        {
-        unitType = SVG_LENGTHTYPE_UNKNOWN;
-        value    = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGLength(const SVGLength &other)
-        {
-        unitType  = other.unitType;
-        value     = other.value;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGLength() {}
-
-protected:
-
-    int unitType;
-
-    double value;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedLength
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedLength
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGLength &getBaseVal()
-        {
-        return baseVal;
-        }
-
-    /**
-     *
-     */
-    virtual SVGLength &getAnimVal()
-        {
-        return animVal;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGAnimatedLength() {}
-
-    /**
-     *
-     */
-    SVGAnimatedLength(const SVGAnimatedLength &other)
-        {
-        baseVal = other.baseVal;
-        animVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedLength() {}
-
-protected:
-
-    SVGLength baseVal, animVal;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLengthList
-#########################################################################*/
-
-/**
- *
- */
-class SVGLengthList
-{
-public:
-
-    /**
-     *
-     */
-    virtual unsigned long getNumberOfItems()
-        {
-        return items.size();
-        }
-
-
-    /**
-     *
-     */
-    virtual void clear (  ) throw( DOMException )
-        {
-        items.clear();
-        }
-
-    /**
-     *
-     */
-    virtual SVGLength initialize (const SVGLength &newItem )
-                    throw( DOMException, SVGException )
-        {
-        items.clear();
-        items.push_back(newItem);
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGLength getItem (unsigned long index)
-                    throw( DOMException )
-        {
-        if (index>=items.size())
-            {
-            SVGLength ret;
-            return ret;
-            }
-        return items[index];
-        }
-
-    /**
-     *
-     */
-    virtual SVGLength insertItemBefore (const SVGLength &newItem,
-                                         unsigned long index )
-                                   throw( DOMException, SVGException )
-        {
-        if (index>=items.size())
-            {
-            items.push_back(newItem);
-            }
-        else
-            {
-            std::vector<SVGLength>::iterator iter = items.begin() + index;
-            items.insert(iter, newItem);
-            }
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGLength replaceItem (const SVGLength &newItem,
-                                    unsigned long index )
-                               throw( DOMException, SVGException )
-        {
-        if (index>=items.size())
-            {
-            SVGLength ret;
-            return ret;
-            }
-        std::vector<SVGLength>::iterator iter = items.begin() + index;
-        *iter = newItem;
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGLength removeItem (unsigned long index )
-                    throw( DOMException )
-        {
-        if (index>=items.size())
-            {
-            SVGLength ret;
-            return ret;
-            }
-        std::vector<SVGLength>::iterator iter = items.begin() + index;
-        SVGLength oldval = *iter;
-        items.erase(iter);
-        return oldval;
-        }
-
-    /**
-     *
-     */
-    virtual SVGLength appendItem (const SVGLength &newItem )
-                    throw( DOMException, SVGException )
-        {
-        items.push_back(newItem);
-        return newItem;
-        }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGLengthList() {}
-
-    /**
-     *
-     */
-    SVGLengthList(const SVGLengthList &other)
-        {
-        items = other.items;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGLengthList() {}
-
-protected:
-
-    std::vector<SVGLength>items;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedLengthList
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedLengthList
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGLengthList &getBaseVal()
-        {
-        return baseVal;
-        }
-
-    /**
-     *
-     */
-    virtual SVGLengthList &getAnimVal()
-        {
-        return animVal;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGAnimatedLengthList() {}
-
-    /**
-     *
-     */
-   SVGAnimatedLengthList(const SVGAnimatedLengthList &other)
-        {
-        baseVal = other.baseVal;
-        animVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedLengthList() {}
-
-protected:
-
-    SVGLengthList baseVal, animVal;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAngle
-#########################################################################*/
-
-/**
- *
- */
-class SVGAngle
-{
-public:
-
-    /**
-     *  Angle Unit Types
-     */
-    typedef enum
-        {
-        SVG_ANGLETYPE_UNKNOWN     = 0,
-        SVG_ANGLETYPE_UNSPECIFIED = 1,
-        SVG_ANGLETYPE_DEG         = 2,
-        SVG_ANGLETYPE_RAD         = 3,
-        SVG_ANGLETYPE_GRAD        = 4
-        } AngleUnitType;
-
-
-
-    /**
-     *
-     */
-    virtual unsigned short getUnitType()
-        {
-        return unitType;
-        }
-
-    /**
-     *
-     */
-    virtual double getValue()
-        {
-        return value;
-        }
-
-    /**
-     *
-     */
-    virtual void setValue(double val) throw (DOMException)
-        {
-        value = val;
-        }
-
-    /**
-     *
-     */
-    virtual double getValueInSpecifiedUnits()
-        {
-        double result = 0.0;
-        //convert here
-        return result;
-        }
-
-    /**
-     *
-     */
-    virtual void setValueInSpecifiedUnits(double /*val*/)
-                                     throw (DOMException)
-        {
-        //do conversion
-        }
-
-    /**
-     *
-     */
-    virtual DOMString getValueAsString()
-        {
-        DOMString result;
-        char buf[32];
-        snprintf(buf, 31, "%f", value);
-        result.append(buf);
-        return result;
-        }
-
-    /**
-     *
-     */
-    virtual void setValueAsString(const DOMString &/*val*/)
-                                  throw (DOMException)
-        {
-        //convert here
-        }
-
-
-    /**
-     *
-     */
-    virtual void newValueSpecifiedUnits (unsigned short /*unitType*/,
-                                         double /*valueInSpecifiedUnits*/ )
-        {
-        //convert here
-        }
-
-    /**
-     *
-     */
-    virtual void convertToSpecifiedUnits (unsigned short /*unitType*/ )
-        {
-        //convert here
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGAngle()
-        {
-        unitType = SVG_ANGLETYPE_UNKNOWN;
-        value    = 0.0;
-        }
-
-    /**
-     *
-     */
-    SVGAngle(const SVGAngle &other)
-        {
-        unitType = other.unitType;
-        value    = other.value;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAngle() {}
-
-protected:
-
-    int unitType;
-
-    double value;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedAngle
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedAngle
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAngle getBaseVal()
-        {
-        return baseVal;
-        }
-
-    /**
-     *
-     */
-    virtual SVGAngle getAnimVal()
-        {
-        return animVal;
-        }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGAnimatedAngle() {}
-
-    /**
-     *
-     */
-    SVGAnimatedAngle(const SVGAngle &angle)
-        { baseVal = angle; }
-
-    /**
-     *
-     */
-    SVGAnimatedAngle(const SVGAnimatedAngle &other)
-        {
-        baseVal = other.baseVal;
-        animVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedAngle() {}
-
-protected:
-
-    SVGAngle baseVal, animVal;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGICCColor
-#########################################################################*/
-
-/**
- *
- */
-class SVGICCColor
-{
-public:
-
-    /**
-     *
-     */
-    virtual DOMString getColorProfile()
-        {
-        return colorProfile;
-        }
-
-    /**
-     *
-     */
-    virtual void setColorProfile(const DOMString &val) throw (DOMException)
-        {
-        colorProfile = val;
-        }
-
-    /**
-     *
-     */
-    virtual SVGNumberList &getColors()
-        {
-        return colors;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGICCColor() {}
-
-    /**
-     *
-     */
-    SVGICCColor(const SVGICCColor &other)
-        {
-        colorProfile = other.colorProfile;
-        colors       = other.colors;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGICCColor() {}
-
-protected:
-
-    DOMString colorProfile;
-
-    SVGNumberList colors;
-
-};
-
-
-/*#########################################################################
-## SVGColor
-#########################################################################*/
-
-/**
- *
- */
-class SVGColor : virtual public css::CSSValue
-{
-public:
-
-
-    /**
-     * Color Types
-     */
-    typedef enum
-        {
-        SVG_COLORTYPE_UNKNOWN           = 0,
-        SVG_COLORTYPE_RGBCOLOR          = 1,
-        SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2,
-        SVG_COLORTYPE_CURRENTCOLOR      = 3
-        } ColorType;
-
-
-    /**
-     *
-     */
-    virtual unsigned short getColorType()
-        {
-        return colorType;
-        }
-
-    /**
-     *
-     */
-    virtual css::RGBColor getRgbColor()
-        {
-        css::RGBColor col;
-        return col;
-        }
-
-    /**
-     *
-     */
-    virtual SVGICCColor getIccColor()
-        {
-        SVGICCColor col;
-        return col;
-        }
-
-
-    /**
-     *
-     */
-    virtual void setRGBColor (const DOMString& /*rgbColor*/ )
-                              throw( SVGException )
-        {
-        }
-
-    /**
-     *
-     */
-    virtual void setRGBColorICCColor (const DOMString& /*rgbColor*/,
-                                      const DOMString& /*iccColor*/ )
-                                      throw( SVGException )
-        {
-        }
-
-    /**
-     *
-     */
-    virtual void setColor (unsigned short /*colorType*/,
-                           const DOMString& /*rgbColor*/,
-                           const DOMString& /*iccColor*/ )
-                           throw( SVGException )
-        {
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGColor()
-        {
-        colorType = SVG_COLORTYPE_UNKNOWN;
-        }
-
-    /**
-     *
-     */
-    SVGColor(const SVGColor &other) : css::CSSValue(other)
-        {
-        colorType = other.colorType;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGColor() {}
-
-protected:
-
-    int colorType;
-
-};
-
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGRect
-#########################################################################*/
-
-/**
- *
- */
-class SVGRect
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        {
-        return x;
-        }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        {
-        x = val;
-        }
-
-    /**
-     *
-     */
-    virtual double getY()
-        {
-        return y;
-        }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        {
-        y = val;
-        }
-
-    /**
-     *
-     */
-    virtual double getWidth()
-        {
-        return width;
-        }
-
-    /**
-     *
-     */
-    virtual void setWidth(double val) throw (DOMException)
-        {
-        width = val;
-        }
-
-    /**
-     *
-     */
-    virtual double getHeight()
-        {
-        return height;
-        }
-
-    /**
-     *
-     */
-    virtual void setHeight(double val) throw (DOMException)
-        {
-        height = val;
-        }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGRect()
-        {
-        x = y = width = height = 0.0;
-        }
-
-    /**
-     *
-     */
-    SVGRect(const SVGRect &other)
-        {
-        x = other.x;
-        y = other.y;
-        width = other.width;
-        height = other.height;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGRect() {}
-
-protected:
-
-    double x, y, width, height;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedRect
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedRect
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGRect &getBaseVal()
-        {
-        return baseVal;
-        }
-
-    /**
-     *
-     */
-    virtual SVGRect &getAnimVal()
-        {
-        return animVal;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGAnimatedRect()
-        {
-        }
-
-    /**
-     *
-     */
-    SVGAnimatedRect(const SVGAnimatedRect &other)
-        {
-        baseVal = other.baseVal;
-        animVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedRect() {}
-
-protected:
-
-    SVGRect baseVal, animVal;
-
-};
-
-
-
-/*#########################################################################
-## SVGPoint
-#########################################################################*/
-
-/**
- *
- */
-class SVGPoint
-{
-public:
-
-
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    /**
-     *
-     */
-    virtual SVGPoint matrixTransform(const SVGMatrix &/*matrix*/)
-        {
-        SVGPoint point;
-        return point;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPoint()
-        { x = y = 0; }
-
-    /**
-     *
-     */
-    SVGPoint(const SVGPoint &other)
-        {
-        x = other.x;
-        y = other.y;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPoint() {}
-
-protected:
-
-    double x, y;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPointList
-#########################################################################*/
-
-/**
- *
- */
-class SVGPointList
-{
-public:
-
-    /**
-     *
-     */
-    virtual unsigned long getNumberOfItems()
-        { return items.size(); }
-
-    /**
-     *
-     */
-    virtual void clear() throw( DOMException )
-        { items.clear(); }
-
-    /**
-     *
-     */
-    virtual SVGPoint initialize(const SVGPoint &newItem)
-                             throw( DOMException, SVGException )
-        {
-        items.clear();
-        items.push_back(newItem);
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPoint getItem(unsigned long index )
-                             throw( DOMException )
-        {
-        if (index >= items.size())
-            {
-            SVGPoint point;
-            return point;
-            }
-        return items[index];
-        }
-
-    /**
-     *
-     */
-    virtual SVGPoint insertItemBefore(const SVGPoint &newItem,
-                                      unsigned long index )
-                                      throw( DOMException, SVGException )
-        {
-        if (index >= items.size())
-            items.push_back(newItem);
-        else
-            {
-            std::vector<SVGPoint>::iterator iter = items.begin() + index;
-            items.insert(iter, newItem);
-            }
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPoint replaceItem(const SVGPoint &newItem,
-                                  unsigned long index )
-                                  throw( DOMException, SVGException )
-        {
-        if (index >= items.size())
-            {
-            SVGPoint point;
-            return point;
-            }
-        std::vector<SVGPoint>::iterator iter = items.begin() + index;
-        *iter = newItem;
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPoint removeItem(unsigned long index )
-                                  throw( DOMException )
-        {
-        if (index >= items.size())
-            {
-            SVGPoint point;
-            return point;
-            }
-        std::vector<SVGPoint>::iterator iter = items.begin() + index;
-        SVGPoint oldItem = *iter;
-        items.erase(iter);
-        return oldItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPoint appendItem(const SVGPoint &newItem)
-                              throw( DOMException, SVGException )
-        {
-        items.push_back(newItem);
-        return newItem;
-        }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPointList() {}
-
-
-    /**
-     *
-     */
-    SVGPointList(const SVGPointList &other)
-        {
-        items = other.items;
-        }
-
-
-    /**
-     *
-     */
-    virtual ~SVGPointList() {}
-
-protected:
-
-    std::vector<SVGPoint> items;
-
-};
-
-
-
-
-/*#########################################################################
-## SVGUnitTypes
-#########################################################################*/
-
-/**
- *
- */
-class SVGUnitTypes
-{
-public:
-
-    /**
-     * Unit Types
-     */
-    typedef enum
-        {
-        SVG_UNIT_TYPE_UNKNOWN           = 0,
-        SVG_UNIT_TYPE_USERSPACEONUSE    = 1,
-        SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2
-        } UnitType;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGUnitTypes() {}
-
-    /**
-     *
-     */
-    virtual ~SVGUnitTypes() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGStylable
-#########################################################################*/
-
-/**
- *
- */
-class SVGStylable
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getClassName()
-        {
-        return className;
-        }
-
-    /**
-     *
-     */
-    virtual css::CSSStyleDeclaration getStyle()
-        {
-        return style;
-        }
-
-
-    /**
-     *
-     */
-    virtual css::CSSValue getPresentationAttribute (const DOMString& /*name*/ )
-        {
-        css::CSSValue val;
-        //perform a lookup
-        return val;
-        }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGStylable() {}
-
-    /**
-     *
-     */
-    SVGStylable(const SVGStylable &other)
-        {
-        className = other.className;
-        style     = other.style;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGStylable() {}
-
-protected:
-
-    SVGAnimatedString className;
-    css::CSSStyleDeclaration style;
-
-};
-
-
-/*#########################################################################
-## SVGLocatable
-#########################################################################*/
-
-/**
- *
- */
-class SVGLocatable
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGElement *getNearestViewportElement()
-        {
-        SVGElement *result = NULL;
-        return result;
-        }
-
-    /**
-     *
-     */
-    virtual SVGElement *getFarthestViewportElement()
-        {
-        SVGElement *result = NULL;
-        return result;
-        }
-
-    /**
-     *
-     */
-    virtual SVGRect getBBox (  )
-        {
-        return bbox;
-        }
-
-    /**
-     *
-     */
-    virtual SVGMatrix getCTM (  )
-        {
-        return ctm;
-        }
-
-    /**
-     *
-     */
-    virtual SVGMatrix getScreenCTM (  )
-        {
-        return screenCtm;
-        }
-
-    /**
-     *
-     */
-    virtual SVGMatrix getTransformToElement (const SVGElement &/*element*/)
-                    throw( SVGException )
-        {
-        SVGMatrix result;
-        //do calculations
-        return result;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGLocatable() {}
-
-    /**
-     *
-     */
-    SVGLocatable(const SVGLocatable &/*other*/)
-        {
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGLocatable() {}
-
-protected:
-
-    SVGRect bbox;
-    SVGMatrix ctm;
-    SVGMatrix screenCtm;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTransformable
-#########################################################################*/
-
-/**
- *
- */
-class SVGTransformable : public SVGLocatable
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedTransformList &getTransform()
-        {
-        return transforms;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGTransformable() {}
-
-    /**
-     *
-     */
-    SVGTransformable(const SVGTransformable &other) : SVGLocatable(other)
-        {
-        transforms = other.transforms;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGTransformable() {}
-
-protected:
-
-    SVGAnimatedTransformList transforms;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTests
-#########################################################################*/
-
-/**
- *
- */
-class SVGTests
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGStringList &getRequiredFeatures()
-        {
-        return requiredFeatures;
-        }
-
-    /**
-     *
-     */
-    virtual SVGStringList &getRequiredExtensions()
-        {
-        return requiredExtensions;
-        }
-
-    /**
-     *
-     */
-    virtual SVGStringList &getSystemLanguage()
-        {
-        return systemLanguage;
-        }
-
-
-    /**
-     *
-     */
-    virtual bool hasExtension (const DOMString& /*extension*/ )
-        {
-        return false;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGTests() {}
-
-    /**
-     *
-     */
-    SVGTests(const SVGTests &other)
-        {
-        requiredFeatures   = other.requiredFeatures;
-        requiredExtensions = other.requiredExtensions;
-        systemLanguage     = other.systemLanguage;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGTests() {}
-
-protected:
-
-    SVGStringList requiredFeatures;
-    SVGStringList requiredExtensions;
-    SVGStringList systemLanguage;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLangSpace
-#########################################################################*/
-
-/**
- *
- */
-class SVGLangSpace
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual DOMString getXmllang()
-        {
-        return xmlLang;
-        }
-
-    /**
-     *
-     */
-    virtual void setXmllang(const DOMString &val)
-                                     throw (DOMException)
-        {
-        xmlLang = val;
-        }
-
-    /**
-     *
-     */
-    virtual DOMString getXmlspace()
-        {
-        return xmlSpace;
-        }
-
-    /**
-     *
-     */
-    virtual void setXmlspace(const DOMString &val)
-                                     throw (DOMException)
-        {
-        xmlSpace = val;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGLangSpace() {}
-
-    /**
-     *
-     */
-    SVGLangSpace(const SVGLangSpace &other)
-        {
-        xmlLang  = other.xmlLang;
-        xmlSpace = other.xmlSpace;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGLangSpace() {}
-
-protected:
-
-    DOMString xmlLang;
-    DOMString xmlSpace;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGExternalResourcesRequired
-#########################################################################*/
-
-/**
- *
- */
-class SVGExternalResourcesRequired
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedBoolean getExternalResourcesRequired()
-        { return required; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGExternalResourcesRequired()
-        {  }
-
-
-    /**
-     *
-     */
-    SVGExternalResourcesRequired(const SVGExternalResourcesRequired &other)
-        {
-        required = other.required;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGExternalResourcesRequired() {}
-
-protected:
-
-    SVGAnimatedBoolean required;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPreserveAspectRatio
-#########################################################################*/
-
-/**
- *
- */
-class SVGPreserveAspectRatio
-{
-public:
-
-
-    /**
-     * Alignment Types
-     */
-    typedef enum
-        {
-        SVG_PRESERVEASPECTRATIO_UNKNOWN  = 0,
-        SVG_PRESERVEASPECTRATIO_NONE     = 1,
-        SVG_PRESERVEASPECTRATIO_XMINYMIN = 2,
-        SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3,
-        SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4,
-        SVG_PRESERVEASPECTRATIO_XMINYMID = 5,
-        SVG_PRESERVEASPECTRATIO_XMIDYMID = 6,
-        SVG_PRESERVEASPECTRATIO_XMAXYMID = 7,
-        SVG_PRESERVEASPECTRATIO_XMINYMAX = 8,
-        SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9,
-        SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10
-        } AlignmentType;
-
-
-    /**
-     * Meet-or-slice Types
-     */
-    typedef enum
-        {
-        SVG_MEETORSLICE_UNKNOWN  = 0,
-        SVG_MEETORSLICE_MEET     = 1,
-        SVG_MEETORSLICE_SLICE    = 2
-        } MeetOrSliceType;
-
-
-    /**
-     *
-     */
-    virtual unsigned short getAlign()
-        { return align; }
-
-    /**
-     *
-     */
-    virtual void setAlign(unsigned short val) throw (DOMException)
-        { align = val; }
-
-    /**
-     *
-     */
-    virtual unsigned short getMeetOrSlice()
-        { return meetOrSlice; }
-
-    /**
-     *
-     */
-    virtual void setMeetOrSlice(unsigned short val) throw (DOMException)
-        { meetOrSlice = val; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPreserveAspectRatio()
-        {
-        align       = SVG_PRESERVEASPECTRATIO_UNKNOWN;
-        meetOrSlice = SVG_MEETORSLICE_UNKNOWN;
-        }
-
-    /**
-     *
-     */
-    SVGPreserveAspectRatio(const SVGPreserveAspectRatio &other)
-        {
-        align       = other.align;
-        meetOrSlice = other.meetOrSlice;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPreserveAspectRatio() {}
-
-protected:
-
-    unsigned short align;
-    unsigned short meetOrSlice;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedPreserveAspectRatio
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedPreserveAspectRatio
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual SVGPreserveAspectRatio getBaseVal()
-        { return baseVal; }
-
-    /**
-     *
-     */
-    virtual SVGPreserveAspectRatio getAnimVal()
-        { return animVal; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGAnimatedPreserveAspectRatio() {}
-
-    /**
-     *
-     */
-    SVGAnimatedPreserveAspectRatio(const SVGAnimatedPreserveAspectRatio &other)
-        {
-        baseVal = other.baseVal;
-        baseVal = other.animVal;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedPreserveAspectRatio() {}
-
-protected:
-
-    SVGPreserveAspectRatio baseVal;
-    SVGPreserveAspectRatio animVal;
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFitToViewBox
-#########################################################################*/
-
-/**
- *
- */
-class SVGFitToViewBox
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedRect getViewBox()
-        { return viewBox; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()
-        { return preserveAspectRatio; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGFitToViewBox()
-        {}
-
-    /**
-     *
-     */
-
-    SVGFitToViewBox(const SVGFitToViewBox &other)
-        {
-        viewBox = other.viewBox;
-        preserveAspectRatio = other.preserveAspectRatio;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGFitToViewBox() {}
-
-protected:
-
-    SVGAnimatedRect viewBox;
-
-    SVGAnimatedPreserveAspectRatio preserveAspectRatio;
-
-};
-
-
-/*#########################################################################
-## SVGZoomAndPan
-#########################################################################*/
-
-/**
- *
- */
-class SVGZoomAndPan
-{
-public:
-
-
-    /**
-     * Zoom and Pan Types
-     */
-    typedef enum
-        {
-        SVG_ZOOMANDPAN_UNKNOWN = 0,
-        SVG_ZOOMANDPAN_DISABLE = 1,
-        SVG_ZOOMANDPAN_MAGNIFY = 2
-        } ZoomAndPanType;
-
-
-    /**
-     *
-     */
-    virtual unsigned short getZoomAndPan()
-        { return zoomAndPan; }
-
-    /**
-     *
-     */
-    virtual void setZoomAndPan(unsigned short val) throw (DOMException)
-        { zoomAndPan = val; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGZoomAndPan()
-        { zoomAndPan = SVG_ZOOMANDPAN_UNKNOWN; }
-
-    /**
-     *
-     */
-    SVGZoomAndPan(const SVGZoomAndPan &other)
-        { zoomAndPan = other.zoomAndPan; }
-
-    /**
-     *
-     */
-    virtual ~SVGZoomAndPan() {}
-
-protected:
-
-    unsigned short zoomAndPan;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGViewSpec
-#########################################################################*/
-
-/**
- *
- */
-class SVGViewSpec : public SVGZoomAndPan,
-                    public SVGFitToViewBox
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGTransformList getTransform()
-        { return transform; }
-
-    /**
-     *
-     */
-    virtual SVGElement *getViewTarget()
-        { return viewTarget; }
-
-    /**
-     *
-     */
-    virtual DOMString getViewBoxString()
-        {
-        DOMString ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual DOMString getPreserveAspectRatioString()
-        {
-        DOMString ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual DOMString getTransformString()
-        {
-        DOMString ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual DOMString getViewTargetString()
-        {
-        DOMString ret;
-        return ret;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGViewSpec()
-        {
-        viewTarget = NULL;
-        }
-
-    /**
-     *
-     */
-    SVGViewSpec(const SVGViewSpec &other) : SVGZoomAndPan(other), SVGFitToViewBox(other)
-        {
-        viewTarget = other.viewTarget;
-        transform  = other.transform;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGViewSpec() {}
-
-protected:
-
-    SVGElement *viewTarget;
-    SVGTransformList transform;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGURIReference
-#########################################################################*/
-
-/**
- *
- */
-class SVGURIReference
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getHref()
-        { return href; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGURIReference() {}
-
-    /**
-     *
-     */
-    SVGURIReference(const SVGURIReference &other)
-        {
-        href = other.href;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGURIReference() {}
-
-protected:
-
-    SVGAnimatedString href;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGCSSRule
-#########################################################################*/
-
-/**
- *
- */
-class SVGCSSRule : public css::CSSRule
-{
-public:
-
-
-    /**
-     * Additional CSS RuleType to support ICC color specifications
-     */
-    typedef enum
-        {
-        COLOR_PROFILE_RULE = 7
-        } ColorProfileRuleType;
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGCSSRule()
-        { type = COLOR_PROFILE_RULE; }
-
-    /**
-     *
-     */
-    SVGCSSRule(const SVGCSSRule &other) : css::CSSRule(other)
-        { type = COLOR_PROFILE_RULE; }
-
-    /**
-     *
-     */
-    virtual ~SVGCSSRule() {}
-
-};
-
-
-
-/*#########################################################################
-## SVGRenderingIntent
-#########################################################################*/
-
-/**
- *
- */
-class SVGRenderingIntent
-{
-public:
-
-    /**
-     * Rendering Intent Types
-     */
-    typedef enum
-        {
-        RENDERING_INTENT_UNKNOWN               = 0,
-        RENDERING_INTENT_AUTO                  = 1,
-        RENDERING_INTENT_PERCEPTUAL            = 2,
-        RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3,
-        RENDERING_INTENT_SATURATION            = 4,
-        RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5
-        } RenderingIntentType;
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGRenderingIntent()
-        {
-        renderingIntentType = RENDERING_INTENT_UNKNOWN;
-        }
-
-    /**
-     *
-     */
-    SVGRenderingIntent(const SVGRenderingIntent &other)
-        {
-        renderingIntentType = other.renderingIntentType;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGRenderingIntent() {}
-
-protected:
-
-    unsigned short renderingIntentType;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-###########################################################################
-## P A T H    S E G M E N T S
-###########################################################################
-#########################################################################*/
-
-static char const *const pathSegLetters[] =
-{
-    "@", // PATHSEG_UNKNOWN,
-    "z", // PATHSEG_CLOSEPATH
-    "M", // PATHSEG_MOVETO_ABS
-    "m", // PATHSEG_MOVETO_REL,
-    "L", // PATHSEG_LINETO_ABS
-    "l", // PATHSEG_LINETO_REL
-    "C", // PATHSEG_CURVETO_CUBIC_ABS
-    "c", // PATHSEG_CURVETO_CUBIC_REL
-    "Q", // PATHSEG_CURVETO_QUADRATIC_ABS,
-    "q", // PATHSEG_CURVETO_QUADRATIC_REL
-    "A", // PATHSEG_ARC_ABS
-    "a", // PATHSEG_ARC_REL,
-    "H", // PATHSEG_LINETO_HORIZONTAL_ABS,
-    "h", // PATHSEG_LINETO_HORIZONTAL_REL
-    "V", // PATHSEG_LINETO_VERTICAL_ABS
-    "v", // PATHSEG_LINETO_VERTICAL_REL
-    "S", // PATHSEG_CURVETO_CUBIC_SMOOTH_ABS
-    "s", // PATHSEG_CURVETO_CUBIC_SMOOTH_REL
-    "T", // PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS
-    "t"  // PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL
-};
-
-/*#########################################################################
-## SVGPathSeg
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSeg
-{
-public:
-
-
-
-    /**
-     *  Path Segment Types
-     */
-    typedef enum
-        {
-        PATHSEG_UNKNOWN                      = 0,
-        PATHSEG_CLOSEPATH                    = 1,
-        PATHSEG_MOVETO_ABS                   = 2,
-        PATHSEG_MOVETO_REL                   = 3,
-        PATHSEG_LINETO_ABS                   = 4,
-        PATHSEG_LINETO_REL                   = 5,
-        PATHSEG_CURVETO_CUBIC_ABS            = 6,
-        PATHSEG_CURVETO_CUBIC_REL            = 7,
-        PATHSEG_CURVETO_QUADRATIC_ABS        = 8,
-        PATHSEG_CURVETO_QUADRATIC_REL        = 9,
-        PATHSEG_ARC_ABS                      = 10,
-        PATHSEG_ARC_REL                      = 11,
-        PATHSEG_LINETO_HORIZONTAL_ABS        = 12,
-        PATHSEG_LINETO_HORIZONTAL_REL        = 13,
-        PATHSEG_LINETO_VERTICAL_ABS          = 14,
-        PATHSEG_LINETO_VERTICAL_REL          = 15,
-        PATHSEG_CURVETO_CUBIC_SMOOTH_ABS     = 16,
-        PATHSEG_CURVETO_CUBIC_SMOOTH_REL     = 17,
-        PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18,
-        PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19
-        } PathSegmentType;
-
-    /**
-     *
-     */
-    virtual unsigned short getPathSegType()
-        { return type; }
-
-    /**
-     *
-     */
-    virtual DOMString getPathSegTypeAsLetter()
-        {
-        int typ = type;
-        if (typ<0 || typ>PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL)
-            typ = PATHSEG_UNKNOWN;
-        char const *ch = pathSegLetters[typ];
-        DOMString letter = ch;
-        return letter;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSeg()
-        { type = PATHSEG_UNKNOWN; }
-
-    /**
-     *
-     */
-    SVGPathSeg(const SVGPathSeg &other)
-        {
-        type = other.type;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSeg() {}
-
-protected:
-
-    int type;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegClosePath
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegClosePath : public SVGPathSeg
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegClosePath()
-        {
-        type = PATHSEG_CLOSEPATH;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegClosePath(const SVGPathSegClosePath &other) : SVGPathSeg(other)
-        {
-        type = PATHSEG_CLOSEPATH;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegClosePath() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGPathSegMovetoAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegMovetoAbs : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegMovetoAbs()
-        {
-        type = PATHSEG_MOVETO_ABS;
-        x = y = 0.0;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegMovetoAbs(double xArg, double yArg)
-        {
-        type = PATHSEG_MOVETO_ABS;
-        x = xArg; y = yArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegMovetoAbs(const SVGPathSegMovetoAbs &other) : SVGPathSeg(other)
-        {
-        type = PATHSEG_MOVETO_ABS;
-        x = other.x; y = other.y;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegMovetoAbs() {}
-
-protected:
-
-    double x,y;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegMovetoRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegMovetoRel : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegMovetoRel()
-        {
-        type = PATHSEG_MOVETO_REL;
-        x = y = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegMovetoRel(double xArg, double yArg)
-        {
-        type = PATHSEG_MOVETO_REL;
-        x = xArg; y = yArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegMovetoRel(const SVGPathSegMovetoRel &other) : SVGPathSeg(other)
-        {
-        type = PATHSEG_MOVETO_REL;
-        x = other.x; y = other.y;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegMovetoRel() {}
-
-protected:
-
-    double x,y;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoAbs : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegLinetoAbs()
-        {
-        type = PATHSEG_LINETO_ABS;
-        x = y = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegLinetoAbs(double xArg, double yArg)
-        {
-        type = PATHSEG_LINETO_ABS;
-        x = xArg; y = yArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegLinetoAbs(const SVGPathSegLinetoAbs &other) : SVGPathSeg(other)
-        {
-        type = PATHSEG_LINETO_ABS;
-        x = other.x; y = other.y;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegLinetoAbs() {}
-
-protected:
-
-    double x,y;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoRel : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegLinetoRel()
-        {
-        type = PATHSEG_LINETO_REL;
-        x = y = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegLinetoRel(double xArg, double yArg)
-        {
-        type = PATHSEG_LINETO_REL;
-        x = xArg; y = yArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegLinetoRel(const SVGPathSegLinetoRel &other) : SVGPathSeg(other)
-        {
-        type = PATHSEG_LINETO_REL;
-        x = other.x; y = other.y;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegLinetoRel() {}
-
-protected:
-
-    double x,y;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoCubicAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoCubicAbs : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    /**
-     *
-     */
-    virtual double getX1()
-        { return x1; }
-
-    /**
-     *
-     */
-    virtual void setX1(double val) throw (DOMException)
-        { x1 = val; }
-
-    /**
-     *
-     */
-    virtual double getY1()
-        { return y1; }
-
-    /**
-     *
-     */
-    virtual void setY1(double val) throw (DOMException)
-        { y1 = val; }
-
-
-    /**
-     *
-     */
-    virtual double getX2()
-        { return x2; }
-
-    /**
-     *
-     */
-    virtual void setX2(double val) throw (DOMException)
-        { x2 = val; }
-
-    /**
-     *
-     */
-    virtual double getY2()
-        { return y2; }
-
-    /**
-     *
-     */
-    virtual void setY2(double val) throw (DOMException)
-        { y2 = val; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicAbs()
-        {
-        type = PATHSEG_CURVETO_CUBIC_ABS;
-        x = y = x1 = y1 = x2 = y2 = 0.0;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicAbs(double xArg,  double yArg,
-                              double x1Arg, double y1Arg,
-                              double x2Arg, double y2Arg)
-        {
-        type = PATHSEG_CURVETO_CUBIC_ABS;
-        x  = xArg;   y  = yArg;
-        x1 = x1Arg;  y1 = y1Arg;
-        x2 = x2Arg;  y2 = y2Arg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicAbs(const SVGPathSegCurvetoCubicAbs &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_CURVETO_CUBIC_ABS;
-        x  = other.x;  y  = other.y;
-        x1 = other.x1; y1 = other.y1;
-        x2 = other.x2; y2 = other.y2;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegCurvetoCubicAbs() {}
-
-protected:
-
-    double x, y, x1, y1, x2, y2;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoCubicRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoCubicRel : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    /**
-     *
-     */
-    virtual double getX1()
-        { return x1; }
-
-    /**
-     *
-     */
-    virtual void setX1(double val) throw (DOMException)
-        { x1 = val; }
-
-    /**
-     *
-     */
-    virtual double getY1()
-        { return y1; }
-
-    /**
-     *
-     */
-    virtual void setY1(double val) throw (DOMException)
-        { y1 = val; }
-
-
-    /**
-     *
-     */
-    virtual double getX2()
-        { return x2; }
-
-    /**
-     *
-     */
-    virtual void setX2(double val) throw (DOMException)
-        { x2 = val; }
-
-    /**
-     *
-     */
-    virtual double getY2()
-        { return y2; }
-
-    /**
-     *
-     */
-    virtual void setY2(double val) throw (DOMException)
-        { y2 = val; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicRel()
-        {
-        type = PATHSEG_CURVETO_CUBIC_REL;
-        x = y = x1 = y1 = x2 = y2 = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicRel(double xArg,  double yArg,
-                              double x1Arg, double y1Arg,
-                              double x2Arg, double y2Arg)
-        {
-        type = PATHSEG_CURVETO_CUBIC_REL;
-        x  = xArg;   y  = yArg;
-        x1 = x1Arg;  y1 = y1Arg;
-        x2 = x2Arg;  y2 = y2Arg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicRel(const SVGPathSegCurvetoCubicRel &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_CURVETO_CUBIC_REL;
-        x  = other.x;  y  = other.y;
-        x1 = other.x1; y1 = other.y1;
-        x2 = other.x2; y2 = other.y2;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegCurvetoCubicRel() {}
-
-protected:
-
-    double x, y, x1, y1, x2, y2;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoQuadraticAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoQuadraticAbs : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    /**
-     *
-     */
-    virtual double getX1()
-        { return x1; }
-
-    /**
-     *
-     */
-    virtual void setX1(double val) throw (DOMException)
-        { x1 = val; }
-
-    /**
-     *
-     */
-    virtual double getY1()
-        { return y1; }
-
-    /**
-     *
-     */
-    virtual void setY1(double val) throw (DOMException)
-        { y1 = val; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticAbs()
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_ABS;
-        x = y = x1 = y1 = 0.0;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticAbs(double xArg,  double yArg,
-                              double x1Arg, double y1Arg)
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_ABS;
-        x  = xArg;   y  = yArg;
-        x1 = x1Arg;  y1 = y1Arg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticAbs(const SVGPathSegCurvetoQuadraticAbs &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_ABS;
-        x  = other.x;  y  = other.y;
-        x1 = other.x1; y1 = other.y1;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegCurvetoQuadraticAbs() {}
-
-protected:
-
-    double x, y, x1, y1;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoQuadraticRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoQuadraticRel : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    /**
-     *
-     */
-    virtual double getX1()
-        { return x1; }
-
-    /**
-     *
-     */
-    virtual void setX1(double val) throw (DOMException)
-        { x1 = val; }
-
-    /**
-     *
-     */
-    virtual double getY1()
-        { return y1; }
-
-    /**
-     *
-     */
-    virtual void setY1(double val) throw (DOMException)
-        { y1 = val; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticRel()
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_REL;
-        x = y = x1 = y1 = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticRel(double xArg,  double yArg,
-                                  double x1Arg, double y1Arg)
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_REL;
-        x  = xArg;   y  = yArg;
-        x1 = x1Arg;  y1 = y1Arg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticRel(const SVGPathSegCurvetoQuadraticRel &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_REL;
-        x  = other.x;  y  = other.y;
-        x1 = other.x1; y1 = other.y1;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegCurvetoQuadraticRel() {}
-
-protected:
-
-    double x, y, x1, y1;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegArcAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegArcAbs : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    /**
-     *
-     */
-    virtual double getR1()
-        { return r1; }
-
-    /**
-     *
-     */
-    virtual void setR1(double val) throw (DOMException)
-        { r1 = val; }
-
-    /**
-     *
-     */
-    virtual double getR2()
-        { return r2; }
-
-    /**
-     *
-     */
-    virtual void setR2(double val) throw (DOMException)
-        { r2 = val; }
-
-    /**
-     *
-     */
-    virtual double getAngle()
-        { return angle; }
-
-    /**
-     *
-     */
-    virtual void setAngle(double val) throw (DOMException)
-        { angle = val; }
-
-    /**
-     *
-     */
-    virtual bool getLargeArcFlag()
-        { return largeArcFlag; }
-
-    /**
-     *
-     */
-    virtual void setLargeArcFlag(bool val) throw (DOMException)
-        { largeArcFlag = val; }
-
-    /**
-     *
-     */
-    virtual bool getSweepFlag()
-        { return sweepFlag; }
-
-    /**
-     *
-     */
-    virtual void setSweepFlag(bool val) throw (DOMException)
-        { sweepFlag = val; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    SVGPathSegArcAbs()
-        {
-        type = PATHSEG_ARC_ABS;
-        x = y = r1 = r2 = angle = 0.0;
-        largeArcFlag = sweepFlag = false;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegArcAbs(double xArg,  double yArg,
-                     double r1Arg, double r2Arg,
-                     double angleArg,
-                     bool largeArcFlagArg,
-                     bool sweepFlagArg )
-
-        {
-        type = PATHSEG_ARC_ABS;
-        x  = xArg;   y  = yArg;
-        r1 = r1Arg;  r2 = r2Arg;
-        angle        = angleArg;
-        largeArcFlag = largeArcFlagArg;
-        sweepFlag    = sweepFlagArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegArcAbs(const SVGPathSegArcAbs &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_ARC_ABS;
-        x  = other.x;  y  = other.y;
-        r1 = other.r1; r2 = other.r2;
-        angle        = other.angle;
-        largeArcFlag = other.largeArcFlag;
-        sweepFlag    = other.sweepFlag;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegArcAbs() {}
-
-protected:
-
-    double x, y, r1, r2, angle;
-    bool largeArcFlag;
-    bool sweepFlag;
-
-};
-
-
-
-/*#########################################################################
-## SVGPathSegArcRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegArcRel : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    /**
-     *
-     */
-    virtual double getR1()
-        { return r1; }
-
-    /**
-     *
-     */
-    virtual void setR1(double val) throw (DOMException)
-        { r1 = val; }
-
-    /**
-     *
-     */
-    virtual double getR2()
-        { return r2; }
-
-    /**
-     *
-     */
-    virtual void setR2(double val) throw (DOMException)
-        { r2 = val; }
-
-    /**
-     *
-     */
-    virtual double getAngle()
-        { return angle; }
-
-    /**
-     *
-     */
-    virtual void setAngle(double val) throw (DOMException)
-        { angle = val; }
-
-    /**
-     *
-     */
-    virtual bool getLargeArcFlag()
-        { return largeArcFlag; }
-
-    /**
-     *
-     */
-    virtual void setLargeArcFlag(bool val) throw (DOMException)
-        { largeArcFlag = val; }
-
-    /**
-     *
-     */
-    virtual bool getSweepFlag()
-        { return sweepFlag; }
-
-    /**
-     *
-     */
-    virtual void setSweepFlag(bool val) throw (DOMException)
-        { sweepFlag = val; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    SVGPathSegArcRel()
-        {
-        type = PATHSEG_ARC_REL;
-        x = y = r1 = r2 = angle = 0.0;
-        largeArcFlag = sweepFlag = false;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegArcRel(double xArg, double yArg,
-                     double r1Arg, double r2Arg,
-                     double angleArg,
-                     bool largeArcFlagArg,
-                     bool sweepFlagArg )
-
-        {
-        type = PATHSEG_ARC_REL;
-        x  = xArg;   y  = yArg;
-        r1 = r1Arg;  r2 = r2Arg;
-        angle        = angleArg;
-        largeArcFlag = largeArcFlagArg;
-        sweepFlag    = sweepFlagArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegArcRel(const SVGPathSegArcRel &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_ARC_REL;
-        x  = other.x;  y  = other.y;
-        r1 = other.r1; r2 = other.r2;
-        angle        = other.angle;
-        largeArcFlag = other.largeArcFlag;
-        sweepFlag    = other.sweepFlag;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegArcRel() {}
-
-protected:
-
-    double x, y, r1, r2, angle;
-    bool largeArcFlag;
-    bool sweepFlag;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoHorizontalAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoHorizontalAbs : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegLinetoHorizontalAbs()
-        {
-        type = PATHSEG_LINETO_HORIZONTAL_ABS;
-        x = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegLinetoHorizontalAbs(double xArg)
-        {
-        type = PATHSEG_LINETO_HORIZONTAL_ABS;
-        x = xArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegLinetoHorizontalAbs(const SVGPathSegLinetoHorizontalAbs &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_LINETO_HORIZONTAL_ABS;
-        x = other.x;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegLinetoHorizontalAbs() {}
-
-protected:
-
-    double x;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoHorizontalRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoHorizontalRel : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegLinetoHorizontalRel()
-        {
-        type = PATHSEG_LINETO_HORIZONTAL_REL;
-        x = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegLinetoHorizontalRel(double xArg)
-        {
-        type = PATHSEG_LINETO_HORIZONTAL_REL;
-        x = xArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegLinetoHorizontalRel(const SVGPathSegLinetoHorizontalRel &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_LINETO_HORIZONTAL_REL;
-        x = other.x;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegLinetoHorizontalRel() {}
-
-protected:
-
-    double x;
-
-};
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoVerticalAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoVerticalAbs : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegLinetoVerticalAbs()
-        {
-        type = PATHSEG_LINETO_VERTICAL_ABS;
-        y = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegLinetoVerticalAbs(double yArg)
-        {
-        type = PATHSEG_LINETO_VERTICAL_ABS;
-        y = yArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegLinetoVerticalAbs(const SVGPathSegLinetoVerticalAbs &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_LINETO_VERTICAL_ABS;
-        y = other.y;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegLinetoVerticalAbs() {}
-
-protected:
-
-    double y;
-
-};
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoVerticalRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoVerticalRel : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegLinetoVerticalRel()
-        {
-        type = PATHSEG_LINETO_VERTICAL_REL;
-        y = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegLinetoVerticalRel(double yArg)
-        {
-        type = PATHSEG_LINETO_VERTICAL_REL;
-        y = yArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegLinetoVerticalRel(const SVGPathSegLinetoVerticalRel &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_LINETO_VERTICAL_REL;
-        y = other.y;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegLinetoVerticalRel() {}
-
-protected:
-
-    double y;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoCubicSmoothAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoCubicSmoothAbs : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    /**
-     *
-     */
-    virtual double getX2()
-        { return x2; }
-
-    /**
-     *
-     */
-    virtual void setX2(double val) throw (DOMException)
-        { x2 = val; }
-
-    /**
-     *
-     */
-    virtual double getY2()
-        { return y2; }
-
-    /**
-     *
-     */
-    virtual void setY2(double val) throw (DOMException)
-        { y2 = val; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicSmoothAbs()
-        {
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;
-        x = y = x2 = y2 = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicSmoothAbs(double xArg,   double yArg,
-                                    double x2Arg, double y2Arg)
-        {
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;
-        x  = xArg;    y  = yArg;
-        x2 = x2Arg;   y2 = y2Arg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicSmoothAbs(const SVGPathSegCurvetoCubicSmoothAbs &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;
-        x  = other.x;  y  = other.y;
-        x2 = other.x2; y2 = other.y2;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegCurvetoCubicSmoothAbs() {}
-
-protected:
-
-    double x, y, x2, y2;
-
-};
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoCubicSmoothRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoCubicSmoothRel : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-    /**
-     *
-     */
-    virtual double getX2()
-        { return x2; }
-
-    /**
-     *
-     */
-    virtual void setX2(double val) throw (DOMException)
-        { x2 = val; }
-
-    /**
-     *
-     */
-    virtual double getY2()
-        { return y2; }
-
-    /**
-     *
-     */
-    virtual void setY2(double val) throw (DOMException)
-        { y2 = val; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicSmoothRel()
-        {
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;
-        x = y = x2 = y2 = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicSmoothRel(double xArg,   double yArg,
-                                    double x2Arg, double y2Arg)
-        {
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;
-        x  = xArg;    y  = yArg;
-        x2 = x2Arg;   y2 = y2Arg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoCubicSmoothRel(const SVGPathSegCurvetoCubicSmoothRel &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;
-        x  = other.x;  y  = other.y;
-        x2 = other.x2; y2 = other.y2;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegCurvetoCubicSmoothRel() {}
-
-protected:
-
-    double x, y, x2, y2;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoQuadraticSmoothAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoQuadraticSmoothAbs : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticSmoothAbs()
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;
-        x = y = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticSmoothAbs(double xArg, double yArg)
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;
-        x = xArg;     y = yArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticSmoothAbs(const SVGPathSegCurvetoQuadraticSmoothAbs &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;
-        x = y = 0.0;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegCurvetoQuadraticSmoothAbs() {}
-
-protected:
-
-    double x, y;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoQuadraticSmoothRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoQuadraticSmoothRel : public SVGPathSeg
-{
-public:
-
-    /**
-     *
-     */
-    virtual double getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual void setX(double val) throw (DOMException)
-        { x = val; }
-
-    /**
-     *
-     */
-    virtual double getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual void setY(double val) throw (DOMException)
-        { y = val; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticSmoothRel()
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;
-        x = y = 0.0;
-        }
-
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticSmoothRel(double xArg, double yArg)
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;
-        x = xArg;     y = yArg;
-        }
-
-    /**
-     *
-     */
-    SVGPathSegCurvetoQuadraticSmoothRel(const SVGPathSegCurvetoQuadraticSmoothRel &other)
-                     : SVGPathSeg(other)
-        {
-        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;
-        x = y = 0.0;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegCurvetoQuadraticSmoothRel() {}
-
-protected:
-
-    double x, y;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegList
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegList
-{
-public:
-
-    /**
-     *
-     */
-    virtual unsigned long getNumberOfItems()
-        { return items.size(); }
-
-
-    /**
-     *
-     */
-    virtual void clear () throw( DOMException )
-        { items.clear(); }
-
-    /**
-     *
-     */
-    virtual SVGPathSeg initialize (const SVGPathSeg &newItem)
-                    throw( DOMException, SVGException )
-        {
-        items.clear();
-        items.push_back(newItem);
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPathSeg getItem (unsigned long index)
-                    throw( DOMException )
-        {
-        if (index >= items.size())
-            {
-            SVGPathSeg seg;
-            return seg;
-            }
-        return items[index];
-        }
-
-    /**
-     *
-     */
-    virtual SVGPathSeg insertItemBefore(const SVGPathSeg &newItem,
-                                        unsigned long index )
-                          throw( DOMException, SVGException )
-        {
-        if (index >= items.size())
-            items.push_back(newItem);
-        else
-            {
-            std::vector<SVGPathSeg>::iterator iter = items.begin() + index;
-            items.insert(iter, newItem);
-            }
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPathSeg replaceItem(const SVGPathSeg &newItem,
-                                   unsigned long index )
-                              throw( DOMException, SVGException )
-        {
-        if (index >= items.size())
-            {
-            SVGPathSeg seg;
-            return seg;
-            }
-        std::vector<SVGPathSeg>::iterator iter = items.begin() + index;
-        *iter = newItem;
-        return newItem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPathSeg removeItem (unsigned long index)
-                                  throw (DOMException)
-        {
-        if (index >= items.size())
-            {
-            SVGPathSeg seg;
-            return seg;
-            }
-        std::vector<SVGPathSeg>::iterator iter = items.begin() + index;
-        SVGPathSeg olditem = *iter;
-        items.erase(iter);
-        return olditem;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPathSeg appendItem (const SVGPathSeg &newItem)
-                    throw( DOMException, SVGException )
-        {
-        items.push_back(newItem);
-        return newItem;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPathSegList() {}
-
-
-    /**
-     *
-     */
-    SVGPathSegList(const SVGPathSegList &other)
-        {
-        items = other.items;
-        }
-
-
-    /**
-     *
-     */
-    virtual ~SVGPathSegList() {}
-
-protected:
-
-    std::vector<SVGPathSeg> items;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedPathData
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedPathData
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGPathSegList getPathSegList()
-        {
-        SVGPathSegList list;
-        return list;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPathSegList getNormalizedPathSegList()
-        {
-        SVGPathSegList list;
-        return list;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPathSegList getAnimatedPathSegList()
-        {
-        SVGPathSegList list;
-        return list;
-        }
-
-    /**
-     *
-     */
-    virtual SVGPathSegList getAnimatedNormalizedPathSegList()
-        {
-        SVGPathSegList list;
-        return list;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-   SVGAnimatedPathData()
-        {}
-
-    /**
-     *
-     */
-   SVGAnimatedPathData(const SVGAnimatedPathData &/*other*/)
-        {
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedPathData() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedPoints
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedPoints
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGPointList getPoints()
-        { return points; }
-
-    /**
-     *
-     */
-    virtual SVGPointList getAnimatedPoints()
-        { return animatedPoints; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGAnimatedPoints() {}
-
-    /**
-     *
-     */
-    SVGAnimatedPoints(const SVGAnimatedPoints &other)
-        {
-        points         = other.points;
-        animatedPoints = other.animatedPoints;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGAnimatedPoints() {}
-
-protected:
-
-    SVGPointList points;
-    SVGPointList animatedPoints;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGPaint
-#########################################################################*/
-
-/**
- *
- */
-class SVGPaint : public SVGColor
-{
-public:
-
-
-    /**
-     * Paint Types
-     */
-    typedef enum
-        {
-        SVG_PAINTTYPE_UNKNOWN               = 0,
-        SVG_PAINTTYPE_RGBCOLOR              = 1,
-        SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR     = 2,
-        SVG_PAINTTYPE_NONE                  = 101,
-        SVG_PAINTTYPE_CURRENTCOLOR          = 102,
-        SVG_PAINTTYPE_URI_NONE              = 103,
-        SVG_PAINTTYPE_URI_CURRENTCOLOR      = 104,
-        SVG_PAINTTYPE_URI_RGBCOLOR          = 105,
-        SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106,
-        SVG_PAINTTYPE_URI                   = 107
-        } PaintType;
-
-
-    /**
-     *
-     */
-    virtual unsigned short getPaintType()
-        { return paintType; }
-
-    /**
-     *
-     */
-    virtual DOMString getUri()
-        { return uri; }
-
-    /**
-     *
-     */
-    virtual void setUri (const DOMString& uriArg )
-        { uri = uriArg; }
-
-    /**
-     *
-     */
-    virtual void setPaint (unsigned short paintTypeArg,
-                           const DOMString& uriArg,
-                           const DOMString& /*rgbColor*/,
-                           const DOMString& /*iccColor*/ )
-                           throw( SVGException )
-        {
-        paintType = paintTypeArg;
-        uri       = uriArg;
-        //do something with rgbColor
-        //do something with iccColor;
-        }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGPaint()
-        {
-        uri       = "";
-        paintType = SVG_PAINTTYPE_UNKNOWN;
-        }
-
-    /**
-     *
-     */
-    SVGPaint(const SVGPaint &other) : css::CSSValue(other), SVGColor(other)
-        {
-        uri       = "";
-        paintType = SVG_PAINTTYPE_UNKNOWN;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGPaint() {}
-
-protected:
-
-    unsigned int paintType;
-    DOMString uri;
-
-};
-
-
-
-
-/*#########################################################################
-## SVGColorProfileRule
-#########################################################################*/
-
-/**
- *
- */
-class SVGColorProfileRule : public SVGCSSRule,
-                            public SVGRenderingIntent
-{
-
-public:
-   /**
-     *
-     */
-    virtual DOMString getSrc()
-        { return src; }
-
-    /**
-     *
-     */
-    virtual void setSrc(const DOMString &val) throw (DOMException)
-        { src = val; }
-
-    /**
-     *
-     */
-    virtual DOMString getName()
-        { return name; }
-
-    /**
-     *
-     */
-    virtual void setName(const DOMString &val) throw (DOMException)
-        { name = val; }
-
-    /**
-     *
-     */
-    virtual unsigned short getRenderingIntent()
-        { return renderingIntent; }
-
-    /**
-     *
-     */
-    virtual void setRenderingIntent(unsigned short val) throw (DOMException)
-        { renderingIntent = val; }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGColorProfileRule() {}
-
-    /**
-     *
-     */
-    SVGColorProfileRule(const SVGColorProfileRule &other)
-               : SVGCSSRule(other), SVGRenderingIntent(other)
-        {
-        renderingIntent = other.renderingIntent;
-        src             = other.src;
-        name            = other.name;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGColorProfileRule() {}
-
-protected:
-
-    unsigned short renderingIntent;
-    DOMString src;
-    DOMString name;
-
-};
-
-
-
-/*#########################################################################
-## SVGFilterPrimitiveStandardAttributes
-#########################################################################*/
-
-/**
- *
- */
-class SVGFilterPrimitiveStandardAttributes : public SVGStylable
-{
-public:
-
-
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getX()
-        { return x; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getY()
-        { return y; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getWidth()
-        { return width; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedLength getHeight()
-        { return height; }
-
-    /**
-     *
-     */
-    virtual SVGAnimatedString getResult()
-        { return result; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-
-    /**
-     *
-     */
-    SVGFilterPrimitiveStandardAttributes()
-        {}
-
-    /**
-     *
-     */
-    SVGFilterPrimitiveStandardAttributes(const SVGFilterPrimitiveStandardAttributes &other)
-                                 : SVGStylable(other)
-        {
-        x      = other.x;
-        y      = other.y;
-        width  = other.width;
-        height = other.height;
-        result = other.result;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGFilterPrimitiveStandardAttributes() {}
-
-protected:
-
-    SVGAnimatedLength x;
-    SVGAnimatedLength y;
-    SVGAnimatedLength width;
-    SVGAnimatedLength height;
-    SVGAnimatedString result;
-
-};
-
-
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGEvent
-#########################################################################*/
-
-/**
- *
- */
-class SVGEvent : events::Event
-{
-public:
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGEvent() {}
-
-    /**
-     *
-     */
-    SVGEvent(const SVGEvent &other) : events::Event(other)
-        {}
-
-    /**
-     *
-     */
-    virtual ~SVGEvent() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGZoomEvent
-#########################################################################*/
-
-/**
- *
- */
-class SVGZoomEvent : events::UIEvent
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGRect getZoomRectScreen()
-        { return zoomRectScreen; }
-
-    /**
-     *
-     */
-    virtual double getPreviousScale()
-        { return previousScale; }
-
-    /**
-     *
-     */
-    virtual SVGPoint getPreviousTranslate()
-        { return previousTranslate; }
-
-    /**
-     *
-     */
-    virtual double getNewScale()
-        { return newScale; }
-
-   /**
-     *
-     */
-    virtual SVGPoint getNewTranslate()
-        { return newTranslate; }
-
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGZoomEvent()
-        {}
-
-    /**
-     *
-     */
-    SVGZoomEvent(const SVGZoomEvent &other) : events::Event(other),
-                                              events::UIEvent(other)
-        {
-        zoomRectScreen    = other.zoomRectScreen;
-        previousScale     = other.previousScale;
-        previousTranslate = other.previousTranslate;
-        newScale          = other.newScale;
-        newTranslate      = other.newTranslate;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGZoomEvent() {}
-
-protected:
-
-    SVGRect  zoomRectScreen;
-    double   previousScale;
-    SVGPoint previousTranslate;
-    double   newScale;
-    SVGPoint newTranslate;
-
-};
-
-
-
-/*#########################################################################
-## SVGElementInstance
-#########################################################################*/
-
-/**
- *
- */
-class SVGElementInstance : public events::EventTarget
-{
-public:
-
-    /**
-     *
-     */
-    virtual SVGElement *getCorrespondingElement()
-        { return correspondingElement; }
-
-    /**
-     *
-     */
-    virtual SVGUseElement *getCorrespondingUseElement()
-        { return correspondingUseElement; }
-
-    /**
-     *
-     */
-    virtual SVGElementInstance getParentNode()
-        {
-        SVGElementInstance ret;
-        return ret;
-        }
-
-    /**
-     *  Since we are using stack types and this is a circular definition,
-     *  we will instead implement this as a global function below:
-     *   SVGElementInstanceList getChildNodes(const SVGElementInstance instance);
-     */
-    //virtual SVGElementInstanceList getChildNodes();
-
-    /**
-     *
-     */
-    virtual SVGElementInstance getFirstChild()
-        {
-        SVGElementInstance ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual SVGElementInstance getLastChild()
-        {
-        SVGElementInstance ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual SVGElementInstance getPreviousSibling()
-        {
-        SVGElementInstance ret;
-        return ret;
-        }
-
-    /**
-     *
-     */
-    virtual SVGElementInstance getNextSibling()
-        {
-        SVGElementInstance ret;
-        return ret;
-        }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGElementInstance() {}
-
-    /**
-     *
-     */
-    SVGElementInstance(const SVGElementInstance &other)
-                        : events::EventTarget(other)
-        {
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGElementInstance() {}
-
-protected:
-
-    SVGElement    *correspondingElement;
-    SVGUseElement *correspondingUseElement;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGElementInstanceList
-#########################################################################*/
-
-/**
- *
- */
-class SVGElementInstanceList
-{
-public:
-
-
-    /**
-     *
-     */
-    virtual unsigned long getLength()
-        { return items.size(); }
-
-    /**
-     *
-     */
-    virtual SVGElementInstance item (unsigned long index )
-        {
-        if (index >= items.size())
-            {
-            SVGElementInstance ret;
-            return ret;
-            }
-        return items[index];
-        }
-
-    /**
-     *  This static method replaces the circular definition of:
-     *        SVGElementInstanceList SVGElementInstance::getChildNodes()
-     *
-     */
-    static SVGElementInstanceList getChildNodes(const SVGElementInstance &/*instance*/)
-        {
-        SVGElementInstanceList list;
-        return list;
-        }
-
-
-    //##################
-    //# Non-API methods
-    //##################
-
-    /**
-     *
-     */
-    SVGElementInstanceList() {}
-
-    /**
-     *
-     */
-    SVGElementInstanceList(const SVGElementInstanceList &other)
-        {
-        items = other.items;
-        }
-
-    /**
-     *
-     */
-    virtual ~SVGElementInstanceList() {}
-
-protected:
-
-    std::vector<SVGElementInstance> items;
-
-
-};
-
-
-
-
-
-
-
-
-
-
-
-
-
-}  //namespace svg
-}  //namespace dom
-}  //namespace w3c
-}  //namespace org
-
-#endif /* __SVGTYPES_H__ */
-/*#########################################################################
-## E N D    O F    F I L E
-#########################################################################*/
-
diff --git a/src/dom/svgimpl.cpp b/src/dom/svgimpl.cpp
new file mode 100644 (file)
index 0000000..03d42e5
--- /dev/null
@@ -0,0 +1,1870 @@
+/**
+ * Phoebe DOM Implementation.
+ *
+ * This is a C++ approximation of the W3C DOM model, which follows
+ * fairly closely the specifications in the various .idl files, copies of
+ * which are provided for reference.  Most important is this one:
+ *
+ * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
+ *
+ * Authors:
+ *   Bob Jamison
+ *
+ * Copyright (C) 2005 Bob Jamison
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include "svgimpl.h"
+
+
+
+namespace org
+{
+namespace w3c
+{
+namespace dom
+{
+namespace svg
+{
+
+
+/*#########################################################################
+## SVGElementImpl
+#########################################################################*/
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+/*#########################################################################
+## SVGDocumentImpl
+#########################################################################*/
+
+
+
+//####################################################
+//# Overload some createXXX() methods from DocumentImpl,
+//# To create our SVG-DOM types
+//####################################################
+
+/**
+ *
+ */
+ElementPtr SVGDocumentImpl::createElement(const DOMString& tagName)
+                           throw(DOMException)
+{
+    SVGElementPtr elem = new SVGElementImpl(this, tagName);
+    return elem;
+}
+
+
+/**
+ *
+ */
+ElementPtr SVGDocumentImpl::createElementNS(const DOMString& namespaceURI,
+                             const DOMString& qualifiedName)
+                             throw(DOMException)
+{
+    SVGElementPtr elem = new SVGElementImpl(this, namespaceURI, qualifiedName);
+    return elem;
+}
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGSVGElementImpl
+#########################################################################*/
+
+
+/**
+ *
+ */
+unsigned long SVGSVGElementImpl::suspendRedraw(unsigned long max_wait_milliseconds )
+{
+    return 0L;
+}
+
+/**
+ *
+ */
+void SVGSVGElementImpl::unsuspendRedraw(unsigned long suspend_handle_id )
+                                  throw ( DOMException )
+{
+}
+
+
+/**
+ *
+ */
+void SVGSVGElementImpl::unsuspendRedrawAll(  )
+{
+}
+
+/**
+ *
+ */
+void SVGSVGElementImpl::forceRedraw(  )
+{
+}
+
+/**
+ *
+ */
+void SVGSVGElementImpl::pauseAnimations(  )
+{
+}
+
+/**
+ *
+ */
+void SVGSVGElementImpl::unpauseAnimations(  )
+{
+}
+
+/**
+ *
+ */
+bool SVGSVGElementImpl::animationsPaused(  )
+{
+    return false;
+}
+
+
+/**
+ *
+ */
+NodeList SVGSVGElementImpl::getIntersectionList(const SVGRect &rect,
+                                           const SVGElementPtr referenceElement )
+{
+    NodeList list;
+    return list;
+}
+
+/**
+ *
+ */
+NodeList SVGSVGElementImpl::getEnclosureList(const SVGRect &rect,
+                                        const SVGElementPtr referenceElement )
+{
+    NodeList list;
+    return list;
+}
+
+/**
+ *
+ */
+bool SVGSVGElementImpl::checkIntersection(const SVGElementPtr element,
+                                          const SVGRect &rect )
+{
+    return false;
+}
+
+/**
+ *
+ */
+bool SVGSVGElementImpl::checkEnclosure(const SVGElementPtr element,
+                                       const SVGRect &rect )
+{
+    return false;
+}
+
+/**
+ *
+ */
+void SVGSVGElementImpl::deselectAll(  )
+{
+}
+
+/**
+ *
+ */
+ElementPtr SVGSVGElementImpl::getElementById(const DOMString& elementId )
+{
+    return NULL;
+}
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+/*#########################################################################
+## SVGGElementImpl
+#########################################################################*/
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+/*#########################################################################
+## SVGDefsElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+/*#########################################################################
+## SVGDescElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+/*#########################################################################
+## SVGTitleElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+/*#########################################################################
+## SVGSymbolElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+/*#########################################################################
+## SVGUseElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGImageElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGSwitchElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+/*#########################################################################
+## GetSVGDocumentImpl
+#########################################################################*/
+
+/**
+ *
+ */
+SVGDocumentPtr GetSVGDocumentImpl::getSVGDocument(  )
+                    throw ( DOMException )
+{
+    return NULL;
+}
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGStyleElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+/*#########################################################################
+## SVGPathElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+SVGAnimatedNumber SVGPathElementImpl::getPathLength()
+{
+    SVGAnimatedNumber ret;
+    return ret;
+}
+
+/**
+ *
+ */
+double SVGPathElementImpl::getTotalLength(  )
+{
+    return 0.0;
+}
+
+/**
+ *
+ */
+SVGPoint SVGPathElementImpl::getPointAtLength(double distance )
+{
+    SVGPoint ret;
+    return ret;
+}
+
+/**
+ *
+ */
+unsigned long SVGPathElementImpl::getPathSegAtLength(double distance )
+{
+    return 0L;
+}
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGRectElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGCircleElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGEllipseElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGLineElementImpl
+#########################################################################*/
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGPolylineElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+/*#########################################################################
+## SVGPolygonElementImpl
+#########################################################################*/
+
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGTextContentElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+SVGAnimatedLength SVGTextContentElementImpl::getTextLength()
+{
+    SVGAnimatedLength ret;
+    return ret;
+}
+
+
+/**
+ *
+ */
+SVGAnimatedEnumeration SVGTextContentElementImpl::getLengthAdjust()
+{
+    SVGAnimatedEnumeration ret;
+    return ret;
+}
+
+
+/**
+ *
+ */
+long SVGTextContentElementImpl::getNumberOfChars(  )
+{
+    return 0L;
+}
+
+/**
+ *
+ */
+double SVGTextContentElementImpl::getComputedTextLength(  )
+{
+    return 0.0;
+}
+
+/**
+ *
+ */
+double SVGTextContentElementImpl::getSubStringLength(unsigned long charnum, unsigned long nchars )
+                                     throw ( DOMException )
+{
+    return 0.0;
+}
+
+/**
+ *
+ */
+SVGPoint SVGTextContentElementImpl::getStartPositionOfChar(unsigned long charnum )
+                                              throw ( DOMException )
+{
+    SVGPoint ret;
+    return ret;
+}
+
+/**
+ *
+ */
+SVGPoint SVGTextContentElementImpl::getEndPositionOfChar(unsigned long charnum )
+                                           throw ( DOMException )
+{
+    SVGPoint ret;
+    return ret;
+}
+
+/**
+ *
+ */
+SVGRect SVGTextContentElementImpl::getExtentOfChar(unsigned long charnum )
+                                      throw ( DOMException )
+{
+    SVGRect ret;
+    return ret;
+}
+
+/**
+ *
+ */
+double SVGTextContentElementImpl::getRotationOfChar(unsigned long charnum )
+                                     throw ( DOMException )
+{
+    return 0.0;
+}
+
+/**
+ *
+ */
+long SVGTextContentElementImpl::getCharNumAtPosition(const SVGPoint &point )
+{
+    return 0L;
+}
+
+/**
+ *
+ */
+void SVGTextContentElementImpl::selectSubString(unsigned long charnum,
+                                                unsigned long nchars )
+                                                throw ( DOMException )
+{
+}
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGTextPositioningElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGTextElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGTSpanElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+/*#########################################################################
+## SVGTRefElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGTextPathElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAltGlyphElementImpl
+#########################################################################*/
+
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAltGlyphDefElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAltGlyphItemElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGGlyphRefElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGMarkerElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGColorProfileElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGGradientElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGLinearGradientElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGRadialGradientElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGStopElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGPatternElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGClipPathElementImpl
+#########################################################################*/
+
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGMaskElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFilterElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEBlendElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEColorMatrixElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEComponentTransferElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGComponentTransferFunctionElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEFuncRElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEFuncGElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEFuncBElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEFuncAElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFECompositeElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEConvolveMatrixElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEDiffuseLightingElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+/*#########################################################################
+## SVGFEDistantLightElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEPointLightElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFESpotLightElementImpl
+#########################################################################*/
+
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEDisplacementMapElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEFloodElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEGaussianBlurElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEImageElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEMergeElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEMergeNodeElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEMorphologyElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEOffsetElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+/*#########################################################################
+## SVGFESpecularLightingElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFETileElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFETurbulenceElementImpl
+#########################################################################*/
+
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGCursorElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGViewElementImpl
+#########################################################################*/
+
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGScriptElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimationElementImpl
+#########################################################################*/
+
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimateElementImpl
+#########################################################################*/
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGSetElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimateMotionElementImpl
+#########################################################################*/
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGMPathElementImpl
+#########################################################################*/
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimateColorElementImpl
+#########################################################################*/
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimateTransformElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFontElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGGlyphElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGMissingGlyphElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGHKernElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGVKernElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFontFaceElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFontFaceSrcElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFontFaceUriElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+/*#########################################################################
+## SVGFontFaceFormatElementImpl
+#########################################################################*/
+
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+/*#########################################################################
+## SVGFontFaceNameElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGDefinitionSrcElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGMetadataElementImpl
+#########################################################################*/
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+/*#########################################################################
+## SVGForeignObjectElementImpl
+#########################################################################*/
+
+
+
+//##################
+//# Non-API methods
+//##################
+
+
+
+
+
+
+
+
+
+
+
+
+}  //namespace svg
+}  //namespace dom
+}  //namespace w3c
+}  //namespace org
+
+
+/*#########################################################################
+## E N D    O F    F I L E
+#########################################################################*/
+
diff --git a/src/dom/svgimpl.h b/src/dom/svgimpl.h
new file mode 100644 (file)
index 0000000..5c2e78f
--- /dev/null
@@ -0,0 +1,5112 @@
+#ifndef __SVGIMPL_H__
+#define __SVGIMPL_H__
+
+/**
+ * Phoebe DOM Implementation.
+ *
+ * This is a C++ approximation of the W3C DOM model, which follows
+ * fairly closely the specifications in the various .idl files, copies of
+ * which are provided for reference.  Most important is this one:
+ *
+ * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
+ *
+ * Authors:
+ *   Bob Jamison
+ *
+ * Copyright (C) 2006 Bob Jamison
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+
+#include "svg.h"
+#include "dom/domimpl.h"
+#include "dom/smilimpl.h"
+
+#include <math.h>
+
+
+
+namespace org
+{
+namespace w3c
+{
+namespace dom
+{
+namespace svg
+{
+
+
+//local definitions
+typedef dom::DOMString DOMString;
+typedef dom::DOMException DOMException;
+typedef dom::Element Element;
+typedef dom::Document Document;
+typedef dom::NodeList NodeList;
+
+
+
+class SVGSVGElementImpl;
+typedef Ptr<SVGSVGElementImpl> SVGSVGElementImplPtr;
+class SVGElementImpl;
+typedef Ptr<SVGElementImpl> SVGElementImplPtr;
+class SVGDocumentImpl;
+typedef Ptr<SVGDocumentImpl> SVGDocumentImplPtr;
+
+/*#########################################################################
+## SVGDocumentImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGDocumentImpl : virtual public SVGDocument, public DocumentImpl
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual DOMString getTitle()
+        { return title; }
+
+    /**
+     *
+     */
+    virtual DOMString getReferrer()
+        { return referrer; }
+
+    /**
+     *
+     */
+    virtual DOMString getDomain()
+        { return domain; }
+
+    /**
+     *
+     */
+    virtual DOMString getURL()
+        { return url; }
+
+    /**
+     *
+     */
+    virtual SVGSVGElementPtr getRootElement()
+        { return rootElement; }
+
+
+    //####################################################
+    //# Overload some createXXX() methods from DocumentImpl,
+    //# To create our SVG-DOM types (in .cpp)
+    //####################################################
+
+    /**
+     *
+     */
+    virtual ElementPtr createElement(const DOMString& tagName)
+                           throw(DOMException);
+
+
+    /**
+     *
+     */
+    virtual ElementPtr createElementNS(const DOMString& namespaceURI,
+                                       const DOMString& qualifiedName)
+                                       throw(DOMException);
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    SVGDocumentImpl(const DOMImplementation *domImpl,
+                    const DOMString         &namespaceURI,
+                    const DOMString         &qualifiedName,
+                    const DocumentTypePtr   doctype)
+                    : DocumentImpl(domImpl, namespaceURI,
+                          qualifiedName, doctype)
+        {
+        init();
+        }
+
+
+    /**
+     *
+     */
+    virtual ~SVGDocumentImpl()
+        {
+        }
+
+protected:
+
+friend class SvgParser;
+
+    void init()
+        {
+        title       = "";
+        referrer    = "";
+        domain      = "";
+        rootElement = NULL;
+        }
+
+    DOMString title;
+    DOMString referrer;
+    DOMString domain;
+    DOMString url;
+    SVGSVGElementPtr rootElement;
+};
+
+
+
+/*#########################################################################
+## SVGElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGElementImpl : virtual public SVGElement,
+                       public ElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual DOMString getId()
+        { return id; }
+
+    /**
+     *
+     */
+    virtual void setId(const DOMString &val)
+                       throw (DOMException)
+        { id = val; }
+
+    /**
+     *
+     */
+    virtual DOMString getXmlBase()
+        { return xmlBase; }
+
+    /**
+     *
+     */
+    virtual void setXmlBase(const DOMString &val)
+                            throw (DOMException)
+        { xmlBase = val; }
+
+    /**
+     *
+     */
+    virtual SVGSVGElementPtr getOwnerSVGElement()
+        { return ownerSvgElement; }
+
+    /**
+     *
+     */
+    virtual SVGElementPtr getViewportElement()
+        { return viewportElement; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    SVGElementImpl()
+        {}
+
+    /**
+     *
+     */
+    SVGElementImpl(SVGDocumentImplPtr owner, const DOMString &tagName)
+                    : ElementImpl(owner, tagName)
+        { init(); }
+
+    /**
+     *
+     */
+    SVGElementImpl(SVGDocumentImplPtr owner,
+                   const DOMString &namespaceURI,
+                   const DOMString &tagName)
+                   : ElementImpl(owner, namespaceURI, tagName)
+        { init(); }
+
+
+    /**
+     *
+     */
+    virtual ~SVGElementImpl()
+        {}
+
+protected:
+
+    void init()
+        {
+        id              = "";
+        xmlBase         = "";
+        ownerSvgElement = NULL;
+        viewportElement = NULL;
+        }
+
+    DOMString        id;
+    DOMString        xmlBase;
+    SVGSVGElementPtr ownerSvgElement;
+    SVGElementPtr    viewportElement;
+
+};
+
+
+
+/*#########################################################################
+## SVGSVGElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGSVGElementImpl : virtual public SVGSVGElement,
+                          public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth()
+        { return width; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight()
+        { return height; }
+
+    /**
+     *
+     */
+    virtual DOMString getContentScriptType()
+        { return contentScriptType; }
+
+    /**
+     *
+     */
+    virtual void setContentScriptType(const DOMString &val)
+                                     throw (DOMException)
+        { contentScriptType = val; }
+
+
+    /**
+     *
+     */
+    virtual DOMString getContentStyleType()
+        { return contentStyleType; }
+
+    /**
+     *
+     */
+    virtual void setContentStyleType(const DOMString &val)
+                                     throw (DOMException)
+        { contentStyleType = val; }
+
+    /**
+     *
+     */
+    virtual SVGRect getViewport()
+        { return viewport; }
+
+    /**
+     *
+     */
+    virtual double getPixelUnitToMillimeterX()
+        { return pixelUnitToMillimeterX; }
+
+    /**
+     *
+     */
+    virtual double getPixelUnitToMillimeterY()
+        { return pixelUnitToMillimeterY; }
+
+    /**
+     *
+     */
+    virtual double getScreenPixelToMillimeterX()
+        { return screenPixelToMillimeterX; }
+
+    /**
+     *
+     */
+    virtual double getScreenPixelToMillimeterY()
+        { return screenPixelToMillimeterY; }
+
+
+    /**
+     *
+     */
+    virtual bool getUseCurrentView()
+        { return useCurrentView; }
+
+    /**
+     *
+     */
+    virtual void setUseCurrentView(bool val) throw (DOMException)
+        { useCurrentView = val; }
+
+    /**
+     *
+     */
+    virtual SVGViewSpec getCurrentView()
+        { return currentView; }
+
+
+    /**
+     *
+     */
+    virtual double getCurrentScale()
+        { return currentScale; }
+
+    /**
+     *
+     */
+    virtual void setCurrentScale(double val) throw (DOMException)
+        { currentScale = val; }
+
+
+    /**
+     *
+     */
+    virtual SVGPoint getCurrentTranslate()
+        { return currentTranslate; }
+
+
+    /**
+     *
+     */
+    virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds );
+
+    /**
+     *
+     */
+    virtual void unsuspendRedraw (unsigned long suspend_handle_id )
+                                  throw( DOMException );
+
+    /**
+     *
+     */
+    virtual void unsuspendRedrawAll (  );
+
+    /**
+     *
+     */
+    virtual void forceRedraw (  );
+
+    /**
+     *
+     */
+    virtual void pauseAnimations (  );
+
+    /**
+     *
+     */
+    virtual void unpauseAnimations (  );
+
+    /**
+     *
+     */
+    virtual bool animationsPaused (  );
+
+    /**
+     *
+     */
+    virtual double getCurrentTime (  )
+        { return currentTime; }
+
+    /**
+     *
+     */
+    virtual void setCurrentTime (double seconds )
+        { currentTime = seconds; }
+
+    /**
+     *
+     */
+    virtual NodeList getIntersectionList (const SVGRect &rect,
+                                          const SVGElementPtr referenceElement );
+
+    /**
+     *
+     */
+    virtual NodeList getEnclosureList (const SVGRect &rect,
+                                       const SVGElementPtr referenceElement );
+
+    /**
+     *
+     */
+    virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect );
+
+    /**
+     *
+     */
+    virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect );
+
+    /**
+     *
+     */
+    virtual void deselectAll (  );
+
+    /**
+     *
+     */
+    virtual SVGNumber createSVGNumber (  )
+        {
+        SVGNumber ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual SVGLength createSVGLength (  )
+        {
+        SVGLength ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual SVGAngle createSVGAngle (  )
+        {
+        SVGAngle ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPoint createSVGPoint (  )
+        {
+        SVGPoint ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual SVGMatrix createSVGMatrix (  )
+        {
+        SVGMatrix ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual SVGRect createSVGRect (  )
+        {
+        SVGRect ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual SVGTransform createSVGTransform (  )
+        {
+        SVGTransform ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix )
+        {
+        SVGTransform ret;
+        ret.setMatrix(matrix);
+        return ret;
+        }
+
+
+    /**
+     *
+     */
+    virtual ElementPtr getElementById (const DOMString& elementId );
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGSVGElementImpl() : SVGElementImpl()
+        {}
+
+
+
+    /**
+     *
+     */
+    virtual ~SVGSVGElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength x;
+    SVGAnimatedLength y;
+    SVGAnimatedLength width;
+    SVGAnimatedLength height;
+    DOMString         contentScriptType;
+    DOMString         contentStyleType;
+    SVGRect           viewport;
+    double            pixelUnitToMillimeterX;
+    double            pixelUnitToMillimeterY;
+    double            screenPixelToMillimeterX;
+    double            screenPixelToMillimeterY;
+    bool              useCurrentView;
+    SVGViewSpec       currentView;
+    double            currentScale;
+    SVGPoint          currentTranslate;
+
+    double currentTime;
+
+};
+
+
+
+/*#########################################################################
+## SVGGElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGGElementImpl : virtual public SVGGElement, public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGGElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGGElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+/*#########################################################################
+## SVGDefsElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGDefsElementImpl : virtual public SVGDefsElement,
+                           public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGDefsElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGDefsElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGDescElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGDescElementImpl :  virtual public SVGDescElement,
+                            public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGDescElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGDescElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGTitleElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTitleElementImpl : virtual public SVGTitleElement,
+                            public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGTitleElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGTitleElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGSymbolElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGSymbolElementImpl : virtual public SVGSymbolElement,
+                             public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGSymbolElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGSymbolElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGUseElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGUseElementImpl : public SVGElementImpl
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth()
+        { return width; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight()
+        { return height; }
+
+    /**
+     *
+     */
+    virtual SVGElementInstance getInstanceRoot()
+        { return instanceRoot; }
+
+    /**
+     *
+     */
+    virtual SVGElementInstance getAnimatedInstanceRoot()
+        { return animatedInstanceRoot; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGUseElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGUseElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength x;
+    SVGAnimatedLength y;
+    SVGAnimatedLength width;
+    SVGAnimatedLength height;
+    SVGElementInstance instanceRoot;
+    SVGElementInstance animatedInstanceRoot;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGImageElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGImageElementImpl : virtual public SVGImageElement,
+                            public SVGElementImpl
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth()
+        { return width; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight()
+        { return height; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()
+        { return preserveAspectRatio; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGImageElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGImageElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength x;
+    SVGAnimatedLength y;
+    SVGAnimatedLength width;
+    SVGAnimatedLength height;
+    SVGAnimatedPreserveAspectRatio preserveAspectRatio;
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGSwitchElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGSwitchElementImpl : virtual public SVGSwitchElement,
+                             public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGSwitchElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGSwitchElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## GetSVGDocumentImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class GetSVGDocumentImpl : public virtual GetSVGDocument
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGDocumentPtr getSVGDocument (  )
+                    throw( DOMException );
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    GetSVGDocumentImpl() {}
+
+    /**
+     *
+     */
+    virtual ~GetSVGDocumentImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGStyleElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGStyleElementImpl : virtual public SVGStyleElement,
+                            public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual DOMString getXmlspace()
+        { return xmlSpace; }
+
+    /**
+     *
+     */
+    virtual void setXmlspace(const DOMString &val)
+                             throw (DOMException)
+        { xmlSpace = val; }
+
+    /**
+     *
+     */
+    virtual DOMString getType()
+        { return type; }
+
+    /**
+     *
+     */
+    virtual void setType(const DOMString &val)
+                         throw (DOMException)
+        { type = val; }
+
+    /**
+     *
+     */
+    virtual DOMString getMedia()
+        { return media; }
+
+    /**
+     *
+     */
+    virtual void setMedia(const DOMString &val)
+                          throw (DOMException)
+        { media = val; }
+
+    /**
+     *
+     */
+    virtual DOMString getTitle()
+        { return title; }
+
+    /**
+     *
+     */
+    virtual void setTitle(const DOMString &val)
+                          throw (DOMException)
+        { title = val; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGStyleElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGStyleElementImpl() {}
+
+protected:
+
+    DOMString xmlSpace;
+    DOMString type;
+    DOMString media;
+    DOMString title;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathElementImpl : virtual public SVGPathElement,
+                           public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getPathLength();
+
+    /**
+     *
+     */
+    virtual double getTotalLength (  );
+
+    /**
+     *
+     */
+    virtual SVGPoint getPointAtLength (double distance );
+
+    /**
+     *
+     */
+    virtual unsigned long getPathSegAtLength (double distance );
+
+    /**
+     *
+     */
+    virtual SVGPathSegClosePath
+              createSVGPathSegClosePath (  )
+         {
+         SVGPathSegClosePath ret;
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegMovetoAbs
+              createSVGPathSegMovetoAbs (double x, double y )
+         {
+         SVGPathSegMovetoAbs ret(x, y);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegMovetoRel
+              createSVGPathSegMovetoRel (double x, double y )
+         {
+         SVGPathSegMovetoRel ret(x, y);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoAbs
+              createSVGPathSegLinetoAbs (double x, double y )
+         {
+         SVGPathSegLinetoAbs ret(x, y);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoRel
+              createSVGPathSegLinetoRel (double x, double y )
+         {
+         SVGPathSegLinetoRel ret(x, y);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoCubicAbs
+              createSVGPathSegCurvetoCubicAbs (double x, double y,
+                        double x1, double y1, double x2, double y2 )
+         {
+         SVGPathSegCurvetoCubicAbs ret(x, y, x1, y1, x2, y2);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoCubicRel
+              createSVGPathSegCurvetoCubicRel (double x, double y,
+                        double x1, double y1, double x2, double y2 )
+         {
+         SVGPathSegCurvetoCubicRel ret(x, y, x1, y1, x2, y2);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoQuadraticAbs
+              createSVGPathSegCurvetoQuadraticAbs (double x, double y,
+                         double x1, double y1 )
+         {
+         SVGPathSegCurvetoQuadraticAbs ret(x, y, x1, y1);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoQuadraticRel
+              createSVGPathSegCurvetoQuadraticRel (double x, double y,
+                         double x1, double y1 )
+         {
+         SVGPathSegCurvetoQuadraticRel ret(x, y, x1, y1);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegArcAbs
+              createSVGPathSegArcAbs (double x, double y,
+                         double r1, double r2, double angle,
+                         bool largeArcFlag, bool sweepFlag )
+         {
+         SVGPathSegArcAbs ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegArcRel
+              createSVGPathSegArcRel (double x, double y, double r1,
+                         double r2, double angle, bool largeArcFlag,
+                         bool sweepFlag )
+         {
+         SVGPathSegArcRel ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoHorizontalAbs
+              createSVGPathSegLinetoHorizontalAbs (double x )
+         {
+         SVGPathSegLinetoHorizontalAbs ret(x);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoHorizontalRel
+              createSVGPathSegLinetoHorizontalRel (double x )
+         {
+         SVGPathSegLinetoHorizontalRel ret(x);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoVerticalAbs
+              createSVGPathSegLinetoVerticalAbs (double y )
+         {
+         SVGPathSegLinetoVerticalAbs ret(y);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegLinetoVerticalRel
+              createSVGPathSegLinetoVerticalRel (double y )
+         {
+         SVGPathSegLinetoVerticalRel ret(y);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoCubicSmoothAbs
+              createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
+                                             double x2, double y2 )
+         {
+         SVGPathSegCurvetoCubicSmoothAbs ret(x, y, x2, y2);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoCubicSmoothRel
+              createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
+                                                     double x2, double y2 )
+         {
+         SVGPathSegCurvetoCubicSmoothRel ret(x, y, x2, y2);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoQuadraticSmoothAbs
+              createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y )
+         {
+         SVGPathSegCurvetoQuadraticSmoothAbs ret(x, y);
+         return ret;
+         }
+
+    /**
+     *
+     */
+    virtual SVGPathSegCurvetoQuadraticSmoothRel
+              createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y )
+         {
+         SVGPathSegCurvetoQuadraticSmoothRel ret(x, y);
+         return ret;
+         }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathElementImpl() {}
+
+
+    /**
+     *
+     */
+    virtual ~SVGPathElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGRectElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGRectElementImpl : virtual public SVGRectElement,
+                           public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth()
+        { return width; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight()
+        { return height; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRx()
+        { return rx; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRy()
+        { return ry; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGRectElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGRectElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength x;
+    SVGAnimatedLength y;
+    SVGAnimatedLength width;
+    SVGAnimatedLength height;
+    SVGAnimatedLength rx;
+    SVGAnimatedLength ry;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGCircleElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGCircleElementImpl : virtual public SVGCircleElement,
+                             public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCx()
+        { return cx; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCy()
+        { return cy; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getR()
+        { return r; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGCircleElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGCircleElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength cx;
+    SVGAnimatedLength cy;
+    SVGAnimatedLength r;
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGEllipseElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGEllipseElementImpl : virtual public SVGEllipseElement,
+                              public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCx()
+        { return cx; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCy()
+        { return cy; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRx()
+        { return rx; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRy()
+        { return ry; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGEllipseElementImpl() {}
+
+    /**
+     *
+     */
+    virtual ~SVGEllipseElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength cx;
+    SVGAnimatedLength cy;
+    SVGAnimatedLength rx;
+    SVGAnimatedLength ry;
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGLineElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGLineElementImpl : virtual public SVGLineElement,
+                           public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX1()
+        { return x1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY1()
+        { return y1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX2()
+        { return x2; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY2()
+        { return y2; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGLineElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength x1;
+    SVGAnimatedLength x2;
+    SVGAnimatedLength y1;
+    SVGAnimatedLength y2;
+};
+
+
+
+
+/*#########################################################################
+## SVGPolylineElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPolylineElementImpl : virtual public SVGPolylineElement,
+                               public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGPolylineElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGPolygonElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPolygonElementImpl : virtual public SVGPolygonElement,
+                              public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGPolygonElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGTextContentElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTextContentElementImpl : virtual public SVGTextContentElement,
+                                  public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getTextLength();
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getLengthAdjust();
+
+
+    /**
+     *
+     */
+    virtual long getNumberOfChars(  );
+
+    /**
+     *
+     */
+    virtual double getComputedTextLength(  );
+
+    /**
+     *
+     */
+    virtual double getSubStringLength(unsigned long charnum,
+                                         unsigned long nchars )
+                                      throw( DOMException );
+
+    /**
+     *
+     */
+    virtual SVGPoint getStartPositionOfChar(unsigned long charnum )
+                                            throw( DOMException );
+
+    /**
+     *
+     */
+    virtual SVGPoint getEndPositionOfChar(unsigned long charnum )
+                                          throw( DOMException );
+
+    /**
+     *
+     */
+    virtual SVGRect getExtentOfChar(unsigned long charnum )
+                                    throw( DOMException );
+
+    /**
+     *
+     */
+    virtual double getRotationOfChar(unsigned long charnum )
+                                     throw( DOMException );
+
+    /**
+     *
+     */
+    virtual long getCharNumAtPosition(const SVGPoint &point );
+
+    /**
+     *
+     */
+    virtual void selectSubString(unsigned long charnum, unsigned long nchars )
+                                 throw( DOMException );
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTextContentElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGTextPositioningElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTextPositioningElementImpl : virtual public SVGTextPositioningElement,
+                                      public SVGTextContentElementImpl
+{
+public:
+
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getDx()
+        { return dx; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getDy()
+        { return dy; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumberList getRotate()
+        { return rotate; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTextPositioningElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength x;
+    SVGAnimatedLength y;
+    SVGAnimatedLength dx;
+    SVGAnimatedLength dy;
+    SVGAnimatedNumberList rotate;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGTextElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTextElementImpl : virtual public SVGTextElement,
+                           public SVGTextPositioningElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTextElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGTSpanElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTSpanElementImpl : virtual public SVGTSpanElement,
+                            public SVGTextPositioningElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTSpanElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGTRefElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTRefElementImpl : virtual public SVGTRefElement,
+                           public SVGTextPositioningElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTRefElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGTextPathElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTextPathElementImpl : virtual public SVGTextPathElement,
+                               public SVGTextContentElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getStartOffset()
+        { return startOffset; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getMethod()
+        { return method; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getSpacing()
+        { return spacing; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGTextPathElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength startOffset;
+    SVGAnimatedEnumeration method;
+    SVGAnimatedEnumeration spacing;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAltGlyphElement
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAltGlyphElementImpl : virtual public SVGAltGlyphElement,
+                               public SVGTextPositioningElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual DOMString getGlyphRef()
+        { return glyphRef; }
+
+    /**
+     *
+     */
+    virtual void setGlyphRef(const DOMString &val)
+                             throw (DOMException)
+        { glyphRef = val; }
+
+    /**
+     *
+     */
+    virtual DOMString getFormat()
+        { return format; }
+
+    /**
+     *
+     */
+    virtual void setFormat(const DOMString &val)
+                           throw (DOMException)
+        { format = val; }
+
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAltGlyphElementImpl() {}
+
+protected:
+
+    DOMString glyphRef;
+    DOMString format;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAltGlyphDefElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAltGlyphDefElementImpl : virtual public SVGAltGlyphDefElement,
+                                  public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAltGlyphDefElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGAltGlyphItemElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAltGlyphItemElementImpl : virtual public SVGAltGlyphItemElement,
+                                   public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAltGlyphItemElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGGlyphRefElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGGlyphRefElementImpl : virtual public SVGGlyphRefElement,
+                               public SVGElementImpl
+{
+public:
+    /**
+     *
+     */
+    virtual DOMString getGlyphRef()
+        { return glyphRef; }
+
+    /**
+     *
+     */
+    virtual void setGlyphRef(const DOMString &val) throw (DOMException)
+        { glyphRef = val; }
+
+    /**
+     *
+     */
+    virtual DOMString getFormat()
+        { return format; }
+
+    /**
+     *
+     */
+    virtual void setFormat(const DOMString &val) throw (DOMException)
+        { format = val; }
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    /**
+     *
+     */
+    virtual double getDx()
+        { return dx; }
+
+    /**
+     *
+     */
+    virtual void setDx(double val) throw (DOMException)
+        { dx = val; }
+
+    /**
+     *
+     */
+    virtual double getDy()
+        { return dy; }
+
+    /**
+     *
+     */
+    virtual void setDy(double val) throw (DOMException)
+        { dy = val; }
+
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGGlyphRefElementImpl() {}
+
+protected:
+
+    DOMString glyphRef;
+    DOMString format;
+    double x, y, dx, dy;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGMarkerElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGMarkerElementImpl : virtual public SVGMarkerElement,
+                             public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRefX()
+        { return refX; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRefY()
+        { return refY; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getMarkerUnits()
+        { return markerUnits; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getMarkerWidth()
+        { return markerWidth; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getMarkerHeight()
+        { return markerHeight; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getOrientType()
+        { return orientType; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedAngle getOrientAngle()
+        { return orientAngle; }
+
+
+    /**
+     *
+     */
+    virtual void setOrientToAuto (  )
+        { orientAuto = true; }
+
+    /**
+     *
+     */
+    virtual void setOrientToAngle (const SVGAngle &angle)
+        {
+        orientAuto = false;
+        orientAngle = SVGAnimatedAngle(angle);
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGMarkerElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength      refX;
+    SVGAnimatedLength      refY;
+    SVGAnimatedEnumeration markerUnits;
+    SVGAnimatedLength      markerWidth;
+    SVGAnimatedLength      markerHeight;
+    SVGAnimatedEnumeration orientType;
+    SVGAnimatedAngle       orientAngle;
+    bool                   orientAuto;
+
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGColorProfileElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGColorProfileElementImpl : virtual public SVGColorProfileElement,
+                                   public SVGElementImpl
+{
+public:
+    /**
+     *
+     */
+    virtual DOMString getLocal()
+        { return local; }
+
+    /**
+     *
+     */
+    virtual void setLocal(const DOMString &val) throw (DOMException)
+        { local = val; }
+
+    /**
+     *
+     */
+    virtual DOMString getName()
+        { return name; }
+
+    /**
+     *
+     */
+    virtual void setName(const DOMString &val) throw (DOMException)
+       { name = val; }
+
+    /**
+     *
+     */
+    virtual unsigned short getRenderingIntent()
+        { return renderingIntent; }
+
+    /**
+     *
+     */
+    virtual void setRenderingIntent(unsigned short val) throw (DOMException)
+       { renderingIntent = val; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGColorProfileElementImpl() {}
+
+protected:
+
+    DOMString local;
+    DOMString name;
+    unsigned short renderingIntent;
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGGradientElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGGradientElementImpl : virtual public SVGGradientElement,
+                               public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getGradientUnits()
+        { return gradientUnits; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedTransformList getGradientTransform()
+        { return gradientTransform; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getSpreadMethod()
+        { return spreadMethod; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGGradientElementImpl() {}
+
+protected:
+
+
+    SVGAnimatedEnumeration   gradientUnits;
+    SVGAnimatedTransformList gradientTransform;
+    SVGAnimatedEnumeration   spreadMethod;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGLinearGradientElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGLinearGradientElementImpl : virtual public SVGLinearGradientElement,
+                                     public SVGGradientElementImpl
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX1()
+        { return x1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY1()
+        { return y1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX2()
+        { return x2; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY2()
+        { return y2; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGLinearGradientElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength x1, x2, y1, y2;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGRadialGradientElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGRadialGradientElementImpl : virtual public SVGRadialGradientElement,
+                                     public SVGGradientElementImpl
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCx()
+        { return cx; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getCy()
+        { return cy; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getR()
+        { return r; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getFx()
+        { return fx; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getFy()
+        { return fy; }
+
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGRadialGradientElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength cx, cy, r, fx, fy;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGStopElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGStopElementImpl : virtual public SVGStopElement,
+                           public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getOffset()
+        { return offset; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGStopElementImpl() {}
+
+protected:
+
+    SVGAnimatedNumber offset;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGPatternElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPatternElementImpl : virtual public SVGPatternElement,
+                              public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getPatternUnits()
+        { return patternUnits; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getPatternContentUnits()
+        { return patternContentUnits; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedTransformList getPatternTransform()
+        { return patternTransform; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth()
+        { return width; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight()
+        { return height; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGPatternElementImpl() {}
+
+protected:
+
+
+    SVGAnimatedEnumeration   patternUnits;
+    SVGAnimatedEnumeration   patternContentUnits;
+    SVGAnimatedTransformList patternTransform;
+    SVGAnimatedLength        x;
+    SVGAnimatedLength        y;
+    SVGAnimatedLength        width;
+    SVGAnimatedLength        height;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGClipPathElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGClipPathElementImpl : virtual public SVGClipPathElement,
+                               public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getClipPathUnits()
+        { return clipPathUnits; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGClipPathElementImpl() {}
+
+protected:
+
+    SVGAnimatedEnumeration clipPathUnits;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGMaskElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGMaskElementImpl : virtual public SVGMaskElement,
+                           public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getMaskUnits()
+        { return maskUnits; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getMaskContentUnits()
+        { return maskContentUnits; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth()
+        { return width; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight()
+        { return height; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGMaskElementImpl() {}
+
+protected:
+
+
+    SVGAnimatedEnumeration maskUnits;
+    SVGAnimatedEnumeration maskContentUnits;
+    SVGAnimatedLength      x;
+    SVGAnimatedLength      y;
+    SVGAnimatedLength      width;
+    SVGAnimatedLength      height;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFilterElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFilterElementImpl : virtual public SVGFilterElement,
+                             public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getFilterUnits()
+        { return filterUnits; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getPrimitiveUnits()
+        { return filterUnits; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth()
+        { return width; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight()
+        { return height; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getFilterResX()
+        { return filterResX; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getFilterResY()
+        { return filterResY; }
+
+    /**
+     *
+     */
+    virtual void setFilterRes (unsigned long filterResXArg,
+                               unsigned long filterResYArg )
+        {
+        filterResX = filterResXArg;
+        filterResY = filterResYArg;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFilterElementImpl() {}
+
+protected:
+
+    SVGAnimatedEnumeration filterUnits;
+    SVGAnimatedEnumeration primitiveUnits;
+    SVGAnimatedLength      x;
+    SVGAnimatedLength      y;
+    SVGAnimatedLength      width;
+    SVGAnimatedLength      height;
+    SVGAnimatedInteger     filterResX;
+    SVGAnimatedInteger     filterResY;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEBlendElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEBlendElementImpl : virtual public SVGFEBlendElement,
+                              public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn2()
+        { return in2; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getMode()
+        { return mode; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEBlendElementImpl() {}
+
+protected:
+
+    SVGAnimatedString in1, in2;
+    SVGAnimatedEnumeration mode;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEColorMatrixElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEColorMatrixElementImpl : virtual public SVGFEColorMatrixElement,
+                                    public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getType()
+        { return type; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumberList getValues()
+        { return values; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEColorMatrixElementImpl() {}
+
+protected:
+
+    SVGAnimatedString in1;
+    SVGAnimatedEnumeration type;
+    SVGAnimatedNumberList values;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEComponentTransferElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEComponentTransferElementImpl :
+                        virtual public SVGFEComponentTransferElement,
+                        public SVGElementImpl
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEComponentTransferElementImpl() {}
+
+protected:
+
+    SVGAnimatedString in1;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGComponentTransferFunctionElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGComponentTransferFunctionElementImpl :
+                            virtual public SVGComponentTransferFunctionElement,
+                            public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getType()
+        { return type; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumberList getTableValues()
+        { return tableValues; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSlope()
+        { return slope; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getIntercept()
+        { return intercept; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getAmplitude()
+        { return amplitude; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getExponent()
+        { return exponent; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getOffset()
+        { return offset; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGComponentTransferFunctionElementImpl() {}
+
+protected:
+
+    SVGAnimatedEnumeration type;
+    SVGAnimatedNumberList  tableValues;
+    SVGAnimatedNumber      slope;
+    SVGAnimatedNumber      intercept;
+    SVGAnimatedNumber      amplitude;
+    SVGAnimatedNumber      exponent;
+    SVGAnimatedNumber      offset;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEFuncRElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEFuncRElementImpl :
+                       virtual public SVGFEFuncRElement,
+                       public SVGComponentTransferFunctionElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEFuncRElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFEFuncGElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEFuncGElementImpl : virtual public SVGFEFuncGElement,
+                              public SVGComponentTransferFunctionElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEFuncGElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFEFuncBElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEFuncBElementImpl : virtual public SVGFEFuncBElement,
+                              public SVGComponentTransferFunctionElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEFuncBElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFEFuncAElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEFuncAElementImpl : virtual public SVGFEFuncAElement,
+                              public SVGComponentTransferFunctionElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEFuncAElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFECompositeElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFECompositeElementImpl : virtual public SVGFECompositeElement,
+                                  public SVGElementImpl
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn2()
+        { return in2; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getOperator()
+        { return ae_operator; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getK1()
+        { return k1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getK2()
+        { return k2; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getK3()
+        { return k3; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getK4()
+        { return k4; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFECompositeElementImpl() {}
+
+protected:
+
+
+    SVGAnimatedString      in1;
+    SVGAnimatedString      in2;
+    SVGAnimatedEnumeration ae_operator;
+    SVGAnimatedNumber      k1;
+    SVGAnimatedNumber      k2;
+    SVGAnimatedNumber      k3;
+    SVGAnimatedNumber      k4;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEConvolveMatrixElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEConvolveMatrixElementImpl : virtual public SVGFEConvolveMatrixElement,
+                                       public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getOrderX()
+        { return orderX; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getOrderY()
+        { return orderY; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumberList getKernelMatrix()
+        { return kernelMatrix; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getDivisor()
+        { return divisor; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getBias()
+        { return bias; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getTargetX()
+        { return targetX; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getTargetY()
+        { return targetY; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getEdgeMode()
+        { return edgeMode; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getKernelUnitLengthX()
+        { return kernelUnitLengthX; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getKernelUnitLengthY()
+        { return kernelUnitLengthY; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedBoolean getPreserveAlpha()
+        { return preserveAlpha; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEConvolveMatrixElementImpl() {}
+
+protected:
+
+    SVGAnimatedInteger     orderX;
+    SVGAnimatedInteger     orderY;
+    SVGAnimatedNumberList  kernelMatrix;
+    SVGAnimatedNumber      divisor;
+    SVGAnimatedNumber      bias;
+    SVGAnimatedInteger     targetX;
+    SVGAnimatedInteger     targetY;
+    SVGAnimatedEnumeration edgeMode;
+    SVGAnimatedLength      kernelUnitLengthX;
+    SVGAnimatedLength      kernelUnitLengthY;
+    SVGAnimatedBoolean     preserveAlpha;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEDiffuseLightingElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEDiffuseLightingElementImpl : virtual public SVGFEDiffuseLightingElement,
+                                        public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSurfaceScale()
+        { return surfaceScale; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getDiffuseConstant()
+        { return diffuseConstant; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEDiffuseLightingElementImpl() {}
+
+protected:
+
+    SVGAnimatedString in1;
+    SVGAnimatedNumber surfaceScale;
+    SVGAnimatedNumber diffuseConstant;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEDistantLightElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEDistantLightElementImpl : virtual public SVGFEDistantLightElement,
+                                     public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getAzimuth()
+        { return azimuth; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getElevation()
+        { return elevation; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEDistantLightElementImpl() {}
+
+protected:
+
+    SVGAnimatedNumber azimuth;
+    SVGAnimatedNumber elevation;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEPointLightElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEPointLightElementImpl : public virtual SVGFEPointLightElement,
+                                   public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getX()
+        { return x; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getZ()
+        { return z; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEPointLightElementImpl() {}
+
+protected:
+
+    SVGAnimatedNumber x, y, z;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFESpotLightElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFESpotLightElementImpl : virtual public SVGFESpotLightElement,
+                                  public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getX()
+        { return x; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getZ()
+        { return z; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getPointsAtX()
+        { return pointsAtX; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getPointsAtY()
+        { return pointsAtY; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getPointsAtZ()
+        { return pointsAtZ; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSpecularExponent()
+        { return specularExponent; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getLimitingConeAngle()
+        { return limitingConeAngle; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFESpotLightElementImpl() {}
+
+protected:
+
+    SVGAnimatedNumber x, y, z;
+    SVGAnimatedNumber pointsAtX, pointsAtY, pointsAtZ;
+    SVGAnimatedNumber specularExponent;
+    SVGAnimatedNumber limitingConeAngle;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEDisplacementMapElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEDisplacementMapElementImpl : virtual public SVGFEDisplacementMapElement,
+                                        public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn2()
+        { return in2; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getScale()
+        { return scale; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getXChannelSelector()
+        { return xChannelSelector; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getYChannelSelector()
+        { return yChannelSelector; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEDisplacementMapElementImpl() {}
+
+protected:
+
+    SVGAnimatedString      in1;
+    SVGAnimatedString      in2;
+    SVGAnimatedNumber      scale;
+    SVGAnimatedEnumeration xChannelSelector;
+    SVGAnimatedEnumeration yChannelSelector;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEFloodElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEFloodElementImpl : virtual public SVGFEFloodElement,
+                              public SVGElementImpl
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEFloodElementImpl() {}
+
+protected:
+
+    SVGAnimatedString in1;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEGaussianBlurElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEGaussianBlurElementImpl : virtual public SVGFEGaussianBlurElement,
+                                     public SVGElementImpl
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getStdDeviationX()
+        { return stdDeviationX; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getStdDeviationY()
+        { return stdDeviationY; }
+
+
+    /**
+     *
+     */
+    virtual void setStdDeviation (double stdDeviationXArg, double stdDeviationYArg )
+        {
+        stdDeviationX = stdDeviationXArg;
+        stdDeviationY = stdDeviationYArg;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEGaussianBlurElementImpl() {}
+
+protected:
+
+    SVGAnimatedString in1;
+    SVGAnimatedNumber stdDeviationX, stdDeviationY;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEImageElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEImageElementImpl : virtual public SVGFEImageElement,
+                              public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEImageElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFEMergeElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEMergeElementImpl : virtual public SVGFEMergeElement,
+                              public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEMergeElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFEMergeNodeElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEMergeNodeElementImpl : virtual public SVGFEMergeNodeElement,
+                                  public SVGElementImpl
+{
+public:
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEMergeNodeElementImpl() {}
+
+protected:
+
+    SVGAnimatedString in1;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEMorphologyElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEMorphologyElementImpl : virtual public SVGFEMorphologyElement,
+                                   public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getOperator()
+        { return me_operator; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRadiusX()
+        { return radiusX; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getRadiusY()
+        { return radiusY; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEMorphologyElementImpl() {}
+
+protected:
+
+    SVGAnimatedString      in1;
+    SVGAnimatedEnumeration me_operator;
+    SVGAnimatedLength      radiusX;
+    SVGAnimatedLength      radiusY;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFEOffsetElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFEOffsetElementImpl : virtual public SVGFEOffsetElement,
+                               public SVGElementImpl
+{
+public:
+
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getDx()
+        { return dx; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getDy()
+        { return dy; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFEOffsetElementImpl() {}
+
+protected:
+
+    SVGAnimatedString in1;
+    SVGAnimatedLength dx, dy;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFESpecularLightingElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFESpecularLightingElementImpl :
+                       virtual public SVGFESpecularLightingElement,
+                       public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSurfaceScale()
+        { return surfaceScale; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSpecularConstant()
+        { return specularConstant; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSpecularExponent()
+        { return specularExponent; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFESpecularLightingElementImpl() {}
+
+protected:
+
+    SVGAnimatedString in1;
+    SVGAnimatedNumber surfaceScale;
+    SVGAnimatedNumber specularConstant;
+    SVGAnimatedNumber specularExponent;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFETileElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFETileElementImpl : virtual public SVGFETileElement,
+                             public SVGElementImpl
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getIn1()
+        { return in1; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFETileElementImpl() {}
+
+protected:
+
+    SVGAnimatedString in1;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFETurbulenceElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFETurbulenceElementImpl : virtual public SVGFETurbulenceElement,
+                                   public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getBaseFrequencyX()
+        { return baseFrequencyX; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getBaseFrequencyY()
+        { return baseFrequencyY; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedInteger getNumOctaves()
+        { return numOctaves; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedNumber getSeed()
+        { return seed; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getStitchTiles()
+        { return stitchTiles; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedEnumeration getType()
+        { return type; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFETurbulenceElementImpl() {}
+
+protected:
+
+    SVGAnimatedNumber      baseFrequencyX;
+    SVGAnimatedNumber      baseFrequencyY;
+    SVGAnimatedInteger     numOctaves;
+    SVGAnimatedNumber      seed;
+    SVGAnimatedEnumeration stitchTiles;
+    SVGAnimatedEnumeration type;
+
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGCursorElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGCursorElementImpl : virtual public SVGCursorElement,
+                             public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY()
+        { return x; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGCursorElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength x, y;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAElementImpl : virtual public SVGAElement,
+                        public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getTarget()
+        { return target; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAElementImpl() {}
+
+protected:
+
+    SVGAnimatedString target;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGViewElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGViewElementImpl : virtual public SVGViewElement,
+                           public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGStringList getViewTarget()
+        { return viewTarget; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGViewElementImpl() {}
+
+protected:
+
+    SVGStringList viewTarget;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGScriptElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGScriptElementImpl : virtual public SVGScriptElement,
+                             public SVGElementImpl
+{
+public:
+
+    /**
+     *
+     */
+    virtual DOMString getType()
+        { return type; }
+
+    /**
+     *
+     */
+    virtual void setType(const DOMString &val) throw (DOMException)
+        { type = val; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGScriptElementImpl() {}
+
+protected:
+
+    DOMString type;
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimationElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimationElementImpl : virtual public SVGAnimationElement,
+                                public SVGElementImpl
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGElementPtr getTargetElement()
+        { return targetElement; }
+
+
+    /**
+     *
+     */
+    virtual double getStartTime (  )
+        { return startTime; }
+
+    /**
+     *
+     */
+    virtual double getCurrentTime (  )
+        { return currentTime; }
+
+    /**
+     *
+     */
+    virtual double getSimpleDuration (  ) throw( DOMException )
+        { return simpleDuration; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAnimationElementImpl() {}
+
+protected:
+
+    SVGElementPtr targetElement;
+    double startTime, currentTime, simpleDuration;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimateElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimateElementImpl : virtual public SVGAnimateElement,
+                              public SVGAnimationElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAnimateElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGSetElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGSetElementImpl : virtual public SVGSetElement,
+                          public SVGAnimationElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGSetElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGAnimateMotionElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimateMotionElementImpl : virtual public SVGAnimateMotionElement,
+                                    public SVGAnimationElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAnimateMotionElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGMPathElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGMPathElementImpl : virtual public SVGMPathElement,
+                            public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGMPathElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGAnimateColorElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimateColorElementImpl : virtual public SVGAnimateColorElement,
+                                   public SVGAnimationElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAnimateColorElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGAnimateTransformElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimateTransformElementImpl : virtual public SVGAnimateTransformElement,
+                                       public SVGAnimationElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGAnimateTransformElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFontElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontElementImpl :  virtual public SVGFontElement,
+                            public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGGlyphElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGGlyphElementImpl : virtual public SVGGlyphElement,
+                            public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGGlyphElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGMissingGlyphElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGMissingGlyphElementImpl : virtual public SVGMissingGlyphElement,
+                                   public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGMissingGlyphElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGHKernElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGHKernElementImpl : virtual public SVGHKernElement,
+                            public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGHKernElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGVKernElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGVKernElementImpl : virtual public SVGVKernElement,
+                            public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGVKernElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFontFaceElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontFaceElementImpl : virtual public SVGFontFaceElement,
+                               public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontFaceElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFontFaceSrcElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontFaceSrcElementImpl : virtual public SVGFontFaceSrcElement,
+                                  public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontFaceSrcElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFontFaceUriElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontFaceUriElementImpl : virtual public SVGFontFaceUriElement,
+                                  public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontFaceUriElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFontFaceFormatElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontFaceFormatElementImpl : virtual public SVGFontFaceFormatElement,
+                                     public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontFaceFormatElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGFontFaceNameElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFontFaceNameElementImpl : virtual public SVGFontFaceNameElement,
+                                   public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGFontFaceNameElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGDefinitionSrcElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGDefinitionSrcElementImpl : virtual public SVGDefinitionSrcElement,
+                                    public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGDefinitionSrcElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGMetadataElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGMetadataElementImpl : virtual public SVGMetadataElement,
+                               public SVGElementImpl
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    virtual ~SVGMetadataElementImpl() {}
+
+protected:
+
+
+};
+
+
+
+
+/*#########################################################################
+## SVGForeignObjectElementImpl
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGForeignObjectElementImpl :  virtual public SVGForeignObjectElement,
+                                     public SVGElementImpl
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth()
+        { return width; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight()
+        { return height; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    virtual ~SVGForeignObjectElementImpl() {}
+
+protected:
+
+    SVGAnimatedLength x, y, width, height;
+};
+
+
+
+
+
+
+}  //namespace svg
+}  //namespace dom
+}  //namespace w3c
+}  //namespace org
+
+#endif // __SVG_H__
+/*#########################################################################
+## E N D    O F    F I L E
+#########################################################################*/
+
diff --git a/src/dom/svgparser.cpp b/src/dom/svgparser.cpp
new file mode 100644 (file)
index 0000000..186fd40
--- /dev/null
@@ -0,0 +1,761 @@
+/**
+ * Phoebe DOM Implementation.
+ *
+ * This is a C++ approximation of the W3C DOM model, which follows
+ * fairly closely the specifications in the various .idl files, copies of
+ * which are provided for reference.  Most important is this one:
+ *
+ * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
+ *
+ * Authors:
+ *   Bob Jamison
+ *
+ * Copyright (C) 2005-2008 Bob Jamison
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+
+#include "svgparser.h"
+#include "dom/cssparser.h"
+#include "dom/ucd.h"
+
+#include <stdarg.h>
+
+#define SVG_NAMESPACE "http://www.w3.org/2000/svg"
+
+namespace org
+{
+namespace w3c
+{
+namespace dom
+{
+namespace svg
+{
+
+
+//#########################################################################
+//# M E S S A G E S
+//#########################################################################
+
+
+/**
+ *
+ */
+void SvgParser::error(char const *fmt, ...)
+{
+    va_list args;
+    fprintf(stderr, "SvgParser:error:");
+    va_start(args, fmt);
+    vfprintf(stderr, fmt, args);
+    va_end(args) ;
+    fprintf(stderr, "\n");
+}
+
+
+
+//#########################################################################
+//# P A R S I N G
+//#########################################################################
+
+/**
+ *  Get the character at the position and record the fact
+ */
+XMLCh SvgParser::get(int p)
+{
+    if (p >= parselen)
+        return 0;
+    XMLCh ch = parsebuf[p];
+    //printf("%c", ch);
+    lastPosition = p;
+    return ch;
+}
+
+
+
+/**
+ *  Test if the given substring exists at the given position
+ *  in parsebuf.  Use get() in case of out-of-bounds
+ */
+bool SvgParser::match(int pos, char const *str)
+{
+    while (*str)
+       {
+       if (get(pos++) != (XMLCh) *str++)
+           return false;
+       }
+   return true;
+}
+
+/**
+ *
+ */
+int SvgParser::skipwhite(int p)
+{
+  while (p < parselen)
+    {
+    //# XML COMMENT
+    if (match(p, "<!--"))
+        {
+        p+=4;
+        bool done=false;
+        while (p<parselen)
+            {
+            if (match(p, "-->"))
+                {
+                p+=3;
+                done=true;
+                break;
+                }
+            p++;
+            }
+        lastPosition = p;
+        if (!done)
+            {
+            error("unterminated <!-- .. --> comment");
+            return -1;
+            }
+        }
+    //# C comment
+    else if (match(p, "/*"))
+        {
+        p+=2;
+        bool done=false;
+        while (p<parselen)
+            {
+            if (match(p, "*/"))
+                {
+                p+=2;
+                done=true;
+                break;
+                }
+            p++;
+            }
+        lastPosition = p;
+        if (!done)
+            {
+            error("unterminated /* .. */ comment");
+            return -1;
+            }
+        }
+    else if (!uni_is_space(get(p)))
+        break;
+    else
+        p++;
+    }
+  lastPosition = p;
+  return p;
+}
+
+/**
+ * get a word from the buffer
+ */
+int SvgParser::getWord(int p, DOMString &result)
+{
+    XMLCh ch = get(p);
+    if (!uni_is_letter(ch))
+        return p;
+    DOMString str;
+    str.push_back(ch);
+    p++;
+
+    while (p < parselen)
+        {
+        ch = get(p);
+        if (uni_is_letter_or_digit(ch) || ch=='-' || ch=='_')
+            {
+            str.push_back(ch);
+            p++;
+            }
+        else if (ch == '\\')
+            {
+            p+=2;
+            }
+        else
+            break;
+        }
+    result = str;
+    return p;
+}
+
+
+# if 0
+/**
+ * get a word from the buffer
+ */
+int SvgParser::getNumber(int p0, double &result)
+{
+    int p=p0;
+
+    DOMString str;
+
+    //allow sign
+    if (get(p) == '-')
+        {
+        p++;
+        }
+
+    while (p < parselen)
+        {
+        XMLCh ch = get(p);
+        if (ch<'0' || ch>'9')
+            break;
+        str.push_back(ch);
+        p++;
+        }
+    if (get(p) == '.' && get(p+1)>='0' && get(p+1)<='9')
+        {
+        p++;
+        str.push_back('.');
+        while (p < parselen)
+            {
+            XMLCh ch = get(p);
+            if (ch<'0' || ch>'9')
+                break;
+            str.push_back(ch);
+            p++;
+            }
+        }
+    if (p>p0)
+        {
+        char *start = (char *)str.c_str();
+        char *end   = NULL;
+        double val = strtod(start, &end);
+        if (end > start)
+            {
+            result = val;
+            return p;
+            }
+        }
+
+    //not a number
+    return p0;
+}
+#endif
+
+
+/**
+ * get a word from the buffer
+ */
+int SvgParser::getNumber(int p0, double &result)
+{
+    int p=p0;
+
+    char buf[64];
+
+    int i;
+    for (i=0 ; i<63 && p<parselen ; i++)
+        {
+        buf[i] = (char) get(p++);
+        }
+    buf[i] = '\0';
+
+    char *start = buf;
+    char *end   = NULL;
+    double val = strtod(start, &end);
+    if (end > start)
+        {
+        result = val;
+        int count = (int)(end - start);
+        p = p0 + count;
+        return p;
+        }
+
+    //not a number
+    return p0;
+}
+
+
+bool SvgParser::parseTransform(const DOMString &str)
+{
+    parsebuf = str;
+    parselen = str.size();
+
+    //printf("transform:%s\n", str.c_str());
+
+    SVGTransformList transformList;
+
+    int p = 0;
+
+    while (p < parselen)
+        {
+        p = skipwhite(p);
+        DOMString name;
+        int p2 = getWord(p, name);
+        if (p2<0)
+            return false;
+        if (p2<=p)
+            {
+            error("transform: need transform name");
+            //return false;
+            break;
+            }
+        p = p2;
+        //printf("transform name:%s\n", name.c_str());
+
+        //######### MATRIX
+        if (name == "matrix")
+            {
+            p = skipwhite(p);
+            if (get(p++) != '(')
+                {
+                error("matrix transform needs opening '('");
+                return false;
+                }
+            int nrVals = 0;
+            double vals[6];
+            bool seenBrace = false;
+            while (p < parselen && nrVals < 6)
+                {
+                p = skipwhite(p);
+                double val = 0.0;
+                p2 = getNumber(p, val);
+                if (p2<0)
+                    return false;
+                if (p2<=p)
+                    {
+                    error("matrix() expected number");
+                    return false;
+                    }
+                vals[nrVals++] = val;
+                p = skipwhite(p2);
+                XMLCh ch = get(p);
+                if (ch == ',')
+                    {
+                    p++;
+                    p = skipwhite(p);
+                    ch = get(p);
+                    }
+                if (ch == ')')
+                    {
+                    seenBrace = true;
+                    p++;
+                    break;
+                    }
+                }
+            if (!seenBrace)
+                {
+                error("matrix() needs closing brace");
+                return false;
+                }
+            if (nrVals != 6)
+                {
+                error("matrix() requires exactly 6 arguments");
+                return false;
+                }
+            //We got our arguments
+            //printf("translate: %f %f %f %f %f %f\n",
+            //      vals[0], vals[1], vals[2], vals[3], vals[4], vals[5]);
+            SVGMatrix matrix(vals[0], vals[1], vals[2],
+                             vals[3], vals[4], vals[5]);
+            SVGTransform transform;
+            transform.setMatrix(matrix);
+            transformList.appendItem(transform);
+            }
+
+        //######### TRANSLATE
+        else if (name == "translate")
+            {
+            p = skipwhite(p);
+            if (get(p++) != '(')
+                {
+                error("matrix transform needs opening '('");
+                return false;
+                }
+            p = skipwhite(p);
+            double x = 0.0;
+            p2 = getNumber(p, x);
+            if (p2<0)
+                return false;
+            if (p2<=p)
+                {
+                error("translate() expected 'x' value");
+                return false;
+                }
+            p = skipwhite(p2);
+            if (get(p) == ',')
+                {
+                p++;
+                p = skipwhite(p);
+                }
+            double y = 0.0;
+            p2 = getNumber(p, y);
+            if (p2<0)
+                return false;
+            if (p2<=p) //no y specified. use default
+                y = 0.0;
+            p = skipwhite(p2);
+            if (get(p++) != ')')
+                {
+                error("translate() needs closing ')'");
+                return false;
+                }
+            //printf("translate: %f %f\n", x, y);
+            SVGTransform transform;
+            transform.setTranslate(x, y);
+            transformList.appendItem(transform);
+            }
+
+        //######### SCALE
+        else if (name == "scale")
+            {
+            p = skipwhite(p);
+            if (get(p++) != '(')
+                {
+                error("scale transform needs opening '('");
+                return false;
+                }
+            p = skipwhite(p);
+            double x = 0.0;
+            p2 = getNumber(p, x);
+            if (p2<0)
+                return false;
+            if (p2<=p)
+                {
+                error("scale() expected 'x' value");
+                return false;
+                }
+            p = skipwhite(p2);
+            if (get(p) == ',')
+                {
+                p++;
+                p = skipwhite(p);
+                }
+            double y = 0.0;
+            p2 = getNumber(p, y);
+            if (p2<0)
+                return false;
+            if (p2<=p) //no y specified. use default
+                y = x; // y is same as x.  uniform scaling
+            p = skipwhite(p2);
+            if (get(p++) != ')')
+                {
+                error("scale() needs closing ')'");
+                return false;
+                }
+            //printf("scale: %f %f\n", x, y);
+            SVGTransform transform;
+            transform.setScale(x, y);
+            transformList.appendItem(transform);
+            }
+
+        //######### ROTATE
+        else if (name == "rotate")
+            {
+            p = skipwhite(p);
+            if (get(p++) != '(')
+                {
+                error("rotate transform needs opening '('");
+                return false;
+                }
+            p = skipwhite(p);
+            double angle = 0.0;
+            p2 = getNumber(p, angle);
+            if (p2<0)
+                return false;
+            if (p2<=p)
+                {
+                error("rotate() expected 'angle' value");
+                return false;
+                }
+            p = skipwhite(p2);
+            if (get(p) == ',')
+                {
+                p++;
+                p = skipwhite(p);
+                }
+            double cx = 0.0;
+            double cy = 0.0;
+            p2 = getNumber(p, cx);
+            if (p2>p)
+                {
+                p = skipwhite(p2);
+                if (get(p) == ',')
+                    {
+                    p++;
+                    p = skipwhite(p);
+                    }
+                p2 = getNumber(p, cy);
+                if (p2<0)
+                    return false;
+                if (p2<=p)
+                    {
+                    error("rotate() arguments should be either rotate(angle) or rotate(angle, cx, cy)");
+                    return false;
+                    }
+                p = skipwhite(p2);
+                }
+            if (get(p++) != ')')
+                {
+                error("rotate() needs closing ')'");
+                return false;
+                }
+            //printf("rotate: %f %f %f\n", angle, cx, cy);
+            SVGTransform transform;
+            transform.setRotate(angle, cx, cy);
+            transformList.appendItem(transform);
+            }
+
+        //######### SKEWX
+        else if (name == "skewX")
+            {
+            p = skipwhite(p);
+            if (get(p++) != '(')
+                {
+                error("skewX transform needs opening '('");
+                return false;
+                }
+            p = skipwhite(p);
+            double x = 0.0;
+            p2 = getNumber(p, x);
+            if (p2<0)
+                return false;
+            if (p2<=p)
+                {
+                error("skewX() expected 'x' value");
+                return false;
+                }
+            p = skipwhite(p2);
+            if (get(p++) != ')')
+                {
+                error("skewX() needs closing ')'");
+                return false;
+                }
+            //printf("skewX: %f\n", x);
+            SVGTransform transform;
+            transform.setSkewX(x);
+            transformList.appendItem(transform);
+            }
+
+        //######### SKEWY
+        else if (name == "skewY")
+            {
+            p = skipwhite(p);
+            if (get(p++) != '(')
+                {
+                error("skewY transform needs opening '('");
+                return false;
+                }
+            p = skipwhite(p);
+            double y = 0.0;
+            p2 = getNumber(p, y);
+            if (p2<0)
+                return false;
+            if (p2<=p)
+                {
+                error("skewY() expected 'y' value");
+                return false;
+                }
+            p = skipwhite(p2);
+            if (get(p++) != ')')
+                {
+                error("skewY() needs closing ')'");
+                return false;
+                }
+            //printf("skewY: %f\n", y);
+            SVGTransform transform;
+            transform.setSkewY(y);
+            transformList.appendItem(transform);
+            }
+
+        //### NONE OF THE ABOVE
+        else
+            {
+            error("unknown transform type:'%s'", name.c_str());
+            }
+
+        p = skipwhite(p);
+        XMLCh ch = get(p);
+        if (ch == ',')
+            {
+            p++;
+            p = skipwhite(p);
+            }
+
+        }//WHILE p<parselen
+
+    return true;
+}
+
+
+/**
+ *
+ */
+bool SvgParser::parseElement(SVGElementImplPtr parent,
+                             ElementImplPtr sourceElem)
+{
+    if (!parent || !sourceElem)
+        {
+        error("NULL source element");
+        return false;
+        }
+
+    DOMString namespaceURI = sourceElem->getNamespaceURI();
+    //printf("namespaceURI:%s\n", namespaceURI.c_str());
+    DOMString tagName      = sourceElem->getTagName();
+    printf("tag name:%s\n", tagName.c_str());
+
+    ElementImplPtr newElement = NULL;
+    if (namespaceURI != SVG_NAMESPACE)
+        {
+        newElement = new SVGSVGElementImpl();
+        newElement->assign(*sourceElem);
+        parent->appendChild(newElement);
+        }
+    else //## SVG!!
+        {
+
+        //####################################################
+        //## ATTRIBUTES
+        //####################################################
+        DOMString style = sourceElem->getAttribute("style");
+        if (style.size() > 0)
+            {
+            css::CssParser parser;
+            style.insert(0, "{");
+            style.append("}");
+            //printf("CSS:%s\n", style.c_str());
+            if (!parser.parse(style))
+                {
+                error("parsing style attribute");
+                }
+            else
+                {
+                //printf("##parsed!\n");
+                }
+            }
+
+        DOMString transform = sourceElem->getAttribute("transform");
+        if (transform.size() > 0)
+            {
+            if (!parseTransform(transform))
+                {
+                error("parsing transform attribute");
+                }
+            else
+                {
+                //printf("##parsed!\n");
+                }
+            }
+
+        //####################################################
+        //## ELEMENT - SPECIFIC
+        //####################################################
+        if (tagName == "svg")
+            {
+            newElement = new SVGSVGElementImpl();
+            newElement->assign(*sourceElem);
+            parent->appendChild(newElement);
+            }
+        else if (tagName == "title")
+            {
+            newElement = new SVGTitleElementImpl();
+            newElement->assign(*sourceElem);
+            parent->appendChild(newElement);
+            }
+        else if (tagName == "desc")
+            {
+            newElement = new SVGDescElementImpl();
+            newElement->assign(*sourceElem);
+            parent->appendChild(newElement);
+            }
+        else if (tagName == "defs")
+            {
+            newElement = new SVGDefsElementImpl();
+            newElement->assign(*sourceElem);
+            parent->appendChild(newElement);
+            }
+        else if (tagName == "style")
+            {
+            newElement = new SVGStyleElementImpl();
+            newElement->assign(*sourceElem);
+            parent->appendChild(newElement);
+            }
+        else if (tagName == "g")
+            {
+            newElement = new SVGGElementImpl();
+            newElement->assign(*sourceElem);
+            parent->appendChild(newElement);
+            }
+        else if (tagName == "path")
+            {
+            newElement = new SVGPathElementImpl();
+            newElement->assign(*sourceElem);
+            parent->appendChild(newElement);
+            }
+        }
+
+    NodeList children = sourceElem->getChildNodes();
+    int nodeCount = children.getLength();
+    for (int i=0 ; i<nodeCount ; i++)
+        {
+        NodePtr child = children.item(i);
+        int typ = child->getNodeType();
+        if (typ == Node::TEXT_NODE)
+            {
+            NodePtr newNode = doc->createTextNode(child->getNodeValue());
+            parent->appendChild(newNode);
+            }
+        else if (typ == Node::CDATA_SECTION_NODE)
+            {
+            NodePtr newNode = doc->createCDATASection(child->getNodeValue());
+            parent->appendChild(newNode);
+            }
+        else if (newElement.get() && typ == Node::ELEMENT_NODE)
+            {
+            //ElementImplPtr childElement = dynamic_cast<ElementImpl *>(child.get());
+            //parseElement(newElement, childElement);
+            }
+        }
+    return true;
+}
+
+
+/**
+ *
+ */
+SVGDocumentPtr SvgParser::parse(const DocumentPtr src)
+{
+    if (!src)
+        {
+        error("NULL source document");
+        return NULL;
+        }
+
+    DOMImplementationImpl impl;
+    doc = new SVGDocumentImpl(&impl, SVG_NAMESPACE, "svg" , NULL);
+
+    SVGElementImplPtr destElem = dynamic_cast<SVGElementImpl *>(doc->getRootElement().get());
+    ElementImplPtr    srcElem  = dynamic_cast<ElementImpl *>(src->getDocumentElement().get());
+    if (!parseElement(destElem, srcElem))
+        {
+        return NULL;
+        }
+
+    return doc;
+}
+
+
+
+
+}  //namespace svg
+}  //namespace dom
+}  //namespace w3c
+}  //namespace org
+
+/*#########################################################################
+## E N D    O F    F I L E
+#########################################################################*/
+
diff --git a/src/dom/svgparser.h b/src/dom/svgparser.h
new file mode 100644 (file)
index 0000000..cb3ac15
--- /dev/null
@@ -0,0 +1,156 @@
+#ifndef __SVGPARSER_H__
+#define __SVGPARSER_H__
+
+/**
+ * Phoebe DOM Implementation.
+ *
+ * This is a C++ approximation of the W3C DOM model, which follows
+ * fairly closely the specifications in the various .idl files, copies of
+ * which are provided for reference.  Most important is this one:
+ *
+ * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
+ *
+ * Authors:
+ *   Bob Jamison
+ *
+ * Copyright (C) 2005-2007 Bob Jamison
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+
+#include "svgimpl.h"
+
+namespace org
+{
+namespace w3c
+{
+namespace dom
+{
+namespace svg
+{
+
+
+class SvgParser
+{
+public:
+
+    /**
+     *
+     */
+    SvgParser()
+        {
+        }
+
+    /**
+     *
+     */
+    SvgParser(const SvgParser &/*other*/)
+        {
+        }
+
+    /**
+     *
+     */
+    virtual ~SvgParser()
+        {
+        }
+
+    /**
+     *
+     */
+    SVGDocumentPtr parse(const DocumentPtr sourceDoc);
+
+
+
+
+private:
+
+    /**
+     *  Get the next character in the parse buf,  0 if out
+     *  of range
+     */
+    XMLCh get(int p);
+
+    /**
+     *  Test if the given substring exists at the given position
+     *  in parsebuf.  Use get() in case of out-of-bounds
+     */
+    bool match(int pos, char const *str);
+
+    /**
+     *
+     */
+    int skipwhite(int p);
+
+    /**
+     * get a word from the buffer
+     */
+    int getWord(int p, DOMString &result);
+
+    /**
+     * get a word from the buffer
+     */
+    int getNumber(int p0, double &result);
+
+
+    /**
+     *
+     */
+    bool parseTransform(const DOMString &str);
+
+
+    /**
+     *
+     */
+    bool parseElement(SVGElementImplPtr destElem,
+                      ElementImplPtr sourceElem);
+
+
+    /**
+     *
+     */
+    void error(char const *format, ...)
+    #ifdef G_GNUC_PRINTF
+    G_GNUC_PRINTF(2, 3)
+    #endif
+    ;
+
+
+
+    DOMString parsebuf;
+    int parselen;
+    int lastPosition;
+
+    SVGDocumentImplPtr doc;
+
+};
+
+
+
+
+
+}  //namespace svg
+}  //namespace dom
+}  //namespace w3c
+}  //namespace org
+
+#endif /* __SVGPARSER_H__ */
+/*#########################################################################
+## E N D    O F    F I L E
+#########################################################################*/
+
+
+
diff --git a/src/dom/svgtypes.h b/src/dom/svgtypes.h
new file mode 100644 (file)
index 0000000..36bb1fc
--- /dev/null
@@ -0,0 +1,6889 @@
+#ifndef __SVGTYPES_H__
+#define __SVGTYPES_H__
+
+/**
+ * Phoebe DOM Implementation.
+ *
+ * This is a C++ approximation of the W3C DOM model, which follows
+ * fairly closely the specifications in the various .idl files, copies of
+ * which are provided for reference.  Most important is this one:
+ *
+ * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
+ *
+ * Authors:
+ *   Bob Jamison
+ *
+ * Copyright (C) 2006 Bob Jamison
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+
+// For access to DOM2 core
+#include "dom/dom.h"
+
+// For access to DOM2 events
+#include "dom/events.h"
+
+// For access to those parts from DOM2 CSS OM used by SVG DOM.
+#include "dom/css.h"
+
+// For access to those parts from DOM2 Views OM used by SVG DOM.
+#include "dom/views.h"
+
+// For access to the SMIL OM used by SVG DOM.
+#include "dom/smil.h"
+
+
+#include <math.h>
+
+
+
+namespace org {
+namespace w3c {
+namespace dom {
+namespace svg {
+
+
+
+
+//local definitions
+typedef dom::DOMString DOMString;
+typedef dom::DOMException DOMException;
+typedef dom::Element Element;
+typedef dom::Document Document;
+typedef dom::NodeList NodeList;
+
+
+class SVGElement;
+class SVGUseElement;
+class SVGAnimatedPreserveAspectRatio;
+
+
+/*#########################################################################
+## SVGException
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGException
+{
+public:
+    // unsigned short   code;  //inherited
+};
+
+    /**
+     * SVGExceptionCode
+     */
+    typedef enum
+        {
+        SVG_WRONG_TYPE_ERR           = 0,
+        SVG_INVALID_VALUE_ERR        = 1,
+        SVG_MATRIX_NOT_INVERTABLE    = 2
+        } SVGExceptionCode;
+
+
+
+
+
+/*#########################################################################
+## SVGMatrix
+#########################################################################*/
+
+/**
+ *  In SVG, a Matrix is defined like this:
+ *
+ * | a  c  e |
+ * | b  d  f |
+ * | 0  0  1 |
+ *
+ */
+class SVGMatrix
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual double getA()
+        { return a; }
+
+    /**
+     *
+     */
+    virtual void setA(double val) throw (DOMException)
+        { a = val; }
+
+    /**
+     *
+     */
+    virtual double getB()
+        { return b; }
+
+    /**
+     *
+     */
+    virtual void setB(double val) throw (DOMException)
+        { b = val; }
+
+    /**
+     *
+     */
+    virtual double getC()
+        { return c; }
+
+    /**
+     *
+     */
+    virtual void setC(double val) throw (DOMException)
+        { c = val; }
+
+    /**
+     *
+     */
+    virtual double getD()
+        { return d; }
+
+    /**
+     *
+     */
+    virtual void setD(double val) throw (DOMException)
+        { d = val; }
+    /**
+     *
+     */
+    virtual double getE()
+        { return e; }
+
+    /**
+     *
+     */
+    virtual void setE(double val) throw (DOMException)
+        { e = val; }
+    /**
+     *
+     */
+    virtual double getF()
+        { return f; }
+
+    /**
+     *
+     */
+    virtual void setF(double val) throw (DOMException)
+        { f = val; }
+
+
+    /**
+     * Return the result of postmultiplying this matrix with another.
+     */
+    virtual SVGMatrix multiply(const SVGMatrix &other)
+        {
+        SVGMatrix result;
+        result.a = a * other.a  +  c * other.b;
+        result.b = b * other.a  +  d * other.b;
+        result.c = a * other.c  +  c * other.d;
+        result.d = b * other.c  +  d * other.d;
+        result.e = a * other.e  +  c * other.f  +  e;
+        result.f = b * other.e  +  d * other.f  +  f;
+        return result;
+        }
+
+    /**
+     *  Calculate the inverse of this matrix
+     *
+     */
+    virtual SVGMatrix inverse(  ) throw( SVGException )
+        {
+        /*###########################################
+        The determinant of a 3x3 matrix E
+           (let's use our own notation for a bit)
+
+            A  B  C
+            D  E  F
+            G  H  I
+        is
+            AEI - AFH - BDI + BFG + CDH - CEG
+
+        Since in our affine transforms, G and H==0 and I==1,
+        this reduces to:
+            AE - BD
+        In SVG's naming scheme, that is:  a * d - c * b .  SIMPLE!
+
+        In a similar method of attack, SVG's adjunct matrix is:
+
+           d  -c   cf-ed
+          -b   a   eb-af
+           0   0   ad-cb
+
+        To get the inverse matrix, we divide the adjunct matrix by
+        the determinant.  Notice that (ad-cb)/(ad-cb)==1.  Very cool.
+        So what we end up with is this:
+
+           a =  d/(ad-cb)  c = -c/(ad-cb)   e = (cf-ed)/(ad-cb)
+           b = -b/(ad-cb)  d =  a/(ad-cb)   f = (eb-af)/(ad-cb)
+
+        (Since this would be in all SVG-DOM implementations,
+         somebody needed to document this!  ^^ )
+        #############################################*/
+
+        SVGMatrix result;
+        double determinant = a * d  -  c * b;
+        if (determinant < 1.0e-18)//invertible?
+            {
+            result.identity();//cop out
+            return result;
+            }
+
+        double idet = 1.0 / determinant;
+        result.a =   d * idet;
+        result.b =  -b * idet;
+        result.c =  -c * idet;
+        result.d =   a * idet;
+        result.e =  (c*f - e*d) * idet;
+        result.f =  (e*b - a*f) * idet;
+        return result;
+        }
+
+    /**
+     * Equivalent to multiplying by:
+     *  | 1  0  x |
+     *  | 0  1  y |
+     *  | 0  0  1 |
+     *
+     */
+    virtual SVGMatrix translate(double x, double y )
+        {
+        SVGMatrix result;
+        result.a = a;
+        result.b = b;
+        result.c = c;
+        result.d = d;
+        result.e = a * x  +  c * y  +  e;
+        result.f = b * x  +  d * y  +  f;
+        return result;
+        }
+
+    /**
+     * Equivalent to multiplying by:
+     *  | scale  0      0 |
+     *  | 0      scale  0 |
+     *  | 0      0      1 |
+     *
+     */
+    virtual SVGMatrix scale(double scale)
+        {
+        SVGMatrix result;
+        result.a = a * scale;
+        result.b = b * scale;
+        result.c = c * scale;
+        result.d = d * scale;
+        result.e = e;
+        result.f = f;
+        return result;
+        }
+
+    /**
+     * Equivalent to multiplying by:
+     *  | scaleX  0       0 |
+     *  | 0       scaleY  0 |
+     *  | 0       0       1 |
+     *
+     */
+    virtual SVGMatrix scaleNonUniform(double scaleX,
+                                      double scaleY )
+        {
+        SVGMatrix result;
+        result.a = a * scaleX;
+        result.b = b * scaleX;
+        result.c = c * scaleY;
+        result.d = d * scaleY;
+        result.e = e;
+        result.f = f;
+        return result;
+        }
+
+    /**
+     * Equivalent to multiplying by:
+     *  | cos(a) -sin(a)   0 |
+     *  | sin(a)  cos(a)   0 |
+     *  | 0       0        1 |
+     *
+     */
+    virtual SVGMatrix rotate (double angle)
+        {
+        double sina  = sin(angle);
+        double msina = -sina;
+        double cosa  = cos(angle);
+        SVGMatrix result;
+        result.a = a * cosa   +  c * sina;
+        result.b = b * cosa   +  d + sina;
+        result.c = a * msina  +  c * cosa;
+        result.d = b * msina  +  d * cosa;
+        result.e = e;
+        result.f = f;
+        return result;
+        }
+
+    /**
+     * Equivalent to multiplying by:
+     *  | cos(a) -sin(a)   0 |
+     *  | sin(a)  cos(a)   0 |
+     *  | 0       0        1 |
+     *  In this case, angle 'a' is computed as the artangent
+     *  of the slope y/x .  It is negative if the slope is negative.
+     */
+    virtual SVGMatrix rotateFromVector(double x, double y)
+                                      throw( SVGException )
+        {
+        double angle = atan(y / x);
+        if (y < 0.0)
+            angle = -angle;
+        SVGMatrix result;
+        double sina  = sin(angle);
+        double msina = -sina;
+        double cosa  = cos(angle);
+        result.a = a * cosa   +  c * sina;
+        result.b = b * cosa   +  d + sina;
+        result.c = a * msina  +  c * cosa;
+        result.d = b * msina  +  d * cosa;
+        result.e = e;
+        result.f = f;
+        return result;
+        }
+
+    /**
+     * Equivalent to multiplying by:
+     *  | -1   0   0 |
+     *  | 0    1   0 |
+     *  | 0    0   1 |
+     *
+     */
+    virtual SVGMatrix flipX(  )
+        {
+        SVGMatrix result;
+        result.a = -a;
+        result.b = -b;
+        result.c =  c;
+        result.d =  d;
+        result.e =  e;
+        result.f =  f;
+        return result;
+        }
+
+    /**
+     * Equivalent to multiplying by:
+     *  | 1   0   0 |
+     *  | 0  -1   0 |
+     *  | 0   0   1 |
+     *
+     */
+    virtual SVGMatrix flipY( )
+        {
+        SVGMatrix result;
+        result.a =  a;
+        result.b =  b;
+        result.c = -c;
+        result.d = -d;
+        result.e =  e;
+        result.f =  f;
+        return result;
+        }
+
+    /**
+     *  | 1   tan(a)  0 |
+     *  | 0   1       0 |
+     *  | 0   0       1 |
+     *
+     */
+    virtual SVGMatrix skewX(double angle)
+        {
+        double tana = tan(angle);
+        SVGMatrix result;
+        result.a =  a;
+        result.b =  b;
+        result.c =  a * tana + c;
+        result.d =  b * tana + d;
+        result.e =  e;
+        result.f =  f;
+        return result;
+        }
+
+    /**
+     * Equivalent to multiplying by:
+     *  | 1       0   0 |
+     *  | tan(a)  1   0 |
+     *  | 0       0   1 |
+     *
+     */
+    virtual SVGMatrix skewY(double angle)
+        {
+        double tana = tan(angle);
+        SVGMatrix result;
+        result.a =  a + c * tana;
+        result.b =  b + d * tana;
+        result.c =  c;
+        result.d =  d;
+        result.e =  e;
+        result.f =  f;
+        return result;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGMatrix()
+        {
+        identity();
+        }
+
+    /**
+     *
+     */
+    SVGMatrix(double aArg, double bArg, double cArg,
+              double dArg, double eArg, double fArg )
+        {
+        a = aArg; b = bArg; c = cArg;
+        d = dArg; e = eArg; f = fArg;
+        }
+
+    /**
+     * Copy constructor
+     */
+    SVGMatrix(const SVGMatrix &other)
+        {
+        a = other.a;
+        b = other.b;
+        c = other.c;
+        d = other.d;
+        e = other.e;
+        f = other.f;
+        }
+
+
+
+    /**
+     *
+     */
+    virtual ~SVGMatrix() {}
+
+protected:
+
+friend class SVGTransform;
+
+    /*
+     * Set to the identify matrix
+     */
+   void identity()
+       {
+       a = 1.0;
+       b = 0.0;
+       c = 0.0;
+       d = 1.0;
+       e = 0.0;
+       f = 0.0;
+       }
+
+    double a, b, c, d, e, f;
+
+};
+
+
+/*#########################################################################
+## SVGTransform
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTransform
+{
+public:
+
+    /**
+     * Transform Types
+     */
+    typedef enum
+        {
+        SVG_TRANSFORM_UNKNOWN   = 0,
+        SVG_TRANSFORM_MATRIX    = 1,
+        SVG_TRANSFORM_TRANSLATE = 2,
+        SVG_TRANSFORM_SCALE     = 3,
+        SVG_TRANSFORM_ROTATE    = 4,
+        SVG_TRANSFORM_SKEWX     = 5,
+        SVG_TRANSFORM_SKEWY     = 6,
+        } TransformType;
+
+    /**
+     *
+     */
+    virtual unsigned short getType()
+        { return type; }
+
+
+    /**
+     *
+     */
+    virtual SVGMatrix getMatrix()
+        {
+        return matrix;
+        }
+
+    /**
+     *
+     */
+    virtual double getAngle()
+        {
+        return angle;
+        }
+
+
+    /**
+     *
+     */
+    virtual void setMatrix(const SVGMatrix &matrixArg)
+        {
+        type = SVG_TRANSFORM_MATRIX;
+        matrix = matrixArg;
+        }
+
+    /**
+     *
+     */
+    virtual void setTranslate (double tx, double ty )
+        {
+        type = SVG_TRANSFORM_TRANSLATE;
+        matrix.setA(1.0);
+        matrix.setB(0.0);
+        matrix.setC(0.0);
+        matrix.setD(1.0);
+        matrix.setE(tx);
+        matrix.setF(ty);
+        }
+
+    /**
+     *
+     */
+    virtual void setScale (double sx, double sy )
+        {
+        type = SVG_TRANSFORM_SCALE;
+        matrix.setA(sx);
+        matrix.setB(0.0);
+        matrix.setC(0.0);
+        matrix.setD(sy);
+        matrix.setE(0.0);
+        matrix.setF(0.0);
+        }
+
+    /**
+     *
+     */
+    virtual void setRotate (double angleArg, double cx, double cy)
+        {
+        angle = angleArg;
+        setTranslate(cx, cy);
+        type = SVG_TRANSFORM_ROTATE;
+        matrix.rotate(angle);
+        }
+
+    /**
+     *
+     */
+    virtual void setSkewX (double angleArg)
+        {
+        angle = angleArg;
+        type = SVG_TRANSFORM_SKEWX;
+        matrix.identity();
+        matrix.skewX(angle);
+        }
+
+    /**
+     *
+     */
+    virtual void setSkewY (double angleArg)
+        {
+        angle = angleArg;
+        type = SVG_TRANSFORM_SKEWY;
+        matrix.identity();
+        matrix.skewY(angle);
+        }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGTransform()
+        {
+        type = SVG_TRANSFORM_UNKNOWN;
+        angle = 0.0;
+        }
+
+    /**
+     *
+     */
+    SVGTransform(const SVGTransform &other)
+        {
+        type   = other.type;
+        angle  = other.angle;
+        matrix = other.matrix;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGTransform()
+        {}
+
+protected:
+
+    int type;
+    double angle;
+
+    SVGMatrix matrix;
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGTransformList
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTransformList
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual unsigned long getNumberOfItems()
+        { return items.size(); }
+
+
+    /**
+     *
+     */
+    virtual void clear( ) throw( DOMException )
+        { items.clear(); }
+
+    /**
+     *
+     */
+    virtual SVGTransform initialize (const SVGTransform &newItem)
+                         throw( DOMException, SVGException )
+        {
+        items.clear();
+        items.push_back(newItem);
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGTransform getItem (unsigned long index )
+                    throw( DOMException )
+        {
+        if (index>=items.size())
+            {
+            SVGTransform transform;
+            return transform;
+            }
+        return items[index];
+        }
+
+    /**
+     *
+     */
+    virtual SVGTransform insertItemBefore (const SVGTransform &newItem,
+                                           unsigned long index )
+                                      throw( DOMException, SVGException )
+        {
+        if (index > items.size())
+            items.push_back(newItem);
+        else
+            {
+            std::vector<SVGTransform>::iterator iter = items.begin() + index;
+            items.insert(iter, newItem);
+            }
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGTransform replaceItem (const SVGTransform &newItem,
+                                       unsigned long index )
+                                throw( DOMException, SVGException )
+        {
+        if (index>=items.size())
+            {
+            SVGTransform transform;
+            return transform;
+            }
+        else
+            {
+            std::vector<SVGTransform>::iterator iter = items.begin() + index;
+            *iter = newItem;
+            }
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGTransform removeItem (unsigned long index )
+                                     throw( DOMException )
+        {
+        if (index>=items.size())
+            {
+            SVGTransform transform;
+            return transform;
+            }
+        std::vector<SVGTransform>::iterator iter = items.begin() + index;
+        SVGTransform oldItem = *iter;
+        items.erase(iter);
+        return oldItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGTransform appendItem (const SVGTransform &newItem)
+                                  throw( DOMException, SVGException )
+        {
+        items.push_back(newItem);
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix)
+        {
+        SVGTransform transform;
+        transform.setMatrix(matrix);
+        return transform;
+        }
+
+    /**
+     *
+     */
+    virtual SVGTransform consolidate()
+        {
+        SVGMatrix matrix;
+        for (unsigned int i=0 ; i<items.size() ; i++)
+            matrix = matrix.multiply(items[i].getMatrix());
+        SVGTransform transform;
+        transform.setMatrix(matrix);
+        items.clear();
+        items.push_back(transform);
+        return transform;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGTransformList()
+        {}
+
+    /**
+     *
+     */
+    SVGTransformList(const SVGTransformList &other)
+        {
+        items = other.items;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGTransformList() {}
+
+protected:
+
+    std::vector<SVGTransform> items;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedTransformList
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedTransformList
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGTransformList getBaseVal()
+        { return baseVal; }
+
+    /**
+     *
+     */
+    virtual SVGTransformList getAnimVal()
+        { return animVal; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGAnimatedTransformList()
+        {}
+
+    /**
+     *
+     */
+    SVGAnimatedTransformList(const SVGAnimatedTransformList &other)
+        {
+        baseVal = other.baseVal;
+        animVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedTransformList() {}
+
+protected:
+
+    SVGTransformList baseVal;
+    SVGTransformList animVal;
+
+};
+
+
+
+
+/*#########################################################################
+## SVGAnimatedBoolean
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedBoolean
+{
+public:
+
+    /**
+     *
+     */
+    virtual bool getBaseVal()
+        {
+        return baseVal;
+        }
+
+    /**
+     *
+     */
+    virtual void setBaseVal(bool val) throw (DOMException)
+        {
+        baseVal = val;
+        }
+
+    /**
+     *
+     */
+    virtual bool getAnimVal()
+        {
+        return animVal;
+        }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGAnimatedBoolean()
+        {
+        baseVal = animVal = false;
+        }
+
+    /**
+     *
+     */
+    SVGAnimatedBoolean(const SVGAnimatedBoolean &other)
+        {
+        baseVal = other.baseVal;
+        animVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedBoolean() {}
+
+protected:
+
+    bool baseVal, animVal;
+
+};
+
+
+
+
+/*#########################################################################
+## SVGAnimatedString
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedString
+{
+public:
+
+    /**
+     *
+     */
+    virtual DOMString getBaseVal()
+        {
+        return baseVal;
+        }
+
+    /**
+     *
+     */
+    virtual void setBaseVal(const DOMString &val)
+                            throw (DOMException)
+        {
+        baseVal = val;
+        }
+
+    /**
+     *
+     */
+    virtual DOMString getAnimVal()
+        {
+        return animVal;
+        }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    SVGAnimatedString()
+        {
+        baseVal = "";
+        animVal = "";
+        }
+
+    /**
+     *
+     */
+    SVGAnimatedString(const SVGAnimatedString &other)
+        {
+        baseVal = other.baseVal;
+        animVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedString() {}
+
+protected:
+
+    DOMString baseVal, animVal;
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGStringList
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGStringList
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual unsigned long getNumberOfItems()
+        {
+        return items.size();
+        }
+
+    /**
+     *
+     */
+    virtual void clear () throw( DOMException )
+       {
+       items.clear();
+       }
+
+    /**
+     *
+     */
+    virtual DOMString initialize ( const DOMString& newItem )
+                    throw( DOMException, SVGException )
+        {
+        items.clear();
+        items.push_back(newItem);
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual DOMString getItem ( unsigned long index )
+                    throw( DOMException )
+        {
+        if (index >= items.size())
+            return "";
+        return items[index];
+        }
+
+    /**
+     *
+     */
+    virtual DOMString insertItemBefore ( const DOMString& newItem,
+                                 unsigned long index )
+                               throw( DOMException, SVGException )
+        {
+        if (index>=items.size())
+            {
+            items.push_back(newItem);
+            }
+        else
+            {
+            std::vector<DOMString>::iterator iter = items.begin() + index;
+            items.insert(iter, newItem);
+            }
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual DOMString replaceItem ( const DOMString& newItem,
+                                    unsigned long index )
+                                throw( DOMException, SVGException )
+        {
+        if (index>=items.size())
+            return "";
+        std::vector<DOMString>::iterator iter = items.begin() + index;
+        *iter = newItem;
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual DOMString removeItem ( unsigned long index )
+                    throw( DOMException )
+        {
+        if (index>=items.size())
+            return "";
+        std::vector<DOMString>::iterator iter = items.begin() + index;
+        DOMString oldstr = *iter;
+        items.erase(iter);
+        return oldstr;
+        }
+
+    /**
+     *
+     */
+    virtual DOMString appendItem ( const DOMString& newItem )
+                    throw( DOMException, SVGException )
+        {
+        items.push_back(newItem);
+        return newItem;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGStringList() {}
+
+    /**
+     *
+     */
+   SVGStringList(const SVGStringList &other)
+       {
+       items = other.items;
+       }
+
+    /**
+     *
+     */
+    virtual ~SVGStringList() {}
+
+protected:
+
+    std::vector<DOMString>items;
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedEnumeration
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedEnumeration
+{
+public:
+
+    /**
+     *
+     */
+    virtual unsigned short getBaseVal()
+        {
+        return baseVal;
+        }
+
+    /**
+     *
+     */
+    virtual void setBaseVal(unsigned short val)
+                                     throw (DOMException)
+        {
+        baseVal = val;
+        }
+
+    /**
+     *
+     */
+    virtual unsigned short getAnimVal()
+        {
+        return animVal;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    SVGAnimatedEnumeration()
+        {
+        baseVal = animVal = 0;
+        }
+
+    /**
+     *
+     */
+    SVGAnimatedEnumeration(const SVGAnimatedEnumeration &other)
+        {
+        baseVal = other.baseVal;
+        animVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedEnumeration() {}
+
+protected:
+
+    int baseVal, animVal;
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedInteger
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedInteger
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual long getBaseVal()
+        {
+        return baseVal;
+        }
+
+    /**
+     *
+     */
+    virtual void setBaseVal(long val) throw (DOMException)
+        {
+        baseVal = val;
+        }
+
+    /**
+     *
+     */
+    virtual long getAnimVal()
+        {
+        return animVal;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    SVGAnimatedInteger()
+        { baseVal = animVal = 0L;}
+
+
+    /**
+     *
+     */
+    SVGAnimatedInteger(long value)
+        {
+        baseVal = value;
+        animVal = 0L;
+        }
+
+    /**
+     *
+     */
+    SVGAnimatedInteger(long baseValArg, long animValArg)
+        {
+        baseVal = baseValArg;
+        animVal = animValArg;
+        }
+
+
+    /**
+     *
+     */
+    SVGAnimatedInteger(const SVGAnimatedInteger &other)
+        {
+        baseVal = other.baseVal;
+        animVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedInteger() {}
+
+protected:
+
+    long baseVal, animVal;
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGNumber
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGNumber
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual double getValue()
+        {
+        return value;
+        }
+
+    /**
+     *
+     */
+    virtual void setValue(double val) throw (DOMException)
+        {
+        value = val;
+        }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGNumber()
+        {
+        value = 0.0;
+        }
+
+    /**
+     *
+     */
+    SVGNumber(const SVGNumber &other)
+        {
+        value = other.value;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGNumber() {}
+
+protected:
+
+    double value;
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedNumber
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedNumber
+{
+public:
+
+
+
+    /**
+     *
+     */
+    virtual double getBaseVal()
+        {
+        return baseVal;
+        }
+
+    /**
+     *
+     */
+    virtual void setBaseVal(double val) throw (DOMException)
+        {
+        baseVal = val;
+        }
+
+    /**
+     *
+     */
+    virtual double getAnimVal()
+        {
+        return animVal;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGAnimatedNumber()
+        {
+        baseVal = animVal = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGAnimatedNumber(double val)
+        {
+        baseVal = val;
+        animVal = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGAnimatedNumber(double baseValArg, double animValArg)
+        {
+        baseVal = baseValArg;
+        animVal = animValArg;
+        }
+
+    /**
+     *
+     */
+    SVGAnimatedNumber(const SVGAnimatedNumber &other)
+        {
+        baseVal = other.baseVal;
+        animVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedNumber() {}
+
+protected:
+
+    double baseVal, animVal;
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGNumberList
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGNumberList
+{
+public:
+
+    /**
+     *
+     */
+    virtual unsigned long getNumberOfItems()
+        {
+        return items.size();
+        }
+
+
+    /**
+     *
+     */
+    virtual void clear() throw( DOMException )
+        {
+        items.clear();
+        }
+
+    /**
+     *
+     */
+    virtual SVGNumber initialize (const SVGNumber &newItem)
+                    throw( DOMException, SVGException )
+        {
+        items.clear();
+        items.push_back(newItem);
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGNumber getItem ( unsigned long index )
+                                  throw( DOMException )
+        {
+        if (index>=items.size())
+            {
+            SVGNumber num;
+            return num;
+            }
+        return items[index];
+        }
+
+    /**
+     *
+     */
+    virtual SVGNumber insertItemBefore ( const SVGNumber &newItem,
+                                         unsigned long index )
+                                         throw( DOMException, SVGException )
+        {
+        if (index>=items.size())
+            {
+            items.push_back(newItem);
+            }
+        else
+            {
+            std::vector<SVGNumber>::iterator iter = items.begin() + index;
+            items.insert(iter, newItem);
+            }
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGNumber replaceItem ( const SVGNumber &newItem,
+                                    unsigned long index )
+                                    throw( DOMException, SVGException )
+        {
+        if (index>=items.size())
+            {
+            SVGNumber num;
+            return num;
+            }
+        std::vector<SVGNumber>::iterator iter = items.begin() + index;
+        *iter = newItem;
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGNumber removeItem ( unsigned long index )
+                                  throw( DOMException )
+        {
+        if (index>=items.size())
+            {
+            SVGNumber num;
+            return num;
+            }
+        std::vector<SVGNumber>::iterator iter = items.begin() + index;
+        SVGNumber oldval = *iter;
+        items.erase(iter);
+        return oldval;
+        }
+
+    /**
+     *
+     */
+    virtual SVGNumber appendItem ( const SVGNumber &newItem )
+                                   throw( DOMException, SVGException )
+        {
+        items.push_back(newItem);
+        return newItem;
+        }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGNumberList() {}
+
+    /**
+     *
+     */
+    SVGNumberList(const SVGNumberList &other)
+        {
+        items = other.items;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGNumberList() {}
+
+protected:
+
+    std::vector<SVGNumber>items;
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedNumberList
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedNumberList
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGNumberList &getBaseVal()
+        {
+        return baseVal;
+        }
+
+    /**
+     *
+     */
+    virtual SVGNumberList &getAnimVal()
+        {
+        return animVal;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGAnimatedNumberList() {}
+
+    /**
+     *
+     */
+    SVGAnimatedNumberList(const SVGAnimatedNumberList &other)
+        {
+        baseVal = other.baseVal;
+        animVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedNumberList() {}
+
+protected:
+
+    SVGNumberList baseVal;
+    SVGNumberList animVal;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGLength
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGLength
+{
+public:
+
+    /**
+     * Length Unit Types
+     */
+    typedef enum
+        {
+        SVG_LENGTHTYPE_UNKNOWN    = 0,
+        SVG_LENGTHTYPE_NUMBER     = 1,
+        SVG_LENGTHTYPE_PERCENTAGE = 2,
+        SVG_LENGTHTYPE_EMS        = 3,
+        SVG_LENGTHTYPE_EXS        = 4,
+        SVG_LENGTHTYPE_PX         = 5,
+        SVG_LENGTHTYPE_CM         = 6,
+        SVG_LENGTHTYPE_MM         = 7,
+        SVG_LENGTHTYPE_IN         = 8,
+        SVG_LENGTHTYPE_PT         = 9,
+        SVG_LENGTHTYPE_PC         = 10
+        } LengthUnitType;
+
+
+    /**
+     *
+     */
+    virtual unsigned short getUnitType( )
+        {
+        return unitType;
+        }
+
+    /**
+     *
+     */
+    virtual double getValue( )
+        {
+        return value;
+        }
+
+    /**
+     *
+     */
+    virtual void setValue( double val )  throw (DOMException)
+        {
+        value = val;
+        }
+
+    /**
+     *
+     */
+    virtual double getValueInSpecifiedUnits( )
+        {
+        double result = 0.0;
+        //fill this in
+        return result;
+        }
+
+    /**
+     *
+     */
+    virtual void setValueInSpecifiedUnits( double /*val*/ )
+                                           throw (DOMException)
+        {
+        //fill this in
+        }
+
+    /**
+     *
+     */
+    virtual DOMString getValueAsString( )
+        {
+        DOMString ret;
+        char buf[32];
+        snprintf(buf, 31, "%f", value);
+        ret.append(buf);
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual void setValueAsString( const DOMString& /*val*/ )
+                                   throw (DOMException)
+        {
+        }
+
+
+    /**
+     *
+     */
+    virtual void newValueSpecifiedUnits ( unsigned short /*unitType*/, double /*val*/ )
+        {
+        }
+
+    /**
+     *
+     */
+    virtual void convertToSpecifiedUnits ( unsigned short /*unitType*/ )
+        {
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGLength()
+        {
+        unitType = SVG_LENGTHTYPE_UNKNOWN;
+        value    = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGLength(const SVGLength &other)
+        {
+        unitType  = other.unitType;
+        value     = other.value;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGLength() {}
+
+protected:
+
+    int unitType;
+
+    double value;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedLength
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedLength
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGLength &getBaseVal()
+        {
+        return baseVal;
+        }
+
+    /**
+     *
+     */
+    virtual SVGLength &getAnimVal()
+        {
+        return animVal;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGAnimatedLength() {}
+
+    /**
+     *
+     */
+    SVGAnimatedLength(const SVGAnimatedLength &other)
+        {
+        baseVal = other.baseVal;
+        animVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedLength() {}
+
+protected:
+
+    SVGLength baseVal, animVal;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGLengthList
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGLengthList
+{
+public:
+
+    /**
+     *
+     */
+    virtual unsigned long getNumberOfItems()
+        {
+        return items.size();
+        }
+
+
+    /**
+     *
+     */
+    virtual void clear (  ) throw( DOMException )
+        {
+        items.clear();
+        }
+
+    /**
+     *
+     */
+    virtual SVGLength initialize (const SVGLength &newItem )
+                    throw( DOMException, SVGException )
+        {
+        items.clear();
+        items.push_back(newItem);
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGLength getItem (unsigned long index)
+                    throw( DOMException )
+        {
+        if (index>=items.size())
+            {
+            SVGLength ret;
+            return ret;
+            }
+        return items[index];
+        }
+
+    /**
+     *
+     */
+    virtual SVGLength insertItemBefore (const SVGLength &newItem,
+                                         unsigned long index )
+                                   throw( DOMException, SVGException )
+        {
+        if (index>=items.size())
+            {
+            items.push_back(newItem);
+            }
+        else
+            {
+            std::vector<SVGLength>::iterator iter = items.begin() + index;
+            items.insert(iter, newItem);
+            }
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGLength replaceItem (const SVGLength &newItem,
+                                    unsigned long index )
+                               throw( DOMException, SVGException )
+        {
+        if (index>=items.size())
+            {
+            SVGLength ret;
+            return ret;
+            }
+        std::vector<SVGLength>::iterator iter = items.begin() + index;
+        *iter = newItem;
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGLength removeItem (unsigned long index )
+                    throw( DOMException )
+        {
+        if (index>=items.size())
+            {
+            SVGLength ret;
+            return ret;
+            }
+        std::vector<SVGLength>::iterator iter = items.begin() + index;
+        SVGLength oldval = *iter;
+        items.erase(iter);
+        return oldval;
+        }
+
+    /**
+     *
+     */
+    virtual SVGLength appendItem (const SVGLength &newItem )
+                    throw( DOMException, SVGException )
+        {
+        items.push_back(newItem);
+        return newItem;
+        }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGLengthList() {}
+
+    /**
+     *
+     */
+    SVGLengthList(const SVGLengthList &other)
+        {
+        items = other.items;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGLengthList() {}
+
+protected:
+
+    std::vector<SVGLength>items;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedLengthList
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedLengthList
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGLengthList &getBaseVal()
+        {
+        return baseVal;
+        }
+
+    /**
+     *
+     */
+    virtual SVGLengthList &getAnimVal()
+        {
+        return animVal;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGAnimatedLengthList() {}
+
+    /**
+     *
+     */
+   SVGAnimatedLengthList(const SVGAnimatedLengthList &other)
+        {
+        baseVal = other.baseVal;
+        animVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedLengthList() {}
+
+protected:
+
+    SVGLengthList baseVal, animVal;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAngle
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAngle
+{
+public:
+
+    /**
+     *  Angle Unit Types
+     */
+    typedef enum
+        {
+        SVG_ANGLETYPE_UNKNOWN     = 0,
+        SVG_ANGLETYPE_UNSPECIFIED = 1,
+        SVG_ANGLETYPE_DEG         = 2,
+        SVG_ANGLETYPE_RAD         = 3,
+        SVG_ANGLETYPE_GRAD        = 4
+        } AngleUnitType;
+
+
+
+    /**
+     *
+     */
+    virtual unsigned short getUnitType()
+        {
+        return unitType;
+        }
+
+    /**
+     *
+     */
+    virtual double getValue()
+        {
+        return value;
+        }
+
+    /**
+     *
+     */
+    virtual void setValue(double val) throw (DOMException)
+        {
+        value = val;
+        }
+
+    /**
+     *
+     */
+    virtual double getValueInSpecifiedUnits()
+        {
+        double result = 0.0;
+        //convert here
+        return result;
+        }
+
+    /**
+     *
+     */
+    virtual void setValueInSpecifiedUnits(double /*val*/)
+                                     throw (DOMException)
+        {
+        //do conversion
+        }
+
+    /**
+     *
+     */
+    virtual DOMString getValueAsString()
+        {
+        DOMString result;
+        char buf[32];
+        snprintf(buf, 31, "%f", value);
+        result.append(buf);
+        return result;
+        }
+
+    /**
+     *
+     */
+    virtual void setValueAsString(const DOMString &/*val*/)
+                                  throw (DOMException)
+        {
+        //convert here
+        }
+
+
+    /**
+     *
+     */
+    virtual void newValueSpecifiedUnits (unsigned short /*unitType*/,
+                                         double /*valueInSpecifiedUnits*/ )
+        {
+        //convert here
+        }
+
+    /**
+     *
+     */
+    virtual void convertToSpecifiedUnits (unsigned short /*unitType*/ )
+        {
+        //convert here
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGAngle()
+        {
+        unitType = SVG_ANGLETYPE_UNKNOWN;
+        value    = 0.0;
+        }
+
+    /**
+     *
+     */
+    SVGAngle(const SVGAngle &other)
+        {
+        unitType = other.unitType;
+        value    = other.value;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAngle() {}
+
+protected:
+
+    int unitType;
+
+    double value;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedAngle
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedAngle
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAngle getBaseVal()
+        {
+        return baseVal;
+        }
+
+    /**
+     *
+     */
+    virtual SVGAngle getAnimVal()
+        {
+        return animVal;
+        }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGAnimatedAngle() {}
+
+    /**
+     *
+     */
+    SVGAnimatedAngle(const SVGAngle &angle)
+        { baseVal = angle; }
+
+    /**
+     *
+     */
+    SVGAnimatedAngle(const SVGAnimatedAngle &other)
+        {
+        baseVal = other.baseVal;
+        animVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedAngle() {}
+
+protected:
+
+    SVGAngle baseVal, animVal;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGICCColor
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGICCColor
+{
+public:
+
+    /**
+     *
+     */
+    virtual DOMString getColorProfile()
+        {
+        return colorProfile;
+        }
+
+    /**
+     *
+     */
+    virtual void setColorProfile(const DOMString &val) throw (DOMException)
+        {
+        colorProfile = val;
+        }
+
+    /**
+     *
+     */
+    virtual SVGNumberList &getColors()
+        {
+        return colors;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGICCColor() {}
+
+    /**
+     *
+     */
+    SVGICCColor(const SVGICCColor &other)
+        {
+        colorProfile = other.colorProfile;
+        colors       = other.colors;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGICCColor() {}
+
+protected:
+
+    DOMString colorProfile;
+
+    SVGNumberList colors;
+
+};
+
+
+/*#########################################################################
+## SVGColor
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGColor : virtual public css::CSSValue
+{
+public:
+
+
+    /**
+     * Color Types
+     */
+    typedef enum
+        {
+        SVG_COLORTYPE_UNKNOWN           = 0,
+        SVG_COLORTYPE_RGBCOLOR          = 1,
+        SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2,
+        SVG_COLORTYPE_CURRENTCOLOR      = 3
+        } ColorType;
+
+
+    /**
+     *
+     */
+    virtual unsigned short getColorType()
+        {
+        return colorType;
+        }
+
+    /**
+     *
+     */
+    virtual css::RGBColor getRgbColor()
+        {
+        css::RGBColor col;
+        return col;
+        }
+
+    /**
+     *
+     */
+    virtual SVGICCColor getIccColor()
+        {
+        SVGICCColor col;
+        return col;
+        }
+
+
+    /**
+     *
+     */
+    virtual void setRGBColor (const DOMString& /*rgbColor*/ )
+                              throw( SVGException )
+        {
+        }
+
+    /**
+     *
+     */
+    virtual void setRGBColorICCColor (const DOMString& /*rgbColor*/,
+                                      const DOMString& /*iccColor*/ )
+                                      throw( SVGException )
+        {
+        }
+
+    /**
+     *
+     */
+    virtual void setColor (unsigned short /*colorType*/,
+                           const DOMString& /*rgbColor*/,
+                           const DOMString& /*iccColor*/ )
+                           throw( SVGException )
+        {
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGColor()
+        {
+        colorType = SVG_COLORTYPE_UNKNOWN;
+        }
+
+    /**
+     *
+     */
+    SVGColor(const SVGColor &other) : css::CSSValue(other)
+        {
+        colorType = other.colorType;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGColor() {}
+
+protected:
+
+    int colorType;
+
+};
+
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGRect
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGRect
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        {
+        return x;
+        }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        {
+        x = val;
+        }
+
+    /**
+     *
+     */
+    virtual double getY()
+        {
+        return y;
+        }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        {
+        y = val;
+        }
+
+    /**
+     *
+     */
+    virtual double getWidth()
+        {
+        return width;
+        }
+
+    /**
+     *
+     */
+    virtual void setWidth(double val) throw (DOMException)
+        {
+        width = val;
+        }
+
+    /**
+     *
+     */
+    virtual double getHeight()
+        {
+        return height;
+        }
+
+    /**
+     *
+     */
+    virtual void setHeight(double val) throw (DOMException)
+        {
+        height = val;
+        }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGRect()
+        {
+        x = y = width = height = 0.0;
+        }
+
+    /**
+     *
+     */
+    SVGRect(const SVGRect &other)
+        {
+        x = other.x;
+        y = other.y;
+        width = other.width;
+        height = other.height;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGRect() {}
+
+protected:
+
+    double x, y, width, height;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedRect
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedRect
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGRect &getBaseVal()
+        {
+        return baseVal;
+        }
+
+    /**
+     *
+     */
+    virtual SVGRect &getAnimVal()
+        {
+        return animVal;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGAnimatedRect()
+        {
+        }
+
+    /**
+     *
+     */
+    SVGAnimatedRect(const SVGAnimatedRect &other)
+        {
+        baseVal = other.baseVal;
+        animVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedRect() {}
+
+protected:
+
+    SVGRect baseVal, animVal;
+
+};
+
+
+
+/*#########################################################################
+## SVGPoint
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPoint
+{
+public:
+
+
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    /**
+     *
+     */
+    virtual SVGPoint matrixTransform(const SVGMatrix &/*matrix*/)
+        {
+        SVGPoint point;
+        return point;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPoint()
+        { x = y = 0; }
+
+    /**
+     *
+     */
+    SVGPoint(const SVGPoint &other)
+        {
+        x = other.x;
+        y = other.y;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPoint() {}
+
+protected:
+
+    double x, y;
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPointList
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPointList
+{
+public:
+
+    /**
+     *
+     */
+    virtual unsigned long getNumberOfItems()
+        { return items.size(); }
+
+    /**
+     *
+     */
+    virtual void clear() throw( DOMException )
+        { items.clear(); }
+
+    /**
+     *
+     */
+    virtual SVGPoint initialize(const SVGPoint &newItem)
+                             throw( DOMException, SVGException )
+        {
+        items.clear();
+        items.push_back(newItem);
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPoint getItem(unsigned long index )
+                             throw( DOMException )
+        {
+        if (index >= items.size())
+            {
+            SVGPoint point;
+            return point;
+            }
+        return items[index];
+        }
+
+    /**
+     *
+     */
+    virtual SVGPoint insertItemBefore(const SVGPoint &newItem,
+                                      unsigned long index )
+                                      throw( DOMException, SVGException )
+        {
+        if (index >= items.size())
+            items.push_back(newItem);
+        else
+            {
+            std::vector<SVGPoint>::iterator iter = items.begin() + index;
+            items.insert(iter, newItem);
+            }
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPoint replaceItem(const SVGPoint &newItem,
+                                  unsigned long index )
+                                  throw( DOMException, SVGException )
+        {
+        if (index >= items.size())
+            {
+            SVGPoint point;
+            return point;
+            }
+        std::vector<SVGPoint>::iterator iter = items.begin() + index;
+        *iter = newItem;
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPoint removeItem(unsigned long index )
+                                  throw( DOMException )
+        {
+        if (index >= items.size())
+            {
+            SVGPoint point;
+            return point;
+            }
+        std::vector<SVGPoint>::iterator iter = items.begin() + index;
+        SVGPoint oldItem = *iter;
+        items.erase(iter);
+        return oldItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPoint appendItem(const SVGPoint &newItem)
+                              throw( DOMException, SVGException )
+        {
+        items.push_back(newItem);
+        return newItem;
+        }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPointList() {}
+
+
+    /**
+     *
+     */
+    SVGPointList(const SVGPointList &other)
+        {
+        items = other.items;
+        }
+
+
+    /**
+     *
+     */
+    virtual ~SVGPointList() {}
+
+protected:
+
+    std::vector<SVGPoint> items;
+
+};
+
+
+
+
+/*#########################################################################
+## SVGUnitTypes
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGUnitTypes
+{
+public:
+
+    /**
+     * Unit Types
+     */
+    typedef enum
+        {
+        SVG_UNIT_TYPE_UNKNOWN           = 0,
+        SVG_UNIT_TYPE_USERSPACEONUSE    = 1,
+        SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2
+        } UnitType;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGUnitTypes() {}
+
+    /**
+     *
+     */
+    virtual ~SVGUnitTypes() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGStylable
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGStylable
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getClassName()
+        {
+        return className;
+        }
+
+    /**
+     *
+     */
+    virtual css::CSSStyleDeclaration getStyle()
+        {
+        return style;
+        }
+
+
+    /**
+     *
+     */
+    virtual css::CSSValue getPresentationAttribute (const DOMString& /*name*/ )
+        {
+        css::CSSValue val;
+        //perform a lookup
+        return val;
+        }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGStylable() {}
+
+    /**
+     *
+     */
+    SVGStylable(const SVGStylable &other)
+        {
+        className = other.className;
+        style     = other.style;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGStylable() {}
+
+protected:
+
+    SVGAnimatedString className;
+    css::CSSStyleDeclaration style;
+
+};
+
+
+/*#########################################################################
+## SVGLocatable
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGLocatable
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGElement *getNearestViewportElement()
+        {
+        SVGElement *result = NULL;
+        return result;
+        }
+
+    /**
+     *
+     */
+    virtual SVGElement *getFarthestViewportElement()
+        {
+        SVGElement *result = NULL;
+        return result;
+        }
+
+    /**
+     *
+     */
+    virtual SVGRect getBBox (  )
+        {
+        return bbox;
+        }
+
+    /**
+     *
+     */
+    virtual SVGMatrix getCTM (  )
+        {
+        return ctm;
+        }
+
+    /**
+     *
+     */
+    virtual SVGMatrix getScreenCTM (  )
+        {
+        return screenCtm;
+        }
+
+    /**
+     *
+     */
+    virtual SVGMatrix getTransformToElement (const SVGElement &/*element*/)
+                    throw( SVGException )
+        {
+        SVGMatrix result;
+        //do calculations
+        return result;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGLocatable() {}
+
+    /**
+     *
+     */
+    SVGLocatable(const SVGLocatable &/*other*/)
+        {
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGLocatable() {}
+
+protected:
+
+    SVGRect bbox;
+    SVGMatrix ctm;
+    SVGMatrix screenCtm;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGTransformable
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTransformable : public SVGLocatable
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedTransformList &getTransform()
+        {
+        return transforms;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGTransformable() {}
+
+    /**
+     *
+     */
+    SVGTransformable(const SVGTransformable &other) : SVGLocatable(other)
+        {
+        transforms = other.transforms;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGTransformable() {}
+
+protected:
+
+    SVGAnimatedTransformList transforms;
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGTests
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTests
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGStringList &getRequiredFeatures()
+        {
+        return requiredFeatures;
+        }
+
+    /**
+     *
+     */
+    virtual SVGStringList &getRequiredExtensions()
+        {
+        return requiredExtensions;
+        }
+
+    /**
+     *
+     */
+    virtual SVGStringList &getSystemLanguage()
+        {
+        return systemLanguage;
+        }
+
+
+    /**
+     *
+     */
+    virtual bool hasExtension (const DOMString& /*extension*/ )
+        {
+        return false;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGTests() {}
+
+    /**
+     *
+     */
+    SVGTests(const SVGTests &other)
+        {
+        requiredFeatures   = other.requiredFeatures;
+        requiredExtensions = other.requiredExtensions;
+        systemLanguage     = other.systemLanguage;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGTests() {}
+
+protected:
+
+    SVGStringList requiredFeatures;
+    SVGStringList requiredExtensions;
+    SVGStringList systemLanguage;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGLangSpace
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGLangSpace
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual DOMString getXmllang()
+        {
+        return xmlLang;
+        }
+
+    /**
+     *
+     */
+    virtual void setXmllang(const DOMString &val)
+                                     throw (DOMException)
+        {
+        xmlLang = val;
+        }
+
+    /**
+     *
+     */
+    virtual DOMString getXmlspace()
+        {
+        return xmlSpace;
+        }
+
+    /**
+     *
+     */
+    virtual void setXmlspace(const DOMString &val)
+                                     throw (DOMException)
+        {
+        xmlSpace = val;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGLangSpace() {}
+
+    /**
+     *
+     */
+    SVGLangSpace(const SVGLangSpace &other)
+        {
+        xmlLang  = other.xmlLang;
+        xmlSpace = other.xmlSpace;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGLangSpace() {}
+
+protected:
+
+    DOMString xmlLang;
+    DOMString xmlSpace;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGExternalResourcesRequired
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGExternalResourcesRequired
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedBoolean getExternalResourcesRequired()
+        { return required; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGExternalResourcesRequired()
+        {  }
+
+
+    /**
+     *
+     */
+    SVGExternalResourcesRequired(const SVGExternalResourcesRequired &other)
+        {
+        required = other.required;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGExternalResourcesRequired() {}
+
+protected:
+
+    SVGAnimatedBoolean required;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPreserveAspectRatio
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPreserveAspectRatio
+{
+public:
+
+
+    /**
+     * Alignment Types
+     */
+    typedef enum
+        {
+        SVG_PRESERVEASPECTRATIO_UNKNOWN  = 0,
+        SVG_PRESERVEASPECTRATIO_NONE     = 1,
+        SVG_PRESERVEASPECTRATIO_XMINYMIN = 2,
+        SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3,
+        SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4,
+        SVG_PRESERVEASPECTRATIO_XMINYMID = 5,
+        SVG_PRESERVEASPECTRATIO_XMIDYMID = 6,
+        SVG_PRESERVEASPECTRATIO_XMAXYMID = 7,
+        SVG_PRESERVEASPECTRATIO_XMINYMAX = 8,
+        SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9,
+        SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10
+        } AlignmentType;
+
+
+    /**
+     * Meet-or-slice Types
+     */
+    typedef enum
+        {
+        SVG_MEETORSLICE_UNKNOWN  = 0,
+        SVG_MEETORSLICE_MEET     = 1,
+        SVG_MEETORSLICE_SLICE    = 2
+        } MeetOrSliceType;
+
+
+    /**
+     *
+     */
+    virtual unsigned short getAlign()
+        { return align; }
+
+    /**
+     *
+     */
+    virtual void setAlign(unsigned short val) throw (DOMException)
+        { align = val; }
+
+    /**
+     *
+     */
+    virtual unsigned short getMeetOrSlice()
+        { return meetOrSlice; }
+
+    /**
+     *
+     */
+    virtual void setMeetOrSlice(unsigned short val) throw (DOMException)
+        { meetOrSlice = val; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPreserveAspectRatio()
+        {
+        align       = SVG_PRESERVEASPECTRATIO_UNKNOWN;
+        meetOrSlice = SVG_MEETORSLICE_UNKNOWN;
+        }
+
+    /**
+     *
+     */
+    SVGPreserveAspectRatio(const SVGPreserveAspectRatio &other)
+        {
+        align       = other.align;
+        meetOrSlice = other.meetOrSlice;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPreserveAspectRatio() {}
+
+protected:
+
+    unsigned short align;
+    unsigned short meetOrSlice;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedPreserveAspectRatio
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedPreserveAspectRatio
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual SVGPreserveAspectRatio getBaseVal()
+        { return baseVal; }
+
+    /**
+     *
+     */
+    virtual SVGPreserveAspectRatio getAnimVal()
+        { return animVal; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGAnimatedPreserveAspectRatio() {}
+
+    /**
+     *
+     */
+    SVGAnimatedPreserveAspectRatio(const SVGAnimatedPreserveAspectRatio &other)
+        {
+        baseVal = other.baseVal;
+        baseVal = other.animVal;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedPreserveAspectRatio() {}
+
+protected:
+
+    SVGPreserveAspectRatio baseVal;
+    SVGPreserveAspectRatio animVal;
+
+};
+
+
+
+
+/*#########################################################################
+## SVGFitToViewBox
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFitToViewBox
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedRect getViewBox()
+        { return viewBox; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()
+        { return preserveAspectRatio; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGFitToViewBox()
+        {}
+
+    /**
+     *
+     */
+
+    SVGFitToViewBox(const SVGFitToViewBox &other)
+        {
+        viewBox = other.viewBox;
+        preserveAspectRatio = other.preserveAspectRatio;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGFitToViewBox() {}
+
+protected:
+
+    SVGAnimatedRect viewBox;
+
+    SVGAnimatedPreserveAspectRatio preserveAspectRatio;
+
+};
+
+
+/*#########################################################################
+## SVGZoomAndPan
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGZoomAndPan
+{
+public:
+
+
+    /**
+     * Zoom and Pan Types
+     */
+    typedef enum
+        {
+        SVG_ZOOMANDPAN_UNKNOWN = 0,
+        SVG_ZOOMANDPAN_DISABLE = 1,
+        SVG_ZOOMANDPAN_MAGNIFY = 2
+        } ZoomAndPanType;
+
+
+    /**
+     *
+     */
+    virtual unsigned short getZoomAndPan()
+        { return zoomAndPan; }
+
+    /**
+     *
+     */
+    virtual void setZoomAndPan(unsigned short val) throw (DOMException)
+        { zoomAndPan = val; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGZoomAndPan()
+        { zoomAndPan = SVG_ZOOMANDPAN_UNKNOWN; }
+
+    /**
+     *
+     */
+    SVGZoomAndPan(const SVGZoomAndPan &other)
+        { zoomAndPan = other.zoomAndPan; }
+
+    /**
+     *
+     */
+    virtual ~SVGZoomAndPan() {}
+
+protected:
+
+    unsigned short zoomAndPan;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGViewSpec
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGViewSpec : public SVGZoomAndPan,
+                    public SVGFitToViewBox
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGTransformList getTransform()
+        { return transform; }
+
+    /**
+     *
+     */
+    virtual SVGElement *getViewTarget()
+        { return viewTarget; }
+
+    /**
+     *
+     */
+    virtual DOMString getViewBoxString()
+        {
+        DOMString ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual DOMString getPreserveAspectRatioString()
+        {
+        DOMString ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual DOMString getTransformString()
+        {
+        DOMString ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual DOMString getViewTargetString()
+        {
+        DOMString ret;
+        return ret;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGViewSpec()
+        {
+        viewTarget = NULL;
+        }
+
+    /**
+     *
+     */
+    SVGViewSpec(const SVGViewSpec &other) : SVGZoomAndPan(other), SVGFitToViewBox(other)
+        {
+        viewTarget = other.viewTarget;
+        transform  = other.transform;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGViewSpec() {}
+
+protected:
+
+    SVGElement *viewTarget;
+    SVGTransformList transform;
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGURIReference
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGURIReference
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getHref()
+        { return href; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGURIReference() {}
+
+    /**
+     *
+     */
+    SVGURIReference(const SVGURIReference &other)
+        {
+        href = other.href;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGURIReference() {}
+
+protected:
+
+    SVGAnimatedString href;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGCSSRule
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGCSSRule : public css::CSSRule
+{
+public:
+
+
+    /**
+     * Additional CSS RuleType to support ICC color specifications
+     */
+    typedef enum
+        {
+        COLOR_PROFILE_RULE = 7
+        } ColorProfileRuleType;
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGCSSRule()
+        { type = COLOR_PROFILE_RULE; }
+
+    /**
+     *
+     */
+    SVGCSSRule(const SVGCSSRule &other) : css::CSSRule(other)
+        { type = COLOR_PROFILE_RULE; }
+
+    /**
+     *
+     */
+    virtual ~SVGCSSRule() {}
+
+};
+
+
+
+/*#########################################################################
+## SVGRenderingIntent
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGRenderingIntent
+{
+public:
+
+    /**
+     * Rendering Intent Types
+     */
+    typedef enum
+        {
+        RENDERING_INTENT_UNKNOWN               = 0,
+        RENDERING_INTENT_AUTO                  = 1,
+        RENDERING_INTENT_PERCEPTUAL            = 2,
+        RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3,
+        RENDERING_INTENT_SATURATION            = 4,
+        RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5
+        } RenderingIntentType;
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGRenderingIntent()
+        {
+        renderingIntentType = RENDERING_INTENT_UNKNOWN;
+        }
+
+    /**
+     *
+     */
+    SVGRenderingIntent(const SVGRenderingIntent &other)
+        {
+        renderingIntentType = other.renderingIntentType;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGRenderingIntent() {}
+
+protected:
+
+    unsigned short renderingIntentType;
+};
+
+
+
+
+
+
+
+/*#########################################################################
+###########################################################################
+## P A T H    S E G M E N T S
+###########################################################################
+#########################################################################*/
+
+static char const *const pathSegLetters[] =
+{
+    "@", // PATHSEG_UNKNOWN,
+    "z", // PATHSEG_CLOSEPATH
+    "M", // PATHSEG_MOVETO_ABS
+    "m", // PATHSEG_MOVETO_REL,
+    "L", // PATHSEG_LINETO_ABS
+    "l", // PATHSEG_LINETO_REL
+    "C", // PATHSEG_CURVETO_CUBIC_ABS
+    "c", // PATHSEG_CURVETO_CUBIC_REL
+    "Q", // PATHSEG_CURVETO_QUADRATIC_ABS,
+    "q", // PATHSEG_CURVETO_QUADRATIC_REL
+    "A", // PATHSEG_ARC_ABS
+    "a", // PATHSEG_ARC_REL,
+    "H", // PATHSEG_LINETO_HORIZONTAL_ABS,
+    "h", // PATHSEG_LINETO_HORIZONTAL_REL
+    "V", // PATHSEG_LINETO_VERTICAL_ABS
+    "v", // PATHSEG_LINETO_VERTICAL_REL
+    "S", // PATHSEG_CURVETO_CUBIC_SMOOTH_ABS
+    "s", // PATHSEG_CURVETO_CUBIC_SMOOTH_REL
+    "T", // PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS
+    "t"  // PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL
+};
+
+/*#########################################################################
+## SVGPathSeg
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSeg
+{
+public:
+
+
+
+    /**
+     *  Path Segment Types
+     */
+    typedef enum
+        {
+        PATHSEG_UNKNOWN                      = 0,
+        PATHSEG_CLOSEPATH                    = 1,
+        PATHSEG_MOVETO_ABS                   = 2,
+        PATHSEG_MOVETO_REL                   = 3,
+        PATHSEG_LINETO_ABS                   = 4,
+        PATHSEG_LINETO_REL                   = 5,
+        PATHSEG_CURVETO_CUBIC_ABS            = 6,
+        PATHSEG_CURVETO_CUBIC_REL            = 7,
+        PATHSEG_CURVETO_QUADRATIC_ABS        = 8,
+        PATHSEG_CURVETO_QUADRATIC_REL        = 9,
+        PATHSEG_ARC_ABS                      = 10,
+        PATHSEG_ARC_REL                      = 11,
+        PATHSEG_LINETO_HORIZONTAL_ABS        = 12,
+        PATHSEG_LINETO_HORIZONTAL_REL        = 13,
+        PATHSEG_LINETO_VERTICAL_ABS          = 14,
+        PATHSEG_LINETO_VERTICAL_REL          = 15,
+        PATHSEG_CURVETO_CUBIC_SMOOTH_ABS     = 16,
+        PATHSEG_CURVETO_CUBIC_SMOOTH_REL     = 17,
+        PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18,
+        PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19
+        } PathSegmentType;
+
+    /**
+     *
+     */
+    virtual unsigned short getPathSegType()
+        { return type; }
+
+    /**
+     *
+     */
+    virtual DOMString getPathSegTypeAsLetter()
+        {
+        int typ = type;
+        if (typ<0 || typ>PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL)
+            typ = PATHSEG_UNKNOWN;
+        char const *ch = pathSegLetters[typ];
+        DOMString letter = ch;
+        return letter;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSeg()
+        { type = PATHSEG_UNKNOWN; }
+
+    /**
+     *
+     */
+    SVGPathSeg(const SVGPathSeg &other)
+        {
+        type = other.type;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSeg() {}
+
+protected:
+
+    int type;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegClosePath
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegClosePath : public SVGPathSeg
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegClosePath()
+        {
+        type = PATHSEG_CLOSEPATH;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegClosePath(const SVGPathSegClosePath &other) : SVGPathSeg(other)
+        {
+        type = PATHSEG_CLOSEPATH;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegClosePath() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGPathSegMovetoAbs
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegMovetoAbs : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegMovetoAbs()
+        {
+        type = PATHSEG_MOVETO_ABS;
+        x = y = 0.0;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegMovetoAbs(double xArg, double yArg)
+        {
+        type = PATHSEG_MOVETO_ABS;
+        x = xArg; y = yArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegMovetoAbs(const SVGPathSegMovetoAbs &other) : SVGPathSeg(other)
+        {
+        type = PATHSEG_MOVETO_ABS;
+        x = other.x; y = other.y;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegMovetoAbs() {}
+
+protected:
+
+    double x,y;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegMovetoRel
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegMovetoRel : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegMovetoRel()
+        {
+        type = PATHSEG_MOVETO_REL;
+        x = y = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegMovetoRel(double xArg, double yArg)
+        {
+        type = PATHSEG_MOVETO_REL;
+        x = xArg; y = yArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegMovetoRel(const SVGPathSegMovetoRel &other) : SVGPathSeg(other)
+        {
+        type = PATHSEG_MOVETO_REL;
+        x = other.x; y = other.y;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegMovetoRel() {}
+
+protected:
+
+    double x,y;
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegLinetoAbs
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegLinetoAbs : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegLinetoAbs()
+        {
+        type = PATHSEG_LINETO_ABS;
+        x = y = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegLinetoAbs(double xArg, double yArg)
+        {
+        type = PATHSEG_LINETO_ABS;
+        x = xArg; y = yArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegLinetoAbs(const SVGPathSegLinetoAbs &other) : SVGPathSeg(other)
+        {
+        type = PATHSEG_LINETO_ABS;
+        x = other.x; y = other.y;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegLinetoAbs() {}
+
+protected:
+
+    double x,y;
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegLinetoRel
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegLinetoRel : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegLinetoRel()
+        {
+        type = PATHSEG_LINETO_REL;
+        x = y = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegLinetoRel(double xArg, double yArg)
+        {
+        type = PATHSEG_LINETO_REL;
+        x = xArg; y = yArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegLinetoRel(const SVGPathSegLinetoRel &other) : SVGPathSeg(other)
+        {
+        type = PATHSEG_LINETO_REL;
+        x = other.x; y = other.y;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegLinetoRel() {}
+
+protected:
+
+    double x,y;
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegCurvetoCubicAbs
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegCurvetoCubicAbs : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    /**
+     *
+     */
+    virtual double getX1()
+        { return x1; }
+
+    /**
+     *
+     */
+    virtual void setX1(double val) throw (DOMException)
+        { x1 = val; }
+
+    /**
+     *
+     */
+    virtual double getY1()
+        { return y1; }
+
+    /**
+     *
+     */
+    virtual void setY1(double val) throw (DOMException)
+        { y1 = val; }
+
+
+    /**
+     *
+     */
+    virtual double getX2()
+        { return x2; }
+
+    /**
+     *
+     */
+    virtual void setX2(double val) throw (DOMException)
+        { x2 = val; }
+
+    /**
+     *
+     */
+    virtual double getY2()
+        { return y2; }
+
+    /**
+     *
+     */
+    virtual void setY2(double val) throw (DOMException)
+        { y2 = val; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicAbs()
+        {
+        type = PATHSEG_CURVETO_CUBIC_ABS;
+        x = y = x1 = y1 = x2 = y2 = 0.0;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicAbs(double xArg,  double yArg,
+                              double x1Arg, double y1Arg,
+                              double x2Arg, double y2Arg)
+        {
+        type = PATHSEG_CURVETO_CUBIC_ABS;
+        x  = xArg;   y  = yArg;
+        x1 = x1Arg;  y1 = y1Arg;
+        x2 = x2Arg;  y2 = y2Arg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicAbs(const SVGPathSegCurvetoCubicAbs &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_CURVETO_CUBIC_ABS;
+        x  = other.x;  y  = other.y;
+        x1 = other.x1; y1 = other.y1;
+        x2 = other.x2; y2 = other.y2;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegCurvetoCubicAbs() {}
+
+protected:
+
+    double x, y, x1, y1, x2, y2;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegCurvetoCubicRel
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegCurvetoCubicRel : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    /**
+     *
+     */
+    virtual double getX1()
+        { return x1; }
+
+    /**
+     *
+     */
+    virtual void setX1(double val) throw (DOMException)
+        { x1 = val; }
+
+    /**
+     *
+     */
+    virtual double getY1()
+        { return y1; }
+
+    /**
+     *
+     */
+    virtual void setY1(double val) throw (DOMException)
+        { y1 = val; }
+
+
+    /**
+     *
+     */
+    virtual double getX2()
+        { return x2; }
+
+    /**
+     *
+     */
+    virtual void setX2(double val) throw (DOMException)
+        { x2 = val; }
+
+    /**
+     *
+     */
+    virtual double getY2()
+        { return y2; }
+
+    /**
+     *
+     */
+    virtual void setY2(double val) throw (DOMException)
+        { y2 = val; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicRel()
+        {
+        type = PATHSEG_CURVETO_CUBIC_REL;
+        x = y = x1 = y1 = x2 = y2 = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicRel(double xArg,  double yArg,
+                              double x1Arg, double y1Arg,
+                              double x2Arg, double y2Arg)
+        {
+        type = PATHSEG_CURVETO_CUBIC_REL;
+        x  = xArg;   y  = yArg;
+        x1 = x1Arg;  y1 = y1Arg;
+        x2 = x2Arg;  y2 = y2Arg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicRel(const SVGPathSegCurvetoCubicRel &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_CURVETO_CUBIC_REL;
+        x  = other.x;  y  = other.y;
+        x1 = other.x1; y1 = other.y1;
+        x2 = other.x2; y2 = other.y2;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegCurvetoCubicRel() {}
+
+protected:
+
+    double x, y, x1, y1, x2, y2;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegCurvetoQuadraticAbs
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegCurvetoQuadraticAbs : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    /**
+     *
+     */
+    virtual double getX1()
+        { return x1; }
+
+    /**
+     *
+     */
+    virtual void setX1(double val) throw (DOMException)
+        { x1 = val; }
+
+    /**
+     *
+     */
+    virtual double getY1()
+        { return y1; }
+
+    /**
+     *
+     */
+    virtual void setY1(double val) throw (DOMException)
+        { y1 = val; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticAbs()
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_ABS;
+        x = y = x1 = y1 = 0.0;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticAbs(double xArg,  double yArg,
+                              double x1Arg, double y1Arg)
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_ABS;
+        x  = xArg;   y  = yArg;
+        x1 = x1Arg;  y1 = y1Arg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticAbs(const SVGPathSegCurvetoQuadraticAbs &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_ABS;
+        x  = other.x;  y  = other.y;
+        x1 = other.x1; y1 = other.y1;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegCurvetoQuadraticAbs() {}
+
+protected:
+
+    double x, y, x1, y1;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegCurvetoQuadraticRel
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegCurvetoQuadraticRel : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    /**
+     *
+     */
+    virtual double getX1()
+        { return x1; }
+
+    /**
+     *
+     */
+    virtual void setX1(double val) throw (DOMException)
+        { x1 = val; }
+
+    /**
+     *
+     */
+    virtual double getY1()
+        { return y1; }
+
+    /**
+     *
+     */
+    virtual void setY1(double val) throw (DOMException)
+        { y1 = val; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticRel()
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_REL;
+        x = y = x1 = y1 = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticRel(double xArg,  double yArg,
+                                  double x1Arg, double y1Arg)
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_REL;
+        x  = xArg;   y  = yArg;
+        x1 = x1Arg;  y1 = y1Arg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticRel(const SVGPathSegCurvetoQuadraticRel &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_REL;
+        x  = other.x;  y  = other.y;
+        x1 = other.x1; y1 = other.y1;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegCurvetoQuadraticRel() {}
+
+protected:
+
+    double x, y, x1, y1;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegArcAbs
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegArcAbs : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    /**
+     *
+     */
+    virtual double getR1()
+        { return r1; }
+
+    /**
+     *
+     */
+    virtual void setR1(double val) throw (DOMException)
+        { r1 = val; }
+
+    /**
+     *
+     */
+    virtual double getR2()
+        { return r2; }
+
+    /**
+     *
+     */
+    virtual void setR2(double val) throw (DOMException)
+        { r2 = val; }
+
+    /**
+     *
+     */
+    virtual double getAngle()
+        { return angle; }
+
+    /**
+     *
+     */
+    virtual void setAngle(double val) throw (DOMException)
+        { angle = val; }
+
+    /**
+     *
+     */
+    virtual bool getLargeArcFlag()
+        { return largeArcFlag; }
+
+    /**
+     *
+     */
+    virtual void setLargeArcFlag(bool val) throw (DOMException)
+        { largeArcFlag = val; }
+
+    /**
+     *
+     */
+    virtual bool getSweepFlag()
+        { return sweepFlag; }
+
+    /**
+     *
+     */
+    virtual void setSweepFlag(bool val) throw (DOMException)
+        { sweepFlag = val; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    SVGPathSegArcAbs()
+        {
+        type = PATHSEG_ARC_ABS;
+        x = y = r1 = r2 = angle = 0.0;
+        largeArcFlag = sweepFlag = false;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegArcAbs(double xArg,  double yArg,
+                     double r1Arg, double r2Arg,
+                     double angleArg,
+                     bool largeArcFlagArg,
+                     bool sweepFlagArg )
+
+        {
+        type = PATHSEG_ARC_ABS;
+        x  = xArg;   y  = yArg;
+        r1 = r1Arg;  r2 = r2Arg;
+        angle        = angleArg;
+        largeArcFlag = largeArcFlagArg;
+        sweepFlag    = sweepFlagArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegArcAbs(const SVGPathSegArcAbs &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_ARC_ABS;
+        x  = other.x;  y  = other.y;
+        r1 = other.r1; r2 = other.r2;
+        angle        = other.angle;
+        largeArcFlag = other.largeArcFlag;
+        sweepFlag    = other.sweepFlag;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegArcAbs() {}
+
+protected:
+
+    double x, y, r1, r2, angle;
+    bool largeArcFlag;
+    bool sweepFlag;
+
+};
+
+
+
+/*#########################################################################
+## SVGPathSegArcRel
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegArcRel : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    /**
+     *
+     */
+    virtual double getR1()
+        { return r1; }
+
+    /**
+     *
+     */
+    virtual void setR1(double val) throw (DOMException)
+        { r1 = val; }
+
+    /**
+     *
+     */
+    virtual double getR2()
+        { return r2; }
+
+    /**
+     *
+     */
+    virtual void setR2(double val) throw (DOMException)
+        { r2 = val; }
+
+    /**
+     *
+     */
+    virtual double getAngle()
+        { return angle; }
+
+    /**
+     *
+     */
+    virtual void setAngle(double val) throw (DOMException)
+        { angle = val; }
+
+    /**
+     *
+     */
+    virtual bool getLargeArcFlag()
+        { return largeArcFlag; }
+
+    /**
+     *
+     */
+    virtual void setLargeArcFlag(bool val) throw (DOMException)
+        { largeArcFlag = val; }
+
+    /**
+     *
+     */
+    virtual bool getSweepFlag()
+        { return sweepFlag; }
+
+    /**
+     *
+     */
+    virtual void setSweepFlag(bool val) throw (DOMException)
+        { sweepFlag = val; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    SVGPathSegArcRel()
+        {
+        type = PATHSEG_ARC_REL;
+        x = y = r1 = r2 = angle = 0.0;
+        largeArcFlag = sweepFlag = false;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegArcRel(double xArg, double yArg,
+                     double r1Arg, double r2Arg,
+                     double angleArg,
+                     bool largeArcFlagArg,
+                     bool sweepFlagArg )
+
+        {
+        type = PATHSEG_ARC_REL;
+        x  = xArg;   y  = yArg;
+        r1 = r1Arg;  r2 = r2Arg;
+        angle        = angleArg;
+        largeArcFlag = largeArcFlagArg;
+        sweepFlag    = sweepFlagArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegArcRel(const SVGPathSegArcRel &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_ARC_REL;
+        x  = other.x;  y  = other.y;
+        r1 = other.r1; r2 = other.r2;
+        angle        = other.angle;
+        largeArcFlag = other.largeArcFlag;
+        sweepFlag    = other.sweepFlag;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegArcRel() {}
+
+protected:
+
+    double x, y, r1, r2, angle;
+    bool largeArcFlag;
+    bool sweepFlag;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegLinetoHorizontalAbs
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegLinetoHorizontalAbs : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegLinetoHorizontalAbs()
+        {
+        type = PATHSEG_LINETO_HORIZONTAL_ABS;
+        x = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegLinetoHorizontalAbs(double xArg)
+        {
+        type = PATHSEG_LINETO_HORIZONTAL_ABS;
+        x = xArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegLinetoHorizontalAbs(const SVGPathSegLinetoHorizontalAbs &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_LINETO_HORIZONTAL_ABS;
+        x = other.x;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegLinetoHorizontalAbs() {}
+
+protected:
+
+    double x;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegLinetoHorizontalRel
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegLinetoHorizontalRel : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegLinetoHorizontalRel()
+        {
+        type = PATHSEG_LINETO_HORIZONTAL_REL;
+        x = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegLinetoHorizontalRel(double xArg)
+        {
+        type = PATHSEG_LINETO_HORIZONTAL_REL;
+        x = xArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegLinetoHorizontalRel(const SVGPathSegLinetoHorizontalRel &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_LINETO_HORIZONTAL_REL;
+        x = other.x;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegLinetoHorizontalRel() {}
+
+protected:
+
+    double x;
+
+};
+
+
+
+/*#########################################################################
+## SVGPathSegLinetoVerticalAbs
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegLinetoVerticalAbs : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegLinetoVerticalAbs()
+        {
+        type = PATHSEG_LINETO_VERTICAL_ABS;
+        y = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegLinetoVerticalAbs(double yArg)
+        {
+        type = PATHSEG_LINETO_VERTICAL_ABS;
+        y = yArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegLinetoVerticalAbs(const SVGPathSegLinetoVerticalAbs &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_LINETO_VERTICAL_ABS;
+        y = other.y;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegLinetoVerticalAbs() {}
+
+protected:
+
+    double y;
+
+};
+
+
+
+/*#########################################################################
+## SVGPathSegLinetoVerticalRel
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegLinetoVerticalRel : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegLinetoVerticalRel()
+        {
+        type = PATHSEG_LINETO_VERTICAL_REL;
+        y = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegLinetoVerticalRel(double yArg)
+        {
+        type = PATHSEG_LINETO_VERTICAL_REL;
+        y = yArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegLinetoVerticalRel(const SVGPathSegLinetoVerticalRel &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_LINETO_VERTICAL_REL;
+        y = other.y;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegLinetoVerticalRel() {}
+
+protected:
+
+    double y;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegCurvetoCubicSmoothAbs
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegCurvetoCubicSmoothAbs : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    /**
+     *
+     */
+    virtual double getX2()
+        { return x2; }
+
+    /**
+     *
+     */
+    virtual void setX2(double val) throw (DOMException)
+        { x2 = val; }
+
+    /**
+     *
+     */
+    virtual double getY2()
+        { return y2; }
+
+    /**
+     *
+     */
+    virtual void setY2(double val) throw (DOMException)
+        { y2 = val; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicSmoothAbs()
+        {
+        type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;
+        x = y = x2 = y2 = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicSmoothAbs(double xArg,   double yArg,
+                                    double x2Arg, double y2Arg)
+        {
+        type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;
+        x  = xArg;    y  = yArg;
+        x2 = x2Arg;   y2 = y2Arg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicSmoothAbs(const SVGPathSegCurvetoCubicSmoothAbs &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;
+        x  = other.x;  y  = other.y;
+        x2 = other.x2; y2 = other.y2;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegCurvetoCubicSmoothAbs() {}
+
+protected:
+
+    double x, y, x2, y2;
+
+};
+
+
+
+/*#########################################################################
+## SVGPathSegCurvetoCubicSmoothRel
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegCurvetoCubicSmoothRel : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+    /**
+     *
+     */
+    virtual double getX2()
+        { return x2; }
+
+    /**
+     *
+     */
+    virtual void setX2(double val) throw (DOMException)
+        { x2 = val; }
+
+    /**
+     *
+     */
+    virtual double getY2()
+        { return y2; }
+
+    /**
+     *
+     */
+    virtual void setY2(double val) throw (DOMException)
+        { y2 = val; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicSmoothRel()
+        {
+        type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;
+        x = y = x2 = y2 = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicSmoothRel(double xArg,   double yArg,
+                                    double x2Arg, double y2Arg)
+        {
+        type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;
+        x  = xArg;    y  = yArg;
+        x2 = x2Arg;   y2 = y2Arg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoCubicSmoothRel(const SVGPathSegCurvetoCubicSmoothRel &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;
+        x  = other.x;  y  = other.y;
+        x2 = other.x2; y2 = other.y2;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegCurvetoCubicSmoothRel() {}
+
+protected:
+
+    double x, y, x2, y2;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegCurvetoQuadraticSmoothAbs
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegCurvetoQuadraticSmoothAbs : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticSmoothAbs()
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;
+        x = y = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticSmoothAbs(double xArg, double yArg)
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;
+        x = xArg;     y = yArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticSmoothAbs(const SVGPathSegCurvetoQuadraticSmoothAbs &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;
+        x = y = 0.0;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegCurvetoQuadraticSmoothAbs() {}
+
+protected:
+
+    double x, y;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegCurvetoQuadraticSmoothRel
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegCurvetoQuadraticSmoothRel : public SVGPathSeg
+{
+public:
+
+    /**
+     *
+     */
+    virtual double getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual void setX(double val) throw (DOMException)
+        { x = val; }
+
+    /**
+     *
+     */
+    virtual double getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual void setY(double val) throw (DOMException)
+        { y = val; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticSmoothRel()
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;
+        x = y = 0.0;
+        }
+
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticSmoothRel(double xArg, double yArg)
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;
+        x = xArg;     y = yArg;
+        }
+
+    /**
+     *
+     */
+    SVGPathSegCurvetoQuadraticSmoothRel(const SVGPathSegCurvetoQuadraticSmoothRel &other)
+                     : SVGPathSeg(other)
+        {
+        type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;
+        x = y = 0.0;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegCurvetoQuadraticSmoothRel() {}
+
+protected:
+
+    double x, y;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGPathSegList
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSegList
+{
+public:
+
+    /**
+     *
+     */
+    virtual unsigned long getNumberOfItems()
+        { return items.size(); }
+
+
+    /**
+     *
+     */
+    virtual void clear () throw( DOMException )
+        { items.clear(); }
+
+    /**
+     *
+     */
+    virtual SVGPathSeg initialize (const SVGPathSeg &newItem)
+                    throw( DOMException, SVGException )
+        {
+        items.clear();
+        items.push_back(newItem);
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPathSeg getItem (unsigned long index)
+                    throw( DOMException )
+        {
+        if (index >= items.size())
+            {
+            SVGPathSeg seg;
+            return seg;
+            }
+        return items[index];
+        }
+
+    /**
+     *
+     */
+    virtual SVGPathSeg insertItemBefore(const SVGPathSeg &newItem,
+                                        unsigned long index )
+                          throw( DOMException, SVGException )
+        {
+        if (index >= items.size())
+            items.push_back(newItem);
+        else
+            {
+            std::vector<SVGPathSeg>::iterator iter = items.begin() + index;
+            items.insert(iter, newItem);
+            }
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPathSeg replaceItem(const SVGPathSeg &newItem,
+                                   unsigned long index )
+                              throw( DOMException, SVGException )
+        {
+        if (index >= items.size())
+            {
+            SVGPathSeg seg;
+            return seg;
+            }
+        std::vector<SVGPathSeg>::iterator iter = items.begin() + index;
+        *iter = newItem;
+        return newItem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPathSeg removeItem (unsigned long index)
+                                  throw (DOMException)
+        {
+        if (index >= items.size())
+            {
+            SVGPathSeg seg;
+            return seg;
+            }
+        std::vector<SVGPathSeg>::iterator iter = items.begin() + index;
+        SVGPathSeg olditem = *iter;
+        items.erase(iter);
+        return olditem;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPathSeg appendItem (const SVGPathSeg &newItem)
+                    throw( DOMException, SVGException )
+        {
+        items.push_back(newItem);
+        return newItem;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPathSegList() {}
+
+
+    /**
+     *
+     */
+    SVGPathSegList(const SVGPathSegList &other)
+        {
+        items = other.items;
+        }
+
+
+    /**
+     *
+     */
+    virtual ~SVGPathSegList() {}
+
+protected:
+
+    std::vector<SVGPathSeg> items;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedPathData
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedPathData
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGPathSegList getPathSegList()
+        {
+        SVGPathSegList list;
+        return list;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPathSegList getNormalizedPathSegList()
+        {
+        SVGPathSegList list;
+        return list;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPathSegList getAnimatedPathSegList()
+        {
+        SVGPathSegList list;
+        return list;
+        }
+
+    /**
+     *
+     */
+    virtual SVGPathSegList getAnimatedNormalizedPathSegList()
+        {
+        SVGPathSegList list;
+        return list;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+   SVGAnimatedPathData()
+        {}
+
+    /**
+     *
+     */
+   SVGAnimatedPathData(const SVGAnimatedPathData &/*other*/)
+        {
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedPathData() {}
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedPoints
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAnimatedPoints
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGPointList getPoints()
+        { return points; }
+
+    /**
+     *
+     */
+    virtual SVGPointList getAnimatedPoints()
+        { return animatedPoints; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGAnimatedPoints() {}
+
+    /**
+     *
+     */
+    SVGAnimatedPoints(const SVGAnimatedPoints &other)
+        {
+        points         = other.points;
+        animatedPoints = other.animatedPoints;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGAnimatedPoints() {}
+
+protected:
+
+    SVGPointList points;
+    SVGPointList animatedPoints;
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGPaint
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPaint : public SVGColor
+{
+public:
+
+
+    /**
+     * Paint Types
+     */
+    typedef enum
+        {
+        SVG_PAINTTYPE_UNKNOWN               = 0,
+        SVG_PAINTTYPE_RGBCOLOR              = 1,
+        SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR     = 2,
+        SVG_PAINTTYPE_NONE                  = 101,
+        SVG_PAINTTYPE_CURRENTCOLOR          = 102,
+        SVG_PAINTTYPE_URI_NONE              = 103,
+        SVG_PAINTTYPE_URI_CURRENTCOLOR      = 104,
+        SVG_PAINTTYPE_URI_RGBCOLOR          = 105,
+        SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106,
+        SVG_PAINTTYPE_URI                   = 107
+        } PaintType;
+
+
+    /**
+     *
+     */
+    virtual unsigned short getPaintType()
+        { return paintType; }
+
+    /**
+     *
+     */
+    virtual DOMString getUri()
+        { return uri; }
+
+    /**
+     *
+     */
+    virtual void setUri (const DOMString& uriArg )
+        { uri = uriArg; }
+
+    /**
+     *
+     */
+    virtual void setPaint (unsigned short paintTypeArg,
+                           const DOMString& uriArg,
+                           const DOMString& /*rgbColor*/,
+                           const DOMString& /*iccColor*/ )
+                           throw( SVGException )
+        {
+        paintType = paintTypeArg;
+        uri       = uriArg;
+        //do something with rgbColor
+        //do something with iccColor;
+        }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGPaint()
+        {
+        uri       = "";
+        paintType = SVG_PAINTTYPE_UNKNOWN;
+        }
+
+    /**
+     *
+     */
+    SVGPaint(const SVGPaint &other) : css::CSSValue(other), SVGColor(other)
+        {
+        uri       = "";
+        paintType = SVG_PAINTTYPE_UNKNOWN;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGPaint() {}
+
+protected:
+
+    unsigned int paintType;
+    DOMString uri;
+
+};
+
+
+
+
+/*#########################################################################
+## SVGColorProfileRule
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGColorProfileRule : public SVGCSSRule,
+                            public SVGRenderingIntent
+{
+
+public:
+   /**
+     *
+     */
+    virtual DOMString getSrc()
+        { return src; }
+
+    /**
+     *
+     */
+    virtual void setSrc(const DOMString &val) throw (DOMException)
+        { src = val; }
+
+    /**
+     *
+     */
+    virtual DOMString getName()
+        { return name; }
+
+    /**
+     *
+     */
+    virtual void setName(const DOMString &val) throw (DOMException)
+        { name = val; }
+
+    /**
+     *
+     */
+    virtual unsigned short getRenderingIntent()
+        { return renderingIntent; }
+
+    /**
+     *
+     */
+    virtual void setRenderingIntent(unsigned short val) throw (DOMException)
+        { renderingIntent = val; }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGColorProfileRule() {}
+
+    /**
+     *
+     */
+    SVGColorProfileRule(const SVGColorProfileRule &other)
+               : SVGCSSRule(other), SVGRenderingIntent(other)
+        {
+        renderingIntent = other.renderingIntent;
+        src             = other.src;
+        name            = other.name;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGColorProfileRule() {}
+
+protected:
+
+    unsigned short renderingIntent;
+    DOMString src;
+    DOMString name;
+
+};
+
+
+
+/*#########################################################################
+## SVGFilterPrimitiveStandardAttributes
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFilterPrimitiveStandardAttributes : public SVGStylable
+{
+public:
+
+
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getX()
+        { return x; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getY()
+        { return y; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getWidth()
+        { return width; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedLength getHeight()
+        { return height; }
+
+    /**
+     *
+     */
+    virtual SVGAnimatedString getResult()
+        { return result; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+
+    /**
+     *
+     */
+    SVGFilterPrimitiveStandardAttributes()
+        {}
+
+    /**
+     *
+     */
+    SVGFilterPrimitiveStandardAttributes(const SVGFilterPrimitiveStandardAttributes &other)
+                                 : SVGStylable(other)
+        {
+        x      = other.x;
+        y      = other.y;
+        width  = other.width;
+        height = other.height;
+        result = other.result;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGFilterPrimitiveStandardAttributes() {}
+
+protected:
+
+    SVGAnimatedLength x;
+    SVGAnimatedLength y;
+    SVGAnimatedLength width;
+    SVGAnimatedLength height;
+    SVGAnimatedString result;
+
+};
+
+
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGEvent
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGEvent : events::Event
+{
+public:
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGEvent() {}
+
+    /**
+     *
+     */
+    SVGEvent(const SVGEvent &other) : events::Event(other)
+        {}
+
+    /**
+     *
+     */
+    virtual ~SVGEvent() {}
+
+};
+
+
+
+
+/*#########################################################################
+## SVGZoomEvent
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGZoomEvent : events::UIEvent
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGRect getZoomRectScreen()
+        { return zoomRectScreen; }
+
+    /**
+     *
+     */
+    virtual double getPreviousScale()
+        { return previousScale; }
+
+    /**
+     *
+     */
+    virtual SVGPoint getPreviousTranslate()
+        { return previousTranslate; }
+
+    /**
+     *
+     */
+    virtual double getNewScale()
+        { return newScale; }
+
+   /**
+     *
+     */
+    virtual SVGPoint getNewTranslate()
+        { return newTranslate; }
+
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGZoomEvent()
+        {}
+
+    /**
+     *
+     */
+    SVGZoomEvent(const SVGZoomEvent &other) : events::Event(other),
+                                              events::UIEvent(other)
+        {
+        zoomRectScreen    = other.zoomRectScreen;
+        previousScale     = other.previousScale;
+        previousTranslate = other.previousTranslate;
+        newScale          = other.newScale;
+        newTranslate      = other.newTranslate;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGZoomEvent() {}
+
+protected:
+
+    SVGRect  zoomRectScreen;
+    double   previousScale;
+    SVGPoint previousTranslate;
+    double   newScale;
+    SVGPoint newTranslate;
+
+};
+
+
+
+/*#########################################################################
+## SVGElementInstance
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGElementInstance : public events::EventTarget
+{
+public:
+
+    /**
+     *
+     */
+    virtual SVGElement *getCorrespondingElement()
+        { return correspondingElement; }
+
+    /**
+     *
+     */
+    virtual SVGUseElement *getCorrespondingUseElement()
+        { return correspondingUseElement; }
+
+    /**
+     *
+     */
+    virtual SVGElementInstance getParentNode()
+        {
+        SVGElementInstance ret;
+        return ret;
+        }
+
+    /**
+     *  Since we are using stack types and this is a circular definition,
+     *  we will instead implement this as a global function below:
+     *   SVGElementInstanceList getChildNodes(const SVGElementInstance instance);
+     */
+    //virtual SVGElementInstanceList getChildNodes();
+
+    /**
+     *
+     */
+    virtual SVGElementInstance getFirstChild()
+        {
+        SVGElementInstance ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual SVGElementInstance getLastChild()
+        {
+        SVGElementInstance ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual SVGElementInstance getPreviousSibling()
+        {
+        SVGElementInstance ret;
+        return ret;
+        }
+
+    /**
+     *
+     */
+    virtual SVGElementInstance getNextSibling()
+        {
+        SVGElementInstance ret;
+        return ret;
+        }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGElementInstance() {}
+
+    /**
+     *
+     */
+    SVGElementInstance(const SVGElementInstance &other)
+                        : events::EventTarget(other)
+        {
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGElementInstance() {}
+
+protected:
+
+    SVGElement    *correspondingElement;
+    SVGUseElement *correspondingUseElement;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGElementInstanceList
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGElementInstanceList
+{
+public:
+
+
+    /**
+     *
+     */
+    virtual unsigned long getLength()
+        { return items.size(); }
+
+    /**
+     *
+     */
+    virtual SVGElementInstance item (unsigned long index )
+        {
+        if (index >= items.size())
+            {
+            SVGElementInstance ret;
+            return ret;
+            }
+        return items[index];
+        }
+
+    /**
+     *  This static method replaces the circular definition of:
+     *        SVGElementInstanceList SVGElementInstance::getChildNodes()
+     *
+     */
+    static SVGElementInstanceList getChildNodes(const SVGElementInstance &/*instance*/)
+        {
+        SVGElementInstanceList list;
+        return list;
+        }
+
+
+    //##################
+    //# Non-API methods
+    //##################
+
+    /**
+     *
+     */
+    SVGElementInstanceList() {}
+
+    /**
+     *
+     */
+    SVGElementInstanceList(const SVGElementInstanceList &other)
+        {
+        items = other.items;
+        }
+
+    /**
+     *
+     */
+    virtual ~SVGElementInstanceList() {}
+
+protected:
+
+    std::vector<SVGElementInstance> items;
+
+
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+}  //namespace svg
+}  //namespace dom
+}  //namespace w3c
+}  //namespace org
+
+#endif /* __SVGTYPES_H__ */
+/*#########################################################################
+## E N D    O F    F I L E
+#########################################################################*/
+
diff --git a/src/dom/work/svg.idl b/src/dom/work/svg.idl
new file mode 100644 (file)
index 0000000..1a30dd3
--- /dev/null
@@ -0,0 +1,1751 @@
+// File: svg.idl\r
+#ifndef _SVG_IDL_\r
+#define _SVG_IDL_\r
+\r
+\r
+// For access to DOM2 core\r
+#include "dom.idl"\r
+\r
+// For access to DOM2 events\r
+#include "events.idl"\r
+\r
+// For access to those parts from DOM2 CSS OM used by SVG DOM.\r
+#include "css.idl"\r
+\r
+// For access to those parts from DOM2 Views OM used by SVG DOM.\r
+#include "views.idl"\r
+\r
+// For access to the SMIL OM used by SVG DOM.\r
+#include "smil.idl"\r
+\r
+#pragma prefix "dom.w3c.org"\r
+#pragma javaPackage "org.w3c.dom"\r
+module svg\r
+{\r
+  typedef dom::DOMString DOMString;\r
+  typedef dom::DOMException DOMException;\r
+  typedef dom::Element Element;\r
+  typedef dom::Document Document;\r
+  typedef dom::NodeList NodeList;\r
+\r
+  // Predeclarations\r
+  interface SVGElement;\r
+  interface SVGLangSpace;\r
+  interface SVGExternalResourcesRequired;\r
+  interface SVGTests;\r
+  interface SVGFitToViewBox;\r
+  interface SVGZoomAndPan;\r
+  interface SVGViewSpec;\r
+  interface SVGURIReference;\r
+  interface SVGPoint;\r
+  interface SVGMatrix;\r
+  interface SVGPreserveAspectRatio;\r
+  interface SVGAnimatedPreserveAspectRatio;\r
+  interface SVGTransformList;\r
+  interface SVGAnimatedTransformList;\r
+  interface SVGTransform;\r
+  interface SVGICCColor;\r
+  interface SVGColor;\r
+  interface SVGPaint;\r
+  interface SVGTransformable;\r
+  interface SVGDocument;\r
+  interface SVGSVGElement;\r
+  interface SVGElementInstance;\r
+  interface SVGElementInstanceList;\r
+\r
+\r
+  exception SVGException {\r
+    unsigned short   code;\r
+  };\r
+\r
+  // SVGExceptionCode\r
+  const unsigned short SVG_WRONG_TYPE_ERR           = 0;\r
+  const unsigned short SVG_INVALID_VALUE_ERR        = 1;\r
+  const unsigned short SVG_MATRIX_NOT_INVERTABLE    = 2;\r
+\r
+  interface SVGElement : Element { \r
+             attribute DOMString id;\r
+                         // raises DOMException on setting\r
+             attribute DOMString xmlbase;\r
+                         // raises DOMException on setting\r
+    readonly attribute SVGSVGElement ownerSVGElement;\r
+    readonly attribute SVGElement viewportElement;\r
+  };\r
+\r
+  interface SVGAnimatedBoolean { \r
+\r
+             attribute boolean baseVal;\r
+                         // raises DOMException on setting\r
+    readonly attribute boolean animVal;\r
+  };\r
+\r
+  interface SVGAnimatedString { \r
+\r
+             attribute DOMString baseVal;\r
+                         // raises DOMException on setting\r
+    readonly attribute DOMString animVal;\r
+  };\r
+\r
+  interface SVGStringList { \r
+\r
+    readonly attribute unsigned long numberOfItems;\r
+\r
+    void   clear (  )\r
+                    raises( DOMException );\r
+    DOMString initialize ( in DOMString newItem )\r
+                    raises( DOMException, SVGException );\r
+    DOMString getItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    DOMString insertItemBefore ( in DOMString newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    DOMString replaceItem ( in DOMString newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    DOMString removeItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    DOMString appendItem ( in DOMString newItem )\r
+                    raises( DOMException, SVGException );\r
+  };\r
+\r
+  interface SVGAnimatedEnumeration { \r
+\r
+             attribute unsigned short baseVal;\r
+                         // raises DOMException on setting\r
+    readonly attribute unsigned short animVal;\r
+  };\r
+\r
+  interface SVGAnimatedInteger { \r
+\r
+             attribute long baseVal;\r
+                         // raises DOMException on setting\r
+    readonly attribute long animVal;\r
+  };\r
+\r
+  interface SVGNumber { \r
+\r
+             attribute float value;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGAnimatedNumber { \r
+\r
+             attribute float baseVal;\r
+                         // raises DOMException on setting\r
+    readonly attribute float animVal;\r
+  };\r
+\r
+  interface SVGNumberList { \r
+\r
+    readonly attribute unsigned long numberOfItems;\r
+\r
+    void   clear (  )\r
+                    raises( DOMException );\r
+    SVGNumber initialize ( in SVGNumber newItem )\r
+                    raises( DOMException, SVGException );\r
+    SVGNumber getItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    SVGNumber insertItemBefore ( in SVGNumber newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    SVGNumber replaceItem ( in SVGNumber newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    SVGNumber removeItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    SVGNumber appendItem ( in SVGNumber newItem )\r
+                    raises( DOMException, SVGException );\r
+  };\r
+\r
+  interface SVGAnimatedNumberList { \r
+\r
+    readonly attribute SVGNumberList baseVal;\r
+    readonly attribute SVGNumberList animVal;\r
+  };\r
+\r
+  interface SVGLength { \r
+\r
+    // Length Unit Types\r
+    const unsigned short SVG_LENGTHTYPE_UNKNOWN    = 0;\r
+    const unsigned short SVG_LENGTHTYPE_NUMBER     = 1;\r
+    const unsigned short SVG_LENGTHTYPE_PERCENTAGE = 2;\r
+    const unsigned short SVG_LENGTHTYPE_EMS        = 3;\r
+    const unsigned short SVG_LENGTHTYPE_EXS        = 4;\r
+    const unsigned short SVG_LENGTHTYPE_PX         = 5;\r
+    const unsigned short SVG_LENGTHTYPE_CM         = 6;\r
+    const unsigned short SVG_LENGTHTYPE_MM         = 7;\r
+    const unsigned short SVG_LENGTHTYPE_IN         = 8;\r
+    const unsigned short SVG_LENGTHTYPE_PT         = 9;\r
+    const unsigned short SVG_LENGTHTYPE_PC         = 10;\r
+\r
+    readonly attribute unsigned short unitType;\r
+             attribute float          value;\r
+                         // raises DOMException on setting\r
+             attribute float          valueInSpecifiedUnits;\r
+                         // raises DOMException on setting\r
+             attribute DOMString      valueAsString;\r
+                         // raises DOMException on setting\r
+\r
+    void newValueSpecifiedUnits ( in unsigned short unitType, in float valueInSpecifiedUnits );\r
+    void convertToSpecifiedUnits ( in unsigned short unitType );\r
+  };\r
+\r
+  interface SVGAnimatedLength { \r
+\r
+    readonly attribute SVGLength baseVal;\r
+    readonly attribute SVGLength animVal;\r
+  };\r
+\r
+  interface SVGLengthList { \r
+\r
+    readonly attribute unsigned long numberOfItems;\r
+\r
+    void   clear (  )\r
+                    raises( DOMException );\r
+    SVGLength initialize ( in SVGLength newItem )\r
+                    raises( DOMException, SVGException );\r
+    SVGLength getItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    SVGLength insertItemBefore ( in SVGLength newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    SVGLength replaceItem ( in SVGLength newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    SVGLength removeItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    SVGLength appendItem ( in SVGLength newItem )\r
+                    raises( DOMException, SVGException );\r
+  };\r
+\r
+  interface SVGAnimatedLengthList { \r
+\r
+    readonly attribute SVGLengthList baseVal;\r
+    readonly attribute SVGLengthList animVal;\r
+  };\r
+\r
+  interface SVGAngle { \r
+\r
+    // Angle Unit Types\r
+    const unsigned short SVG_ANGLETYPE_UNKNOWN     = 0;\r
+    const unsigned short SVG_ANGLETYPE_UNSPECIFIED = 1;\r
+    const unsigned short SVG_ANGLETYPE_DEG         = 2;\r
+    const unsigned short SVG_ANGLETYPE_RAD         = 3;\r
+    const unsigned short SVG_ANGLETYPE_GRAD        = 4;\r
+\r
+    readonly attribute unsigned short unitType;\r
+             attribute float          value;\r
+                         // raises DOMException on setting\r
+             attribute float          valueInSpecifiedUnits;\r
+                         // raises DOMException on setting\r
+             attribute DOMString      valueAsString;\r
+                         // raises DOMException on setting\r
+\r
+    void newValueSpecifiedUnits ( in unsigned short unitType, in float valueInSpecifiedUnits );\r
+    void convertToSpecifiedUnits ( in unsigned short unitType );\r
+  };\r
+\r
+  interface SVGAnimatedAngle { \r
+\r
+    readonly attribute SVGAngle baseVal;\r
+    readonly attribute SVGAngle animVal;\r
+  };\r
+\r
+  interface SVGColor : css::CSSValue { \r
+    // Color Types\r
+    const unsigned short SVG_COLORTYPE_UNKNOWN           = 0;\r
+    const unsigned short SVG_COLORTYPE_RGBCOLOR          = 1;\r
+    const unsigned short SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2;\r
+    const unsigned short SVG_COLORTYPE_CURRENTCOLOR      = 3;\r
+\r
+    readonly attribute unsigned short colorType;\r
+    readonly attribute css::RGBColor  rgbColor;\r
+    readonly attribute SVGICCColor    iccColor;\r
+\r
+    void        setRGBColor ( in DOMString rgbColor )\r
+                    raises( SVGException );\r
+    void        setRGBColorICCColor ( in DOMString rgbColor, in DOMString iccColor )\r
+                    raises( SVGException );\r
+    void        setColor ( in unsigned short colorType, in DOMString rgbColor, in DOMString iccColor )\r
+                    raises( SVGException );\r
+  };\r
+\r
+  interface SVGICCColor { \r
+\r
+             attribute DOMString      colorProfile;\r
+                         // raises DOMException on setting\r
+    readonly attribute SVGNumberList colors;\r
+  };\r
+\r
+  interface SVGRect { \r
+\r
+             attribute float x;\r
+                         // raises DOMException on setting\r
+             attribute float y;\r
+                         // raises DOMException on setting\r
+             attribute float width;\r
+                         // raises DOMException on setting\r
+             attribute float height;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGAnimatedRect { \r
+\r
+    readonly attribute SVGRect baseVal;\r
+    readonly attribute SVGRect animVal;\r
+  };\r
+\r
+  interface SVGUnitTypes { \r
+\r
+    // Unit Types\r
+    const unsigned short SVG_UNIT_TYPE_UNKNOWN           = 0;\r
+    const unsigned short SVG_UNIT_TYPE_USERSPACEONUSE    = 1;\r
+    const unsigned short SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;\r
+  };\r
+\r
+  interface SVGStylable { \r
+\r
+    readonly attribute SVGAnimatedString className;\r
+    readonly attribute css::CSSStyleDeclaration style;\r
+\r
+    css::CSSValue getPresentationAttribute ( in DOMString name );\r
+  };\r
+\r
+  interface SVGLocatable { \r
+\r
+    readonly attribute SVGElement              nearestViewportElement;\r
+    readonly attribute SVGElement              farthestViewportElement;\r
+\r
+    SVGRect   getBBox (  );\r
+    SVGMatrix getCTM (  );\r
+    SVGMatrix getScreenCTM (  );\r
+    SVGMatrix getTransformToElement ( in SVGElement element )\r
+                    raises( SVGException );\r
+  };\r
+\r
+  interface SVGTransformable : SVGLocatable { \r
+    readonly attribute SVGAnimatedTransformList transform;\r
+  };\r
+\r
+  interface SVGTests { \r
+\r
+    readonly attribute SVGStringList requiredFeatures;\r
+    readonly attribute SVGStringList requiredExtensions;\r
+    readonly attribute SVGStringList systemLanguage;\r
+\r
+    boolean hasExtension ( in DOMString extension );\r
+  };\r
+\r
+  interface SVGLangSpace { \r
+\r
+             attribute DOMString xmllang;\r
+                         // raises DOMException on setting\r
+             attribute DOMString xmlspace;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGExternalResourcesRequired { \r
+\r
+    readonly attribute SVGAnimatedBoolean externalResourcesRequired;\r
+  };\r
+\r
+  interface SVGFitToViewBox { \r
+\r
+    readonly attribute SVGAnimatedRect                viewBox;\r
+    readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;\r
+  };\r
+\r
+  interface SVGZoomAndPan { \r
+\r
+    // Zoom and Pan Types\r
+    const unsigned short SVG_ZOOMANDPAN_UNKNOWN   = 0;\r
+    const unsigned short SVG_ZOOMANDPAN_DISABLE = 1;\r
+    const unsigned short SVG_ZOOMANDPAN_MAGNIFY = 2;\r
+\r
+             attribute unsigned short zoomAndPan;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGViewSpec : \r
+                SVGZoomAndPan,\r
+                SVGFitToViewBox { \r
+\r
+    readonly attribute SVGTransformList transform;\r
+    readonly attribute SVGElement       viewTarget;\r
+    readonly attribute DOMString        viewBoxString;\r
+    readonly attribute DOMString        preserveAspectRatioString;\r
+    readonly attribute DOMString        transformString;\r
+    readonly attribute DOMString        viewTargetString;\r
+  };\r
+\r
+  interface SVGURIReference { \r
+\r
+    readonly attribute SVGAnimatedString href;\r
+  };\r
+\r
+  interface SVGCSSRule : css::CSSRule { \r
+    // Additional CSS RuleType to support ICC color specifications\r
+    const unsigned short COLOR_PROFILE_RULE = 7;\r
+  };\r
+\r
+  interface SVGRenderingIntent { \r
+\r
+    // Rendering Intent Types\r
+    const unsigned short RENDERING_INTENT_UNKNOWN               = 0;\r
+    const unsigned short RENDERING_INTENT_AUTO                  = 1;\r
+    const unsigned short RENDERING_INTENT_PERCEPTUAL            = 2;\r
+    const unsigned short RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3;\r
+    const unsigned short RENDERING_INTENT_SATURATION            = 4;\r
+    const unsigned short RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5;\r
+  };\r
+\r
+  interface SVGDocument : \r
+                Document,\r
+                events::DocumentEvent { \r
+\r
+    readonly attribute DOMString    title;\r
+    readonly attribute DOMString     referrer;\r
+    readonly attribute DOMString      domain;\r
+    readonly attribute DOMString      URL;\r
+    readonly attribute SVGSVGElement rootElement;\r
+  };\r
+\r
+  interface SVGSVGElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGLocatable,\r
+                SVGFitToViewBox,\r
+                SVGZoomAndPan,\r
+                events::EventTarget,\r
+                events::DocumentEvent,\r
+                css::ViewCSS,\r
+                css::DocumentCSS { \r
+\r
+    readonly attribute SVGAnimatedLength x;\r
+    readonly attribute SVGAnimatedLength y;\r
+    readonly attribute SVGAnimatedLength width;\r
+    readonly attribute SVGAnimatedLength height;\r
+             attribute DOMString         contentScriptType;\r
+                         // raises DOMException on setting\r
+             attribute DOMString         contentStyleType;\r
+                         // raises DOMException on setting\r
+    readonly attribute SVGRect           viewport;\r
+    readonly attribute float pixelUnitToMillimeterX;\r
+    readonly attribute float pixelUnitToMillimeterY;\r
+    readonly attribute float screenPixelToMillimeterX;\r
+    readonly attribute float screenPixelToMillimeterY;\r
+             attribute boolean useCurrentView;\r
+                         // raises DOMException on setting\r
+    readonly attribute SVGViewSpec currentView;\r
+             attribute float currentScale;\r
+                         // raises DOMException on setting\r
+    readonly attribute SVGPoint currentTranslate;\r
+\r
+    unsigned long suspendRedraw ( in unsigned long max_wait_milliseconds );\r
+    void          unsuspendRedraw ( in unsigned long suspend_handle_id )\r
+                    raises( DOMException );\r
+    void          unsuspendRedrawAll (  );\r
+    void          forceRedraw (  );\r
+    void          pauseAnimations (  );\r
+    void          unpauseAnimations (  );\r
+    boolean       animationsPaused (  );\r
+    float         getCurrentTime (  );\r
+    void          setCurrentTime ( in float seconds );\r
+    NodeList      getIntersectionList ( in SVGRect rect, in SVGElement referenceElement );\r
+    NodeList      getEnclosureList ( in SVGRect rect, in SVGElement referenceElement );\r
+    boolean       checkIntersection ( in SVGElement element, in SVGRect rect );\r
+    boolean       checkEnclosure ( in SVGElement element, in SVGRect rect );\r
+    void          deselectAll (  );\r
+    SVGNumber              createSVGNumber (  );\r
+    SVGLength              createSVGLength (  );\r
+    SVGAngle               createSVGAngle (  );\r
+    SVGPoint               createSVGPoint (  );\r
+    SVGMatrix              createSVGMatrix (  );\r
+    SVGRect                createSVGRect (  );\r
+    SVGTransform           createSVGTransform (  );\r
+    SVGTransform     createSVGTransformFromMatrix ( in SVGMatrix matrix );\r
+    Element         getElementById ( in DOMString elementId );\r
+  };\r
+\r
+  interface SVGGElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget {};\r
+\r
+  interface SVGDefsElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget {};\r
+\r
+  interface SVGDescElement : \r
+                SVGElement,\r
+                SVGLangSpace,\r
+                SVGStylable {};\r
+\r
+  interface SVGTitleElement : \r
+                SVGElement,\r
+                SVGLangSpace,\r
+                SVGStylable {};\r
+\r
+  interface SVGSymbolElement : \r
+                SVGElement,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGFitToViewBox,\r
+                events::EventTarget {};\r
+\r
+  interface SVGUseElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget { \r
+\r
+    readonly attribute SVGAnimatedLength   x;\r
+    readonly attribute SVGAnimatedLength   y;\r
+    readonly attribute SVGAnimatedLength   width;\r
+    readonly attribute SVGAnimatedLength   height;\r
+    readonly attribute SVGElementInstance instanceRoot;\r
+    readonly attribute SVGElementInstance animatedInstanceRoot;\r
+  };\r
+\r
+  interface SVGElementInstance : events::EventTarget { \r
+    readonly attribute SVGElement correspondingElement;\r
+    readonly attribute SVGUseElement correspondingUseElement;\r
+    readonly attribute SVGElementInstance parentNode;\r
+    readonly attribute SVGElementInstanceList childNodes;\r
+    readonly attribute SVGElementInstance firstChild;\r
+    readonly attribute SVGElementInstance lastChild;\r
+    readonly attribute SVGElementInstance previousSibling;\r
+    readonly attribute SVGElementInstance nextSibling;\r
+  };\r
+\r
+  interface SVGElementInstanceList { \r
+\r
+    readonly attribute unsigned long length;\r
+\r
+    SVGElementInstance item ( in unsigned long index );\r
+  };\r
+\r
+  interface SVGImageElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget { \r
+\r
+    readonly attribute SVGAnimatedLength x;\r
+    readonly attribute SVGAnimatedLength y;\r
+    readonly attribute SVGAnimatedLength width;\r
+    readonly attribute SVGAnimatedLength height;\r
+    readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;\r
+  };\r
+\r
+  interface SVGSwitchElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget {};\r
+\r
+  interface GetSVGDocument { \r
+\r
+    SVGDocument getSVGDocument (  )\r
+                    raises( DOMException );\r
+  };\r
+\r
+  interface SVGStyleElement : SVGElement { \r
+             attribute DOMString xmlspace;\r
+                         // raises DOMException on setting\r
+             attribute DOMString type;\r
+                         // raises DOMException on setting\r
+             attribute DOMString media;\r
+                         // raises DOMException on setting\r
+             attribute DOMString title;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPoint { \r
+\r
+             attribute float x;\r
+                         // raises DOMException on setting\r
+             attribute float y;\r
+                         // raises DOMException on setting\r
+\r
+    SVGPoint matrixTransform ( in SVGMatrix matrix );\r
+  };\r
+\r
+  interface SVGPointList { \r
+\r
+    readonly attribute unsigned long numberOfItems;\r
+\r
+    void   clear (  )\r
+                    raises( DOMException );\r
+    SVGPoint initialize ( in SVGPoint newItem )\r
+                    raises( DOMException, SVGException );\r
+    SVGPoint getItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    SVGPoint insertItemBefore ( in SVGPoint newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    SVGPoint replaceItem ( in SVGPoint newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    SVGPoint removeItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    SVGPoint appendItem ( in SVGPoint newItem )\r
+                    raises( DOMException, SVGException );\r
+  };\r
+\r
+  interface SVGMatrix { \r
+\r
+             attribute float a;\r
+                         // raises DOMException on setting\r
+             attribute float b;\r
+                         // raises DOMException on setting\r
+             attribute float c;\r
+                         // raises DOMException on setting\r
+             attribute float d;\r
+                         // raises DOMException on setting\r
+             attribute float e;\r
+                         // raises DOMException on setting\r
+             attribute float f;\r
+                         // raises DOMException on setting\r
+\r
+    SVGMatrix multiply ( in SVGMatrix secondMatrix );\r
+    SVGMatrix inverse (  )\r
+                    raises( SVGException );\r
+    SVGMatrix translate ( in float x, in float y );\r
+    SVGMatrix scale ( in float scaleFactor );\r
+    SVGMatrix scaleNonUniform ( in float scaleFactorX, in float scaleFactorY );\r
+    SVGMatrix rotate ( in float angle );\r
+    SVGMatrix rotateFromVector ( in float x, in float y )\r
+                    raises( SVGException );\r
+    SVGMatrix flipX (  );\r
+    SVGMatrix flipY (  );\r
+    SVGMatrix skewX ( in float angle );\r
+    SVGMatrix skewY ( in float angle );\r
+  };\r
+\r
+  interface SVGTransform { \r
+\r
+    // Transform Types\r
+    const unsigned short SVG_TRANSFORM_UNKNOWN   = 0;\r
+    const unsigned short SVG_TRANSFORM_MATRIX    = 1;\r
+    const unsigned short SVG_TRANSFORM_TRANSLATE = 2;\r
+    const unsigned short SVG_TRANSFORM_SCALE     = 3;\r
+    const unsigned short SVG_TRANSFORM_ROTATE    = 4;\r
+    const unsigned short SVG_TRANSFORM_SKEWX     = 5;\r
+    const unsigned short SVG_TRANSFORM_SKEWY     = 6;\r
+\r
+    readonly attribute unsigned short type;\r
+    readonly attribute SVGMatrix matrix;\r
+    readonly attribute float angle;\r
+\r
+    void setMatrix ( in SVGMatrix matrix );\r
+    void setTranslate ( in float tx, in float ty );\r
+    void setScale ( in float sx, in float sy );\r
+    void setRotate ( in float angle, in float cx, in float cy );\r
+    void setSkewX ( in float angle );\r
+    void setSkewY ( in float angle );\r
+  };\r
+\r
+  interface SVGTransformList { \r
+\r
+    readonly attribute unsigned long numberOfItems;\r
+\r
+    void   clear (  )\r
+                    raises( DOMException );\r
+    SVGTransform initialize ( in SVGTransform newItem )\r
+                    raises( DOMException, SVGException );\r
+    SVGTransform getItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    SVGTransform insertItemBefore ( in SVGTransform newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    SVGTransform replaceItem ( in SVGTransform newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    SVGTransform removeItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    SVGTransform appendItem ( in SVGTransform newItem )\r
+                    raises( DOMException, SVGException );\r
+    SVGTransform createSVGTransformFromMatrix ( in SVGMatrix matrix );\r
+    SVGTransform consolidate (  );\r
+  };\r
+\r
+  interface SVGAnimatedTransformList { \r
+\r
+    readonly attribute SVGTransformList baseVal;\r
+    readonly attribute SVGTransformList animVal;\r
+  };\r
+\r
+  interface SVGPreserveAspectRatio { \r
+\r
+    // Alignment Types\r
+    const unsigned short SVG_PRESERVEASPECTRATIO_UNKNOWN   = 0;\r
+    const unsigned short SVG_PRESERVEASPECTRATIO_NONE     = 1;\r
+    const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;\r
+    const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;\r
+    const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;\r
+    const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMID = 5;\r
+    const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;\r
+    const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;\r
+    const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;\r
+    const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;\r
+    const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;\r
+    // Meet-or-slice Types\r
+    const unsigned short SVG_MEETORSLICE_UNKNOWN   = 0;\r
+    const unsigned short SVG_MEETORSLICE_MEET  = 1;\r
+    const unsigned short SVG_MEETORSLICE_SLICE = 2;\r
+\r
+             attribute unsigned short align;\r
+                         // raises DOMException on setting\r
+             attribute unsigned short meetOrSlice;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGAnimatedPreserveAspectRatio { \r
+\r
+    readonly attribute SVGPreserveAspectRatio baseVal;\r
+    readonly attribute SVGPreserveAspectRatio animVal;\r
+  };\r
+\r
+  interface SVGPathSeg { \r
+\r
+    // Path Segment Types\r
+    const unsigned short PATHSEG_UNKNOWN                      = 0;\r
+    const unsigned short PATHSEG_CLOSEPATH                    = 1;\r
+    const unsigned short PATHSEG_MOVETO_ABS                   = 2;\r
+    const unsigned short PATHSEG_MOVETO_REL                   = 3;\r
+    const unsigned short PATHSEG_LINETO_ABS                   = 4;\r
+    const unsigned short PATHSEG_LINETO_REL                   = 5;\r
+    const unsigned short PATHSEG_CURVETO_CUBIC_ABS            = 6;\r
+    const unsigned short PATHSEG_CURVETO_CUBIC_REL            = 7;\r
+    const unsigned short PATHSEG_CURVETO_QUADRATIC_ABS        = 8;\r
+    const unsigned short PATHSEG_CURVETO_QUADRATIC_REL        = 9;\r
+    const unsigned short PATHSEG_ARC_ABS                      = 10;\r
+    const unsigned short PATHSEG_ARC_REL                      = 11;\r
+    const unsigned short PATHSEG_LINETO_HORIZONTAL_ABS        = 12;\r
+    const unsigned short PATHSEG_LINETO_HORIZONTAL_REL        = 13;\r
+    const unsigned short PATHSEG_LINETO_VERTICAL_ABS          = 14;\r
+    const unsigned short PATHSEG_LINETO_VERTICAL_REL          = 15;\r
+    const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_ABS     = 16;\r
+    const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_REL     = 17;\r
+    const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\r
+    const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\r
+\r
+    readonly attribute unsigned short pathSegType;\r
+    readonly attribute DOMString      pathSegTypeAsLetter;\r
+  };\r
+\r
+  interface SVGPathSegClosePath : SVGPathSeg {};\r
+\r
+  interface SVGPathSegMovetoAbs : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegMovetoRel : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegLinetoAbs : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegLinetoRel : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegCurvetoCubicAbs : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+             attribute float   x1;\r
+                         // raises DOMException on setting\r
+             attribute float   y1;\r
+                         // raises DOMException on setting\r
+             attribute float   x2;\r
+                         // raises DOMException on setting\r
+             attribute float   y2;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegCurvetoCubicRel : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+             attribute float   x1;\r
+                         // raises DOMException on setting\r
+             attribute float   y1;\r
+                         // raises DOMException on setting\r
+             attribute float   x2;\r
+                         // raises DOMException on setting\r
+             attribute float   y2;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegCurvetoQuadraticAbs : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+             attribute float   x1;\r
+                         // raises DOMException on setting\r
+             attribute float   y1;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegCurvetoQuadraticRel : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+             attribute float   x1;\r
+                         // raises DOMException on setting\r
+             attribute float   y1;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegArcAbs : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+             attribute float   r1;\r
+                         // raises DOMException on setting\r
+             attribute float   r2;\r
+                         // raises DOMException on setting\r
+             attribute float   angle;\r
+                         // raises DOMException on setting\r
+             attribute boolean largeArcFlag;\r
+                         // raises DOMException on setting\r
+             attribute boolean sweepFlag;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegArcRel : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+             attribute float   r1;\r
+                         // raises DOMException on setting\r
+             attribute float   r2;\r
+                         // raises DOMException on setting\r
+             attribute float   angle;\r
+                         // raises DOMException on setting\r
+             attribute boolean largeArcFlag;\r
+                         // raises DOMException on setting\r
+             attribute boolean sweepFlag;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegLinetoHorizontalAbs : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegLinetoHorizontalRel : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegLinetoVerticalAbs : SVGPathSeg { \r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegLinetoVerticalRel : SVGPathSeg { \r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+             attribute float   x2;\r
+                         // raises DOMException on setting\r
+             attribute float   y2;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+             attribute float   x2;\r
+                         // raises DOMException on setting\r
+             attribute float   y2;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg { \r
+             attribute float   x;\r
+                         // raises DOMException on setting\r
+             attribute float   y;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPathSegList { \r
+\r
+    readonly attribute unsigned long numberOfItems;\r
+\r
+    void   clear (  )\r
+                    raises( DOMException );\r
+    SVGPathSeg initialize ( in SVGPathSeg newItem )\r
+                    raises( DOMException, SVGException );\r
+    SVGPathSeg getItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    SVGPathSeg insertItemBefore ( in SVGPathSeg newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    SVGPathSeg replaceItem ( in SVGPathSeg newItem, in unsigned long index )\r
+                    raises( DOMException, SVGException );\r
+    SVGPathSeg removeItem ( in unsigned long index )\r
+                    raises( DOMException );\r
+    SVGPathSeg appendItem ( in SVGPathSeg newItem )\r
+                    raises( DOMException, SVGException );\r
+  };\r
+\r
+  interface SVGAnimatedPathData { \r
+\r
+    readonly attribute SVGPathSegList   pathSegList;\r
+    readonly attribute SVGPathSegList   normalizedPathSegList;\r
+    readonly attribute SVGPathSegList   animatedPathSegList;\r
+    readonly attribute SVGPathSegList   animatedNormalizedPathSegList;\r
+  };\r
+\r
+  interface SVGPathElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget,\r
+                SVGAnimatedPathData { \r
+\r
+    readonly attribute SVGAnimatedNumber pathLength;\r
+\r
+    float         getTotalLength (  );\r
+    SVGPoint      getPointAtLength ( in float distance );\r
+    unsigned long getPathSegAtLength ( in float distance );\r
+    SVGPathSegClosePath    createSVGPathSegClosePath (  );\r
+    SVGPathSegMovetoAbs    createSVGPathSegMovetoAbs ( in float x, in float y );\r
+    SVGPathSegMovetoRel    createSVGPathSegMovetoRel ( in float x, in float y );\r
+    SVGPathSegLinetoAbs    createSVGPathSegLinetoAbs ( in float x, in float y );\r
+    SVGPathSegLinetoRel    createSVGPathSegLinetoRel ( in float x, in float y );\r
+    SVGPathSegCurvetoCubicAbs    createSVGPathSegCurvetoCubicAbs ( in float x, in float y, in float x1, in float y1, in float x2, in float y2 );\r
+    SVGPathSegCurvetoCubicRel    createSVGPathSegCurvetoCubicRel ( in float x, in float y, in float x1, in float y1, in float x2, in float y2 );\r
+    SVGPathSegCurvetoQuadraticAbs    createSVGPathSegCurvetoQuadraticAbs ( in float x, in float y, in float x1, in float y1 );\r
+    SVGPathSegCurvetoQuadraticRel    createSVGPathSegCurvetoQuadraticRel ( in float x, in float y, in float x1, in float y1 );\r
+    SVGPathSegArcAbs    createSVGPathSegArcAbs ( in float x, in float y, in float r1, in float r2, in float angle, in boolean largeArcFlag, in boolean sweepFlag );\r
+    SVGPathSegArcRel    createSVGPathSegArcRel ( in float x, in float y, in float r1, in float r2, in float angle, in boolean largeArcFlag, in boolean sweepFlag );\r
+    SVGPathSegLinetoHorizontalAbs    createSVGPathSegLinetoHorizontalAbs ( in float x );\r
+    SVGPathSegLinetoHorizontalRel    createSVGPathSegLinetoHorizontalRel ( in float x );\r
+    SVGPathSegLinetoVerticalAbs    createSVGPathSegLinetoVerticalAbs ( in float y );\r
+    SVGPathSegLinetoVerticalRel    createSVGPathSegLinetoVerticalRel ( in float y );\r
+    SVGPathSegCurvetoCubicSmoothAbs    createSVGPathSegCurvetoCubicSmoothAbs ( in float x, in float y, in float x2, in float y2 );\r
+    SVGPathSegCurvetoCubicSmoothRel    createSVGPathSegCurvetoCubicSmoothRel ( in float x, in float y, in float x2, in float y2 );\r
+    SVGPathSegCurvetoQuadraticSmoothAbs    createSVGPathSegCurvetoQuadraticSmoothAbs ( in float x, in float y );\r
+    SVGPathSegCurvetoQuadraticSmoothRel    createSVGPathSegCurvetoQuadraticSmoothRel ( in float x, in float y );\r
+  };\r
+\r
+  interface SVGRectElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget { \r
+\r
+    readonly attribute SVGAnimatedLength x;\r
+    readonly attribute SVGAnimatedLength y;\r
+    readonly attribute SVGAnimatedLength width;\r
+    readonly attribute SVGAnimatedLength height;\r
+    readonly attribute SVGAnimatedLength rx;\r
+    readonly attribute SVGAnimatedLength ry;\r
+  };\r
+\r
+  interface SVGCircleElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget { \r
+\r
+    readonly attribute SVGAnimatedLength cx;\r
+    readonly attribute SVGAnimatedLength cy;\r
+    readonly attribute SVGAnimatedLength r;\r
+  };\r
+\r
+  interface SVGEllipseElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget { \r
+\r
+    readonly attribute SVGAnimatedLength cx;\r
+    readonly attribute SVGAnimatedLength cy;\r
+    readonly attribute SVGAnimatedLength rx;\r
+    readonly attribute SVGAnimatedLength ry;\r
+  };\r
+\r
+  interface SVGLineElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget { \r
+\r
+    readonly attribute SVGAnimatedLength x1;\r
+    readonly attribute SVGAnimatedLength y1;\r
+    readonly attribute SVGAnimatedLength x2;\r
+    readonly attribute SVGAnimatedLength y2;\r
+  };\r
+\r
+  interface SVGAnimatedPoints { \r
+\r
+    readonly attribute SVGPointList   points;\r
+    readonly attribute SVGPointList   animatedPoints;\r
+  };\r
+\r
+  interface SVGPolylineElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget,\r
+                SVGAnimatedPoints {};\r
+\r
+  interface SVGPolygonElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget,\r
+                SVGAnimatedPoints {};\r
+\r
+  interface SVGTextContentElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                events::EventTarget { \r
+\r
+    // lengthAdjust Types\r
+    const unsigned short LENGTHADJUST_UNKNOWN   = 0;\r
+    const unsigned short LENGTHADJUST_SPACING     = 1;\r
+    const unsigned short LENGTHADJUST_SPACINGANDGLYPHS     = 2;\r
+\r
+    readonly attribute SVGAnimatedLength      textLength;\r
+    readonly attribute SVGAnimatedEnumeration lengthAdjust;\r
+\r
+    long     getNumberOfChars (  );\r
+    float    getComputedTextLength (  );\r
+    float    getSubStringLength ( in unsigned long charnum, in unsigned long nchars )\r
+                    raises( DOMException );\r
+    SVGPoint getStartPositionOfChar ( in unsigned long charnum )\r
+                    raises( DOMException );\r
+    SVGPoint getEndPositionOfChar ( in unsigned long charnum )\r
+                    raises( DOMException );\r
+    SVGRect  getExtentOfChar ( in unsigned long charnum )\r
+                    raises( DOMException );\r
+    float    getRotationOfChar ( in unsigned long charnum )\r
+                    raises( DOMException );\r
+    long     getCharNumAtPosition ( in SVGPoint point );\r
+    void     selectSubString ( in unsigned long charnum, in unsigned long nchars )\r
+                    raises( DOMException );\r
+  };\r
+\r
+  interface SVGTextPositioningElement : SVGTextContentElement { \r
+    readonly attribute SVGAnimatedLengthList x;\r
+    readonly attribute SVGAnimatedLengthList y;\r
+    readonly attribute SVGAnimatedLengthList dx;\r
+    readonly attribute SVGAnimatedLengthList dy;\r
+    readonly attribute SVGAnimatedNumberList rotate;\r
+  };\r
+\r
+  interface SVGTextElement : \r
+                SVGTextPositioningElement,\r
+                SVGTransformable {};\r
+\r
+  interface SVGTSpanElement : SVGTextPositioningElement {};\r
+\r
+  interface SVGTRefElement : \r
+                SVGTextPositioningElement,\r
+                SVGURIReference {};\r
+\r
+  interface SVGTextPathElement : \r
+                SVGTextContentElement,\r
+                SVGURIReference { \r
+\r
+    // textPath Method Types\r
+    const unsigned short TEXTPATH_METHODTYPE_UNKNOWN   = 0;\r
+    const unsigned short TEXTPATH_METHODTYPE_ALIGN     = 1;\r
+    const unsigned short TEXTPATH_METHODTYPE_STRETCH     = 2;\r
+    // textPath Spacing Types\r
+    const unsigned short TEXTPATH_SPACINGTYPE_UNKNOWN   = 0;\r
+    const unsigned short TEXTPATH_SPACINGTYPE_AUTO     = 1;\r
+    const unsigned short TEXTPATH_SPACINGTYPE_EXACT     = 2;\r
+\r
+    readonly attribute SVGAnimatedLength              startOffset;\r
+    readonly attribute SVGAnimatedEnumeration method;\r
+    readonly attribute SVGAnimatedEnumeration spacing;\r
+  };\r
+\r
+  interface SVGAltGlyphElement : \r
+                SVGTextPositioningElement,\r
+                SVGURIReference { \r
+\r
+             attribute DOMString glyphRef;\r
+                         // raises DOMException on setting\r
+             attribute DOMString format;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGAltGlyphDefElement : SVGElement {};\r
+\r
+  interface SVGAltGlyphItemElement : SVGElement {};\r
+\r
+  interface SVGGlyphRefElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGStylable { \r
+\r
+             attribute DOMString glyphRef;\r
+                         // raises DOMException on setting\r
+             attribute DOMString format;\r
+                         // raises DOMException on setting\r
+             attribute float    x;\r
+                         // raises DOMException on setting\r
+             attribute float    y;\r
+                         // raises DOMException on setting\r
+             attribute float    dx;\r
+                         // raises DOMException on setting\r
+             attribute float    dy;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGPaint : SVGColor { \r
+    // Paint Types\r
+    const unsigned short SVG_PAINTTYPE_UNKNOWN               = 0;\r
+    const unsigned short SVG_PAINTTYPE_RGBCOLOR              = 1;\r
+    const unsigned short SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR     = 2;\r
+    const unsigned short SVG_PAINTTYPE_NONE                  = 101;\r
+    const unsigned short SVG_PAINTTYPE_CURRENTCOLOR          = 102;\r
+    const unsigned short SVG_PAINTTYPE_URI_NONE              = 103;\r
+    const unsigned short SVG_PAINTTYPE_URI_CURRENTCOLOR      = 104;\r
+    const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR          = 105;\r
+    const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106;\r
+    const unsigned short SVG_PAINTTYPE_URI                   = 107;\r
+\r
+    readonly attribute unsigned short paintType;\r
+    readonly attribute DOMString      uri;\r
+\r
+    void setUri ( in DOMString uri );\r
+    void setPaint ( in unsigned short paintType, in DOMString uri, in DOMString rgbColor, in DOMString iccColor )\r
+                    raises( SVGException );\r
+  };\r
+\r
+  interface SVGMarkerElement : \r
+                SVGElement,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGFitToViewBox { \r
+\r
+    // Marker Unit Types\r
+    const unsigned short SVG_MARKERUNITS_UNKNOWN        = 0;\r
+    const unsigned short SVG_MARKERUNITS_USERSPACEONUSE = 1;\r
+    const unsigned short SVG_MARKERUNITS_STROKEWIDTH    = 2;\r
+    // Marker Orientation Types\r
+    const unsigned short SVG_MARKER_ORIENT_UNKNOWN      = 0;\r
+    const unsigned short SVG_MARKER_ORIENT_AUTO         = 1;\r
+    const unsigned short SVG_MARKER_ORIENT_ANGLE        = 2;\r
+\r
+    readonly attribute SVGAnimatedLength      refX;\r
+    readonly attribute SVGAnimatedLength      refY;\r
+    readonly attribute SVGAnimatedEnumeration markerUnits;\r
+    readonly attribute SVGAnimatedLength      markerWidth;\r
+    readonly attribute SVGAnimatedLength      markerHeight;\r
+    readonly attribute SVGAnimatedEnumeration orientType;\r
+    readonly attribute SVGAnimatedAngle      orientAngle;\r
+\r
+    void setOrientToAuto (  );\r
+    void setOrientToAngle ( in SVGAngle angle );\r
+  };\r
+\r
+  interface SVGColorProfileElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGRenderingIntent { \r
+\r
+             attribute DOMString      local;\r
+                         // raises DOMException on setting\r
+             attribute DOMString      name;\r
+                         // raises DOMException on setting\r
+             attribute unsigned short renderingIntent;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGColorProfileRule : \r
+                SVGCSSRule,\r
+                SVGRenderingIntent { \r
+\r
+             attribute DOMString      src;\r
+                         // raises DOMException on setting\r
+             attribute DOMString      name;\r
+                         // raises DOMException on setting\r
+             attribute unsigned short renderingIntent;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGGradientElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGUnitTypes { \r
+\r
+    // Spread Method Types\r
+    const unsigned short SVG_SPREADMETHOD_UNKNOWN = 0;\r
+    const unsigned short SVG_SPREADMETHOD_PAD     = 1;\r
+    const unsigned short SVG_SPREADMETHOD_REFLECT = 2;\r
+    const unsigned short SVG_SPREADMETHOD_REPEAT  = 3;\r
+\r
+    readonly attribute SVGAnimatedEnumeration   gradientUnits;\r
+    readonly attribute SVGAnimatedTransformList gradientTransform;\r
+    readonly attribute SVGAnimatedEnumeration   spreadMethod;\r
+  };\r
+\r
+  interface SVGLinearGradientElement : SVGGradientElement { \r
+    readonly attribute SVGAnimatedLength x1;\r
+    readonly attribute SVGAnimatedLength y1;\r
+    readonly attribute SVGAnimatedLength x2;\r
+    readonly attribute SVGAnimatedLength y2;\r
+  };\r
+\r
+  interface SVGRadialGradientElement : SVGGradientElement { \r
+    readonly attribute SVGAnimatedLength cx;\r
+    readonly attribute SVGAnimatedLength cy;\r
+    readonly attribute SVGAnimatedLength r;\r
+    readonly attribute SVGAnimatedLength fx;\r
+    readonly attribute SVGAnimatedLength fy;\r
+  };\r
+\r
+  interface SVGStopElement : \r
+                SVGElement,\r
+                SVGStylable { \r
+\r
+    readonly attribute SVGAnimatedNumber offset;\r
+  };\r
+\r
+  interface SVGPatternElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGFitToViewBox,\r
+                SVGUnitTypes { \r
+\r
+    readonly attribute SVGAnimatedEnumeration   patternUnits;\r
+    readonly attribute SVGAnimatedEnumeration   patternContentUnits;\r
+    readonly attribute SVGAnimatedTransformList patternTransform;\r
+    readonly attribute SVGAnimatedLength        x;\r
+    readonly attribute SVGAnimatedLength        y;\r
+    readonly attribute SVGAnimatedLength        width;\r
+    readonly attribute SVGAnimatedLength        height;\r
+  };\r
+\r
+  interface SVGClipPathElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                SVGUnitTypes { \r
+\r
+    readonly attribute SVGAnimatedEnumeration clipPathUnits;\r
+  };\r
+\r
+  interface SVGMaskElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGUnitTypes { \r
+\r
+    readonly attribute SVGAnimatedEnumeration maskUnits;\r
+    readonly attribute SVGAnimatedEnumeration maskContentUnits;\r
+    readonly attribute SVGAnimatedLength      x;\r
+    readonly attribute SVGAnimatedLength      y;\r
+    readonly attribute SVGAnimatedLength      width;\r
+    readonly attribute SVGAnimatedLength      height;\r
+  };\r
+\r
+  interface SVGFilterElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGUnitTypes { \r
+\r
+    readonly attribute SVGAnimatedEnumeration filterUnits;\r
+    readonly attribute SVGAnimatedEnumeration primitiveUnits;\r
+    readonly attribute SVGAnimatedLength      x;\r
+    readonly attribute SVGAnimatedLength      y;\r
+    readonly attribute SVGAnimatedLength      width;\r
+    readonly attribute SVGAnimatedLength      height;\r
+    readonly attribute SVGAnimatedInteger    filterResX;\r
+    readonly attribute SVGAnimatedInteger    filterResY;\r
+\r
+    void setFilterRes ( in unsigned long filterResX, in unsigned long filterResY );\r
+  };\r
+\r
+  interface SVGFilterPrimitiveStandardAttributes : SVGStylable { \r
+    readonly attribute SVGAnimatedLength x;\r
+    readonly attribute SVGAnimatedLength y;\r
+    readonly attribute SVGAnimatedLength width;\r
+    readonly attribute SVGAnimatedLength height;\r
+    readonly attribute SVGAnimatedString result;\r
+  };\r
+\r
+  interface SVGFEBlendElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    // Blend Mode Types\r
+    const unsigned short SVG_FEBLEND_MODE_UNKNOWN  = 0;\r
+    const unsigned short SVG_FEBLEND_MODE_NORMAL   = 1;\r
+    const unsigned short SVG_FEBLEND_MODE_MULTIPLY = 2;\r
+    const unsigned short SVG_FEBLEND_MODE_SCREEN   = 3;\r
+    const unsigned short SVG_FEBLEND_MODE_DARKEN   = 4;\r
+    const unsigned short SVG_FEBLEND_MODE_LIGHTEN  = 5;\r
+\r
+    readonly attribute SVGAnimatedString      in1;\r
+    readonly attribute SVGAnimatedString      in2;\r
+    readonly attribute SVGAnimatedEnumeration mode;\r
+  };\r
+\r
+  interface SVGFEColorMatrixElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    // Color Matrix Types\r
+    const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0;\r
+    const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX           = 1;\r
+    const unsigned short SVG_FECOLORMATRIX_TYPE_SATURATE         = 2;\r
+    const unsigned short SVG_FECOLORMATRIX_TYPE_HUEROTATE        = 3;\r
+    const unsigned short SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;\r
+\r
+    readonly attribute SVGAnimatedString      in1;\r
+    readonly attribute SVGAnimatedEnumeration type;\r
+    readonly attribute SVGAnimatedNumberList  values;\r
+  };\r
+\r
+  interface SVGFEComponentTransferElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    readonly attribute SVGAnimatedString in1;\r
+  };\r
+\r
+  interface SVGComponentTransferFunctionElement : SVGElement { \r
+    // Component Transfer Types\r
+    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN  = 0;\r
+    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1;\r
+    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_TABLE    = 2;\r
+    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE    = 3;\r
+    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_LINEAR   = 4;\r
+    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_GAMMA    = 5;\r
+\r
+    readonly attribute SVGAnimatedEnumeration type;\r
+    readonly attribute SVGAnimatedNumberList  tableValues;\r
+    readonly attribute SVGAnimatedNumber      slope;\r
+    readonly attribute SVGAnimatedNumber      intercept;\r
+    readonly attribute SVGAnimatedNumber      amplitude;\r
+    readonly attribute SVGAnimatedNumber      exponent;\r
+    readonly attribute SVGAnimatedNumber      offset;\r
+  };\r
+\r
+  interface SVGFEFuncRElement : SVGComponentTransferFunctionElement {};\r
+\r
+  interface SVGFEFuncGElement : SVGComponentTransferFunctionElement {};\r
+\r
+  interface SVGFEFuncBElement : SVGComponentTransferFunctionElement {};\r
+\r
+  interface SVGFEFuncAElement : SVGComponentTransferFunctionElement {};\r
+\r
+  interface SVGFECompositeElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    // Composite Operators\r
+    const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0;\r
+    const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER       = 1;\r
+    const unsigned short SVG_FECOMPOSITE_OPERATOR_IN         = 2;\r
+    const unsigned short SVG_FECOMPOSITE_OPERATOR_OUT        = 3;\r
+    const unsigned short SVG_FECOMPOSITE_OPERATOR_ATOP       = 4;\r
+    const unsigned short SVG_FECOMPOSITE_OPERATOR_XOR        = 5;\r
+    const unsigned short SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;\r
+\r
+    readonly attribute SVGAnimatedString      in1;\r
+    readonly attribute SVGAnimatedString      in2;\r
+    readonly attribute SVGAnimatedEnumeration operator;\r
+    readonly attribute SVGAnimatedNumber      k1;\r
+    readonly attribute SVGAnimatedNumber      k2;\r
+    readonly attribute SVGAnimatedNumber      k3;\r
+    readonly attribute SVGAnimatedNumber      k4;\r
+  };\r
+\r
+  interface SVGFEConvolveMatrixElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    // Edge Mode Values\r
+    const unsigned short SVG_EDGEMODE_UNKNOWN   = 0;\r
+    const unsigned short SVG_EDGEMODE_DUPLICATE = 1;\r
+    const unsigned short SVG_EDGEMODE_WRAP      = 2;\r
+    const unsigned short SVG_EDGEMODE_NONE      = 3;\r
+\r
+    readonly attribute SVGAnimatedInteger     orderX;\r
+    readonly attribute SVGAnimatedInteger     orderY;\r
+    readonly attribute SVGAnimatedNumberList  kernelMatrix;\r
+    readonly attribute SVGAnimatedNumber      divisor;\r
+    readonly attribute SVGAnimatedNumber      bias;\r
+    readonly attribute SVGAnimatedInteger     targetX;\r
+    readonly attribute SVGAnimatedInteger     targetY;\r
+    readonly attribute SVGAnimatedEnumeration edgeMode;\r
+    readonly attribute SVGAnimatedLength      kernelUnitLengthX;\r
+    readonly attribute SVGAnimatedLength      kernelUnitLengthY;\r
+    readonly attribute SVGAnimatedBoolean     preserveAlpha;\r
+  };\r
+\r
+  interface SVGFEDiffuseLightingElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    readonly attribute SVGAnimatedString in1;\r
+    readonly attribute SVGAnimatedNumber surfaceScale;\r
+    readonly attribute SVGAnimatedNumber diffuseConstant;\r
+  };\r
+\r
+  interface SVGFEDistantLightElement : SVGElement { \r
+    readonly attribute SVGAnimatedNumber azimuth;\r
+    readonly attribute SVGAnimatedNumber elevation;\r
+  };\r
+\r
+  interface SVGFEPointLightElement : SVGElement { \r
+    readonly attribute SVGAnimatedNumber x;\r
+    readonly attribute SVGAnimatedNumber y;\r
+    readonly attribute SVGAnimatedNumber z;\r
+  };\r
+\r
+  interface SVGFESpotLightElement : SVGElement { \r
+    readonly attribute SVGAnimatedNumber x;\r
+    readonly attribute SVGAnimatedNumber y;\r
+    readonly attribute SVGAnimatedNumber z;\r
+    readonly attribute SVGAnimatedNumber pointsAtX;\r
+    readonly attribute SVGAnimatedNumber pointsAtY;\r
+    readonly attribute SVGAnimatedNumber pointsAtZ;\r
+    readonly attribute SVGAnimatedNumber specularExponent;\r
+    readonly attribute SVGAnimatedNumber limitingConeAngle;\r
+  };\r
+\r
+  interface SVGFEDisplacementMapElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    // Channel Selectors\r
+    const unsigned short SVG_CHANNEL_UNKNOWN = 0;\r
+    const unsigned short SVG_CHANNEL_R       = 1;\r
+    const unsigned short SVG_CHANNEL_G       = 2;\r
+    const unsigned short SVG_CHANNEL_B       = 3;\r
+    const unsigned short SVG_CHANNEL_A       = 4;\r
+\r
+    readonly attribute SVGAnimatedString      in1;\r
+    readonly attribute SVGAnimatedString      in2;\r
+    readonly attribute SVGAnimatedNumber      scale;\r
+    readonly attribute SVGAnimatedEnumeration xChannelSelector;\r
+    readonly attribute SVGAnimatedEnumeration yChannelSelector;\r
+  };\r
+\r
+  interface SVGFEFloodElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    readonly attribute SVGAnimatedString      in1;\r
+  };\r
+\r
+  interface SVGFEGaussianBlurElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    readonly attribute SVGAnimatedString in1;\r
+    readonly attribute SVGAnimatedNumber stdDeviationX;\r
+    readonly attribute SVGAnimatedNumber stdDeviationY;\r
+\r
+    void setStdDeviation ( in float stdDeviationX, in float stdDeviationY );\r
+  };\r
+\r
+  interface SVGFEImageElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGFilterPrimitiveStandardAttributes {};\r
+\r
+  interface SVGFEMergeElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes {};\r
+\r
+  interface SVGFEMergeNodeElement : SVGElement { \r
+    readonly attribute SVGAnimatedString in1;\r
+  };\r
+\r
+  interface SVGFEMorphologyElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    // Morphology Operators\r
+    const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;\r
+    const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE   = 1;\r
+    const unsigned short SVG_MORPHOLOGY_OPERATOR_DILATE  = 2;\r
+\r
+    readonly attribute SVGAnimatedString      in1;\r
+    readonly attribute SVGAnimatedEnumeration operator;\r
+    readonly attribute SVGAnimatedLength      radiusX;\r
+    readonly attribute SVGAnimatedLength      radiusY;\r
+  };\r
+\r
+  interface SVGFEOffsetElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    readonly attribute SVGAnimatedString in1;\r
+    readonly attribute SVGAnimatedNumber dx;\r
+    readonly attribute SVGAnimatedNumber dy;\r
+  };\r
+\r
+  interface SVGFESpecularLightingElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    readonly attribute SVGAnimatedString in1;\r
+    readonly attribute SVGAnimatedNumber surfaceScale;\r
+    readonly attribute SVGAnimatedNumber specularConstant;\r
+    readonly attribute SVGAnimatedNumber specularExponent;\r
+  };\r
+\r
+  interface SVGFETileElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    readonly attribute SVGAnimatedString in1;\r
+  };\r
+\r
+  interface SVGFETurbulenceElement : \r
+                SVGElement,\r
+                SVGFilterPrimitiveStandardAttributes { \r
+\r
+    // Turbulence Types\r
+    const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN      = 0;\r
+    const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;\r
+    const unsigned short SVG_TURBULENCE_TYPE_TURBULENCE   = 2;\r
+    // Stitch Options\r
+    const unsigned short SVG_STITCHTYPE_UNKNOWN  = 0;\r
+    const unsigned short SVG_STITCHTYPE_STITCH   = 1;\r
+    const unsigned short SVG_STITCHTYPE_NOSTITCH = 2;\r
+\r
+    readonly attribute SVGAnimatedNumber      baseFrequencyX;\r
+    readonly attribute SVGAnimatedNumber      baseFrequencyY;\r
+    readonly attribute SVGAnimatedInteger     numOctaves;\r
+    readonly attribute SVGAnimatedNumber      seed;\r
+    readonly attribute SVGAnimatedEnumeration stitchTiles;\r
+    readonly attribute SVGAnimatedEnumeration type;\r
+  };\r
+\r
+  interface SVGCursorElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGTests,\r
+                SVGExternalResourcesRequired { \r
+\r
+    readonly attribute SVGAnimatedLength x;\r
+    readonly attribute SVGAnimatedLength y;\r
+  };\r
+\r
+  interface SVGAElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget { \r
+\r
+    readonly attribute SVGAnimatedString target;\r
+  };\r
+\r
+  interface SVGViewElement : \r
+                SVGElement,\r
+                SVGExternalResourcesRequired,\r
+                SVGFitToViewBox,\r
+                SVGZoomAndPan { \r
+\r
+    readonly attribute SVGStringList viewTarget;\r
+  };\r
+\r
+  interface SVGScriptElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGExternalResourcesRequired { \r
+\r
+             attribute DOMString type;\r
+                         // raises DOMException on setting\r
+  };\r
+\r
+  interface SVGEvent : events::Event {};\r
+\r
+  interface SVGZoomEvent : events::UIEvent { \r
+    readonly attribute SVGRect zoomRectScreen;\r
+    readonly attribute float previousScale;\r
+    readonly attribute SVGPoint previousTranslate;\r
+    readonly attribute float newScale;\r
+    readonly attribute SVGPoint newTranslate;\r
+  };\r
+\r
+  interface SVGAnimationElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGExternalResourcesRequired,\r
+                smil::ElementTimeControl,\r
+                events::EventTarget { \r
+\r
+    readonly attribute SVGElement targetElement;\r
+\r
+    float getStartTime (  );\r
+    float getCurrentTime (  );\r
+    float getSimpleDuration (  )\r
+                    raises( DOMException );\r
+  };\r
+\r
+  interface SVGAnimateElement : SVGAnimationElement {};\r
+\r
+  interface SVGSetElement : SVGAnimationElement {};\r
+\r
+  interface SVGAnimateMotionElement : SVGAnimationElement {};\r
+\r
+  interface SVGMPathElement : \r
+                SVGElement,\r
+                SVGURIReference,\r
+                SVGExternalResourcesRequired {};\r
+\r
+  interface SVGAnimateColorElement : SVGAnimationElement {};\r
+\r
+  interface SVGAnimateTransformElement : SVGAnimationElement {};\r
+\r
+  interface SVGFontElement : \r
+                SVGElement,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable {};\r
+\r
+  interface SVGGlyphElement : \r
+                SVGElement,\r
+                SVGStylable {};\r
+\r
+  interface SVGMissingGlyphElement : \r
+                SVGElement,\r
+                SVGStylable {};\r
+\r
+  interface SVGHKernElement : SVGElement {};\r
+\r
+  interface SVGVKernElement : SVGElement {};\r
+\r
+  interface SVGFontFaceElement : SVGElement {};\r
+\r
+  interface SVGFontFaceSrcElement : SVGElement {};\r
+\r
+  interface SVGFontFaceUriElement : SVGElement {};\r
+\r
+  interface SVGFontFaceFormatElement : SVGElement {};\r
+\r
+  interface SVGFontFaceNameElement : SVGElement {};\r
+\r
+  interface SVGDefinitionSrcElement : SVGElement {};\r
+\r
+  interface SVGMetadataElement : SVGElement {};\r
+\r
+  interface SVGForeignObjectElement : \r
+                SVGElement,\r
+                SVGTests,\r
+                SVGLangSpace,\r
+                SVGExternalResourcesRequired,\r
+                SVGStylable,\r
+                SVGTransformable,\r
+                events::EventTarget { \r
+\r
+    readonly attribute SVGAnimatedLength x;\r
+    readonly attribute SVGAnimatedLength y;\r
+    readonly attribute SVGAnimatedLength width;\r
+    readonly attribute SVGAnimatedLength height;\r
+  };\r
+\r
+\r
+};\r
+\r
+#endif // _SVG_IDL_
\ No newline at end of file