Code

Added a bunch of comments to filter effects rendering code
[inkscape.git] / src / dom / svg / svgimpl.h
1 #ifndef __SVGIMPL_H__
2 #define __SVGIMPL_H__
4 /**
5  * Phoebe DOM Implementation.
6  *
7  * This is a C++ approximation of the W3C DOM model, which follows
8  * fairly closely the specifications in the various .idl files, copies of
9  * which are provided for reference.  Most important is this one:
10  *
11  * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
12  *
13  * Authors:
14  *   Bob Jamison
15  *
16  * Copyright (C) 2006 Bob Jamison
17  *
18  *  This library is free software; you can redistribute it and/or
19  *  modify it under the terms of the GNU Lesser General Public
20  *  License as published by the Free Software Foundation; either
21  *  version 2.1 of the License, or (at your option) any later version.
22  *
23  *  This library is distributed in the hope that it will be useful,
24  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
25  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
26  *  Lesser General Public License for more details.
27  *
28  *  You should have received a copy of the GNU Lesser General Public
29  *  License along with this library; if not, write to the Free Software
30  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
31  */
34 #include "svg.h"
35 #include "dom/domimpl.h"
36 #include "dom/smilimpl.h"
38 #include <math.h>
42 namespace org
43 {
44 namespace w3c
45 {
46 namespace dom
47 {
48 namespace svg
49 {
52 //local definitions
53 typedef dom::DOMString DOMString;
54 typedef dom::DOMException DOMException;
55 typedef dom::Element Element;
56 typedef dom::Document Document;
57 typedef dom::NodeList NodeList;
61 class SVGSVGElementImpl;
63 /*#########################################################################
64 ## SVGDocumentImpl
65 #########################################################################*/
67 /**
68  *
69  */
70 class SVGDocumentImpl : virtual public SVGDocument, public DocumentImpl
71 {
72 public:
75     /**
76      *
77      */
78     virtual DOMString getTitle()
79         { return title; }
81     /**
82      *
83      */
84     virtual DOMString getReferrer()
85         { return referrer; }
87     /**
88      *
89      */
90     virtual DOMString getDomain()
91         { return domain; }
93     /**
94      *
95      */
96     virtual DOMString getURL()
97         { return url; }
99     /**
100      *
101      */
102     virtual SVGSVGElement *getRootElement()
103         { return rootElement; }
106     //####################################################
107     //# Overload some createXXX() methods from DocumentImpl,
108     //# To create our SVG-DOM types (in .cpp)
109     //####################################################
111     /**
112      *
113      */
114     virtual Element *createElement(const DOMString& tagName)
115                            throw(DOMException);
118     /**
119      *
120      */
121     virtual Element *createElementNS(const DOMString& namespaceURI,
122                                      const DOMString& qualifiedName)
123                                      throw(DOMException);
125     //##################
126     //# Non-API methods
127     //##################
129     SVGDocumentImpl(const DOMImplementation *domImpl,
130                     const DOMString    &namespaceURI,
131                     const DOMString    &qualifiedName,
132                     const DocumentType *doctype)
133                     : DocumentImpl(domImpl, namespaceURI,
134                           qualifiedName, doctype)
135         {
136         init();
137         }
140     /**
141      *
142      */
143     virtual ~SVGDocumentImpl()
144         {
145         if (rootElement)
146             delete rootElement;
147         }
149 protected:
151 friend class SvgParser;
153     void init()
154         {
155         title       = "";
156         referrer    = "";
157         domain      = "";
158         rootElement = NULL;
159         }
161     DOMString title;
162     DOMString referrer;
163     DOMString domain;
164     DOMString url;
165     SVGSVGElement *rootElement;
166 };
170 /*#########################################################################
171 ## SVGElementImpl
172 #########################################################################*/
174 /**
175  *
176  */
177 class SVGElementImpl : virtual public SVGElement,
178                        public ElementImpl
180 public:
182     /**
183      *
184      */
185     virtual DOMString getId()
186         { return id; }
188     /**
189      *
190      */
191     virtual void setId(const DOMString &val)
192                        throw (DOMException)
193         { id = val; }
195     /**
196      *
197      */
198     virtual DOMString getXmlBase()
199         { return xmlBase; }
201     /**
202      *
203      */
204     virtual void setXmlBase(const DOMString &val)
205                             throw (DOMException)
206         { xmlBase = val; }
208     /**
209      *
210      */
211     virtual SVGSVGElement *getOwnerSVGElement()
212         { return ownerSvgElement; }
214     /**
215      *
216      */
217     virtual SVGElement *getViewportElement()
218         { return viewportElement; }
221     //##################
222     //# Non-API methods
223     //##################
226     /**
227      *
228      */
229     SVGElementImpl()
230         {}
232     /**
233      *
234      */
235     SVGElementImpl(SVGDocumentImpl *owner, const DOMString &tagName)
236                     : ElementImpl(owner, tagName)
237         { init(); }
239     /**
240      *
241      */
242     SVGElementImpl(SVGDocumentImpl *owner,
243                    const DOMString &namespaceURI,
244                    const DOMString &tagName)
245                    : ElementImpl(owner, namespaceURI, tagName)
246         { init(); }
249     /**
250      *
251      */
252     virtual ~SVGElementImpl()
253         {}
255 protected:
257     void init()
258         {
259         id              = "";
260         xmlBase         = "";
261         ownerSvgElement = NULL;
262         viewportElement = NULL;
263         }
265     DOMString id;
266     DOMString xmlBase;
267     SVGSVGElement *ownerSvgElement;
268     SVGElement *viewportElement;
270 };
274 /*#########################################################################
275 ## SVGSVGElementImpl
276 #########################################################################*/
278 /**
279  *
280  */
281 class SVGSVGElementImpl : virtual public SVGSVGElement,
282                           public SVGElementImpl
284 public:
286     /**
287      *
288      */
289     virtual SVGAnimatedLength getX()
290         { return x; }
292     /**
293      *
294      */
295     virtual SVGAnimatedLength getY()
296         { return y; }
298     /**
299      *
300      */
301     virtual SVGAnimatedLength getWidth()
302         { return width; }
304     /**
305      *
306      */
307     virtual SVGAnimatedLength getHeight()
308         { return height; }
310     /**
311      *
312      */
313     virtual DOMString getContentScriptType()
314         { return contentScriptType; }
316     /**
317      *
318      */
319     virtual void setContentScriptType(const DOMString &val)
320                                      throw (DOMException)
321         { contentScriptType = val; }
324     /**
325      *
326      */
327     virtual DOMString getContentStyleType()
328         { return contentStyleType; }
330     /**
331      *
332      */
333     virtual void setContentStyleType(const DOMString &val)
334                                      throw (DOMException)
335         { contentStyleType = val; }
337     /**
338      *
339      */
340     virtual SVGRect getViewport()
341         { return viewport; }
343     /**
344      *
345      */
346     virtual double getPixelUnitToMillimeterX()
347         { return pixelUnitToMillimeterX; }
349     /**
350      *
351      */
352     virtual double getPixelUnitToMillimeterY()
353         { return pixelUnitToMillimeterY; }
355     /**
356      *
357      */
358     virtual double getScreenPixelToMillimeterX()
359         { return screenPixelToMillimeterX; }
361     /**
362      *
363      */
364     virtual double getScreenPixelToMillimeterY()
365         { return screenPixelToMillimeterY; }
368     /**
369      *
370      */
371     virtual bool getUseCurrentView()
372         { return useCurrentView; }
374     /**
375      *
376      */
377     virtual void setUseCurrentView(bool val) throw (DOMException)
378         { useCurrentView = val; }
380     /**
381      *
382      */
383     virtual SVGViewSpec getCurrentView()
384         { return currentView; }
387     /**
388      *
389      */
390     virtual double getCurrentScale()
391         { return currentScale; }
393     /**
394      *
395      */
396     virtual void setCurrentScale(double val) throw (DOMException)
397         { currentScale = val; }
400     /**
401      *
402      */
403     virtual SVGPoint getCurrentTranslate()
404         { return currentTranslate; }
407     /**
408      *
409      */
410     virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds );
412     /**
413      *
414      */
415     virtual void unsuspendRedraw (unsigned long suspend_handle_id )
416                                   throw( DOMException );
418     /**
419      *
420      */
421     virtual void unsuspendRedrawAll (  );
423     /**
424      *
425      */
426     virtual void forceRedraw (  );
428     /**
429      *
430      */
431     virtual void pauseAnimations (  );
433     /**
434      *
435      */
436     virtual void unpauseAnimations (  );
438     /**
439      *
440      */
441     virtual bool animationsPaused (  );
443     /**
444      *
445      */
446     virtual double getCurrentTime (  )
447         { return currentTime; }
449     /**
450      *
451      */
452     virtual void setCurrentTime (double seconds )
453         { currentTime = seconds; }
455     /**
456      *
457      */
458     virtual NodeList getIntersectionList (const SVGRect &rect,
459                                           const SVGElement *referenceElement );
461     /**
462      *
463      */
464     virtual NodeList getEnclosureList (const SVGRect &rect,
465                                        const SVGElement *referenceElement );
467     /**
468      *
469      */
470     virtual bool checkIntersection (const SVGElement *element, const SVGRect &rect );
472     /**
473      *
474      */
475     virtual bool checkEnclosure (const SVGElement *element, const SVGRect &rect );
477     /**
478      *
479      */
480     virtual void deselectAll (  );
482     /**
483      *
484      */
485     virtual SVGNumber createSVGNumber (  )
486         {
487         SVGNumber ret;
488         return ret;
489         }
491     /**
492      *
493      */
494     virtual SVGLength createSVGLength (  )
495         {
496         SVGLength ret;
497         return ret;
498         }
500     /**
501      *
502      */
503     virtual SVGAngle createSVGAngle (  )
504         {
505         SVGAngle ret;
506         return ret;
507         }
509     /**
510      *
511      */
512     virtual SVGPoint createSVGPoint (  )
513         {
514         SVGPoint ret;
515         return ret;
516         }
518     /**
519      *
520      */
521     virtual SVGMatrix createSVGMatrix (  )
522         {
523         SVGMatrix ret;
524         return ret;
525         }
527     /**
528      *
529      */
530     virtual SVGRect createSVGRect (  )
531         {
532         SVGRect ret;
533         return ret;
534         }
536     /**
537      *
538      */
539     virtual SVGTransform createSVGTransform (  )
540         {
541         SVGTransform ret;
542         return ret;
543         }
545     /**
546      *
547      */
548     virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix )
549         {
550         SVGTransform ret;
551         ret.setMatrix(matrix);
552         return ret;
553         }
556     /**
557      *
558      */
559     virtual Element *getElementById (const DOMString& elementId );
563     //##################
564     //# Non-API methods
565     //##################
567     /**
568      *
569      */
570     SVGSVGElementImpl() : SVGElementImpl()
571         {}
575     /**
576      *
577      */
578     virtual ~SVGSVGElementImpl() {}
580 protected:
582     SVGAnimatedLength x;
583     SVGAnimatedLength y;
584     SVGAnimatedLength width;
585     SVGAnimatedLength height;
586     DOMString         contentScriptType;
587     DOMString         contentStyleType;
588     SVGRect           viewport;
589     double            pixelUnitToMillimeterX;
590     double            pixelUnitToMillimeterY;
591     double            screenPixelToMillimeterX;
592     double            screenPixelToMillimeterY;
593     bool              useCurrentView;
594     SVGViewSpec       currentView;
595     double            currentScale;
596     SVGPoint          currentTranslate;
598     double currentTime;
600 };
604 /*#########################################################################
605 ## SVGGElementImpl
606 #########################################################################*/
608 /**
609  *
610  */
611 class SVGGElementImpl : virtual public SVGGElement, public SVGElementImpl
613 public:
615     //##################
616     //# Non-API methods
617     //##################
619     /**
620      *
621      */
622     SVGGElementImpl() {}
624     /**
625      *
626      */
627     virtual ~SVGGElementImpl() {}
629 protected:
632 };
637 /*#########################################################################
638 ## SVGDefsElementImpl
639 #########################################################################*/
641 /**
642  *
643  */
644 class SVGDefsElementImpl : virtual public SVGDefsElement,
645                            public SVGElementImpl
647 public:
649     //##################
650     //# Non-API methods
651     //##################
653     /**
654      *
655      */
656     SVGDefsElementImpl() {}
658     /**
659      *
660      */
661     virtual ~SVGDefsElementImpl() {}
663 protected:
666 };
672 /*#########################################################################
673 ## SVGDescElementImpl
674 #########################################################################*/
676 /**
677  *
678  */
679 class SVGDescElementImpl :  virtual public SVGDescElement,
680                             public SVGElementImpl
682 public:
684     //##################
685     //# Non-API methods
686     //##################
688     /**
689      *
690      */
691     SVGDescElementImpl() {}
693     /**
694      *
695      */
696     virtual ~SVGDescElementImpl() {}
698 protected:
701 };
707 /*#########################################################################
708 ## SVGTitleElementImpl
709 #########################################################################*/
711 /**
712  *
713  */
714 class SVGTitleElementImpl : virtual public SVGTitleElement,
715                             public SVGElementImpl
717 public:
719     //##################
720     //# Non-API methods
721     //##################
723     /**
724      *
725      */
726     SVGTitleElementImpl() {}
728     /**
729      *
730      */
731     virtual ~SVGTitleElementImpl() {}
733 protected:
736 };
742 /*#########################################################################
743 ## SVGSymbolElementImpl
744 #########################################################################*/
746 /**
747  *
748  */
749 class SVGSymbolElementImpl : virtual public SVGSymbolElement,
750                              public SVGElementImpl
752 public:
754     //##################
755     //# Non-API methods
756     //##################
758     /**
759      *
760      */
761     SVGSymbolElementImpl() {}
763     /**
764      *
765      */
766     virtual ~SVGSymbolElementImpl() {}
768 protected:
771 };
777 /*#########################################################################
778 ## SVGUseElementImpl
779 #########################################################################*/
781 /**
782  *
783  */
784 class SVGUseElementImpl : public SVGElementImpl
786 public:
789     /**
790      *
791      */
792     virtual SVGAnimatedLength getX()
793         { return x; }
795     /**
796      *
797      */
798     virtual SVGAnimatedLength getY()
799         { return y; }
801     /**
802      *
803      */
804     virtual SVGAnimatedLength getWidth()
805         { return width; }
807     /**
808      *
809      */
810     virtual SVGAnimatedLength getHeight()
811         { return height; }
813     /**
814      *
815      */
816     virtual SVGElementInstance getInstanceRoot()
817         { return instanceRoot; }
819     /**
820      *
821      */
822     virtual SVGElementInstance getAnimatedInstanceRoot()
823         { return animatedInstanceRoot; }
827     //##################
828     //# Non-API methods
829     //##################
831     /**
832      *
833      */
834     SVGUseElementImpl() {}
836     /**
837      *
838      */
839     virtual ~SVGUseElementImpl() {}
841 protected:
843     SVGAnimatedLength x;
844     SVGAnimatedLength y;
845     SVGAnimatedLength width;
846     SVGAnimatedLength height;
847     SVGElementInstance instanceRoot;
848     SVGElementInstance animatedInstanceRoot;
849 };
857 /*#########################################################################
858 ## SVGImageElementImpl
859 #########################################################################*/
861 /**
862  *
863  */
864 class SVGImageElementImpl : virtual public SVGImageElement,
865                             public SVGElementImpl
867 public:
870     /**
871      *
872      */
873     virtual SVGAnimatedLength getX()
874         { return x; }
876     /**
877      *
878      */
879     virtual SVGAnimatedLength getY()
880         { return y; }
882     /**
883      *
884      */
885     virtual SVGAnimatedLength getWidth()
886         { return width; }
888     /**
889      *
890      */
891     virtual SVGAnimatedLength getHeight()
892         { return height; }
895     /**
896      *
897      */
898     virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()
899         { return preserveAspectRatio; }
903     //##################
904     //# Non-API methods
905     //##################
907     /**
908      *
909      */
910     SVGImageElementImpl() {}
912     /**
913      *
914      */
915     virtual ~SVGImageElementImpl() {}
917 protected:
919     SVGAnimatedLength x;
920     SVGAnimatedLength y;
921     SVGAnimatedLength width;
922     SVGAnimatedLength height;
923     SVGAnimatedPreserveAspectRatio preserveAspectRatio;
924 };
931 /*#########################################################################
932 ## SVGSwitchElementImpl
933 #########################################################################*/
935 /**
936  *
937  */
938 class SVGSwitchElementImpl : virtual public SVGSwitchElement,
939                              public SVGElementImpl
941 public:
943     //##################
944     //# Non-API methods
945     //##################
947     /**
948      *
949      */
950     SVGSwitchElementImpl() {}
952     /**
953      *
954      */
955     virtual ~SVGSwitchElementImpl() {}
957 protected:
960 };
966 /*#########################################################################
967 ## GetSVGDocumentImpl
968 #########################################################################*/
970 /**
971  *
972  */
973 class GetSVGDocumentImpl : public virtual GetSVGDocument
975 public:
977     /**
978      *
979      */
980     virtual SVGDocument *getSVGDocument (  )
981                     throw( DOMException );
983     //##################
984     //# Non-API methods
985     //##################
987     /**
988      *
989      */
990     GetSVGDocumentImpl() {}
992     /**
993      *
994      */
995     virtual ~GetSVGDocumentImpl() {}
997 protected:
1000 };
1008 /*#########################################################################
1009 ## SVGStyleElementImpl
1010 #########################################################################*/
1012 /**
1013  *
1014  */
1015 class SVGStyleElementImpl : virtual public SVGStyleElement,
1016                             public SVGElementImpl
1018 public:
1020     /**
1021      *
1022      */
1023     virtual DOMString getXmlspace()
1024         { return xmlSpace; }
1026     /**
1027      *
1028      */
1029     virtual void setXmlspace(const DOMString &val)
1030                              throw (DOMException)
1031         { xmlSpace = val; }
1033     /**
1034      *
1035      */
1036     virtual DOMString getType()
1037         { return type; }
1039     /**
1040      *
1041      */
1042     virtual void setType(const DOMString &val)
1043                          throw (DOMException)
1044         { type = val; }
1046     /**
1047      *
1048      */
1049     virtual DOMString getMedia()
1050         { return media; }
1052     /**
1053      *
1054      */
1055     virtual void setMedia(const DOMString &val)
1056                           throw (DOMException)
1057         { media = val; }
1059     /**
1060      *
1061      */
1062     virtual DOMString getTitle()
1063         { return title; }
1065     /**
1066      *
1067      */
1068     virtual void setTitle(const DOMString &val)
1069                           throw (DOMException)
1070         { title = val; }
1074     //##################
1075     //# Non-API methods
1076     //##################
1078     /**
1079      *
1080      */
1081     SVGStyleElementImpl() {}
1083     /**
1084      *
1085      */
1086     virtual ~SVGStyleElementImpl() {}
1088 protected:
1090     DOMString xmlSpace;
1091     DOMString type;
1092     DOMString media;
1093     DOMString title;
1095 };
1102 /*#########################################################################
1103 ## SVGPathElementImpl
1104 #########################################################################*/
1106 /**
1107  *
1108  */
1109 class SVGPathElementImpl : virtual public SVGPathElement,
1110                            public SVGElementImpl
1112 public:
1114     /**
1115      *
1116      */
1117     virtual SVGAnimatedNumber getPathLength();
1119     /**
1120      *
1121      */
1122     virtual double getTotalLength (  );
1124     /**
1125      *
1126      */
1127     virtual SVGPoint getPointAtLength (double distance );
1129     /**
1130      *
1131      */
1132     virtual unsigned long getPathSegAtLength (double distance );
1134     /**
1135      *
1136      */
1137     virtual SVGPathSegClosePath
1138               createSVGPathSegClosePath (  )
1139          {
1140          SVGPathSegClosePath ret;
1141          return ret;
1142          }
1144     /**
1145      *
1146      */
1147     virtual SVGPathSegMovetoAbs
1148               createSVGPathSegMovetoAbs (double x, double y )
1149          {
1150          SVGPathSegMovetoAbs ret(x, y);
1151          return ret;
1152          }
1154     /**
1155      *
1156      */
1157     virtual SVGPathSegMovetoRel
1158               createSVGPathSegMovetoRel (double x, double y )
1159          {
1160          SVGPathSegMovetoRel ret(x, y);
1161          return ret;
1162          }
1164     /**
1165      *
1166      */
1167     virtual SVGPathSegLinetoAbs
1168               createSVGPathSegLinetoAbs (double x, double y )
1169          {
1170          SVGPathSegLinetoAbs ret(x, y);
1171          return ret;
1172          }
1174     /**
1175      *
1176      */
1177     virtual SVGPathSegLinetoRel
1178               createSVGPathSegLinetoRel (double x, double y )
1179          {
1180          SVGPathSegLinetoRel ret(x, y);
1181          return ret;
1182          }
1184     /**
1185      *
1186      */
1187     virtual SVGPathSegCurvetoCubicAbs
1188               createSVGPathSegCurvetoCubicAbs (double x, double y,
1189                         double x1, double y1, double x2, double y2 )
1190          {
1191          SVGPathSegCurvetoCubicAbs ret(x, y, x1, y1, x2, y2);
1192          return ret;
1193          }
1195     /**
1196      *
1197      */
1198     virtual SVGPathSegCurvetoCubicRel
1199               createSVGPathSegCurvetoCubicRel (double x, double y,
1200                         double x1, double y1, double x2, double y2 )
1201          {
1202          SVGPathSegCurvetoCubicRel ret(x, y, x1, y1, x2, y2);
1203          return ret;
1204          }
1206     /**
1207      *
1208      */
1209     virtual SVGPathSegCurvetoQuadraticAbs
1210               createSVGPathSegCurvetoQuadraticAbs (double x, double y,
1211                          double x1, double y1 )
1212          {
1213          SVGPathSegCurvetoQuadraticAbs ret(x, y, x1, y1);
1214          return ret;
1215          }
1217     /**
1218      *
1219      */
1220     virtual SVGPathSegCurvetoQuadraticRel
1221               createSVGPathSegCurvetoQuadraticRel (double x, double y,
1222                          double x1, double y1 )
1223          {
1224          SVGPathSegCurvetoQuadraticRel ret(x, y, x1, y1);
1225          return ret;
1226          }
1228     /**
1229      *
1230      */
1231     virtual SVGPathSegArcAbs
1232               createSVGPathSegArcAbs (double x, double y,
1233                          double r1, double r2, double angle,
1234                          bool largeArcFlag, bool sweepFlag )
1235          {
1236          SVGPathSegArcAbs ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
1237          return ret;
1238          }
1240     /**
1241      *
1242      */
1243     virtual SVGPathSegArcRel
1244               createSVGPathSegArcRel (double x, double y, double r1,
1245                          double r2, double angle, bool largeArcFlag,
1246                          bool sweepFlag )
1247          {
1248          SVGPathSegArcRel ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
1249          return ret;
1250          }
1252     /**
1253      *
1254      */
1255     virtual SVGPathSegLinetoHorizontalAbs
1256               createSVGPathSegLinetoHorizontalAbs (double x )
1257          {
1258          SVGPathSegLinetoHorizontalAbs ret(x);
1259          return ret;
1260          }
1262     /**
1263      *
1264      */
1265     virtual SVGPathSegLinetoHorizontalRel
1266               createSVGPathSegLinetoHorizontalRel (double x )
1267          {
1268          SVGPathSegLinetoHorizontalRel ret(x);
1269          return ret;
1270          }
1272     /**
1273      *
1274      */
1275     virtual SVGPathSegLinetoVerticalAbs
1276               createSVGPathSegLinetoVerticalAbs (double y )
1277          {
1278          SVGPathSegLinetoVerticalAbs ret(y);
1279          return ret;
1280          }
1282     /**
1283      *
1284      */
1285     virtual SVGPathSegLinetoVerticalRel
1286               createSVGPathSegLinetoVerticalRel (double y )
1287          {
1288          SVGPathSegLinetoVerticalRel ret(y);
1289          return ret;
1290          }
1292     /**
1293      *
1294      */
1295     virtual SVGPathSegCurvetoCubicSmoothAbs
1296               createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
1297                                              double x2, double y2 )
1298          {
1299          SVGPathSegCurvetoCubicSmoothAbs ret(x, y, x2, y2);
1300          return ret;
1301          }
1303     /**
1304      *
1305      */
1306     virtual SVGPathSegCurvetoCubicSmoothRel
1307               createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
1308                                                      double x2, double y2 )
1309          {
1310          SVGPathSegCurvetoCubicSmoothRel ret(x, y, x2, y2);
1311          return ret;
1312          }
1314     /**
1315      *
1316      */
1317     virtual SVGPathSegCurvetoQuadraticSmoothAbs
1318               createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y )
1319          {
1320          SVGPathSegCurvetoQuadraticSmoothAbs ret(x, y);
1321          return ret;
1322          }
1324     /**
1325      *
1326      */
1327     virtual SVGPathSegCurvetoQuadraticSmoothRel
1328               createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y )
1329          {
1330          SVGPathSegCurvetoQuadraticSmoothRel ret(x, y);
1331          return ret;
1332          }
1336     //##################
1337     //# Non-API methods
1338     //##################
1340     /**
1341      *
1342      */
1343     SVGPathElementImpl() {}
1346     /**
1347      *
1348      */
1349     virtual ~SVGPathElementImpl() {}
1351 protected:
1354 };
1362 /*#########################################################################
1363 ## SVGRectElementImpl
1364 #########################################################################*/
1366 /**
1367  *
1368  */
1369 class SVGRectElementImpl : virtual public SVGRectElement,
1370                            public SVGElementImpl
1372 public:
1374     /**
1375      *
1376      */
1377     virtual SVGAnimatedLength getX()
1378         { return x; }
1380     /**
1381      *
1382      */
1383     virtual SVGAnimatedLength getY()
1384         { return y; }
1386     /**
1387      *
1388      */
1389     virtual SVGAnimatedLength getWidth()
1390         { return width; }
1392     /**
1393      *
1394      */
1395     virtual SVGAnimatedLength getHeight()
1396         { return height; }
1399     /**
1400      *
1401      */
1402     virtual SVGAnimatedLength getRx()
1403         { return rx; }
1405     /**
1406      *
1407      */
1408     virtual SVGAnimatedLength getRy()
1409         { return ry; }
1413     //##################
1414     //# Non-API methods
1415     //##################
1417     /**
1418      *
1419      */
1420     SVGRectElementImpl() {}
1422     /**
1423      *
1424      */
1425     virtual ~SVGRectElementImpl() {}
1427 protected:
1429     SVGAnimatedLength x;
1430     SVGAnimatedLength y;
1431     SVGAnimatedLength width;
1432     SVGAnimatedLength height;
1433     SVGAnimatedLength rx;
1434     SVGAnimatedLength ry;
1436 };
1443 /*#########################################################################
1444 ## SVGCircleElementImpl
1445 #########################################################################*/
1447 /**
1448  *
1449  */
1450 class SVGCircleElementImpl : virtual public SVGCircleElement,
1451                              public SVGElementImpl
1453 public:
1455     /**
1456      *
1457      */
1458     virtual SVGAnimatedLength getCx()
1459         { return cx; }
1461     /**
1462      *
1463      */
1464     virtual SVGAnimatedLength getCy()
1465         { return cy; }
1467     /**
1468      *
1469      */
1470     virtual SVGAnimatedLength getR()
1471         { return r; }
1475     //##################
1476     //# Non-API methods
1477     //##################
1479     /**
1480      *
1481      */
1482     SVGCircleElementImpl() {}
1484     /**
1485      *
1486      */
1487     virtual ~SVGCircleElementImpl() {}
1489 protected:
1491     SVGAnimatedLength cx;
1492     SVGAnimatedLength cy;
1493     SVGAnimatedLength r;
1494 };
1501 /*#########################################################################
1502 ## SVGEllipseElementImpl
1503 #########################################################################*/
1505 /**
1506  *
1507  */
1508 class SVGEllipseElementImpl : virtual public SVGEllipseElement,
1509                               public SVGElementImpl
1511 public:
1513     /**
1514      *
1515      */
1516     virtual SVGAnimatedLength getCx()
1517         { return cx; }
1519     /**
1520      *
1521      */
1522     virtual SVGAnimatedLength getCy()
1523         { return cy; }
1525     /**
1526      *
1527      */
1528     virtual SVGAnimatedLength getRx()
1529         { return rx; }
1531     /**
1532      *
1533      */
1534     virtual SVGAnimatedLength getRy()
1535         { return ry; }
1538     //##################
1539     //# Non-API methods
1540     //##################
1542     /**
1543      *
1544      */
1545     SVGEllipseElementImpl() {}
1547     /**
1548      *
1549      */
1550     virtual ~SVGEllipseElementImpl() {}
1552 protected:
1554     SVGAnimatedLength cx;
1555     SVGAnimatedLength cy;
1556     SVGAnimatedLength rx;
1557     SVGAnimatedLength ry;
1558 };
1565 /*#########################################################################
1566 ## SVGLineElement
1567 #########################################################################*/
1569 /**
1570  *
1571  */
1572 class SVGLineElementImpl : virtual public SVGLineElement,
1573                            public SVGElementImpl
1575 public:
1577     /**
1578      *
1579      */
1580     virtual SVGAnimatedLength getX1()
1581         { return x1; }
1583     /**
1584      *
1585      */
1586     virtual SVGAnimatedLength getY1()
1587         { return y1; }
1589     /**
1590      *
1591      */
1592     virtual SVGAnimatedLength getX2()
1593         { return x2; }
1595     /**
1596      *
1597      */
1598     virtual SVGAnimatedLength getY2()
1599         { return y2; }
1601     //##################
1602     //# Non-API methods
1603     //##################
1605     /**
1606      *
1607      */
1608     virtual ~SVGLineElementImpl() {}
1610 protected:
1612     SVGAnimatedLength x1;
1613     SVGAnimatedLength x2;
1614     SVGAnimatedLength y1;
1615     SVGAnimatedLength y2;
1616 };
1621 /*#########################################################################
1622 ## SVGPolylineElement
1623 #########################################################################*/
1625 /**
1626  *
1627  */
1628 class SVGPolylineElementImpl : virtual public SVGPolylineElement,
1629                                public SVGElementImpl
1631 public:
1633     //##################
1634     //# Non-API methods
1635     //##################
1637     /**
1638      *
1639      */
1640     virtual ~SVGPolylineElementImpl() {}
1642 protected:
1645 };
1651 /*#########################################################################
1652 ## SVGPolygonElementImpl
1653 #########################################################################*/
1655 /**
1656  *
1657  */
1658 class SVGPolygonElementImpl : virtual public SVGPolygonElement,
1659                               public SVGElementImpl
1661 public:
1663     //##################
1664     //# Non-API methods
1665     //##################
1667     /**
1668      *
1669      */
1670     virtual ~SVGPolygonElementImpl() {}
1672 protected:
1675 };
1681 /*#########################################################################
1682 ## SVGTextContentElement
1683 #########################################################################*/
1685 /**
1686  *
1687  */
1688 class SVGTextContentElementImpl : virtual public SVGTextContentElement,
1689                                   public SVGElementImpl
1691 public:
1693     /**
1694      *
1695      */
1696     virtual SVGAnimatedLength getTextLength();
1699     /**
1700      *
1701      */
1702     virtual SVGAnimatedEnumeration getLengthAdjust();
1705     /**
1706      *
1707      */
1708     virtual long getNumberOfChars (  );
1710     /**
1711      *
1712      */
1713     virtual double getComputedTextLength (  );
1715     /**
1716      *
1717      */
1718     virtual double getSubStringLength (unsigned long charnum, unsigned long nchars )
1719                                      throw( DOMException );
1721     /**
1722      *
1723      */
1724     virtual SVGPoint getStartPositionOfChar (unsigned long charnum )
1725                                               throw( DOMException );
1727     /**
1728      *
1729      */
1730     virtual SVGPoint getEndPositionOfChar (unsigned long charnum )
1731                                            throw( DOMException );
1733     /**
1734      *
1735      */
1736     virtual SVGRect getExtentOfChar (unsigned long charnum )
1737                                       throw( DOMException );
1739     /**
1740      *
1741      */
1742     virtual double getRotationOfChar (unsigned long charnum )
1743                                      throw( DOMException );
1745     /**
1746      *
1747      */
1748     virtual long getCharNumAtPosition (const SVGPoint &point );
1750     /**
1751      *
1752      */
1753     virtual void selectSubString (unsigned long charnum, unsigned long nchars )
1754                                   throw( DOMException );
1758     //##################
1759     //# Non-API methods
1760     //##################
1762     /**
1763      *
1764      */
1765     virtual ~SVGTextContentElementImpl() {}
1767 protected:
1770 };
1777 /*#########################################################################
1778 ## SVGTextPositioningElementImpl
1779 #########################################################################*/
1781 /**
1782  *
1783  */
1784 class SVGTextPositioningElementImpl : virtual public SVGTextPositioningElement,
1785                                       public SVGTextContentElementImpl
1787 public:
1791     /**
1792      *
1793      */
1794     virtual SVGAnimatedLength getX()
1795         { return x; }
1797     /**
1798      *
1799      */
1800     virtual SVGAnimatedLength getY()
1801         { return y; }
1803     /**
1804      *
1805      */
1806     virtual SVGAnimatedLength getDx()
1807         { return dx; }
1809     /**
1810      *
1811      */
1812     virtual SVGAnimatedLength getDy()
1813         { return dy; }
1816     /**
1817      *
1818      */
1819     virtual SVGAnimatedNumberList getRotate()
1820         { return rotate; }
1824     //##################
1825     //# Non-API methods
1826     //##################
1828     /**
1829      *
1830      */
1831     virtual ~SVGTextPositioningElementImpl() {}
1833 protected:
1835     SVGAnimatedLength x;
1836     SVGAnimatedLength y;
1837     SVGAnimatedLength dx;
1838     SVGAnimatedLength dy;
1839     SVGAnimatedNumberList rotate;
1841 };
1849 /*#########################################################################
1850 ## SVGTextElement
1851 #########################################################################*/
1853 /**
1854  *
1855  */
1856 class SVGTextElementImpl : virtual public SVGTextElement,
1857                            public SVGTextPositioningElementImpl
1859 public:
1861     //##################
1862     //# Non-API methods
1863     //##################
1865     /**
1866      *
1867      */
1868     virtual ~SVGTextElementImpl() {}
1870 protected:
1873 };
1879 /*#########################################################################
1880 ## SVGTSpanElement
1881 #########################################################################*/
1883 /**
1884  *
1885  */
1886 class SVGTSpanElementImpl : virtual public SVGTSpanElement,
1887                             public SVGTextPositioningElementImpl
1889 public:
1891     //##################
1892     //# Non-API methods
1893     //##################
1895     /**
1896      *
1897      */
1898     virtual ~SVGTSpanElementImpl() {}
1900 protected:
1903 };
1909 /*#########################################################################
1910 ## SVGTRefElement
1911 #########################################################################*/
1913 /**
1914  *
1915  */
1916 class SVGTRefElementImpl : virtual public SVGTRefElement,
1917                            public SVGTextPositioningElementImpl
1919 public:
1921     //##################
1922     //# Non-API methods
1923     //##################
1925     /**
1926      *
1927      */
1928     virtual ~SVGTRefElementImpl() {}
1930 protected:
1933 };
1939 /*#########################################################################
1940 ## SVGTextPathElement
1941 #########################################################################*/
1943 /**
1944  *
1945  */
1946 class SVGTextPathElementImpl : virtual public SVGTextPathElement,
1947                                public SVGTextContentElementImpl
1949 public:
1951     /**
1952      *
1953      */
1954     virtual SVGAnimatedLength getStartOffset()
1955         { return startOffset; }
1957     /**
1958      *
1959      */
1960     virtual SVGAnimatedEnumeration getMethod()
1961         { return method; }
1963     /**
1964      *
1965      */
1966     virtual SVGAnimatedEnumeration getSpacing()
1967         { return spacing; }
1971     //##################
1972     //# Non-API methods
1973     //##################
1975     /**
1976      *
1977      */
1978     virtual ~SVGTextPathElementImpl() {}
1980 protected:
1982     SVGAnimatedLength startOffset;
1983     SVGAnimatedEnumeration method;
1984     SVGAnimatedEnumeration spacing;
1985 };
1993 /*#########################################################################
1994 ## SVGAltGlyphElement
1995 #########################################################################*/
1997 /**
1998  *
1999  */
2000 class SVGAltGlyphElementImpl : virtual public SVGAltGlyphElement,
2001                                public SVGTextPositioningElementImpl
2003 public:
2005     /**
2006      *
2007      */
2008     virtual DOMString getGlyphRef()
2009         { return glyphRef; }
2011     /**
2012      *
2013      */
2014     virtual void setGlyphRef(const DOMString &val)
2015                              throw (DOMException)
2016         { glyphRef = val; }
2018     /**
2019      *
2020      */
2021     virtual DOMString getFormat()
2022         { return format; }
2024     /**
2025      *
2026      */
2027     virtual void setFormat(const DOMString &val)
2028                            throw (DOMException)
2029         { format = val; }
2034     //##################
2035     //# Non-API methods
2036     //##################
2038     /**
2039      *
2040      */
2041     virtual ~SVGAltGlyphElementImpl() {}
2043 protected:
2045     DOMString glyphRef;
2046     DOMString format;
2048 };
2056 /*#########################################################################
2057 ## SVGAltGlyphDefElementImpl
2058 #########################################################################*/
2060 /**
2061  *
2062  */
2063 class SVGAltGlyphDefElementImpl : virtual public SVGAltGlyphDefElement,
2064                                   public SVGElementImpl
2066 public:
2068     //##################
2069     //# Non-API methods
2070     //##################
2072     /**
2073      *
2074      */
2075     virtual ~SVGAltGlyphDefElementImpl() {}
2077 protected:
2080 };
2086 /*#########################################################################
2087 ## SVGAltGlyphItemElementImpl
2088 #########################################################################*/
2090 /**
2091  *
2092  */
2093 class SVGAltGlyphItemElementImpl : virtual public SVGAltGlyphItemElement,
2094                                    public SVGElementImpl
2096 public:
2098     //##################
2099     //# Non-API methods
2100     //##################
2102     /**
2103      *
2104      */
2105     virtual ~SVGAltGlyphItemElementImpl() {}
2107 protected:
2110 };
2116 /*#########################################################################
2117 ## SVGGlyphRefElementImpl
2118 #########################################################################*/
2120 /**
2121  *
2122  */
2123 class SVGGlyphRefElementImpl : virtual public SVGGlyphRefElement,
2124                                public SVGElementImpl
2126 public:
2127     /**
2128      *
2129      */
2130     virtual DOMString getGlyphRef()
2131         { return glyphRef; }
2133     /**
2134      *
2135      */
2136     virtual void setGlyphRef(const DOMString &val) throw (DOMException)
2137         { glyphRef = val; }
2139     /**
2140      *
2141      */
2142     virtual DOMString getFormat()
2143         { return format; }
2145     /**
2146      *
2147      */
2148     virtual void setFormat(const DOMString &val) throw (DOMException)
2149         { format = val; }
2151     /**
2152      *
2153      */
2154     virtual double getX()
2155         { return x; }
2157     /**
2158      *
2159      */
2160     virtual void setX(double val) throw (DOMException)
2161         { x = val; }
2163     /**
2164      *
2165      */
2166     virtual double getY()
2167         { return y; }
2169     /**
2170      *
2171      */
2172     virtual void setY(double val) throw (DOMException)
2173         { y = val; }
2175     /**
2176      *
2177      */
2178     virtual double getDx()
2179         { return dx; }
2181     /**
2182      *
2183      */
2184     virtual void setDx(double val) throw (DOMException)
2185         { dx = val; }
2187     /**
2188      *
2189      */
2190     virtual double getDy()
2191         { return dy; }
2193     /**
2194      *
2195      */
2196     virtual void setDy(double val) throw (DOMException)
2197         { dy = val; }
2202     //##################
2203     //# Non-API methods
2204     //##################
2206     /**
2207      *
2208      */
2209     virtual ~SVGGlyphRefElementImpl() {}
2211 protected:
2213     DOMString glyphRef;
2214     DOMString format;
2215     double x, y, dx, dy;
2217 };
2224 /*#########################################################################
2225 ## SVGMarkerElementImpl
2226 #########################################################################*/
2228 /**
2229  *
2230  */
2231 class SVGMarkerElementImpl : virtual public SVGMarkerElement,
2232                              public SVGElementImpl
2234 public:
2236     /**
2237      *
2238      */
2239     virtual SVGAnimatedLength getRefX()
2240         { return refX; }
2242     /**
2243      *
2244      */
2245     virtual SVGAnimatedLength getRefY()
2246         { return refY; }
2248     /**
2249      *
2250      */
2251     virtual SVGAnimatedEnumeration getMarkerUnits()
2252         { return markerUnits; }
2254     /**
2255      *
2256      */
2257     virtual SVGAnimatedLength getMarkerWidth()
2258         { return markerWidth; }
2260     /**
2261      *
2262      */
2263     virtual SVGAnimatedLength getMarkerHeight()
2264         { return markerHeight; }
2266     /**
2267      *
2268      */
2269     virtual SVGAnimatedEnumeration getOrientType()
2270         { return orientType; }
2272     /**
2273      *
2274      */
2275     virtual SVGAnimatedAngle getOrientAngle()
2276         { return orientAngle; }
2279     /**
2280      *
2281      */
2282     virtual void setOrientToAuto (  )
2283         { orientAuto = true; }
2285     /**
2286      *
2287      */
2288     virtual void setOrientToAngle (const SVGAngle &angle)
2289         {
2290         orientAuto = false;
2291         orientAngle = SVGAnimatedAngle(angle);
2292         }
2296     //##################
2297     //# Non-API methods
2298     //##################
2300     /**
2301      *
2302      */
2303     virtual ~SVGMarkerElementImpl() {}
2305 protected:
2307     SVGAnimatedLength      refX;
2308     SVGAnimatedLength      refY;
2309     SVGAnimatedEnumeration markerUnits;
2310     SVGAnimatedLength      markerWidth;
2311     SVGAnimatedLength      markerHeight;
2312     SVGAnimatedEnumeration orientType;
2313     SVGAnimatedAngle       orientAngle;
2314     bool                   orientAuto;
2317 };
2325 /*#########################################################################
2326 ## SVGColorProfileElementImpl
2327 #########################################################################*/
2329 /**
2330  *
2331  */
2332 class SVGColorProfileElementImpl : virtual public SVGColorProfileElement,
2333                                    public SVGElementImpl
2335 public:
2336     /**
2337      *
2338      */
2339     virtual DOMString getLocal()
2340         { return local; }
2342     /**
2343      *
2344      */
2345     virtual void setLocal(const DOMString &val) throw (DOMException)
2346         { local = val; }
2348     /**
2349      *
2350      */
2351     virtual DOMString getName()
2352         { return name; }
2354     /**
2355      *
2356      */
2357     virtual void setName(const DOMString &val) throw (DOMException)
2358        { name = val; }
2360     /**
2361      *
2362      */
2363     virtual unsigned short getRenderingIntent()
2364         { return renderingIntent; }
2366     /**
2367      *
2368      */
2369     virtual void setRenderingIntent(unsigned short val) throw (DOMException)
2370        { renderingIntent = val; }
2374     //##################
2375     //# Non-API methods
2376     //##################
2378     /**
2379      *
2380      */
2381     virtual ~SVGColorProfileElementImpl() {}
2383 protected:
2385     DOMString local;
2386     DOMString name;
2387     unsigned short renderingIntent;
2389 };
2395 /*#########################################################################
2396 ## SVGGradientElementImpl
2397 #########################################################################*/
2399 /**
2400  *
2401  */
2402 class SVGGradientElementImpl : virtual public SVGGradientElement,
2403                                public SVGElementImpl
2405 public:
2407     /**
2408      *
2409      */
2410     virtual SVGAnimatedEnumeration getGradientUnits()
2411         { return gradientUnits; }
2413     /**
2414      *
2415      */
2416     virtual SVGAnimatedTransformList getGradientTransform()
2417         { return gradientTransform; }
2419     /**
2420      *
2421      */
2422     virtual SVGAnimatedEnumeration getSpreadMethod()
2423         { return spreadMethod; }
2427     //##################
2428     //# Non-API methods
2429     //##################
2431     /**
2432      *
2433      */
2434     virtual ~SVGGradientElementImpl() {}
2436 protected:
2439     SVGAnimatedEnumeration   gradientUnits;
2440     SVGAnimatedTransformList gradientTransform;
2441     SVGAnimatedEnumeration   spreadMethod;
2442 };
2450 /*#########################################################################
2451 ## SVGLinearGradientElementImpl
2452 #########################################################################*/
2454 /**
2455  *
2456  */
2457 class SVGLinearGradientElementImpl : virtual public SVGLinearGradientElement,
2458                                      public SVGGradientElementImpl
2460 public:
2463     /**
2464      *
2465      */
2466     virtual SVGAnimatedLength getX1()
2467         { return x1; }
2469     /**
2470      *
2471      */
2472     virtual SVGAnimatedLength getY1()
2473         { return y1; }
2475     /**
2476      *
2477      */
2478     virtual SVGAnimatedLength getX2()
2479         { return x2; }
2481     /**
2482      *
2483      */
2484     virtual SVGAnimatedLength getY2()
2485         { return y2; }
2488     //##################
2489     //# Non-API methods
2490     //##################
2492     /**
2493      *
2494      */
2495     virtual ~SVGLinearGradientElementImpl() {}
2497 protected:
2499     SVGAnimatedLength x1, x2, y1, y2;
2501 };
2509 /*#########################################################################
2510 ## SVGRadialGradientElementImpl
2511 #########################################################################*/
2513 /**
2514  *
2515  */
2516 class SVGRadialGradientElementImpl : virtual public SVGRadialGradientElement,
2517                                      public SVGGradientElementImpl
2519 public:
2522     /**
2523      *
2524      */
2525     virtual SVGAnimatedLength getCx()
2526         { return cx; }
2529     /**
2530      *
2531      */
2532     virtual SVGAnimatedLength getCy()
2533         { return cy; }
2536     /**
2537      *
2538      */
2539     virtual SVGAnimatedLength getR()
2540         { return r; }
2543     /**
2544      *
2545      */
2546     virtual SVGAnimatedLength getFx()
2547         { return fx; }
2550     /**
2551      *
2552      */
2553     virtual SVGAnimatedLength getFy()
2554         { return fy; }
2559     //##################
2560     //# Non-API methods
2561     //##################
2563     /**
2564      *
2565      */
2566     virtual ~SVGRadialGradientElementImpl() {}
2568 protected:
2570     SVGAnimatedLength cx, cy, r, fx, fy;
2572 };
2580 /*#########################################################################
2581 ## SVGStopElementImpl
2582 #########################################################################*/
2584 /**
2585  *
2586  */
2587 class SVGStopElementImpl : virtual public SVGStopElement,
2588                            public SVGElementImpl
2590 public:
2592     /**
2593      *
2594      */
2595     virtual SVGAnimatedNumber getOffset()
2596         { return offset; }
2600     //##################
2601     //# Non-API methods
2602     //##################
2604     /**
2605      *
2606      */
2607     virtual ~SVGStopElementImpl() {}
2609 protected:
2611     SVGAnimatedNumber offset;
2613 };
2621 /*#########################################################################
2622 ## SVGPatternElementImpl
2623 #########################################################################*/
2625 /**
2626  *
2627  */
2628 class SVGPatternElementImpl : virtual public SVGPatternElement,
2629                               public SVGElementImpl
2631 public:
2633     /**
2634      *
2635      */
2636     virtual SVGAnimatedEnumeration getPatternUnits()
2637         { return patternUnits; }
2639     /**
2640      *
2641      */
2642     virtual SVGAnimatedEnumeration getPatternContentUnits()
2643         { return patternContentUnits; }
2645     /**
2646      *
2647      */
2648     virtual SVGAnimatedTransformList getPatternTransform()
2649         { return patternTransform; }
2651     /**
2652      *
2653      */
2654     virtual SVGAnimatedLength getX()
2655         { return x; }
2657     /**
2658      *
2659      */
2660     virtual SVGAnimatedLength getY()
2661         { return y; }
2663     /**
2664      *
2665      */
2666     virtual SVGAnimatedLength getWidth()
2667         { return width; }
2669     /**
2670      *
2671      */
2672     virtual SVGAnimatedLength getHeight()
2673         { return height; }
2677     //##################
2678     //# Non-API methods
2679     //##################
2681     /**
2682      *
2683      */
2684     virtual ~SVGPatternElementImpl() {}
2686 protected:
2689     SVGAnimatedEnumeration   patternUnits;
2690     SVGAnimatedEnumeration   patternContentUnits;
2691     SVGAnimatedTransformList patternTransform;
2692     SVGAnimatedLength        x;
2693     SVGAnimatedLength        y;
2694     SVGAnimatedLength        width;
2695     SVGAnimatedLength        height;
2696 };
2704 /*#########################################################################
2705 ## SVGClipPathElementImpl
2706 #########################################################################*/
2708 /**
2709  *
2710  */
2711 class SVGClipPathElementImpl : virtual public SVGClipPathElement,
2712                                public SVGElementImpl
2714 public:
2716     /**
2717      *
2718      */
2719     virtual SVGAnimatedEnumeration getClipPathUnits()
2720         { return clipPathUnits; }
2722     //##################
2723     //# Non-API methods
2724     //##################
2726     /**
2727      *
2728      */
2729     virtual ~SVGClipPathElementImpl() {}
2731 protected:
2733     SVGAnimatedEnumeration clipPathUnits;
2735 };
2743 /*#########################################################################
2744 ## SVGMaskElementImpl
2745 #########################################################################*/
2747 /**
2748  *
2749  */
2750 class SVGMaskElementImpl : virtual public SVGMaskElement,
2751                            public SVGElementImpl
2753 public:
2755     /**
2756      *
2757      */
2758     virtual SVGAnimatedEnumeration getMaskUnits()
2759         { return maskUnits; }
2761     /**
2762      *
2763      */
2764     virtual SVGAnimatedEnumeration getMaskContentUnits()
2765         { return maskContentUnits; }
2767     /**
2768      *
2769      */
2770     virtual SVGAnimatedLength getX()
2771         { return x; }
2773     /**
2774      *
2775      */
2776     virtual SVGAnimatedLength getY()
2777         { return y; }
2779     /**
2780      *
2781      */
2782     virtual SVGAnimatedLength getWidth()
2783         { return width; }
2785     /**
2786      *
2787      */
2788     virtual SVGAnimatedLength getHeight()
2789         { return height; }
2791     //##################
2792     //# Non-API methods
2793     //##################
2795     /**
2796      *
2797      */
2798     virtual ~SVGMaskElementImpl() {}
2800 protected:
2803     SVGAnimatedEnumeration maskUnits;
2804     SVGAnimatedEnumeration maskContentUnits;
2805     SVGAnimatedLength      x;
2806     SVGAnimatedLength      y;
2807     SVGAnimatedLength      width;
2808     SVGAnimatedLength      height;
2809 };
2817 /*#########################################################################
2818 ## SVGFilterElementImpl
2819 #########################################################################*/
2821 /**
2822  *
2823  */
2824 class SVGFilterElementImpl : virtual public SVGFilterElement,
2825                              public SVGElementImpl
2827 public:
2829     /**
2830      *
2831      */
2832     virtual SVGAnimatedEnumeration getFilterUnits()
2833         { return filterUnits; }
2835     /**
2836      *
2837      */
2838     virtual SVGAnimatedEnumeration getPrimitiveUnits()
2839         { return filterUnits; }
2841     /**
2842      *
2843      */
2844     virtual SVGAnimatedLength getX()
2845         { return x; }
2847     /**
2848      *
2849      */
2850     virtual SVGAnimatedLength getY()
2851         { return y; }
2853     /**
2854      *
2855      */
2856     virtual SVGAnimatedLength getWidth()
2857         { return width; }
2859     /**
2860      *
2861      */
2862     virtual SVGAnimatedLength getHeight()
2863         { return height; }
2865     /**
2866      *
2867      */
2868     virtual SVGAnimatedInteger getFilterResX()
2869         { return filterResX; }
2871     /**
2872      *
2873      */
2874     virtual SVGAnimatedInteger getFilterResY()
2875         { return filterResY; }
2877     /**
2878      *
2879      */
2880     virtual void setFilterRes (unsigned long filterResXArg,
2881                                unsigned long filterResYArg )
2882         {
2883         filterResX = filterResXArg;
2884         filterResY = filterResYArg;
2885         }
2889     //##################
2890     //# Non-API methods
2891     //##################
2893     /**
2894      *
2895      */
2896     virtual ~SVGFilterElementImpl() {}
2898 protected:
2900     SVGAnimatedEnumeration filterUnits;
2901     SVGAnimatedEnumeration primitiveUnits;
2902     SVGAnimatedLength      x;
2903     SVGAnimatedLength      y;
2904     SVGAnimatedLength      width;
2905     SVGAnimatedLength      height;
2906     SVGAnimatedInteger     filterResX;
2907     SVGAnimatedInteger     filterResY;
2909 };
2916 /*#########################################################################
2917 ## SVGFEBlendElementImpl
2918 #########################################################################*/
2920 /**
2921  *
2922  */
2923 class SVGFEBlendElementImpl : virtual public SVGFEBlendElement,
2924                               public SVGElementImpl
2926 public:
2928     /**
2929      *
2930      */
2931     virtual SVGAnimatedString getIn1()
2932         { return in1; }
2934     /**
2935      *
2936      */
2937     virtual SVGAnimatedString getIn2()
2938         { return in2; }
2940     /**
2941      *
2942      */
2943     virtual SVGAnimatedEnumeration getMode()
2944         { return mode; }
2947     //##################
2948     //# Non-API methods
2949     //##################
2951     /**
2952      *
2953      */
2954     virtual ~SVGFEBlendElementImpl() {}
2956 protected:
2958     SVGAnimatedString in1, in2;
2959     SVGAnimatedEnumeration mode;
2960 };
2968 /*#########################################################################
2969 ## SVGFEColorMatrixElementImpl
2970 #########################################################################*/
2972 /**
2973  *
2974  */
2975 class SVGFEColorMatrixElementImpl : virtual public SVGFEColorMatrixElement,
2976                                     public SVGElementImpl
2978 public:
2980     /**
2981      *
2982      */
2983     virtual SVGAnimatedString getIn1()
2984         { return in1; }
2986     /**
2987      *
2988      */
2989     virtual SVGAnimatedEnumeration getType()
2990         { return type; }
2992     /**
2993      *
2994      */
2995     virtual SVGAnimatedNumberList getValues()
2996         { return values; }
3000     //##################
3001     //# Non-API methods
3002     //##################
3004     /**
3005      *
3006      */
3007     virtual ~SVGFEColorMatrixElementImpl() {}
3009 protected:
3011     SVGAnimatedString in1;
3012     SVGAnimatedEnumeration type;
3013     SVGAnimatedNumberList values;
3015 };
3023 /*#########################################################################
3024 ## SVGFEComponentTransferElementImpl
3025 #########################################################################*/
3027 /**
3028  *
3029  */
3030 class SVGFEComponentTransferElementImpl :
3031                         virtual public SVGFEComponentTransferElement,
3032                         public SVGElementImpl
3034 public:
3035     /**
3036      *
3037      */
3038     virtual SVGAnimatedString getIn1()
3039         { return in1; }
3041     //##################
3042     //# Non-API methods
3043     //##################
3045     /**
3046      *
3047      */
3048     virtual ~SVGFEComponentTransferElementImpl() {}
3050 protected:
3052     SVGAnimatedString in1;
3054 };
3062 /*#########################################################################
3063 ## SVGComponentTransferFunctionElementImpl
3064 #########################################################################*/
3066 /**
3067  *
3068  */
3069 class SVGComponentTransferFunctionElementImpl :
3070                             virtual public SVGComponentTransferFunctionElement,
3071                             public SVGElementImpl
3073 public:
3075     /**
3076      *
3077      */
3078     virtual SVGAnimatedEnumeration getType()
3079         { return type; }
3081     /**
3082      *
3083      */
3084     virtual SVGAnimatedNumberList getTableValues()
3085         { return tableValues; }
3087     /**
3088      *
3089      */
3090     virtual SVGAnimatedNumber getSlope()
3091         { return slope; }
3093     /**
3094      *
3095      */
3096     virtual SVGAnimatedNumber getIntercept()
3097         { return intercept; }
3099     /**
3100      *
3101      */
3102     virtual SVGAnimatedNumber getAmplitude()
3103         { return amplitude; }
3105     /**
3106      *
3107      */
3108     virtual SVGAnimatedNumber getExponent()
3109         { return exponent; }
3111     /**
3112      *
3113      */
3114     virtual SVGAnimatedNumber getOffset()
3115         { return offset; }
3118     //##################
3119     //# Non-API methods
3120     //##################
3122     /**
3123      *
3124      */
3125     virtual ~SVGComponentTransferFunctionElementImpl() {}
3127 protected:
3129     SVGAnimatedEnumeration type;
3130     SVGAnimatedNumberList  tableValues;
3131     SVGAnimatedNumber      slope;
3132     SVGAnimatedNumber      intercept;
3133     SVGAnimatedNumber      amplitude;
3134     SVGAnimatedNumber      exponent;
3135     SVGAnimatedNumber      offset;
3137 };
3145 /*#########################################################################
3146 ## SVGFEFuncRElementImpl
3147 #########################################################################*/
3149 /**
3150  *
3151  */
3152 class SVGFEFuncRElementImpl :
3153                        virtual public SVGFEFuncRElement,
3154                        public SVGComponentTransferFunctionElementImpl
3156 public:
3158     //##################
3159     //# Non-API methods
3160     //##################
3162     /**
3163      *
3164      */
3165     virtual ~SVGFEFuncRElementImpl() {}
3167 protected:
3170 };
3176 /*#########################################################################
3177 ## SVGFEFuncGElementImpl
3178 #########################################################################*/
3180 /**
3181  *
3182  */
3183 class SVGFEFuncGElementImpl : virtual public SVGFEFuncGElement,
3184                               public SVGComponentTransferFunctionElementImpl
3186 public:
3188     //##################
3189     //# Non-API methods
3190     //##################
3192     /**
3193      *
3194      */
3195     virtual ~SVGFEFuncGElementImpl() {}
3197 protected:
3200 };
3206 /*#########################################################################
3207 ## SVGFEFuncBElementImpl
3208 #########################################################################*/
3210 /**
3211  *
3212  */
3213 class SVGFEFuncBElementImpl : virtual public SVGFEFuncBElement,
3214                               public SVGComponentTransferFunctionElementImpl
3216 public:
3218     //##################
3219     //# Non-API methods
3220     //##################
3222     /**
3223      *
3224      */
3225     virtual ~SVGFEFuncBElementImpl() {}
3227 protected:
3230 };
3236 /*#########################################################################
3237 ## SVGFEFuncAElementImpl
3238 #########################################################################*/
3240 /**
3241  *
3242  */
3243 class SVGFEFuncAElementImpl : virtual public SVGFEFuncAElement,
3244                               public SVGComponentTransferFunctionElementImpl
3246 public:
3248     //##################
3249     //# Non-API methods
3250     //##################
3252     /**
3253      *
3254      */
3255     virtual ~SVGFEFuncAElementImpl() {}
3257 protected:
3260 };
3266 /*#########################################################################
3267 ## SVGFECompositeElementImpl
3268 #########################################################################*/
3270 /**
3271  *
3272  */
3273 class SVGFECompositeElementImpl : virtual public SVGFECompositeElement,
3274                                   public SVGElementImpl
3276 public:
3279     /**
3280      *
3281      */
3282     virtual SVGAnimatedString getIn1()
3283         { return in1; }
3285     /**
3286      *
3287      */
3288     virtual SVGAnimatedString getIn2()
3289         { return in2; }
3291     /**
3292      *
3293      */
3294     virtual SVGAnimatedEnumeration getOperator()
3295         { return ae_operator; }
3297     /**
3298      *
3299      */
3300     virtual SVGAnimatedNumber getK1()
3301         { return k1; }
3303     /**
3304      *
3305      */
3306     virtual SVGAnimatedNumber getK2()
3307         { return k2; }
3309     /**
3310      *
3311      */
3312     virtual SVGAnimatedNumber getK3()
3313         { return k3; }
3315     /**
3316      *
3317      */
3318     virtual SVGAnimatedNumber getK4()
3319         { return k4; }
3323     //##################
3324     //# Non-API methods
3325     //##################
3327     /**
3328      *
3329      */
3330     virtual ~SVGFECompositeElementImpl() {}
3332 protected:
3335     SVGAnimatedString      in1;
3336     SVGAnimatedString      in2;
3337     SVGAnimatedEnumeration ae_operator;
3338     SVGAnimatedNumber      k1;
3339     SVGAnimatedNumber      k2;
3340     SVGAnimatedNumber      k3;
3341     SVGAnimatedNumber      k4;
3343 };
3351 /*#########################################################################
3352 ## SVGFEConvolveMatrixElementImpl
3353 #########################################################################*/
3355 /**
3356  *
3357  */
3358 class SVGFEConvolveMatrixElementImpl : virtual public SVGFEConvolveMatrixElement,
3359                                        public SVGElementImpl
3361 public:
3363     /**
3364      *
3365      */
3366     virtual SVGAnimatedInteger getOrderX()
3367         { return orderX; }
3369     /**
3370      *
3371      */
3372     virtual SVGAnimatedInteger getOrderY()
3373         { return orderY; }
3375     /**
3376      *
3377      */
3378     virtual SVGAnimatedNumberList getKernelMatrix()
3379         { return kernelMatrix; }
3381     /**
3382      *
3383      */
3384     virtual SVGAnimatedNumber getDivisor()
3385         { return divisor; }
3387     /**
3388      *
3389      */
3390     virtual SVGAnimatedNumber getBias()
3391         { return bias; }
3393     /**
3394      *
3395      */
3396     virtual SVGAnimatedInteger getTargetX()
3397         { return targetX; }
3399     /**
3400      *
3401      */
3402     virtual SVGAnimatedInteger getTargetY()
3403         { return targetY; }
3405     /**
3406      *
3407      */
3408     virtual SVGAnimatedEnumeration getEdgeMode()
3409         { return edgeMode; }
3411     /**
3412      *
3413      */
3414     virtual SVGAnimatedLength getKernelUnitLengthX()
3415         { return kernelUnitLengthX; }
3417     /**
3418      *
3419      */
3420     virtual SVGAnimatedLength getKernelUnitLengthY()
3421         { return kernelUnitLengthY; }
3423     /**
3424      *
3425      */
3426     virtual SVGAnimatedBoolean getPreserveAlpha()
3427         { return preserveAlpha; }
3431     //##################
3432     //# Non-API methods
3433     //##################
3435     /**
3436      *
3437      */
3438     virtual ~SVGFEConvolveMatrixElementImpl() {}
3440 protected:
3442     SVGAnimatedInteger     orderX;
3443     SVGAnimatedInteger     orderY;
3444     SVGAnimatedNumberList  kernelMatrix;
3445     SVGAnimatedNumber      divisor;
3446     SVGAnimatedNumber      bias;
3447     SVGAnimatedInteger     targetX;
3448     SVGAnimatedInteger     targetY;
3449     SVGAnimatedEnumeration edgeMode;
3450     SVGAnimatedLength      kernelUnitLengthX;
3451     SVGAnimatedLength      kernelUnitLengthY;
3452     SVGAnimatedBoolean     preserveAlpha;
3454 };
3462 /*#########################################################################
3463 ## SVGFEDiffuseLightingElementImpl
3464 #########################################################################*/
3466 /**
3467  *
3468  */
3469 class SVGFEDiffuseLightingElementImpl : virtual public SVGFEDiffuseLightingElement,
3470                                         public SVGElementImpl
3472 public:
3474     /**
3475      *
3476      */
3477     virtual SVGAnimatedString getIn1()
3478         { return in1; }
3480     /**
3481      *
3482      */
3483     virtual SVGAnimatedNumber getSurfaceScale()
3484         { return surfaceScale; }
3486     /**
3487      *
3488      */
3489     virtual SVGAnimatedNumber getDiffuseConstant()
3490         { return diffuseConstant; }
3494     //##################
3495     //# Non-API methods
3496     //##################
3498     /**
3499      *
3500      */
3501     virtual ~SVGFEDiffuseLightingElementImpl() {}
3503 protected:
3505     SVGAnimatedString in1;
3506     SVGAnimatedNumber surfaceScale;
3507     SVGAnimatedNumber diffuseConstant;
3509 };
3517 /*#########################################################################
3518 ## SVGFEDistantLightElementImpl
3519 #########################################################################*/
3521 /**
3522  *
3523  */
3524 class SVGFEDistantLightElementImpl : virtual public SVGFEDistantLightElement,
3525                                      public SVGElementImpl
3527 public:
3529     /**
3530      *
3531      */
3532     virtual SVGAnimatedNumber getAzimuth()
3533         { return azimuth; }
3536     /**
3537      *
3538      */
3539     virtual SVGAnimatedNumber getElevation()
3540         { return elevation; }
3544     //##################
3545     //# Non-API methods
3546     //##################
3548     /**
3549      *
3550      */
3551     virtual ~SVGFEDistantLightElementImpl() {}
3553 protected:
3555     SVGAnimatedNumber azimuth;
3556     SVGAnimatedNumber elevation;
3558 };
3566 /*#########################################################################
3567 ## SVGFEPointLightElementImpl
3568 #########################################################################*/
3570 /**
3571  *
3572  */
3573 class SVGFEPointLightElementImpl : public virtual SVGFEPointLightElement,
3574                                    public SVGElementImpl
3576 public:
3578     /**
3579      *
3580      */
3581     virtual SVGAnimatedNumber getX()
3582         { return x; }
3585     /**
3586      *
3587      */
3588     virtual SVGAnimatedNumber getY()
3589         { return y; }
3591     /**
3592      *
3593      */
3594     virtual SVGAnimatedNumber getZ()
3595         { return z; }
3597     //##################
3598     //# Non-API methods
3599     //##################
3601     /**
3602      *
3603      */
3604     virtual ~SVGFEPointLightElementImpl() {}
3606 protected:
3608     SVGAnimatedNumber x, y, z;
3610 };
3618 /*#########################################################################
3619 ## SVGFESpotLightElementImpl
3620 #########################################################################*/
3622 /**
3623  *
3624  */
3625 class SVGFESpotLightElementImpl : virtual public SVGFESpotLightElement,
3626                                   public SVGElementImpl
3628 public:
3630     /**
3631      *
3632      */
3633     virtual SVGAnimatedNumber getX()
3634         { return x; }
3637     /**
3638      *
3639      */
3640     virtual SVGAnimatedNumber getY()
3641         { return y; }
3643     /**
3644      *
3645      */
3646     virtual SVGAnimatedNumber getZ()
3647         { return z; }
3649     /**
3650      *
3651      */
3652     virtual SVGAnimatedNumber getPointsAtX()
3653         { return pointsAtX; }
3655     /**
3656      *
3657      */
3658     virtual SVGAnimatedNumber getPointsAtY()
3659         { return pointsAtY; }
3661     /**
3662      *
3663      */
3664     virtual SVGAnimatedNumber getPointsAtZ()
3665         { return pointsAtZ; }
3667     /**
3668      *
3669      */
3670     virtual SVGAnimatedNumber getSpecularExponent()
3671         { return specularExponent; }
3673     /**
3674      *
3675      */
3676     virtual SVGAnimatedNumber getLimitingConeAngle()
3677         { return limitingConeAngle; }
3681     //##################
3682     //# Non-API methods
3683     //##################
3685     /**
3686      *
3687      */
3688     virtual ~SVGFESpotLightElementImpl() {}
3690 protected:
3692     SVGAnimatedNumber x, y, z;
3693     SVGAnimatedNumber pointsAtX, pointsAtY, pointsAtZ;
3694     SVGAnimatedNumber specularExponent;
3695     SVGAnimatedNumber limitingConeAngle;
3696 };
3704 /*#########################################################################
3705 ## SVGFEDisplacementMapElementImpl
3706 #########################################################################*/
3708 /**
3709  *
3710  */
3711 class SVGFEDisplacementMapElementImpl : virtual public SVGFEDisplacementMapElement,
3712                                         public SVGElementImpl
3714 public:
3716     /**
3717      *
3718      */
3719     virtual SVGAnimatedString getIn1()
3720         { return in1; }
3722     /**
3723      *
3724      */
3725     virtual SVGAnimatedString getIn2()
3726         { return in2; }
3729     /**
3730      *
3731      */
3732     virtual SVGAnimatedNumber getScale()
3733         { return scale; }
3735     /**
3736      *
3737      */
3738     virtual SVGAnimatedEnumeration getXChannelSelector()
3739         { return xChannelSelector; }
3741     /**
3742      *
3743      */
3744     virtual SVGAnimatedEnumeration getYChannelSelector()
3745         { return yChannelSelector; }
3749     //##################
3750     //# Non-API methods
3751     //##################
3753     /**
3754      *
3755      */
3756     virtual ~SVGFEDisplacementMapElementImpl() {}
3758 protected:
3760     SVGAnimatedString      in1;
3761     SVGAnimatedString      in2;
3762     SVGAnimatedNumber      scale;
3763     SVGAnimatedEnumeration xChannelSelector;
3764     SVGAnimatedEnumeration yChannelSelector;
3766 };
3774 /*#########################################################################
3775 ## SVGFEFloodElementImpl
3776 #########################################################################*/
3778 /**
3779  *
3780  */
3781 class SVGFEFloodElementImpl : virtual public SVGFEFloodElement,
3782                               public SVGElementImpl
3784 public:
3785     /**
3786      *
3787      */
3788     virtual SVGAnimatedString getIn1()
3789         { return in1; }
3792     //##################
3793     //# Non-API methods
3794     //##################
3796     /**
3797      *
3798      */
3799     virtual ~SVGFEFloodElementImpl() {}
3801 protected:
3803     SVGAnimatedString in1;
3805 };
3813 /*#########################################################################
3814 ## SVGFEGaussianBlurElementImpl
3815 #########################################################################*/
3817 /**
3818  *
3819  */
3820 class SVGFEGaussianBlurElementImpl : virtual public SVGFEGaussianBlurElement,
3821                                      public SVGElementImpl
3823 public:
3824     /**
3825      *
3826      */
3827     virtual SVGAnimatedString getIn1()
3828         { return in1; }
3831     /**
3832      *
3833      */
3834     virtual SVGAnimatedNumber getStdDeviationX()
3835         { return stdDeviationX; }
3837     /**
3838      *
3839      */
3840     virtual SVGAnimatedNumber getStdDeviationY()
3841         { return stdDeviationY; }
3844     /**
3845      *
3846      */
3847     virtual void setStdDeviation (double stdDeviationXArg, double stdDeviationYArg )
3848         {
3849         stdDeviationX = stdDeviationXArg;
3850         stdDeviationY = stdDeviationYArg;
3851         }
3855     //##################
3856     //# Non-API methods
3857     //##################
3859     /**
3860      *
3861      */
3862     virtual ~SVGFEGaussianBlurElementImpl() {}
3864 protected:
3866     SVGAnimatedString in1;
3867     SVGAnimatedNumber stdDeviationX, stdDeviationY;
3869 };
3877 /*#########################################################################
3878 ## SVGFEImageElementImpl
3879 #########################################################################*/
3881 /**
3882  *
3883  */
3884 class SVGFEImageElementImpl : virtual public SVGFEImageElement,
3885                               public SVGElementImpl
3887 public:
3889     //##################
3890     //# Non-API methods
3891     //##################
3893     /**
3894      *
3895      */
3896     virtual ~SVGFEImageElementImpl() {}
3898 protected:
3901 };
3907 /*#########################################################################
3908 ## SVGFEMergeElementImpl
3909 #########################################################################*/
3911 /**
3912  *
3913  */
3914 class SVGFEMergeElementImpl : virtual public SVGFEMergeElement,
3915                               public SVGElementImpl
3917 public:
3919     //##################
3920     //# Non-API methods
3921     //##################
3923     /**
3924      *
3925      */
3926     virtual ~SVGFEMergeElementImpl() {}
3928 protected:
3931 };
3937 /*#########################################################################
3938 ## SVGFEMergeNodeElementImpl
3939 #########################################################################*/
3941 /**
3942  *
3943  */
3944 class SVGFEMergeNodeElementImpl : virtual public SVGFEMergeNodeElement,
3945                                   public SVGElementImpl
3947 public:
3948     /**
3949      *
3950      */
3951     virtual SVGAnimatedString getIn1()
3952         { return in1; }
3955     //##################
3956     //# Non-API methods
3957     //##################
3959     /**
3960      *
3961      */
3962     virtual ~SVGFEMergeNodeElementImpl() {}
3964 protected:
3966     SVGAnimatedString in1;
3968 };
3976 /*#########################################################################
3977 ## SVGFEMorphologyElementImpl
3978 #########################################################################*/
3980 /**
3981  *
3982  */
3983 class SVGFEMorphologyElementImpl : virtual public SVGFEMorphologyElement,
3984                                    public SVGElementImpl
3986 public:
3988     /**
3989      *
3990      */
3991     virtual SVGAnimatedString getIn1()
3992         { return in1; }
3995     /**
3996      *
3997      */
3998     virtual SVGAnimatedEnumeration getOperator()
3999         { return me_operator; }
4001     /**
4002      *
4003      */
4004     virtual SVGAnimatedLength getRadiusX()
4005         { return radiusX; }
4007     /**
4008      *
4009      */
4010     virtual SVGAnimatedLength getRadiusY()
4011         { return radiusY; }
4015     //##################
4016     //# Non-API methods
4017     //##################
4019     /**
4020      *
4021      */
4022     virtual ~SVGFEMorphologyElementImpl() {}
4024 protected:
4026     SVGAnimatedString      in1;
4027     SVGAnimatedEnumeration me_operator;
4028     SVGAnimatedLength      radiusX;
4029     SVGAnimatedLength      radiusY;
4031 };
4039 /*#########################################################################
4040 ## SVGFEOffsetElementImpl
4041 #########################################################################*/
4043 /**
4044  *
4045  */
4046 class SVGFEOffsetElementImpl : virtual public SVGFEOffsetElement,
4047                                public SVGElementImpl
4049 public:
4053     /**
4054      *
4055      */
4056     virtual SVGAnimatedString getIn1()
4057         { return in1; }
4059     /**
4060      *
4061      */
4062     virtual SVGAnimatedLength getDx()
4063         { return dx; }
4065     /**
4066      *
4067      */
4068     virtual SVGAnimatedLength getDy()
4069         { return dy; }
4071     //##################
4072     //# Non-API methods
4073     //##################
4075     /**
4076      *
4077      */
4078     virtual ~SVGFEOffsetElementImpl() {}
4080 protected:
4082     SVGAnimatedString in1;
4083     SVGAnimatedLength dx, dy;
4085 };
4093 /*#########################################################################
4094 ## SVGFESpecularLightingElementImpl
4095 #########################################################################*/
4097 /**
4098  *
4099  */
4100 class SVGFESpecularLightingElementImpl :
4101                        virtual public SVGFESpecularLightingElement,
4102                        public SVGElementImpl
4104 public:
4106     /**
4107      *
4108      */
4109     virtual SVGAnimatedString getIn1()
4110         { return in1; }
4112     /**
4113      *
4114      */
4115     virtual SVGAnimatedNumber getSurfaceScale()
4116         { return surfaceScale; }
4118     /**
4119      *
4120      */
4121     virtual SVGAnimatedNumber getSpecularConstant()
4122         { return specularConstant; }
4124     /**
4125      *
4126      */
4127     virtual SVGAnimatedNumber getSpecularExponent()
4128         { return specularExponent; }
4131     //##################
4132     //# Non-API methods
4133     //##################
4135     /**
4136      *
4137      */
4138     virtual ~SVGFESpecularLightingElementImpl() {}
4140 protected:
4142     SVGAnimatedString in1;
4143     SVGAnimatedNumber surfaceScale;
4144     SVGAnimatedNumber specularConstant;
4145     SVGAnimatedNumber specularExponent;
4146 };
4154 /*#########################################################################
4155 ## SVGFETileElementImpl
4156 #########################################################################*/
4158 /**
4159  *
4160  */
4161 class SVGFETileElementImpl : virtual public SVGFETileElement,
4162                              public SVGElementImpl
4164 public:
4167     /**
4168      *
4169      */
4170     virtual SVGAnimatedString getIn1()
4171         { return in1; }
4175     //##################
4176     //# Non-API methods
4177     //##################
4179     /**
4180      *
4181      */
4182     virtual ~SVGFETileElementImpl() {}
4184 protected:
4186     SVGAnimatedString in1;
4188 };
4196 /*#########################################################################
4197 ## SVGFETurbulenceElementImpl
4198 #########################################################################*/
4200 /**
4201  *
4202  */
4203 class SVGFETurbulenceElementImpl : virtual public SVGFETurbulenceElement,
4204                                    public SVGElementImpl
4206 public:
4208     /**
4209      *
4210      */
4211     virtual SVGAnimatedNumber getBaseFrequencyX()
4212         { return baseFrequencyX; }
4214     /**
4215      *
4216      */
4217     virtual SVGAnimatedNumber getBaseFrequencyY()
4218         { return baseFrequencyY; }
4220     /**
4221      *
4222      */
4223     virtual SVGAnimatedInteger getNumOctaves()
4224         { return numOctaves; }
4226     /**
4227      *
4228      */
4229     virtual SVGAnimatedNumber getSeed()
4230         { return seed; }
4232     /**
4233      *
4234      */
4235     virtual SVGAnimatedEnumeration getStitchTiles()
4236         { return stitchTiles; }
4238     /**
4239      *
4240      */
4241     virtual SVGAnimatedEnumeration getType()
4242         { return type; }
4246     //##################
4247     //# Non-API methods
4248     //##################
4250     /**
4251      *
4252      */
4253     virtual ~SVGFETurbulenceElementImpl() {}
4255 protected:
4257     SVGAnimatedNumber      baseFrequencyX;
4258     SVGAnimatedNumber      baseFrequencyY;
4259     SVGAnimatedInteger     numOctaves;
4260     SVGAnimatedNumber      seed;
4261     SVGAnimatedEnumeration stitchTiles;
4262     SVGAnimatedEnumeration type;
4264 };
4272 /*#########################################################################
4273 ## SVGCursorElementImpl
4274 #########################################################################*/
4276 /**
4277  *
4278  */
4279 class SVGCursorElementImpl : virtual public SVGCursorElement,
4280                              public SVGElementImpl
4282 public:
4284     /**
4285      *
4286      */
4287     virtual SVGAnimatedLength getX()
4288         { return x; }
4290     /**
4291      *
4292      */
4293     virtual SVGAnimatedLength getY()
4294         { return x; }
4296     //##################
4297     //# Non-API methods
4298     //##################
4300     /**
4301      *
4302      */
4303     virtual ~SVGCursorElementImpl() {}
4305 protected:
4307     SVGAnimatedLength x, y;
4308 };
4316 /*#########################################################################
4317 ## SVGAElementImpl
4318 #########################################################################*/
4320 /**
4321  *
4322  */
4323 class SVGAElementImpl : virtual public SVGAElement,
4324                         public SVGElementImpl
4326 public:
4328     /**
4329      *
4330      */
4331     virtual SVGAnimatedString getTarget()
4332         { return target; }
4336     //##################
4337     //# Non-API methods
4338     //##################
4340     /**
4341      *
4342      */
4343     virtual ~SVGAElementImpl() {}
4345 protected:
4347     SVGAnimatedString target;
4348 };
4356 /*#########################################################################
4357 ## SVGViewElementImpl
4358 #########################################################################*/
4360 /**
4361  *
4362  */
4363 class SVGViewElementImpl : virtual public SVGViewElement,
4364                            public SVGElementImpl
4366 public:
4368     /**
4369      *
4370      */
4371     virtual SVGStringList getViewTarget()
4372         { return viewTarget; }
4376     //##################
4377     //# Non-API methods
4378     //##################
4380     /**
4381      *
4382      */
4383     virtual ~SVGViewElementImpl() {}
4385 protected:
4387     SVGStringList viewTarget;
4388 };
4396 /*#########################################################################
4397 ## SVGScriptElementImpl
4398 #########################################################################*/
4400 /**
4401  *
4402  */
4403 class SVGScriptElementImpl : virtual public SVGScriptElement,
4404                              public SVGElementImpl
4406 public:
4408     /**
4409      *
4410      */
4411     virtual DOMString getType()
4412         { return type; }
4414     /**
4415      *
4416      */
4417     virtual void setType(const DOMString &val) throw (DOMException)
4418         { type = val; }
4421     //##################
4422     //# Non-API methods
4423     //##################
4425     /**
4426      *
4427      */
4428     virtual ~SVGScriptElementImpl() {}
4430 protected:
4432     DOMString type;
4433 };
4440 /*#########################################################################
4441 ## SVGAnimationElementImpl
4442 #########################################################################*/
4444 /**
4445  *
4446  */
4447 class SVGAnimationElementImpl : virtual public SVGAnimationElement,
4448                                 public SVGElementImpl
4450 public:
4453     /**
4454      *
4455      */
4456     virtual SVGElement *getTargetElement()
4457         { return targetElement; }
4460     /**
4461      *
4462      */
4463     virtual double getStartTime (  )
4464         { return startTime; }
4466     /**
4467      *
4468      */
4469     virtual double getCurrentTime (  )
4470         { return currentTime; }
4472     /**
4473      *
4474      */
4475     virtual double getSimpleDuration (  ) throw( DOMException )
4476         { return simpleDuration; }
4480     //##################
4481     //# Non-API methods
4482     //##################
4484     /**
4485      *
4486      */
4487     virtual ~SVGAnimationElementImpl() {}
4489 protected:
4491     SVGElement *targetElement;
4492     double startTime, currentTime, simpleDuration;
4493 };
4501 /*#########################################################################
4502 ## SVGAnimateElementImpl
4503 #########################################################################*/
4505 /**
4506  *
4507  */
4508 class SVGAnimateElementImpl : virtual public SVGAnimateElement,
4509                               public SVGAnimationElementImpl
4511 public:
4513     //##################
4514     //# Non-API methods
4515     //##################
4517     /**
4518      *
4519      */
4520     virtual ~SVGAnimateElementImpl() {}
4522 protected:
4525 };
4531 /*#########################################################################
4532 ## SVGSetElementImpl
4533 #########################################################################*/
4535 /**
4536  *
4537  */
4538 class SVGSetElementImpl : virtual public SVGSetElement,
4539                           public SVGAnimationElementImpl
4541 public:
4543     //##################
4544     //# Non-API methods
4545     //##################
4547     /**
4548      *
4549      */
4550     virtual ~SVGSetElementImpl() {}
4552 protected:
4555 };
4561 /*#########################################################################
4562 ## SVGAnimateMotionElementImpl
4563 #########################################################################*/
4565 /**
4566  *
4567  */
4568 class SVGAnimateMotionElementImpl : virtual public SVGAnimateMotionElement,
4569                                     public SVGAnimationElementImpl
4571 public:
4573     //##################
4574     //# Non-API methods
4575     //##################
4577     /**
4578      *
4579      */
4580     virtual ~SVGAnimateMotionElementImpl() {}
4582 protected:
4585 };
4591 /*#########################################################################
4592 ## SVGMPathElementImpl
4593 #########################################################################*/
4595 /**
4596  *
4597  */
4598 class SVGMPathElementImpl : virtual public SVGMPathElement,
4599                             public SVGElementImpl
4601 public:
4603     //##################
4604     //# Non-API methods
4605     //##################
4607     /**
4608      *
4609      */
4610     virtual ~SVGMPathElementImpl() {}
4612 protected:
4615 };
4621 /*#########################################################################
4622 ## SVGAnimateColorElementImpl
4623 #########################################################################*/
4625 /**
4626  *
4627  */
4628 class SVGAnimateColorElementImpl : virtual public SVGAnimateColorElement,
4629                                    public SVGAnimationElementImpl
4631 public:
4633     //##################
4634     //# Non-API methods
4635     //##################
4637     /**
4638      *
4639      */
4640     virtual ~SVGAnimateColorElementImpl() {}
4642 protected:
4645 };
4651 /*#########################################################################
4652 ## SVGAnimateTransformElementImpl
4653 #########################################################################*/
4655 /**
4656  *
4657  */
4658 class SVGAnimateTransformElementImpl : virtual public SVGAnimateTransformElement,
4659                                        public SVGAnimationElementImpl
4661 public:
4663     //##################
4664     //# Non-API methods
4665     //##################
4667     /**
4668      *
4669      */
4670     virtual ~SVGAnimateTransformElementImpl() {}
4672 protected:
4675 };
4681 /*#########################################################################
4682 ## SVGFontElementImpl
4683 #########################################################################*/
4685 /**
4686  *
4687  */
4688 class SVGFontElementImpl :  virtual public SVGFontElement,
4689                             public SVGElementImpl
4691 public:
4693     //##################
4694     //# Non-API methods
4695     //##################
4697     /**
4698      *
4699      */
4700     virtual ~SVGFontElementImpl() {}
4702 protected:
4705 };
4711 /*#########################################################################
4712 ## SVGGlyphElementImpl
4713 #########################################################################*/
4715 /**
4716  *
4717  */
4718 class SVGGlyphElementImpl : virtual public SVGGlyphElement,
4719                             public SVGElementImpl
4721 public:
4723     //##################
4724     //# Non-API methods
4725     //##################
4727     /**
4728      *
4729      */
4730     virtual ~SVGGlyphElementImpl() {}
4732 protected:
4735 };
4741 /*#########################################################################
4742 ## SVGMissingGlyphElementImpl
4743 #########################################################################*/
4745 /**
4746  *
4747  */
4748 class SVGMissingGlyphElementImpl : virtual public SVGMissingGlyphElement,
4749                                    public SVGElementImpl
4751 public:
4753     //##################
4754     //# Non-API methods
4755     //##################
4757     /**
4758      *
4759      */
4760     virtual ~SVGMissingGlyphElementImpl() {}
4762 protected:
4765 };
4771 /*#########################################################################
4772 ## SVGHKernElementImpl
4773 #########################################################################*/
4775 /**
4776  *
4777  */
4778 class SVGHKernElementImpl : virtual public SVGHKernElement,
4779                             public SVGElementImpl
4781 public:
4783     //##################
4784     //# Non-API methods
4785     //##################
4787     /**
4788      *
4789      */
4790     virtual ~SVGHKernElementImpl() {}
4792 protected:
4795 };
4801 /*#########################################################################
4802 ## SVGVKernElementImpl
4803 #########################################################################*/
4805 /**
4806  *
4807  */
4808 class SVGVKernElementImpl : virtual public SVGVKernElement,
4809                             public SVGElementImpl
4811 public:
4813     //##################
4814     //# Non-API methods
4815     //##################
4817     /**
4818      *
4819      */
4820     virtual ~SVGVKernElementImpl() {}
4822 protected:
4825 };
4831 /*#########################################################################
4832 ## SVGFontFaceElementImpl
4833 #########################################################################*/
4835 /**
4836  *
4837  */
4838 class SVGFontFaceElementImpl : virtual public SVGFontFaceElement,
4839                                public SVGElementImpl
4841 public:
4843     //##################
4844     //# Non-API methods
4845     //##################
4847     /**
4848      *
4849      */
4850     virtual ~SVGFontFaceElementImpl() {}
4852 protected:
4855 };
4861 /*#########################################################################
4862 ## SVGFontFaceSrcElementImpl
4863 #########################################################################*/
4865 /**
4866  *
4867  */
4868 class SVGFontFaceSrcElementImpl : virtual public SVGFontFaceSrcElement,
4869                                   public SVGElementImpl
4871 public:
4873     //##################
4874     //# Non-API methods
4875     //##################
4877     /**
4878      *
4879      */
4880     virtual ~SVGFontFaceSrcElementImpl() {}
4882 protected:
4885 };
4891 /*#########################################################################
4892 ## SVGFontFaceUriElementImpl
4893 #########################################################################*/
4895 /**
4896  *
4897  */
4898 class SVGFontFaceUriElementImpl : virtual public SVGFontFaceUriElement,
4899                                   public SVGElementImpl
4901 public:
4903     //##################
4904     //# Non-API methods
4905     //##################
4907     /**
4908      *
4909      */
4910     virtual ~SVGFontFaceUriElementImpl() {}
4912 protected:
4915 };
4921 /*#########################################################################
4922 ## SVGFontFaceFormatElementImpl
4923 #########################################################################*/
4925 /**
4926  *
4927  */
4928 class SVGFontFaceFormatElementImpl : virtual public SVGFontFaceFormatElement,
4929                                      public SVGElementImpl
4931 public:
4933     //##################
4934     //# Non-API methods
4935     //##################
4937     /**
4938      *
4939      */
4940     virtual ~SVGFontFaceFormatElementImpl() {}
4942 protected:
4945 };
4951 /*#########################################################################
4952 ## SVGFontFaceNameElementImpl
4953 #########################################################################*/
4955 /**
4956  *
4957  */
4958 class SVGFontFaceNameElementImpl : virtual public SVGFontFaceNameElement,
4959                                    public SVGElementImpl
4961 public:
4963     //##################
4964     //# Non-API methods
4965     //##################
4967     /**
4968      *
4969      */
4970     virtual ~SVGFontFaceNameElementImpl() {}
4972 protected:
4975 };
4981 /*#########################################################################
4982 ## SVGDefinitionSrcElementImpl
4983 #########################################################################*/
4985 /**
4986  *
4987  */
4988 class SVGDefinitionSrcElementImpl : virtual public SVGDefinitionSrcElement,
4989                                     public SVGElementImpl
4991 public:
4993     //##################
4994     //# Non-API methods
4995     //##################
4997     /**
4998      *
4999      */
5000     virtual ~SVGDefinitionSrcElementImpl() {}
5002 protected:
5005 };
5011 /*#########################################################################
5012 ## SVGMetadataElementImpl
5013 #########################################################################*/
5015 /**
5016  *
5017  */
5018 class SVGMetadataElementImpl : virtual public SVGMetadataElement,
5019                                public SVGElementImpl
5021 public:
5023     //##################
5024     //# Non-API methods
5025     //##################
5027     /**
5028      *
5029      */
5030     virtual ~SVGMetadataElementImpl() {}
5032 protected:
5035 };
5040 /*#########################################################################
5041 ## SVGForeignObjectElementImpl
5042 #########################################################################*/
5044 /**
5045  *
5046  */
5047 class SVGForeignObjectElementImpl :  virtual public SVGForeignObjectElement,
5048                                      public SVGElementImpl
5050 public:
5053     /**
5054      *
5055      */
5056     virtual SVGAnimatedLength getX()
5057         { return x; }
5059     /**
5060      *
5061      */
5062     virtual SVGAnimatedLength getY()
5063         { return y; }
5065     /**
5066      *
5067      */
5068     virtual SVGAnimatedLength getWidth()
5069         { return width; }
5071     /**
5072      *
5073      */
5074     virtual SVGAnimatedLength getHeight()
5075         { return height; }
5079     //##################
5080     //# Non-API methods
5081     //##################
5084     /**
5085      *
5086      */
5087     virtual ~SVGForeignObjectElementImpl() {}
5089 protected:
5091     SVGAnimatedLength x, y, width, height;
5092 };
5099 }  //namespace svg
5100 }  //namespace dom
5101 }  //namespace w3c
5102 }  //namespace org
5104 #endif // __SVG_H__
5105 /*#########################################################################
5106 ## E N D    O F    F I L E
5107 #########################################################################*/